混淆矩阵:真负数为 0 是啥意思?

Posted

技术标签:

【中文标题】混淆矩阵:真负数为 0 是啥意思?【英文标题】:Confusion matrix: What does it mean to have 0 value in true negative?混淆矩阵:真负数为 0 是什么意思? 【发布时间】:2020-05-03 06:34:09 【问题描述】:

我正在使用逻辑回归处理客户流失预测数据集。该模型预测 95% 的准确率,但混淆矩阵给出以下输出:

array([[1517,    0],
       [  70,    0]], dtype=int64)

我怎样才能让模型也预测真阴性?

【问题讨论】:

看起来您的数据不平衡。你的训练数据中输出变量的比例是多少? 你能检查一下你的 Y_train 中是否有负类吗? @AkshayNevrekar 如何查看? 使用df["column_name"].value_counts() 这是训练数据中的比例:0 4810 1 267 名称:Churn,dtype:int64 【参考方案1】:

这是数据不平衡的典型问题。

您的逻辑分类只是预测一类(在本例中为 0 类),根本不考虑任何其他结果。

有大量的关键字/想法来解决这个解决方案,这超出了这里的范围。给你一些流行语:

过采样/欠采样 异常值检测 更改分类器优化问题

这类问题没有基本的解决方案,你真的需要在那个话题上努力!

【讨论】:

【参考方案2】:

我想补充一下 PV8 的回答,如上所述,这是一个高度不平衡的数据集。您可以查看不同的指标,例如ROCPR curve、平衡准确度得分、stratified k fold cross validation、调整类权重并尝试under/over sampling。在进行抽样之前尝试其他提到的方法可能是个好主意。

由于您使用的是 scikit-learn,因此您可以同时使用不平衡学习包,https://imbalanced-learn.readthedocs.io/en/stable/install.html。它将为不平衡数据集提供各种欠/过采样算法、分类器、指标。

【讨论】:

以上是关于混淆矩阵:真负数为 0 是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

混淆矩阵(Confusion Matrix)

从混淆矩阵计算真正值以进行多类分类

标记为 TP、TN、FP、FN 的值的混淆矩阵

样本类别不均会导致混淆矩阵的变化吗

有没有办法用已知的真阳性、真阴性、假阳性和假阴性来绘制混淆矩阵?

神经网络画出的混淆矩阵图怎么看