sklearn GridSearchCV avec Pipeline

je suis nouveau sklearn 's Pipeline et GridSearchCV caractéristiques. J'essaie de construire un pipeline qui fait D'abord RandomizedPCA sur mes données d'entraînement et ensuite s'adapte à un modèle de régression de crête. Voici mon code:

pca = RandomizedPCA(1000, whiten=True)
rgn = Ridge()

pca_ridge = Pipeline([('pca', pca),
                      ('ridge', rgn)])

parameters = {'ridge__alpha': 10 ** np.linspace(-5, -2, 3)}

grid_search = GridSearchCV(pca_ridge, parameters, cv=2, n_jobs=1, scoring='mean_squared_error')
grid_search.fit(train_x, train_y[:, 1:])

je connais la fonction RidgeCV mais je veux essayer Pipeline et GridSearch CV.

je veux que le CV de recherche de grille signale l'erreur RMSE, mais cela ne semble pas supporté dans sklearn donc je fais avec MSE. Cependant, les scores qu'il attribue sont négatifs:

In [41]: grid_search.grid_scores_
Out[41]: 
[mean: -0.02665, std: 0.00007, params: {'ridge__alpha': 1.0000000000000001e-05},
 mean: -0.02658, std: 0.00009, params: {'ridge__alpha': 0.031622776601683791},
 mean: -0.02626, std: 0.00008, params: {'ridge__alpha': 100.0}]

Évidemment, ce n'est pas possible pour l'erreur quadratique moyenne - ce que je fais mal?

18
demandé sur mchangun 2014-01-10 20:59:30

2 réponses

ces scores sont négatifs MSE, c.-à-d. les nier et vous obtenez le MSE. La chose est que GridSearchCV , par convention, tente toujours de maximiser son score ainsi fonctions de perte comme MSE doivent être niés.

29
répondu Fred Foo 2014-01-11 11:07:16

si vous voulez obtenir RMSE comme une métrique, vous pouvez écrire votre propre callable/fonction qui prendra Y_pred et Y_org et calculer le RMSE.

ref: http://scikit-learn.org/stable/modules/generated/sklearn.metrics.make_scorer.html
0
répondu rameshoswal 2018-07-11 05:11:09