Joh*_*ner 4 python scikit-learn grid-search
我用来GridSearchCV在嵌套交叉验证的内循环中找到最佳参数。使用GridSearchCV(scorer='balanced_accuracy')找到“内部赢家” ,因此据我了解文档,内部折叠中平均平衡精度最高的模型是“best_estimator”。我不明白refitin的不同论点GridSearchCV与scorer论点结合起来做什么。如果refit是真,什么计分功能时将使用改装的数据集来估计,“内部赢家”的表现?传递给的相同评分函数scorer(因此在我的情况下为“balanced_accuracy”)?为什么你也可以传递一个字符串给refit? 这是否意味着您可以使用不同的函数来 1.) 找到“内部赢家”和 2.) 来估计“内部赢家”在整个数据集上的表现?
当 时refit=True,sklearn 使用整个训练集来重新拟合模型。因此,没有留下任何测试数据来估计使用任何scorer函数的性能。
如果您scorer在 GridSearchCV 中使用多个,可能f1_score或precision与您的balanced_accuracy.sklearn一起使用,sklearn 需要知道使用哪一个scorer来找到您所说的“内部赢家”。例如KNN,对于,f1_score可能有最好的结果K=5,但对于accuracy可能是最高的K=10。sklearn 无法知道哪个超参数值K最好。
要解决这个问题,您可以将一个字符串传递scorer给refit以指定哪些scorer最终应决定最佳超参数。然后,这个最佳值将用于使用完整数据集重新训练或重新拟合模型。所以,当你只有一个时scorer,就像你的情况一样,你不必担心这个。简单refit=True就足够了。
| 归档时间: |
|
| 查看次数: |
1625 次 |
| 最近记录: |