2014-01-10 120 views
16

我是sklearnPipelineGridSearchCV功能的新功能。我正在嘗試構建一個管道,首先對我的訓練數據進行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功能,但我想嘗試管道和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這樣的損失函數必須被否定。

相關問題