机器学习进阶文档深度页
类别不平衡
少数类任务中准确率可能严重误导,需要合适指标、阈值、权重和严格的折内重采样。
学习前需要掌握
混淆矩阵分类指标内容待补充
背景与问题
990 个正常与 10 个异常时,全预测正常已有 99% 准确率,但异常召回率为 0。
概念定义
类别不平衡表示不同类别样本数量差异明显,常伴随不同错误代价。
直观理解
如果真正重要的是少数异常,不能用“总体答对多少”掩盖“关键问题一个都没找到”。
核心原理
关注 Precision、Recall、F1、PR-AUC、混淆矩阵和 Macro-F1;阈值影响误报漏报权衡。重采样只能在训练集或每个训练折内发生。
数学表达
Precision
预测为正的样本中有多少是真的。
变量含义
变量定义与本页概念定义一致,代码中的同名变量保持相同语义。
计算步骤
- 1统计每类数量。
- 2明确误报和漏报成本。
- 3选择主指标。
- 4建立 Dummy 基线。
代码对应位置
示例 1类别权重与分类报告:训练时提高少数类权重并查看逐类结果。
Recall
真实正类中找到了多少。
变量含义
变量定义与本页概念定义一致,代码中的同名变量保持相同语义。
计算步骤
- 1统计每类数量。
- 2明确误报和漏报成本。
- 3选择主指标。
- 4建立 Dummy 基线。
代码对应位置
示例 1类别权重与分类报告:训练时提高少数类权重并查看逐类结果。
F1
Precision 与 Recall 的调和平均。
变量含义
变量定义与本页概念定义一致,代码中的同名变量保持相同语义。
计算步骤
- 1统计每类数量。
- 2明确误报和漏报成本。
- 3选择主指标。
- 4建立 Dummy 基线。
代码对应位置
示例 1类别权重与分类报告:训练时提高少数类权重并查看逐类结果。
计算与实现步骤
- 1
统计每类数量。
- 2
明确误报和漏报成本。
- 3
选择主指标。
- 4
建立 Dummy 基线。
- 5
在训练折内使用 class_weight 或重采样。
- 6
在验证数据上选阈值。
- 7
最终测试并分群分析。
代码实现
示例 1
类别权重与分类报告
类别权重与分类报告
scikit-learn
example_01.py用途:训练时提高少数类权重并查看逐类结果。
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import classification_report
model = LogisticRegression(class_weight="balanced", max_iter=2000)
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
print(classification_report(y_test, y_pred))代码解析
解析始终位于完整代码下方,并按实际代码段逐项对应。
输入数据与任务
训练时提高少数类权重并查看逐类结果。
X_train- 训练特征,只允许它参与预处理器和模型的 fit。
X_test- 测试特征,只用于最终 transform、predict 和评价。
y_train- 与 X_train 对齐的训练目标。
y_test- 与 X_test 对齐的测试目标。
model- 组合预处理和估计器的模型对象。
y_pred- 模型对输入产生的预测结果。
Step 1 · 1–2 行
导入当前步骤需要的数值计算、预处理、模型或评价工具。依赖集中写在代码开头,便于复现。
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import classification_reportStep 2 · 4–7 行
调用 fit 学习训练数据中的参数;若在 Pipeline 中,预处理器与模型会按顺序拟合。
model = LogisticRegression(class_weight="balanced", max_iter=2000)
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
print(classification_report(y_test, y_pred))预期输出或运行结果
每个类别各自的 Precision、Recall、F1,以及 macro/weighted 平均。
常见错误 · 4 条
- 只报告 Accuracy
- 先对完整数据重采样
- 用测试集选阈值
- 确认样本轴、特征轴以及 X 与 y 的第一维完全对应。
实际应用
- 欺诈检测
- 疾病筛查
- 故障告警
常见错误
只报告 Accuracy
先对完整数据重采样
用测试集选阈值
文档来源
02|数据预处理与特征工程原始文档
学习资料/learning_tech/02_preprocessing_feature_engineering.md- §9 类别不平衡
- §14 预处理检查清单
推荐学习资料
暂未收录相关资料
参考库不会生成虚假资源或无效外部链接。