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

Sklearn分类报告support值(类别样本数)显示错误问题求助

问题原因
  • 模型预测偏倚:数据集总样本量极小,正类占比更高(58.3%),线性SVM未调整类别权重时,会优先保障整体准确率,将所有样本预测为占比更高的正类,导致y_pred中完全没有负类预测结果,classification_report无法输出负类相关指标。
  • 单次划分的随机波动:24条样本按30%比例拆分后测试集仅7条,其中负类仅3条,哪怕分层逻辑生效,也容易出现模型刚好将全部负类测试样本判为正类的极端情况。
  • 报告调用参数错误:如果调用classification_report时手动设置labels参数仅传入正类标签,会直接导致报告不展示负类指标。
解决办法
  • 先验证真实标签和预测结果的取值,执行以下代码确认问题来源:
import numpy as np
print("测试集真实标签取值:", np.unique(y_test))
print("模型预测标签取值:", np.unique(y_pred))

如果输出显示y_test存在负类标签但y_pred没有,说明是模型预测偏倚问题。

  • 给SVM添加类别权重配置,修改模型初始化代码,让模型自动根据各类样本量调整惩罚权重,降低对多数类的偏向:
clf = svm.SVC(kernel = 'linear', C = 1, class_weight='balanced')
  • 调整数据集划分规则:总样本量过小的场景下,降低测试集占比到20%,同时改用K折交叉验证代替单次划分评估,避免单次划分的随机波动干扰结果。
  • 检查classification_report的调用方式,使用无额外标签限制的标准调用:
from sklearn.metrics import classification_report
print(classification_report(y_test, y_pred))

不要手动添加labels参数仅指定正类标签。

  • 适当调整正则化参数C:增大C值降低模型正则化强度,避免模型过于保守全部预测为多数类。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 12:15:07