【问题标题】:Model evaluation : model.score Vs. ROC curve (AUC indicator)模型评估:model.score Vs。 ROC曲线(AUC指标)
【发布时间】:2019-09-29 16:47:22
【问题描述】:

我想使用两个度量来评估逻辑回归模型(二元事件): 1. model.score 和混淆矩阵,它给了我 81% 的分类准确率 2. ROC曲线(使用AUC),返回50%的值

这两个结果是否矛盾?那可能吗 我错过了一些东西,但仍然找不到它

 y_pred = log_model.predict(X_test)
 accuracy_score(y_test , y_pred)


 cm = confusion_matrix( y_test,y_pred  )
 y_test.count()
 print (cm)

 tpr , fpr, _= roc_curve( y_test , y_pred, drop_intermediate=False)
 roc = roc_auc_score( y_test ,y_pred)

enter image description here

【问题讨论】:

标签: python-3.x logistic-regression roc confusion-matrix


【解决方案1】:

准确度分数的计算基于假设一个类的预测概率超过 50% 时被选中。这意味着您只查看众多案例中的 1 个案例(一个工作点)。假设您想将一个实例分类为“0”,即使它的概率大于 30%(如果您的某个类对您更重要,并且其先验概率非常低,则可能会发生这种情况)。在这种情况下 - 您将有一个非常不同的混淆矩阵,具有不同的精度([TP+TN]/[ALL])。 ROC auc 分数检查所有这些工作点,并为您提供对整体模型的估计。 50% 的分数意味着该模型等于基于您的类的先验概率随机选择的类。您希望 ROC 高得多,说明您有一个好的模型。 所以在上面的例子中——你可以说你的模型没有很好的预测强度。事实上 - 更好的预测是将所有内容预测为“1” - 在您的情况下,它将导致超过 99% 的准确度。

【讨论】:

    猜你喜欢
    • 2022-10-15
    • 2012-04-15
    • 1970-01-01
    • 1970-01-01
    • 2021-06-12
    • 1970-01-01
    • 2021-03-12
    • 2019-04-11
    • 2015-11-24
    相关资源
    最近更新 更多