Ton*_*has 6 python scikit-learn cross-validation grid-search
我很难弄清楚return_train_score中的参数GridSearchCV。来自文档:
\n\n\n
return_train_score:布尔值,可选\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0如果
\nFalse,该cv_results_属性将不包含训练分数。
我的问题是:训练成绩是多少?
\n在下面的代码中,我将数据分成十个分层折叠。结果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\nfrom sklearn.model_selection import GridSearchCV\nfrom sklearn.neighbors import KNeighborsClassifier\nfrom sklearn.model_selection import StratifiedKFold \n\nX, y = datasets.load_iris(True)\n\nskf = StratifiedKFold(n_splits=10, random_state=0)\nknn = KNeighborsClassifier()\n\ngrid = GridSearchCV(estimator=knn, \n cv=skf, \n param_grid={\'n_neighbors\': [5]}, \n return_train_score=True)\ngrid.fit(X, y)\n\nprint(\'Mean test score: {}\'.format(grid.cv_results_[\'mean_test_score\']))\nprint(\'Mean train score: {}\'.format(grid.cv_results_[\'mean_train_score\']))\n#Mean test score: [ 0.96666667]\n#Mean train score: [ 0.96888889]\nRun Code Online (Sandbox Code Playgroud)\n
它是预测模型在所有折叠上的训练分数(不包括您正在测试的折叠)。在您的例子中,它是您训练模型的 9 次折叠的分数。
| 归档时间: |
|
| 查看次数: |
10753 次 |
| 最近记录: |