Sto cercando un modo per tracciare griglia_scores_ da GridSearchCV in sklearn. In questo esempio sto provando a cercare nella griglia i migliori parametri gamma e C per un algoritmo SVR. Il mio codice è il seguente:Come graficare i punteggi della griglia da GridSearchCV?
C_range = 10.0 ** np.arange(-4, 4)
gamma_range = 10.0 ** np.arange(-4, 4)
param_grid = dict(gamma=gamma_range.tolist(), C=C_range.tolist())
grid = GridSearchCV(SVR(kernel='rbf', gamma=0.1),param_grid, cv=5)
grid.fit(X_train,y_train)
print(grid.grid_scores_)
Dopo aver eseguito il codice e stampare i punteggi della griglia ottengo il seguente esito:
[mean: -3.28593, std: 1.69134, params: {'gamma': 0.0001, 'C': 0.0001}, mean: -3.29370, std: 1.69346, params: {'gamma': 0.001, 'C': 0.0001}, mean: -3.28933, std: 1.69104, params: {'gamma': 0.01, 'C': 0.0001}, mean: -3.28925, std: 1.69106, params: {'gamma': 0.1, 'C': 0.0001}, mean: -3.28925, std: 1.69106, params: {'gamma': 1.0, 'C': 0.0001}, mean: -3.28925, std: 1.69106, params: {'gamma': 10.0, 'C': 0.0001},etc]
vorrei visualizzare tutti i punteggi (valori medi) in funzione parametri gamma e C. Il grafico che sto cercando di ottenere dovrebbe essere come segue:
Dove asse x è gamma, asse y è medio punteggio (errore quadratico medio in questo caso), e diverse linee rappresentano differenti C valori.
"# la forma è secondo l'ordine alfabetico dei parametri nella griglia" - Avete qualche link per questo (preferibilmente dai documenti)? – sascha
Ho trovato la parte in codeb di sklearns all'interno di grid_search.py, ma penso che non sia menzionata nei documenti. – sascha
Hai ragione, dovrebbe essere menzionato e non lo è. Il doctest per ParameterGrid garantisce l'ordine deterministico che segue questa convenzione, quindi è testato; è anche usato nell'esempio 'plot_rbf_parameters' che ha due linee coincidenti per coincidenza quasi identiche a quelle che ti ho dato. Se sei preoccupato che questo ordine sia inaffidabile, puoi sempre ordinare il file 'grid_scores_ '. – joeln