跳到主要内容

分类与判别

根据已标注样本的特征,判断新样本属于哪一类,或给出属于各类的概率。分类回答“是哪一类”,判别分析更强调“如何用统计规则把类别分开”。二者在数学建模赛题中常互换使用,核心都是:有标签的监督学习。

可以把它想成“带代价的归类决策”。例如:

  • 已知历史客户的违约标签,判断新申请是否高风险;
  • 已知传感器特征与故障类型,判别设备处于哪一类工况;
  • 已知病理指标与诊断结果,估计属于良性/恶性的概率。

建模竞赛里,分类题的核心不是把训练集准确率刷到接近 100%,而是在真实未见样本上仍可用,并且能解释主要错分来自哪里。复杂模型只有在线性与简单基线无法解释关键现象时才有必要引入。

一、这一门类解决什么问题​

当题目给出历史样本的类别标签(合格/不合格、高风险/低风险、A/B/C 等级),并要求对未知样本给出类别判断时,就进入分类与判别。典型信号包括:

  1. 输出是离散类别(或类别概率),而不是连续数值预测;
  2. 需要报告混淆矩阵、精确率/召回率/F1、ROC-AUC,而不是只报 R2R^2;
  3. 需要解释“哪些特征导致判为某类”,或给出决策规则;
  4. 类别可能不平衡,或不同错分代价明显不同(漏诊 ≠ 误诊);
  5. 边界可能近似线性,也可能高度非线性、存在交互与局部相似结构。

先把输入、输出、约束和不确定性说清楚,再选方法。本门类方法大致沿四条主线展开:

  1. 可解释的概率/线性边界:Logistic 回归、距离/Fisher/Bayes 判别;
  2. 经典机器学习:K 近邻、决策树与随机森林、支持向量机、朴素贝叶斯;
  3. 集成提升:AdaBoost、GBDT;
  4. 不平衡与解释:SMOTE/代价敏感,以及 SHAP 等归因。

二、如何选择方法​

问题信号优先考虑所在位置
需要概率与系数解释、样本量中等、特征以表格为主Logistic 回归(二元/有序/多分类)Logistic回归
边界近似线性、类条件分布可假设、要统计判别规则距离判别、Fisher、Bayes 判别判别分析
局部相似明显、无需先训复杂参数模型、基线对照K 近邻K近邻
存在非线性与变量交互、要规则或特征重要性决策树、随机森林决策树与随机森林
高维、间隔清晰、可用核方法处理非线性支持向量机支持向量机
特征条件独立近似成立、文本/词频/计数特征朴素贝叶斯朴素贝叶斯
提升弱分类器、关注难分样本AdaBoost集成学习/AdaBoost
表格数据、追求精度、可接受一定黑箱GBDT / 梯度提升集成学习/GBDT
少数类极少、召回比总体准确率更关键类别权重、阈值、代价敏感;必要时 SMOTE样本不平衡处理
需要解释“为什么这样判”系数、特征重要性、SHAP机器学习可解释性

这张表用于快速定位,不是机械选型规则。最终还要结合样本量、特征类型、解释需求、误判代价和验证条件。能用更简单、更少假设的模型达到目的时,不必叠床架屋。

三、方法选择的决策逻辑​

不要一上来就上复杂集成。建议按“基线 → 结构 → 复杂化”推进:

标签是否有序/多类?代价是否不对称?
├─ 先建立评价:混淆矩阵、PR/ROC、类别权重与阈值
├─ 特征–类别关系是否近似线性、需要系数叙事?
│ ├─ 是 → Logistic / 线性判别族
│ └─ 否 → 看结构
│ ├─ 局部相似、小中样本基线 → KNN
│ ├─ 条件独立+计数特征 → 朴素贝叶斯
│ ├─ 非线性交互、要重要性 → 树 / 随机森林
│ ├─ 高维间隔、核技巧 → SVM
│ └─ 仍不够 → AdaBoost / GBDT
└─ 少数类稀缺 → 先改权重/阈值/评价指标,再考虑 SMOTE

小样本(例如每类有效样本很少)时,优先线性模型与强正则,并严格交叉验证;大宽表且交互复杂时,随机森林通常是比单棵深树更稳的第一步。

四、统一的建模工作流​

无论用哪一种具体分类器,竞赛论文里都建议按同一套流程组织:

  1. 认标签:类别定义、标注质量、是否有序、正类是谁、错分代价;
  2. 切分:按实体/患者/客户 ID划分训练/验证/测试,避免同一对象泄漏;时间标签题按时间切分;
  3. 预处理:缺失、编码、标准化等参数只在训练折估计(详见 01 数据预处理);
  4. 基线:多数类预测、Logistic 或线性判别,先拿到可复现的参照指标;
  5. 主模型:按上表选型,网格或验证集选超参数;
  6. 阈值与代价:默认 0.5 往往不合理,按业务代价或验证集选工作点;
  7. 评价:混淆矩阵 + 精确率/召回率/F1;不平衡时看 PR-AUC;必要时分层指标;
  8. 解释与错误分析:系数/重要性/SHAP,并展示典型错分样本;
  9. 稳健性:换随机种子、换切分、扰动特征,看结论是否漂移。

五、评价指标:不要只看准确率​

设测试集真实类别为 yiy_i,预测为 y^i\hat y_i。总体准确率在类别不平衡时会严重误导。至少报告:

  • 混淆矩阵:TP/FP/TN/FN 的原始计数;
  • 精确率 / 召回率 / F1(按正类或宏/微平均);
  • ROC-AUC 或 PR-AUC(极不平衡时 PR 往往更诚实);
  • 若有明确代价,报告期望代价或在指定召回率下的精确率。

补充原则:

  • 训练准确率只用于诊断过拟合,最终排名看训练期外指标;
  • 多分类写清是 macro 还是 weighted 平均;
  • 有序分类不要无普通多类准确率掩盖“只错相邻等级”的结构。

六、与各子目录/方法的对应关系​

子目录或篇章核心任务典型出口
Logistic回归可解释的概率分类与有序/多类扩展概率、系数、比值比
判别分析基于距离或类条件分布的统计判别判别函数与归属
K近邻局部投票的非参数基线类别与邻域解释
决策树与随机森林规则划分与集成降方差标签、重要性
支持向量机间隔最大化与核非线性决策边界与支持向量
朴素贝叶斯条件独立下的快速概率分类后验类别概率
集成学习提升/梯度提升提高难分样本表现高精度分类器
样本不平衡处理让少数类可学且评估不被准确率绑架加权/重采样策略
机器学习可解释性把黑箱预测翻译成特征贡献SHAP 等归因图

分类与 04 预测与预报 的分界:目标是离散类别还是连续数值。与 06 聚类分析 的分界:训练时有没有金标准标签。与 01 数据预处理 中的不平衡处理可对照阅读:预处理讲数据侧,本门类讲模型与评价侧如何闭环。

七、使用提醒与常见陷阱​

  • 泄漏:同一病人多次就诊随机划入训练和测试、先 SMOTE 再划分、用全样本标准化,都会让分数虚高;
  • 指标错位:不平衡数据只报准确率、不看少数类召回;
  • 阈值惰性:概率模型输出后固定 0.5,不结合代价与工作点;
  • 过度复杂:小样本上堆 GBDT/SVM 调参,方差大且难复现,却打不赢正则 Logistic;
  • 解释断层:只给特征重要性总表,不分析主要错分模式与业务是否矛盾;
  • 标签噪声:把模糊边界样本当金标准硬训,应在讨论中承认标注不确定性。

八、推荐学习顺序​

  1. 先读本导读,建立“实体切分、基线对照、阈值与代价、训练期外评价”的纪律;
  2. 评价基础:混淆矩阵、精确率/召回率/F1、ROC/PR、类别权重;
  3. 线性可解释模型:Logistic → 距离/Fisher/Bayes 判别;
  4. 经典机器学习:KNN、树与随机森林、SVM、朴素贝叶斯;
  5. 集成与不平衡:AdaBoost、GBDT、SMOTE/代价敏感;
  6. 可解释性:SHAP 与业务叙事,回到错分案例。

进入具体方法页后,建议按「直观理解 → 适用边界 → 原理 → 关键决策 → MATLAB → 结果解释 → 误区 → 小结」阅读,并亲手跑通示例。最终写进论文的,应是训练期外指标 + 混淆结构 + 与基线的对比 + 主要错分为何发生,而不是单一的总体准确率。