使用自定义错误函数时,GridSearchCV的best_score_是什么意思?
我正在使用 Scikit GridSearchCV 进行一个简单的实验。
1)训练简单的支持向量机:
from sklearn.svm import LinearSVR
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import mean_squared_error
lin_svm_grid_params = dict(svm__C = [0.01])
lin_svm = Pipeline([("scaler", StandardScaler()), ("svm", LinearSVR(dual=False, loss='squared_epsilon_insensitive'))])
lin_svm_grid = GridSearchCV(lin_svm, lin_svm_grid_params, cv = 10, scoring='mean_squared_error', n_jobs = -1)
lin_svm_grid.fit(x, y)
2) 打印结果:
print lin_svm_grid.best_score_
print mean_squared_error(y, lin_svm_grid.best_estimator_.predict(x))
-610.141599985
236.578850489
所以这是主要的麻烦:为什么值不同?我猜 GridSearchCV 分数是 R^2 分数,我可以让 GridSearchCV 返回错误函数值而不是 R^2 吗?