首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用网格搜索获得最佳f1分数

使用网格搜索获得最佳f1分数
EN

Stack Overflow用户
提问于 2021-02-12 03:10:35
回答 1查看 67关注 0票数 0

我目前正在运行GridSearchCV来查找f1分数的最佳超参数。

代码语言:javascript
复制
from sklearn.metrics import f1_score, make_scorer

f1 = make_scorer(f1_score, average='micro')

grid = {'n_neighbors':np.arange(1,16),
        'p':np.arange(1,3),
        'weights':['uniform','distance'],
        'algorithm':['auto']
       }

knn = KNeighborsClassifier()
knn_cv = GridSearchCV(knn,grid,cv=3, verbose = 3, scoring= f1)
knn_cv.fit(X_train_res,y_train_res)

print("Hyperparameters:",knn_cv.best_params_)
print("Train Score:",knn_cv.best_score_)
result_train["GridSearch-Best-Train"] = knn_cv.best_score_

虽然我注意到在使用f1作为评分后,最好的超参数和最好的准确性保持不变,但我是否错误地使用了它?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-12 23:13:17

这并不令人惊讶,特别是如果你的类不是太不平衡的话。我看不出你的代码有什么问题。

要添加一些支持证据,证明事情正在按预期工作,请查看两个评分者的knn_cv.cv_results_ (如果将该字典转换为pandas数据帧,可能最容易进行检查)。实际上,您可以指定多个记分器,以便cv_results_属性将显示同一字典/帧中的两个分数。你可能想要抛出一个更连续的分数,比如原木损失。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66161265

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档