本节摘要:监督学习从带标签的训练数据中学习输入到输出的映射函数,解决两大类问题——预测离散类别的分类与预测连续数值的回归。本节拆解六种经典算法(线性回归、逻辑回归、SVM、决策树、KNN、朴素贝叶斯)的核心机制、适用条件与典型代价,并给出按数据形态与业务要求快速缩小候选范围的判断框架。监督学习的性能上限首先由标注数据的数量与质量决定。
阅读完本节,你应当能够:
形式化地说:给定数据集包含成对的输入特征与输出标签,学习算法要找一个函数 f,使 f 作用于新输入时的预测尽可能接近真实输出。训练就是通过最小化"预测与标签的差距"(损失函数)来调整函数里的参数。
两大任务的分界是输出的取值形态:
一个容易踩的边界案例:预测"明天降雨量"是回归,预测"明天是否下雨"是分类——同一业务,目标形态不同,算法与指标全变。所以建模前必须先回答"我要的输出到底是什么形态、什么粒度"。
假设输入与输出是线性关系,找一条直线(高维是超平面)拟合数据,通过最小化预测值与真实值差的平方和来确定系数。它是最基础的回归模型,训练快、解释直接(系数就是特征的边际贡献),但拟合不了非线性模式。
名字里带"回归"却是分类算法:先用线性组合算一个得分,再通过 Sigmoid 函数把得分压到 0 到 1 之间当作概率,按阈值决定类别。它是二分类的默认基线,金融风控里因解释性好(每个特征的权重方向与大小一目了然)而长期服役。
寻找一个超平面把两类数据分开,并使离超平面最近的样本点到超平面的间隔最大——间隔越大,对噪声的容忍度越高。对于线性不可分的数据,通过核技巧把数据隐式映射到高维空间再切分。小样本、高维特征(如文本分类)场景表现出色;大规模数据上训练开销大。
用一连串"如果特征 a 小于阈值 t 则走左分支"的判断把样本逐步分到叶子节点。优点是可解释性极强——树的路径就是一条人类可读的规则;缺点是单棵树极易过拟合,剪枝可以缓解但难根治(这正是 2.3 节随机森林的出发点)。
没有显式训练过程:来一个新样本,看它周围 K 个最近邻的标签,投票或平均得出预测。原理简单、天然支持多分类;代价是预测时要与全部训练样本比较距离,数据大了之后预测延迟高,且对特征尺度敏感(必须先做缩放)。
基于贝叶斯定理,加上"特征条件独立"这个朴素假设,算出每个类别的后验概率取最大者。尽管独立性假设在现实中几乎不成立,它在文本分类(垃圾邮件过滤)上效果出奇地好,训练与预测都极快,是流式场景的常客。
| 算法 | 任务 | 核心机制 | 强项 | 弱点 |
|---|---|---|---|---|
| 线性回归 | 回归 | 最小化平方误差拟合直线 | 快、可解释 | 只能线性 |
| 逻辑回归 | 分类 | 线性得分加 Sigmoid 概率化 | 二分类基线、权重可解释 | 线性边界 |
| SVM | 分类/回归 | 最大间隔超平面加核技巧 | 小样本高维强 | 大数据训练慢 |
| 决策树 | 分类/回归 | 递归特征阈值划分 | 规则可读 | 单树易过拟合 |
| KNN | 分类/回归 | 近邻投票 | 无训练、直觉简单 | 预测慢、需缩放 |
| 朴素贝叶斯 | 分类 | 贝叶斯定理加独立假设 | 极快、文本友好 | 独立假设常不成立 |
用伪代码感受决策树的判断方式(概念示意,不含任何文件路径):
如果 收入 / 月供 > 2.5: 如果 征信查询次数 < 3: -> 批准额度 10 万 否则: -> 批准额度 5 万 否则: 如果 有共同还款人: -> 批准额度 3 万 否则: -> 拒绝
每个内部节点是一次特征判断,每个叶子是一个决策。把树画出来给业务方看,不需要任何数学背景就能讨论"这条规则合不合理"——这是深度网络给不了的沟通效率。
给出一个四步判断流程:
1. 输出是离散类别还是连续数值? ──> 决定 分类 / 回归 两族算法 2. 数据量多大? <1万条 偏好 SVM/朴素贝叶斯/逻辑回归;>10万条 树模型更稳 3. 特征是表格还是文本图像? 表格优先树模型与线性模型;文本先试朴素贝叶斯 4. 需要解释给业务方吗? 要解释 → 逻辑回归/决策树;只要性能 → 2.3 节集成方法
💡 关键直觉:先跑一个逻辑回归或单棵决策树当基线。基线的作用不是赢,而是给后续所有复杂模型一个"值不值得"的参照系——复杂模型若只比基线高一个百分点却牺牲了全部可解释性,多数业务场景会拒绝这笔交易。
⚠️ 常见坑:在类别极不均衡的数据上只看准确率。欺诈交易占 0.5% 时,模型全预测"正常"就能拿到 99.5% 准确率且毫无用处——此时应看精确率、召回率与 AUC,详见第五章 5.2 节。
标注成本决定项目可行性。 监督学习的隐藏账本在标签上:简单二分类标注每条几秒,医学影像诊断级标注每条需要专科医生数分钟。启动项目前先算三个数——需要多少条、每条多少钱多久、标注一致性(多人标同一条的一致程度)能不能达到要求。第三个数最常被忽略:标注一致性只有八成的任务,任何模型的准确率天花板就压在九成附近,因为标签本身就在打架。
类别不均衡的三种处置。 除 2.1 节正文提到的指标切换外,数据层面还有三条路:过采样增加少数类(SMOTE 插值合成)、欠采样删减多数类、以及代价敏感学习(在训练时给少数类错误更高惩罚)。选择顺序一般是:先试类别权重(零成本)——再过采样——最后考虑组合。欠采样在小数据上会进一步损失信息,慎用。
验证策略要匹配数据形态。 独立同分布数据用随机划分即可;时间序列必须按时间切分;存在"组"结构的数据(同一用户多条记录、同一医院多份病历)必须按组分划分——否则同组样本同时出现在训练与测试集,模型背下"这个用户的特点"就能得高分,指标全是泡沫。
逻辑回归输出 0.6,能说"有六成把握是正类"吗? 严格说这是模型给出的分数,是否等于真实概率取决于模型校准。树集成模型常出现"过度自信"(分数贴近 0 或 1 但真实频率没那么极端),需要用可靠性曲线检查,必要时做概率校准。风控等直接消费概率的场景这一步不可省。
特征比样本还多怎么办(高维小样本)? 先降维或特征选择(正则化线性模型是首选,L1 天然压稀疏),别急着上复杂模型——样本不足时模型越复杂过拟合越狠。文本场景例外:词频特征上万里但稀疏,线性模型配正则化依然稳健。
训练集准确率 95%、测试集 94%,模型没问题吧? 两集接近说明没有过拟合,但还不等于"没问题"——要再问三件事:指标选对了吗(不均衡场景准确率会骗人)、划分方式合理吗(有无泄漏与组结构)、错误集中在哪类样本上(平均数之下可能藏着某类样本全错的灾难)。平均健康不等于处处健康。
数据没有标签时怎么办?下一节看无监督学习如何从数据自身发现结构。