2014-01-10 4 views
16

Я новичок в sklearnPipeline и GridSearchCV. Я пытаюсь построить трубопровод, который сначала выполняет RandomizedPCA на моих данных обучения, а затем подходит к модели регрессии хребта. Вот мой код:sklearn GridSearchCV с трубопроводом

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

Я знаю о функции RidgeCV, но я хочу попробовать Pipeline и GridSearch резюме.

Я хочу, чтобы CV поиска сетки сообщала ошибку RMSE, но это не похоже на поддержку в sklearn, поэтому я занимаюсь MSE. Тем не менее, оценки его resports отрицательны:

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

Очевидно, что это не возможно среднеквадратическая ошибка - то, что я делаю неправильно здесь?

ответ

24

Эти оценки являются отрицательными оценками MSE, то есть отрицают их, и вы получаете MSE. Дело в том, что GridSearchCV, по соглашению, всегда пытается максимизировать свою оценку, поэтому функции потерь, такие как MSE, должны быть сведены на нет.

Смежные вопросы