【发布时间】:2018-09-28 16:07:08
【问题描述】:
我很难在GridSearchCV 中找出参数return_train_score。来自docs:
return_train_score:布尔值,可选如果是
False,cv_results_属性将不包括训练分数。
我的问题是:训练分数是多少?
在下面的代码中,我将数据分成十个分层折叠。因此grid.cv_results_ 包含十个测试分数,即'split0_test_score'、'split1_test_score'、...、'split9_test_score'。我知道其中的每一个都是由 5 个最近邻分类器获得的成功率,该分类器使用相应的折叠进行测试,剩余的九次折叠用于训练。
grid.cv_results_ 还包含十个火车分数:'split0_train_score'、'split1_train_score'、...、'split9_train_score'。这些值是如何计算出来的?
from sklearn import datasets
from sklearn.model_selection import GridSearchCV
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import StratifiedKFold
X, y = datasets.load_iris(True)
skf = StratifiedKFold(n_splits=10, random_state=0)
knn = KNeighborsClassifier()
grid = GridSearchCV(estimator=knn,
cv=skf,
param_grid={'n_neighbors': [5]},
return_train_score=True)
grid.fit(X, y)
print('Mean test score: {}'.format(grid.cv_results_['mean_test_score']))
print('Mean train score: {}'.format(grid.cv_results_['mean_train_score']))
#Mean test score: [ 0.96666667]
#Mean train score: [ 0.96888889]
【问题讨论】:
标签: python scikit-learn cross-validation grid-search