如何在交叉验证时获得AUC-ROC而不是准确度?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在交叉验证时获得AUC-ROC而不是准确度?相关的知识,希望对你有一定的参考价值。

我正在对数据集进行分类,我正在使用交叉验证进行建模。交叉验证为每个折叠提供准确性,因为类是不平衡的,准确性不是正确的度量。我想获得AUC-ROC而不是准确性。

答案

cross_val_score支持大量得分选项。

详细列表提到here

['accuracy','recall_samples','f1_macro','adjusted_rand_score','recall_weighted','precision_weighted','recall_macro','homogeneity_score','neg_mean_squared_log_error','recall_micro','f1','neg_log_loss',' roc_auc','average_precision','f1_weighted','r2','precision_macro','explain_variance','v_measure_score','neg_mean_absolute_error','completeness_score','fowlkes_mallows_score','f1_micro','precision_samples','mutual_info_score' ,'neg_mean_squared_error','balanced_accuracy','neg_median_absolute_error','precision_micro','normalized_mutual_info_score','adjusted_mutual_info_score','precision','f1_samples','brier_score_loss','召回']

这是一个展示如何使用auc_roc的示例。

>>> from sklearn import datasets, linear_model
>>> from sklearn.model_selection import cross_val_score
>>> import numpy as np
>>> X, y = datasets.load_breast_cancer(return_X_y=True)
>>> model = linear_model.SGDClassifier(max_iter=50, random_state=7)
>>> print(cross_val_score(model, X, y, cv=5, scoring = 'roc_auc'))  

[0.96382429 0.96996124 0.95573441 0.96646546 0.91113347]

以上是关于如何在交叉验证时获得AUC-ROC而不是准确度?的主要内容,如果未能解决你的问题,请参考以下文章

在使用 k 折交叉验证训练训练数据后如何测试数据?

Spark K-fold 交叉验证

如何在 python scikit-learn 中优化精确召回曲线而不是 AUC-ROC 曲线?

具有交叉验证的神经网络模型的多个指标

应用分层10折交叉验证时如何在python中获取所有混淆矩阵的聚合

在 LIBSVM 中的 SVM 中进行交叉验证时停止打印准确性 [关闭]