tuning sklearn scikit learn hyperparameter has gridsearchcv grid_scores_ gradientboostingregressor example attribute python scikit-learn

sklearn - gridsearchcv python example



Sklearn GridSearchCV con Pipeline (2)

Soy nuevo en las sklearn Pipeline y GridSearchCV . Estoy tratando de construir una tubería que primero haga RandomizedPCA en mis datos de entrenamiento y luego se ajuste a un modelo de regresión de cresta. Aquí está mi código:

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:])

Sé sobre la función RidgeCV pero quiero probar Pipeline y GridSearch CV.

Quiero que el CV de búsqueda de cuadrícula informe un error de RMSE, pero esto no parece ser compatible con Sklearn, así que estoy haciendo lo mismo con MSE. Sin embargo, los puntajes que reporta son negativos:

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}]

Obviamente, esto no es posible para el error cuadrático medio, ¿qué estoy haciendo mal aquí?


Esos puntajes son puntajes negativos de MSE, es decir, nieguenlos y obtendrá el MSE. La GridSearchCV es que GridSearchCV , por convención, siempre trata de maximizar su puntuación, por lo que las funciones de pérdida como MSE tienen que ser negadas.


Si desea obtener RMSE como métrica, puede escribir su propia función / callable que tomará Y_pred e Y_org y calculará el RMSE.

ref: http://scikit-learn.org/stable/modules/generated/sklearn.metrics.make_scorer.html