gpt4 book ai didi

python - 如何解读 GridSearch 的最佳得分?

转载 作者:行者123 更新时间:2023-11-30 09:33:47 25 4
gpt4 key购买 nike

我使用不同的数据集训练不同的分类器,我需要了解如何正确衡量分类器的有效性。

这是我的代码:

iris = load_iris()

param_grid = {
'criterion': ['gini', 'entropy'],
'max_depth': np.arange(4, 6)
}

tree = GridSearchCV(DecisionTreeClassifier(), param_grid)
X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target)

tree.fit(X_train, y_train)
tree_preds = tree.predict(X_test)
tree_performance = accuracy_score(y_test, tree_preds)

print 'Best params: ', tree.best_params_
print 'Best score: ', tree.best_score_
print 'DecisionTree score: ', tree_performance

问题是,GridSearchCV 的最佳分数实际上是多少?它与 accuray_score 函数中使用的结果有何不同?

据我了解,accuracy_score 采用测试集的类别并将其与算法预测的结果进行比较。结果是正确分类的项目的百分比。但什么是best_score_

这两个值不同,我的脚本的示例输出如下所示:

Best score:  0.955357142857
DecisionTree score: 0.947368421053

最佳答案

GridSearchCV 没有考虑您的测试集(仔细观察,您会发现您没有通过 tree.fit() 中的测试集) ;它报告的分数 best_score_ 来自您的训练集中的交叉验证 (CV)。来自 docs :

best_score_ : float

Mean cross-validated score of the best_estimator

此分数本身(在您的示例中为 0.955)是 3 个 CV 折叠中每个分数的平均值(默认值,因为您尚未指定 cv 参数)。

另一方面,您的 accuracy_score 来自您的测试集。

澄清一下,很明显这两个数字并不相同;另一方面,如果 CV 过程和训练测试分割都已正确执行,它们也不应该有太大不同,这可以说是您这里的情况。

关于python - 如何解读 GridSearch 的最佳得分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49709130/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com