2014-01-10 2 views
16

Ich bin neu zu sklearn 's Pipeline und GridSearchCV Funktionen. Ich versuche eine Pipeline zu erstellen, die zuerst RandomizedPCA auf meine Trainingsdaten anwendet und dann ein Ridge-Regressionsmodell anpasst. Hier ist mein Code:sklearn GridSearchCV mit Pipeline

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

Ich weiß um die RidgeCV Funktion, aber ich möchte versuchen, Pipeline und Gridsearch CV.

Ich möchte die Grid-Suche Lebenslauf RMSE Fehler melden, aber dies scheint nicht in sklearn unterstützt, so dass ich mit MSE behelfen. Allerdings sind die Partituren es resports negativ:

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

Offensichtlich ist dies nicht möglich, für die mittlere quadratische Fehler - was mache ich falsch hier?

Antwort

24

Diese Punktzahlen sind negative MSE-Werte, d. H. Negieren sie und Sie erhalten die MSE. Die Sache ist, dass GridSearchCV, per Konvention, versucht immer zu maximieren seine Punktzahl, so dass Verlustfunktionen wie MSE negiert werden müssen.