0

我正在使用 BayesSearchCVscikit-optimize在相当不平衡的数据集上训练模型。从我正在阅读的内容来看,精度或 ROC AUC 将是不平衡数据集的最佳指标。在我的代码中:

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_. 由于 BayesSearchCV 类中的评分参数,不mean_test_score应该是分数吗?roc_auc我在做什么绘制结果并查看每个参数组合的执行情况。

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这里不一样吗?我如何能够获得每个迭代的每个 CV/拆分的个人/平均 roc_auc 分数?同样,当我想使用 RandomizedSearchCV 或 GridSearchCV 时。

4

0 回答 0