You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Logistic Regression测试集预测全为0但准确率超80%,求原因

为什么Logistic回归全预测0却有80%+准确率?

核心原因:类别不平衡导致准确率失真

这是最常见的情况——你的数据集里无心脏病(类别0)的样本占比肯定超过了80%。准确率这个指标只看“猜对的样本数/总样本数”,如果测试集里80%以上都是类别0,哪怕模型啥都不学全猜0,自然能拿到80%的准确率,但这种模型完全没有实际价值。

其他可能的辅助原因

  • 模型没学到有效区分特征:要么是特征和心脏病的关联性极弱,要么是特征预处理不到位(比如Logistic回归对特征尺度敏感,没做标准化的话,大尺度特征会主导模型,进一步偏向多数类),导致模型无法识别出正例(心脏病)的特征模式,只能默认预测占比更高的类别。
  • 阈值设置不匹配:默认的0.5阈值在类别不平衡场景下不适用,但你这里连低于0.5的正例概率都没输出,说明核心问题还是类别不平衡,阈值调整只是后续优化的事。

解决思路

  1. 先确认类别分布:用代码df['target'].value_counts(normalize=True)查看训练集、测试集里两类样本的占比,验证是否是不平衡问题。
  2. 换用合适的评估指标:别再看准确率了,改用召回率、F1分数、ROC-AUC,这些指标能真实反映模型对少数类(心脏病)的识别能力。
  3. 处理类别不平衡:
    • 训练模型时给LogisticRegression加参数class_weight='balanced',让模型自动给少数类样本更高的权重;
    • 用SMOTE过采样生成少数类样本,或者对多数类做欠采样,平衡两类数据量。
  4. 优化特征工程:重新筛选和目标变量相关性高的特征,做标准化/归一化,处理缺失值,让模型能学到有效区分模式。

内容的提问来源于stack exchange,提问作者6haun

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 15:02:41