私はgrid.best_score_
を再計算しようとしています。私は自分のデータで成功なしに得ました... だから私は従来のデータセットを使って試しましたが、それ以上の成功はありません。ここでは、コードは次のとおりです。grid.best_score_(GridSearchCVで取得)のカスタム計算を試してください
from sklearn import datasets
from sklearn import linear_model
from sklearn.cross_validation import ShuffleSplit
from sklearn import grid_search
from sklearn.metrics import r2_score
import numpy as np
lr = linear_model.LinearRegression()
boston = datasets.load_boston()
target = boston.target
param_grid = {'fit_intercept':[False]}
cv = ShuffleSplit(target.size, n_iter=5, test_size=0.30, random_state=0)
grid = grid_search.GridSearchCV(lr, param_grid, cv=cv)
grid.fit(boston.data, target)
# got cv score computed by gridSearchCV :
print grid.best_score_
0.677708680059
# now try a custom computation of cv score
cv_scores = []
for (train, test) in cv:
y_true = target[test]
y_pred = grid.best_estimator_.predict(boston.data[test,:])
cv_scores.append(r2_score(y_true, y_pred))
print np.mean(cv_scores)
0.703865991851
それは違う理由を私は見ることができない、GridSearchCV
はR2のスコアである線形回帰からスコアラーを使用することになっています。多分、私がcv
のスコアを計算する方法は、best_score_
を計算するためのものではありません。私はここでGridSearchCVコードを調べる前に尋ねています。