首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BayesSearchCV类混淆中的评分参数

BayesSearchCV类混淆中的评分参数
EN

Stack Overflow用户
提问于 2022-03-05 17:01:32
回答 1查看 487关注 0票数 0

我正在使用来自scikit-optimizescikit-optimize来训练一个相当不平衡的数据集上的模型。据我所知,精度或ROC AUC将是不平衡数据集的最佳度量标准。在我的代码中:

代码语言:javascript
复制
knn_b = BayesSearchCV(estimator=pipe, search_spaces=search_space, n_iter=40, random_state=7, scoring='roc_auc')
knn_b.fit(X_train, y_train)

迭代次数只是我选择的一个随机值(虽然我收到警告说我已经达到了最好的结果,而且据我所知,没有办法提前停止?)。对于评分参数,我指定了roc_auc,我假设它将是监视结果中最佳参数的主要度量。因此,当我调用knn_b.best_params_时,我应该有roc_auc度量更高的参数。对吗?

当我使用knn_b.cv_results_查看结果时,我感到困惑。mean_test_score不应该是roc_auc的分数,因为BayesSearchCV类中的得分是param吗?我要做的是,画出结果,看看每一次对撞机的组合是如何进行的。

代码语言:javascript
复制
sns.relplot(
    data=knn_b.cv_results_, kind='line', x='param_classifier__n_neighbors', y='mean_test_score', 
    hue='param_scaler', col='param_classifier__p',
)

当我尝试在真值和预测值上使用roc_auc_score()函数时,我得到了完全不同的东西。

这里的mean_test_score不一样吗?我如何才能得到每一次循环/每一次迭代分割的个人/平均roc_auc分数?类似地,当我想使用RandomizedSearchCV或GridSearchCV时。

编辑:tldr;我想知道在mean_test_score中精确计算了什么。我以为是roc_auc,因为得分比较准确,但似乎两者都不是。

EN

回答 1

Stack Overflow用户

发布于 2022-03-06 17:13:12

mean_test_score是AUROC,因为您的scoring参数,是的。

您的主要问题是,ROC曲线(及其下面积)需要概率预测(或其他连续得分),而不是硬类预测。因此,手工计算是不正确的。

无论如何,你不应该期望得到完全相同的分数。你的第二个分数在测试集上,第一个分数通过超参数选择是乐观的偏倚。

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

https://stackoverflow.com/questions/71364168

复制
相关文章

相似问题

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