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

威斯康星乳腺癌数据集Logistic Regression模型准确率极低排查求助

排查Logistic回归模型准确率极低的问题

你的模型准确率仅2%,核心问题出在预测结果的映射逻辑上,以下是逐步排查和修正方案:

1. 修正预测类别映射(最关键错误)

在R的glm二分类模型中,当因变量是因子类型时,默认将第一个因子水平(你设置的Benign)作为参考类别(对应概率0),第二个水平(Malignant)作为预测目标(对应概率1)。也就是说,predict(..., type='response')返回的是样本属于Malignant的概率,而非Benign。

你当前代码把概率≥0.5映射为Benign,完全搞反了类别,直接导致几乎所有预测错误。修正代码如下:

# 训练集预测修正
predicted_y_training <- ifelse(prob_y_train >= 0.5, "Malignant", "Benign")

# 测试集预测修正
predicted_y_test <- ifelse(prob_y_test >= 0.5, "Malignant", "Benign")

2. 验证数据预处理正确性

  • 检查BareNuclei列:运行table(tumor_study$BareNuclei, useNA='always'),确认没有残留的?,且数值转换正常。
  • 确认类别分布:运行table(tumor_study$Class),该数据集良性样本占比约65%、恶性约35%,若比例异常,说明数据读取或清洗有误。
  • 检查特征缩放:运行summary(training_set[,1:9]),确认缩放后特征均值接近0、标准差接近1,避免尺度差异影响模型收敛。

3. 检查模型训练状态

运行summary(classifier)查看模型输出:

  • 确认无系数为NA(若存在,说明特征有完全共线性,需剔除冗余项)。
  • 对比残差偏差与零偏差,判断模型是否具备拟合能力。
  • 查看特征的p值,核心特征如Uniformity_CellSize、Uniformity_CellShape应具备显著统计意义(p值极低)。

4. 验证混淆矩阵与准确率计算

修正预测映射后,重新计算混淆矩阵并手动验证准确率:

accuracy <- sum(diag(cm_test))/sum(cm_test)
print(accuracy)

修正后准确率应能达到95%以上,接近官方给出的96%水平。

5. 确认数据集拆分合理性

sample.split默认采用分层抽样,确保训练/测试集的类别分布与原数据集一致。运行table(training_set$Class)和table(test_set$Class)验证比例是否匹配。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 02:44:53