分类与判别
根据已标注样本的特征,判断新样本属于哪一类,或给出属于各类的概率。分类回答“是哪一类”,判别分析更强调“如何用统计规则把类别分开”。二者在数学建模赛题中常互换使用,核心都是:有标签的监督学习。
可以把它想成“带代价的归类决策”。例如:
- 已知历史客户的违约标签,判断新申请是否高风险;
- 已知传感器特征与故障类型,判别设备处于哪一类工况;
- 已知病理指标与诊断结果,估计属于良性/恶性的概率。
建模竞赛里,分类题的核心不是把训练集准确率刷到接近 100%,而是在真实未见样本上仍可用,并且能解释主要错分来自哪里。复杂模型只有在线性与简单基线无法解释关键现象时才有必要引入。
一、这一门类解决什么问题
当题目给出历史样本的类别标签(合格/不合格、高风险/低风险、A/B/C 等级),并要求对未知样本给出类别判断时,就进入分类与判别。典型信号包括:
- 输出是离散类别(或类别概率),而不是连续数值预测;
- 需要报告混淆矩阵、精确率/召回率/F1、ROC-AUC,而不是只报 ;
- 需要解释“哪些特征导致判为某类”,或给出决策规则;
- 类别可能不平衡,或不同错分代价明显不同(漏诊 ≠ 误诊);
- 边界可能近似线性,也可能高度非线性、存在交互与局部相似结构。
先把输入、输出、约束和不确定性说清楚,再选方法。本门类方法大致沿四条主线展开:
- 可解释的概率/线性边界:Logistic 回归、距离/Fisher/Bayes 判别;
- 经典机器学习:K 近邻、决策树与随机森林、支持向量机、朴素贝叶斯;
- 集成提升:AdaBoost、GBDT;
- 不平衡与解释:SMOTE/代价敏感,以及 SHAP 等归因。
二、如何选择方法
| 问题信号 | 优先考虑 | 所在位置 |
|---|---|---|
| 需要概率与系数解释、样本量中等、特征以表格为主 | Logistic 回归(二元/有序/多分类) | Logistic回归 |
| 边界近似线性、类条件分布可假设、要统计判别规则 | 距离判别、Fisher、Bayes 判别 | 判别分析 |
| 局部相似明显、无需先训复杂参数模型、基线对照 | K 近邻 | K近邻 |
| 存在非线性与变量交互、要规则或特征重要性 | 决策树、随机森林 | 决策树与随机森林 |
| 高维、间隔清晰、可用核方法处理非线性 | 支持向量机 | 支持向量机 |
| 特征条件独立近似成立、文本/词频/计数特征 | 朴素贝叶斯 | 朴素贝叶斯 |
| 提升弱分类器、关注难分样本 | AdaBoost | 集成学习/AdaBoost |
| 表格数据、追求精度、可接受一定黑箱 | GBDT / 梯度提升 | 集成学习/GBDT |
| 少数类极少、召回比总体准确率更关键 | 类别权重、阈值、代价敏感;必要时 SMOTE | 样本不平衡处理 |
| 需要解释“为什么这样判” | 系数、特征重要性、SHAP | 机器学习可解释性 |
这张表用于快速定位,不是机械选型规则。最终还要结合样本量、特征类型、解释需求、误判代价和验证条件。能用更简单、更少假设的模型达到目的时,不必叠床架屋。
三、方法选择的决策逻辑
不要一上来就上复杂集成。建议按“基线 → 结构 → 复杂化”推进:
标签是否有序/多类?代价是否不对称?
├─ 先建立评价:混淆矩阵、PR/ROC、类别权重与阈值
├─ 特征–类别关系是否近似线性、需要系数叙事?
│ ├─ 是 → Logistic / 线性判别族
│ └─ 否 → 看结构
│ ├─ 局部相似、小中样本基线 → KNN
│ ├─ 条件独立+计数特征 → 朴素贝叶斯
│ ├─ 非线性交互、要重要性 → 树 / 随机森林
│ ├─ 高维间隔、核技巧 → SVM
│ └─ 仍不够 → AdaBoost / GBDT
└─ 少数类稀缺 → 先改权重/阈值/评价指标,再考虑 SMOTE
小样本(例如每类有效样本很少)时,优先线性模型与强正则,并严格交叉验证;大宽表且交互复杂时,随机森林通常是比单棵深树更稳的第一步。
四、统一的建模工作流
无论用哪一种具体分类器,竞赛论文里都建议按同一套流程组织:
- 认标签:类别定义、标注质量、是否有序、正类是谁、错分代价;
- 切分:按实体/患者/客户 ID划分训练/验证/测试,避免同一对象泄漏;时间标签题按时间切分;
- 预处理:缺失、编码、标准化等参数只在训练折估计(详见 01 数据预处理);
- 基线:多数类预测、Logistic 或线性判别,先拿到可复现的参照指标;
- 主模型:按上表选型,网格或验证集选超参数;
- 阈值与代价:默认 0.5 往往不合理,按业务代价或验证集选工作点;
- 评价:混淆矩阵 + 精确率/召回率/F1;不平衡时看 PR-AUC;必要时分层指标;
- 解释与错误分析:系数/重要性/SHAP,并展示典型错分样本;
- 稳健性:换随机种子、换切分、扰动特征,看结论是否漂移。
五、评价指标:不要只看准确率
设测试集真实类别为 ,预测为 。总体准确率在类别不平衡时会严重误导。至少报告:
- 混淆矩阵:TP/FP/TN/FN 的原始计数;
- 精确率 / 召回率 / F1(按正类或宏/微平均);
- ROC-AUC 或 PR-AUC(极不平衡时 PR 往往更诚实);
- 若有明确代价,报告期望代价或在指定召回率下的精确率。
补充原则:
- 训练准确率只用于诊断过拟合,最终排名看训练期外指标;
- 多分类写清是 macro 还是 weighted 平均;
- 有序分类不要无普通多类准确率掩盖“只错相邻等级”的结构。
六、与各子目录/方法的对应关系
| 子目录或篇章 | 核心任务 | 典型出口 |
|---|---|---|
| Logistic回归 | 可解释的概率分类与有序/多类扩展 | 概率、系数、比值比 |
| 判别分析 | 基于距离或类条件分布的统计判别 | 判别函数与归属 |
| K近邻 | 局部投票的非参数基线 | 类别与邻域解释 |
| 决策树与随机森林 | 规则划分与集成降方差 | 标签、重要性 |
| 支持向量机 | 间隔最大化与核非线性 | 决策边界与支持向量 |
| 朴素贝叶斯 | 条件独立下的快速概率分类 | 后验类别概率 |
| 集成学习 | 提升/梯度提升提高难分样本表现 | 高精度分类器 |
| 样本不平衡处理 | 让少数类可学且评估不被准确率绑架 | 加权/重采样策略 |
| 机器学习可解释性 | 把黑箱预测翻译成特征贡献 | SHAP 等归因图 |
分类与 04 预测与预报 的分界:目标是离散类别还是连续数值。与 06 聚类分析 的分界:训练时有没有金标准标签。与 01 数据预处理 中的不平衡处理可对照阅读:预处理讲数据侧,本门类讲模型与评价侧如何闭环。
七、使用提醒与常见陷阱
- 泄漏:同一病人多次就诊随机划入训练和测试、先 SMOTE 再划分、用全样本标准化,都会让分数虚高;
- 指标错位:不平衡数据只报准确率、不看少数类召回;
- 阈值惰性:概率模型输出后固定 0.5,不结合代价与工作点;
- 过度复杂:小样本上堆 GBDT/SVM 调参,方差大且难复现,却打不赢正则 Logistic;
- 解释断层:只给特征重要性总表,不分析主要错分模式与业务是否矛盾;
- 标签噪声:把模糊边界样本当金标准硬训,应在讨论中承认标注不确定性。
八、推荐学习顺序
- 先读本导读,建立“实体切分、基线对照、阈值与代价、训练期外评价”的纪律;
- 评价基础:混淆矩阵、精确率/召回率/F1、ROC/PR、类别权重;
- 线性可解释模型:Logistic → 距离/Fisher/Bayes 判别;
- 经典机器学习:KNN、树与随机森林、SVM、朴素贝叶斯;
- 集成与不平衡:AdaBoost、GBDT、SMOTE/代价敏感;
- 可解释性:SHAP 与业务叙事,回到错分案例。
进入具体方法页后,建议按「直观理解 → 适用边界 → 原理 → 关键决策 → MATLAB → 结果解释 → 误区 → 小结」阅读,并亲手跑通示例。最终写进论文的,应是训练期外指标 + 混淆结构 + 与基线的对比 + 主要错分为何发生,而不是单一的总体准确率。