模型评估:model.score与。 ROC曲线(AUC指示器)

时间:2019-05-12 14:35:16

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

我想使用两种方法来评估逻辑回归模型(二进制事件):      1. model.score和confusion矩阵给我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 enter image description here

1 个答案:

答案 0 :(得分:1)

如果选择的类别的预测概率大于50%,则基于该类别的假设计算准确性得分。这意味着您只需要查看一种情况(一个工作点)。假设您希望将实例分类为“ 0”,即使该实例的概率大于30%(如果您的某个类别对您而言更重要,并且其先验概率非常低,则可能会发生这种情况)。在这种情况下-您将有一个非常不同的混淆矩阵,并且精度不同([TP + TN] / [ALL])。 ROC auc分数检查所有这些工作点,并为您提供整体模型的估计。分数为50%表示该模型等于根据您的先验概率对类进行随机选择。您希望ROC更高,可以说您有一个好的模型。 因此,在上述情况下-您可以说您的模型没有很好的预测强度。实际上-更好的预测是将所有内容预测为“ 1”-在您的情况下,其准确性将达到99%以上。