机器学习基础
机器学习基础
机器学习是「AI 基础」的地基。今天所有的大模型、推荐系统、风控模型、图像识别,本质上都是机器学习在不同数据形态上的延伸。这篇文章不假设你写过代码:把机器学习是什么、项目怎么做、主流算法各解决什么问题、模型怎么评估讲全,每节末尾给出产品经理视角。想接着往下学,看深度学习基础与Transformer 架构;大模型侧的完整图景见大模型基础。
机器学习是什么
机器学习(Machine Learning)是让计算机从数据中自动发现规律、并用规律做预测或决策的技术,核心特点是不需要人把规则一条条写死。
「机器学习」一词最早由 Arthur Samuel 在 1959 年提出,他用一个能自我对弈提高水平的西洋跳棋程序说明了「学习」的含义:程序没有被告知每一步怎么走,而是在大量对局数据中自己总结出好棋与坏棋。半个多世纪后,这个思想长成了今天 AI 行业的主干——从垃圾邮件过滤、信用卡风控、推荐系统,到图像识别、语音助手,再到 ChatGPT 这类大模型,底层都是同一个范式:数据 + 算法 → 模型 → 预测。
机器学习有三个要素,缺一不可:
- 数据:学习的原材料,决定上限。数量、质量、代表性、标签准确度,每一项都是产品经理能直接影响的。
- 算法:学习的规则(拟合方式),决定「逼近上限」的效率。
- 算力:学习的体力,数据与算法再好,跑不动也白搭——这也是深度学习时代算力成为战略资源的原因。
与传统编程的对比
传统编程是人写规则,机器执行规则;机器学习是人给数据,机器自己学规则。这是两种完全不同的生产逻辑:
| 维度 | 传统编程 | 机器学习 |
|---|---|---|
| 输入 | 代码(规则) | 数据 + 标签(答案) |
| 过程 | 人分析问题、写死逻辑 | 算法从数据中拟合规律 |
| 输出 | 确定性的程序行为 | 概率性的预测结果 |
| 典型问题 | 「如果金额 > 1 万就转人工审核」 | 「预测这笔交易欺诈的概率」 |
| 维护方式 | 改规则 | 换数据、重训练 |
机器学习的核心信念是:规律藏在数据里,只要数据足够多、质量足够好,算法就能把它学出来。这也是为什么行业内常说「数据和特征决定了机器学习的上限,模型和算法只是逼近这个上限」——规则是人拍脑袋定的,而数据是现实世界的投影,上限在数据侧。
学习类型:四大类
按「有没有标签、标签是什么」,机器学习可以分为四种学习方式:
| 类型 | 数据形态 | 目标 | 代表任务 | 代表算法 |
|---|---|---|---|---|
| 监督学习 | 输入 + 标签 | 学输入到输出的映射 | 分类、回归 | 逻辑回归、决策树、SVM、神经网络 |
| 无监督学习 | 只有输入 | 发现数据内在结构 | 聚类、降维、异常检测 | K-means、层次聚类、DBSCAN、PCA |
| 半监督学习 | 少量标签 + 大量无标签 | 用无标签数据辅助学习 | 医学影像分类等标注贵的场景 | 自训练、图神经网络 |
| 强化学习 | 无标签,只有奖励信号 | 学策略,最大化长期收益 | 游戏 AI、机器人控制、推荐 | Q-learning、DQN、策略梯度 |
- 监督学习分两类任务:输出是离散类别叫分类(垃圾邮件与否),输出是连续数值叫回归(房价预测)。
- 无监督学习没有「标准答案」,它找的是数据本身的形状:哪些样本天然扎堆(聚类)、哪些维度冗余可以压缩(降维)。
- 半监督学习的现实动机很直白:标注很贵。一万张图人工标注要花几天,但无标签数据几乎零成本,先用少量标注带一带、再让模型在无标签数据上自我增强,是典型的工程打法。
- 强化学习的学习信号不是「对错」而是「奖励」:智能体尝试动作、环境给反馈、它调整策略让累计奖励最大。AlphaGo、自动驾驶决策模块、推荐系统里的探索策略都是这一路。
除了这四种主流类型,还有两个进阶概念值得知道:
- 自监督学习:从数据自身构造标签(如把一句话挖掉一个词让模型猜),不需要人工标注,大模型的预训练全是这一路——BERT 的掩码语言建模、GPT 的「预测下一个词」都是自监督。
- 迁移学习:把一个任务上学到的知识(模型参数、特征表示)搬到另一个相关任务,小数据任务借大模型/预训练模型的能力起跑,详见深度学习基础与大模型基础。
判别式模型与生成式模型
按「学什么」,模型还可以分为两派:
| 判别式模型 | 生成式模型 | |
|---|---|---|
| 学什么 | 直接学决策边界:给定输入,类别是什么 | 学数据本身长什么样:每个类别下数据如何分布 |
| 数学对象 | 条件概率 P(类别 | 输入) |
| 代表 | 逻辑回归、SVM、决策树、神经网络 | 朴素贝叶斯、高斯混合模型、隐马尔可夫、扩散模型 |
| 能力 | 分类、回归 | 分类 + 生成新样本(图像/文本/音频) |
| 特点 | 分类精度高、参数少 | 能理解数据分布、能生成,但计算重、分类往往不如判别式 |
产品经理记住一条就够:生成式模型能「无中生有」,判别式模型只会「判断」。今天的大模型之所以能写文章、画图,是因为它们本质上是超大规模的生成式模型。
产品经理记忆点
你不需要记住每种算法的公式,但要能回答三个问题:这个任务有没有标签(决定用监督还是无监督)、标签是什么形态(决定是分类还是回归)、错了的代价是什么(决定评估指标,见「模型评估」一节)。
机器学习项目流程
一个机器学习项目从立项到上线,标准流程是七步。每一步都有产品经理的参与点:
- 问题定义:把业务问题翻译成机器学习问题。这一步最容易出错:业务要「提升转化率」,但模型能做的只是「预测每个用户点击的概率」——目标错配是项目失败的常见原因。
- 数据收集与清洗:确定数据来源(业务库、埋点、第三方)、数据口径、时间范围;清洗解决重复、缺失、格式错误。PM 要确认数据的代表性:只收集了旺季数据,模型到了淡季就失灵。
- 特征工程:把原始数据加工成模型能用的特征。这是传统机器学习里最花时间、也最决定上限的一步(详见下节)。
- 模型选择:根据数据量、任务类型、可解释性要求选算法。没有免费的午餐——没有任何算法在所有问题上都最好,靠经验和交叉验证比较。
- 训练:把训练集喂给算法,调整参数使损失最小。超参数(学习率、树深度、K 值)的调整是工程师的主场,PM 关心的是训练周期与算力成本。
- 评估:用测试集客观衡量模型表现。这一步最容易自欺欺人:用训练过的数据回测、只看准确率、拿历史分布当未来分布,都会让「看起来很好」的模型上线即翻车。评估方法论详见评估与评测。
- 上线与迭代:模型上线只是开始。数据分布会漂移(用户习惯变了、商品结构变了),需要监控指标、定期重训;PM 要为模型建「体检机制」——准确率跌到阈值就告警、触发人工复核或回滚。
最常见的翻车点
项目死在评估缺失和数据问题上的概率远大于死在算法选型上。「再调一调模型就好了」通常是错觉——先检查数据有没有问题、评估是不是真的客观。
一个完整例子:信贷风控的全流程
把七步套到一个具体场景里,PM 参与点会清晰很多:
- 问题定义:业务目标「把坏账率从 5% 降到 3%」→ 模型任务「预测新申请用户的违约概率」,输出 0 到 1 的概率而非「批不批」——批不批是业务规则(概率 × 额度)的事,和模型解耦。
- 数据收集:历史申请信息 + 还款表现(标签:是否逾期 90 天)。标签要留出时间窗:用「申请时点」的特征预测「未来 6 个月」的表现,否则特征里混进未来信息就是泄漏。
- 特征工程:收入、负债率、征信查询次数、申请时段……工程师负责加工,风控专家负责给「规则特征」(如「近期多头借贷次数」),PM 负责对齐特征口径与合规边界(哪些变量不能用,如性别、地域,涉公平性)。
- 模型选择:可解释性要求高(监管要解释拒贷原因)→ 逻辑回归或树模型,不用深度学习。
- 训练:正负样本天然不平衡(违约是小概率),要处理类别不平衡;定期重训的节奏要提前定(数据分布随经济周期漂移)。
- 评估:测试集用时序留出——拿最近 6 个月的真实表现当测试集,而不是随机抽样,否则高估线上效果;核心指标结合业务代价:漏掉一笔坏账损失 X,误拒一个好客户损失 Y。
- 上线与迭代:监控线上违约率、拒绝率、模型分漂移;新政策(如降息)会改变用户结构,模型要跟着重训。
这个例子里,算法只占项目的一小部分,数据、评估、监控才是决定成败的大头——所有 ML 项目都是如此。
数据预处理与特征工程
模型吃的是数字,现实世界给的是脏数据。预处理把「现实数据」变成「模型能消化的数据」,特征工程把「能用的数据」变成「好用的数据」。传统机器学习里,特征工程决定天花板:同样的数据,特征做得好的人比模型调得深的人拿到的效果上限更高。
缺失值与异常值
- 缺失值处理:删除(缺失比例高、无信息量的行或列)、填充(数值型用均值/中位数,类别型用众数;更讲究的做法是用其他特征预测缺失值)。填充要谨慎——用全量均值填充会人为压低方差,掩埋真实分布。
- 异常值处理:先分清楚是「录入错误」(该删/该修)还是「真实的小概率事件」(如高端消费,该保留)。常用手段:3 倍标准差原则、箱线图的四分位距(IQR)法、业务规则。异常值对线性模型和 K-means 影响很大,对决策树几乎无影响——选模型前先想清楚这个数据特性。
- 数据增强:对数据做受控变形扩充样本(图像翻转/裁剪/加噪,文本同义改写),本质是「让训练分布逼近真实分布」——图像、语音场景的常规武器;对表格数据的帮助有限,且要小心增强出来的分布失真。深度学习侧的数据增强见深度学习基础。
先看数据,再谈算法
拿到数据集第一件事是EDA(探索性数据分析):看字段类型、缺失比例、取值分布、类别平衡度、特征与目标的相关性,再画几张图找异常。这个「花一小时看图」的步骤,比「花一周调参」更能决定项目成败。
标准化与归一化
不同特征的量纲不同(年龄 0-100,收入 0-100 万),直接送进模型会让量纲大的特征主导距离与梯度:
| 方法 | 公式(文字表述) | 适用场景 |
|---|---|---|
| 标准化(z-score) | z = (x − 均值) / 标准差 | 数据近似正态;对异常值不敏感;K-means、SVM、神经网络常用 |
| 归一化(min-max) | x′ = (x − 最小值) / (最大值 − 最小值) | 数据有明确上下界;对异常值敏感(一个极端值会把其他值压扁) |
注意:标准化的均值与标准差只能在训练集上计算,再套用到验证集/测试集/线上——否则会引入「数据泄漏」(见「模型评估」一节)。
类别编码
模型只能吃数字,类别要编码:
- One-hot 编码:每个类别一列,是 1 其他是 0。类别多时维度爆炸,且丢掉了类别间的顺序关系。
- 标签编码:类别映射成 0、1、2…整数。简单,但给无顺序的类别强加了顺序语义,对线性模型是误导(树模型不受影响)。
- 目标编码:用该类别的目标均值编码,信息量大但极易过拟合,需要交叉验证内做。
特征选择与降维
特征太多会带来三件事:计算变慢、过拟合风险上升、模型变难解释。
- 特征选择就是删:过滤法(按与目标的相关性、方差筛)、包裹法(把特征组合送进模型试)、嵌入法(训练时让算法自己挑,如 L1 正则)。
- 降维是压缩:主成分分析(PCA)的直觉是——找到数据方差最大的几个方向,把数据投影上去,丢掉方差小的方向。PCA 把高维数据压缩成少数几个「合成特征」,常用于可视化(降到 2 维画散点图)与去噪。代价是合成特征没有业务含义,可解释性下降。
产品经理怎么参与特征工程
工程师问你要「业务特征」时,最值钱的输入是业务规则与领域知识:比如风控里「凌晨 3 点的转账」这种人工经验特征,往往比模型自己学出来的特征更可靠、更容易解释、也更容易过合规审查。
特征工程实务:不同类型数据的加工思路
特征工程不是玄学,是有套路可循的:
| 原始数据 | 常见特征加工 | 例子 |
|---|---|---|
| 数值型 | 分箱(连续变离散)、对数/开方变换、交叉特征(两特征相除/相乘) | 金额取对数压长尾;「负债 / 收入」比单看两个绝对值更有意义 |
| 类别型 | one-hot、标签编码、目标编码、按业务合并稀有种 | 城市太多时按「一线/新一线/其他」合并 |
| 时间型 | 拆出年/月/日/星期/是否节假日、距当前时长、滑动窗口统计 | 「距上次购买 7 天内」比「上次购买日期」更能表达活跃度 |
| 文本型 | TF-IDF 向量、关键词命中、文本长度;深层语义特征用词嵌入 | 工单标题向量化后送分类器,词嵌入的原理见深度学习基础 |
| 行为序列 | 频次、多样性、熵、最近一次时间(recency) | 电商用户的浏览-加购-下单行为统计 |
特征工程的产出要可审计:每个特征的业务含义、口径、缺失率、分布变化都要能说清。模型上线后监控的其实主要是「特征分布漂移」——某个特征突然变形,往往比模型分数本身更能提前预警问题。
类别不平衡
二分类里正样本只有 1%、负样本 99% 时,模型只要全预测负类就有 99% 准确率——但业务要的恰恰是那 1%。常用对策:
| 方法 | 做法 | 注意 |
|---|---|---|
| 过采样 | 复制/合成少数类样本(SMOTE 在少数类之间插值生成新样本) | 可能过拟合少数类 |
| 欠采样 | 随机丢弃多数类样本 | 浪费数据,信息损失 |
| 类别权重 | 损失函数里给少数类更高的权重 | 实现简单,常用 |
| 换评估指标 | 用精确率/召回率/F1、AUC 代替准确率 | 几乎总是必要的(见「模型评估」) |
| 转化问题定义 | 把「罕见分类」改成「异常检测」 | 欺诈、故障检测常用 |
不平衡的根治方案:换问题
如果少数类极端罕见(如信用卡欺诈 0.01%),与其硬训练分类器,不如把它定义成异常检测问题:只学「正常行为长什么样」,偏离正常分布的就是嫌疑——这也是反欺诈工业界的常见打法,不需要正样本,天然适应数据漂移。
回归
回归预测连续数值:房价、销量、点击率、用户生命周期价值。它也是理解「模型怎么学」的最佳入口。
线性回归与最小二乘
线性回归假设目标 y 与特征 x 的关系是线性的:y = w₁x₁ + w₂x₂ + … + b。训练就是找一组权重 w,让预测值尽可能接近真实值。
最小二乘是其中最经典的拟合准则:把所有样本的预测误差平方加起来(均方误差),找到让这个总和最小的 w。「平方」的两个原因:误差正负不抵消;大误差被放大,逼模型别犯大错。
线性回归的局限:它假设特征与目标之间是直线关系,现实数据很少这么乖——所以衍生出多项式回归(给特征加高次项)与广义线性模型(给线性组合套一层函数,逻辑回归就是其一)。另一个前提是特征不能高度共线(两个特征几乎同义时,权重会被分得很不稳定)。理解这些局限的实用价值在于:线性模型效果差时,先别急着换大模型,先确认是不是关系本身非线性——换树模型可能就解决了。
过拟合与正则化
模型太复杂(特征太多、多项式次数太高)时,它会开始「背答案」——把训练数据里的噪声也当成规律记住,换了新数据就失灵,这叫过拟合。对抗过拟合的核心武器之一是正则化:在损失函数里加一项对权重大小的惩罚,逼模型别把权重学得太大:
- 岭回归(L2):惩罚权重的平方和,把权重整体压小,但不压到 0。
- Lasso(L1):惩罚权重的绝对值之和,会把不重要的特征权重直接压成 0,天然做特征选择,代价是求解不稳定一点。
L1 为什么能压成 0
直觉上:L2 的惩罚在 0 附近是平滑的抛物线,权重永远「差一点」到 0;L1 的惩罚在 0 处有个尖角,只要惩罚强度超过梯度,权重就干脆停在 0。不用记推导,记住结论:L2 收缩、L1 稀疏。
回归评估指标
| 指标 | 含义 | 特点 |
|---|---|---|
| MAE(平均绝对误差) | 误差绝对值的平均 | 直观,对大误差不敏感,单位与目标一致 |
| RMSE(均方根误差) | 误差平方平均后开根号 | 惩罚大误差,单位与目标一致;对异常值敏感 |
| R²(决定系数) | 模型解释了多少方差,1 为完美,0 为不如直接取均值 | 无量纲,方便跨任务比较 |
RMSE 与 MAE 的差别有产品含义:如果业务上「偶尔错得离谱」比「经常错一点」更致命(比如定价),就用 RMSE 主导调优;如果希望误差稳定、别被极端值绑架,就看 MAE。
逻辑回归:名字是回归,本质是分类
逻辑回归解决的是分类问题,只是它「借用」了回归的形式:先用线性组合算一个分数,再用 Sigmoid 函数把它压到 0 到 1 之间,解释成「属于正类的概率」。
- 输出是概率而非类别:大于阈值(默认 0.5)判正类。阈值是可调的——调高阈值,精确率上升、召回率下降;调低则相反。
- 决策边界:概率恰好 0.5 的那条线(面)就是决策边界,线性回归部分决定边界的形状。
- 多分类版本用 Softmax 输出「属于每个类别的概率分布」,这也是神经网络分类头的标配。
逻辑回归训练快、可解释(权重能直接解读为「该特征每增加一单位,对数几率变化多少」)、对算力要求极低,至今仍是信贷风控、广告点击率预估的工业主力——大模型时代之前,它和树模型一起扛起了互联网的推荐与风控。
逻辑回归的评估直接套用分类指标(精确率/召回率/F1/AUC,见「模型评估」),不是回归指标——这是新手最容易搞混的一点。另外它的「概率」是校准过的分数,可以直接当业务分数用(如风控评分卡),但要注意:类别不平衡时,输出概率整体偏移,要先校准或只拿它做排序而非绝对值。
损失函数:模型「为什么这么学」
损失函数是模型学习的指挥棒——它量化「预测离真相多远」,训练就是让这个数变小。三类最常用:
- 均方误差(MSE):预测值与真实值差值的平方平均,回归任务的默认选择,大误差被平方放大。
- 交叉熵:衡量「模型输出的概率分布」与「真实标签分布」的差异,分类任务的默认选择——它比 MSE 更适合分类,因为概率输出下的梯度更平稳(分类 + 交叉熵的梯度直接正比于误差,不会像 Sigmoid + MSE 那样梯度被激活函数压死)。
- KL 散度:两个分布之间差异的度量,交叉熵去掉「真实分布的熵」就是 KL 散度;生成模型、蒸馏、大模型对齐里到处都是它的身影。
产品经理不写损失函数,但要知道:模型学什么、重视什么,由损失函数定义。类别不平衡时给少数类加权、多目标产品给不同目标配权重,改的都是损失函数——它是「把业务目标翻译给模型」的那座桥。损失函数在深度学习里的展开见深度学习基础。
模型选型的一个底层原则
为什么没有「最好的算法」?有两个理论支撑,产品经理知道结论即可:
- 没有免费的午餐定理(NFL):所有算法在所有可能问题上的平均表现相同——某个算法在你这个任务上牛,必然在另一些任务上怂。所以「xx 算法最厉害」的说法必须绑定具体任务与数据。
- 奥卡姆剃刀:能解释数据的最简单模型优先。简单模型泛化更好、更易解释、更省资源;在模型对比差距不大时,选简单的那个。
这两个原则合起来就是一句工程口诀:先用最简单的模型跑通基线(逻辑回归或决策树),再按评估结果决定要不要升级复杂度。基线模型的价值不只是对照,它还能暴露数据问题——基线都做不好,往往不是算法不够强,而是数据或特征有问题。
分类算法
分类是机器学习应用最广的任务。下面按「从简单到复杂」介绍五大类算法,每种都从直觉讲起。
K 近邻(KNN):惰性学习的投票派
KNN 不训练模型——它把训练数据原样存着,预测时计算新样本与所有样本的距离,取最近的 K 个邻居,少数服从多数投票定类别。
- 惰性学习:训练阶段零成本,预测阶段要遍历全部样本,数据量大时预测慢、内存大。
- 距离度量:欧氏距离(直线距离)最常用,曼哈顿距离(坐标差绝对值之和)在特征维度正交时更合理;文本场景常用余弦相似度。
- K 的选择:K 太小容易被噪声带偏,K 太大则少数类被多数类淹没;一般用交叉验证选,经验值不超过样本数的平方根。
- 注意:KNN 对特征量纲极度敏感,必须做标准化;类别不平衡时少数类容易被吞。
KNN 的用武之地是「小数据、特征干净、要快速出基线」的场景,比如小样本的图像/文本匹配,以及作为团队的第一个 baseline。
朴素贝叶斯:概率论的直球
朴素贝叶斯基于贝叶斯定理:已知「在某个类别下出现某特征的概率」,反推「看到某特征时属于某类别的概率」——由果溯因。
- 核心公式直觉:后验概率 ∝ 先验概率 × 条件概率连乘,取后验最大的类别为预测结果。
- 朴素假设:特征在给定类别下互相独立。这个假设在现实中几乎总是不成立(「免费」和「中奖」常一起出现),但它在文本场景下依然够用,而且让计算量从指数级降到线性级——「朴素」是牺牲一点点精度换可行性。
- 拉普拉斯平滑:某个词在某类别里从没出现过,条件概率会是 0,连乘后整个概率变 0。给每个计数 +1(平滑),避免「没见过就判死刑」。
- 典型场景:垃圾邮件过滤、文本分类、情感分析。训练极快、可增量更新,是文本分类的廉价强基线。
决策树:可解释的规则派
决策树把分类规则组织成一棵树:每个内部节点问一个特征问题(「年龄 > 30?」),叶子节点给出类别。它本质上是自动从数据里学出一组 if-else 规则。
- 怎么选问题:每次划分要选「最能把类别分开」的特征。经典准则:信息增益(ID3,按熵减少量选)、信息增益率(C4.5,修正信息增益偏爱多取值特征的毛病)、基尼不纯度(CART,随机抽两个样本类别不一致的概率)。
- 剪枝:树长得太深就会把噪声也记住(过拟合)。预剪枝(限制深度、最少样本数)或后剪枝(长完再砍),是决策树效果的关键。
- 最大优点:可解释性。树可以直接画出来给业务看,「为什么拒贷」能一条路径讲清楚——金融、医疗等强监管场景的合规刚需。
- 主要软肋:单棵树不稳定(数据稍变结构大变)、容易过拟合、对类别不平衡敏感——所以工业界很少用单棵树,而是用它当集成学习的基座(见下)。
一个直觉例子:判断「要不要给用户发优惠券」,树可能是「近 30 天有购买?→ 是 → 客单价 > 100?→ 是 → 发 20 元券;否 → 发 5 元券」——每条路径都是一条可解释、可人工复核的业务规则。这就是树模型在营销、风控场景不可替代的原因。
集成学习:三个臭皮匠顶个诸葛亮
单个模型容易偏,把多个模型组合起来、取集体决策,就是集成学习。两大流派:
- Bagging(并行,降方差):对数据有放回抽样,训练多棵独立的树,投票/平均取结果。代表是随机森林(每棵树分裂时还随机抽特征子集,进一步制造多样性)。适合方差大、容易过拟合的模型,抗噪强。
- Boosting(串行,降偏差):后面的模型专门学前面模型犯的错。GBDT 的直觉是残差拟合——第一棵树学「预测值与真实值的差」,第二棵树学「第一棵树还没拟合掉的残差」,如此接力,每棵树都在补前一棵的漏。XGBoost 在 GBDT 上加正则化、并行化与工程优化,长年霸榜结构化数据竞赛。
两大流派各有分工:
| 随机森林(Bagging) | GBDT / XGBoost(Boosting) | |
|---|---|---|
| 训练方式 | 并行训练多棵树 | 串行,后一棵学前一棵的残差 |
| 优化目标 | 降方差(防过拟合) | 降偏差(提精度) |
| 对噪声 | 抗噪强 | 敏感,噪声样本会被反复重点学习 |
| 调参 | 相对简单 | 树深度、学习率、正则项都需要细调 |
| 场景 | 数据较脏、要稳健基线 | 追求精度上限的结构化数据 |
此外还有Stacking:把多个异质模型(逻辑回归 + 随机森林 + XGBoost)的预测结果当新特征,再训练一个元模型去组合它们——Kaggle 冲榜的常客,代价是复杂度与过拟合风险都更高,工业线上用得少。
为什么集成更强
单个模型各有各的错,而且错法不同;投票/平均让「大家都对」的样本更稳、「各自乱猜」的错误相互抵消。前提是个体之间有差异性——大家都抄同一份答案就没有集成的意义了。这也是深度学习中 Dropout、随机森林里特征抽样背后的同一个道理。
在表格数据上,GBDT/XGBoost 至今仍是深度学习难以撼动的王者;大模型在表格数据上并没有天然优势(详见「产品视角」)。
支持向量机(SVM):最大间隔派
SVM 的目标是找一个超平面把两类分开,并且要求这个分界「离两边都尽量远」——最大间隔。间隔越大,对新样本的容错越强。
- 支持向量:真正决定分界面的只有离边界最近的那几个样本(支持向量),其他样本不影响结果。模型只认「难分」的样本,数据效率高。
- 软间隔:现实数据总有交叉,允许少量样本越过边界(用惩罚参数 C 控制「容忍度 vs 误分代价」)。
- 核技巧:数据在低维分不开?用核函数(如高斯核)隐式映射到高维空间再找线性分界——不用真的算高维坐标,只要知道两两样本在高维空间的内积即可。这是 SVM 最漂亮的一招:把非线性问题变成「高维线性问题」。
- 与神经网络时代的对比:SVM 在小样本、高维(如文本)场景下依然能打,理论漂亮、泛化有保证;但数据量一大、特征一复杂,它的核函数选择和训练开销就吃力了,深度学习接管了大规模视觉/语音/文本任务。如今 SVM 更多作为基线模型与学术工具存在。
聚类
聚类是无监督学习的主力:没有标签,把数据分成若干「扎堆」的簇,簇内相似、簇间不同。
K-means:最常用的划分式聚类
K-means 的流程只有四步,循环到收敛:
- 初始化:随机选 K 个点当簇中心;
- 分配:每个样本归到距离最近的中心;
- 更新:把每个簇的中心移到簇内所有样本的均值位置;
重复第 2、3 步,直到中心不再变化。
K 的选择——肘部法则:画「K 值与簇内误差」的曲线,误差下降变缓的拐点(像手肘)就是合适的 K。更严谨的可以看轮廓系数。
- 三个软肋:K 要人定;对初始中心敏感(用 K-means++ 选互相远的点做初始中心可显著改善);只能分出「球形」簇,对细长、环状等任意形状的簇无能为力,对异常值敏感。
层次聚类:画一棵树
不预设 K,自底向上先把每个样本当一簇,反复合并最近的两簇,直到只剩一簇——整个过程形成一棵树(谱系图),想看几类就横着切一刀。适合小数据、需要看层级结构的场景(如组织架构、物种分类);计算量 O(n²) 起,数据大了跑不动。
DBSCAN:密度派
DBSCAN 不看距离聚类,看密度:一个点的邻域(半径 eps 内)样本数超过阈值 min_samples,它就是核心点,向外连成一片;孤立在低密度区的点标为噪声。
- 好处:自动决定簇数;能分任意形状;天然把异常点挑出来当噪声——用户分群、轨迹分析、点云分割(自动驾驶感知)都爱用它。
- 代价:对 eps 和 min_samples 敏感,高维数据下「密度」定义失效,效果差。
应用:用户分群与异常检测
- 用户分群:按消费金额、频次、活跃度聚类,分出高价值、潜力、流失风险人群——注意先标准化,再决定 K 或 eps,分完给每簇起业务名字、验证可落地(能对应运营动作的簇才有意义)。
- 异常检测:正常数据扎堆、异常数据孤零零,DBSCAN 的噪声点、K-means 里离簇心远的点,都是异常候选——风控、设备故障、流量突刺都这么干。
聚类怎么评估:没有标签怎么知道分得好不好
无监督没有「标准答案」,评估靠两种思路:
- 内部指标:不依赖外部标签。常用轮廓系数——衡量「样本与其所在簇的紧密度 vs 与最近邻簇的分离度」,范围 -1 到 1,越高越好。选 K 时除肘部法则外,轮廓系数是更严谨的参考。
- 外部指标:拿已知标签(如用户真实会员等级)当参考,看聚类结果与它吻合多少(调整兰德指数等)——严格说这已经不是纯无监督了,但业务上很实用:分出来的群能不能对上运营认知,本身就是一种验收。
还有一个业务视角的验收标准:簇必须有可执行的业务含义。分出来的「第 3 群」如果运营想不出对应动作,这个群就是统计产物而非业务资产——聚类项目的产出应该是「人群 × 特征画像 × 运营动作」,而不是一张簇编号表。
模型评估
评估是把「模型不错」变成「模型真的不错」的唯一手段。AI 产品经理至少要把这一节的每个概念都吃透,因为所有「AI 效果好不好」的争论,最后都会落到评估指标上。
数据划分与交叉验证
- 训练集:模型学习用;验证集:调超参数、选模型用(模型不直接学它);测试集:最终验收用,全程不能碰。常规划分 6:2:2 或 8:1:1,数据量越大,验证/测试占比可以越小。
- K 折交叉验证:把数据分成 K 份,轮流拿 1 份当验证、其余训练,重复 K 次取平均——用全部数据做评估,小数据时比单次划分更稳。K 常取 5 或 10。
- 数据泄漏:测试集的信息(均值、分布、标签统计)在训练前被模型「看到」,评估结果就会虚高。泄漏的典型来源:标准化统计量在全集上计算、特征里混入未来信息(用当天的数据预测当天)、去重不彻底(同一用户多条记录横跨训练/测试)。
混淆矩阵与三大指标
二分类的预测结果可以落进一个 2×2 表:
| 预测为正 | 预测为负 | |
|---|---|---|
| 实际为正 | TP(真正例) | FN(假负例,漏报) |
| 实际为负 | FP(假正例,误报) | TN(真负例) |
由它派生出三个关键指标:
- 准确率(Accuracy) = (TP + TN) / 全体:最直观,但在类别不平衡时是陷阱——99% 负样本时全猜负也有 99%。
- 精确率(Precision) = TP / (TP + FP):预测为正里有多少是真对——「我说有风险,到底多可信」。
- 召回率(Recall) = TP / (TP + FN):真正的正例里抓回多少——「风险交易漏抓了多少」。
- F1:精确率与召回率的调和平均,两者一视同仁地重要时看它。
精确率与召回率天然此消彼长:门槛放严,精确率升、召回率降;放宽松反之。选哪个当核心指标是业务决策:医疗筛查宁可误报不可漏诊(召回优先),垃圾邮件宁可漏过不可误杀(精确优先)。
怎么定阈值:二分类的默认阈值是 0.5,但最优阈值往往不是 0.5。把不同阈值下的精确率/召回率画成 P-R 曲线,业务在曲线上挑「误差代价平衡」的点——比如欺诈检测里,找到「漏报损失 = 误报损失」的那个阈值,或用验证集直接扫阈值使 F1 最大。阈值是产品参数,不是算法参数:上线后还可以按用户分层、按风险等级动态调。
多分类怎么办:混淆矩阵扩展成 n×n;指标有两种平均法——宏平均(每个类别单独算再取平均,小类别权重平等)与微平均(把全部样本的 TP/FP/FN 汇总再算,受大类别主导)。类别不平衡的多分类优先看宏平均或各类别的加权 F1,别只看总体准确率。
ROC 与 AUC
ROC 曲线画的是「不同阈值下,真正例率(TPR)对假正例率(FPR)」的轨迹;AUC 是曲线下面积。
- AUC 的含义:随机抽一个正样本和一个负样本,模型给正样本打更高分的概率。AUC = 0.5 等于瞎猜,0.8 以上算不错,1 是完美。
- 为什么常用:AUC 不依赖具体阈值,也不受类别不平衡的直接影响,适合在「还没定阈值」的阶段比较模型。
过拟合、欠拟合与偏差-方差权衡
- 过拟合:训练集好、测试集差——模型背了答案。对策:更多数据、降低模型复杂度、正则化、早停、集成。
- 欠拟合:训练测试都差——模型没学到规律。对策:更复杂的模型、更有效的特征、加大训练力度。
- 偏差-方差权衡:偏差是「模型假设本身离真相多远」(欠拟合之源),方差是「换一批训练数据结果抖多厉害」(过拟合之源)。总误差 = 偏差 + 方差 + 噪声。调模型本质是在两者之间找平衡:模型越复杂,偏差降、方差升。交叉验证就是用来找这个平衡点的仪表盘。
上线前的最后三问
- 测试集是模型从没见过的吗(防泄漏)?
- 核心指标符合业务代价吗(漏报和误报哪个更贵)?
- 训练分布和上线后的真实分布一致吗(防分布漂移)?
产品视角:传统 ML 与大模型的取舍
大模型把「什么都能聊」做到了极致,但不是所有任务都该上大模型。传统机器学习(树模型、线性模型、SVM、K-means)在大量场景下依然是最优解。
| 场景特征 | 推荐方向 | 原因 |
|---|---|---|
| 表格数据(结构化特征) | 传统 ML(XGBoost 等) | 特征有意义、数据量中等时,树模型又快又准又可解释 |
| 数据量小(万级以下) | 传统 ML | 大模型在小数据上过拟合或依赖微调成本,传统 ML 更稳 |
| 强可解释/合规要求 | 决策树、逻辑回归 | 金融、医疗要讲清「为什么」,树路径可直接展示 |
| 低延迟、低成本、端侧 | 传统 ML | 模型小、推理毫秒级,移动端/实时风控的刚需 |
| 非结构化内容(文本/图像/语音) | 大模型或深度学习 | 特征无法手工设计,表示学习才是正解 |
| 开放域对话、长文本理解、跨任务通用 | 大模型 | 一个模型覆盖多种任务,免去逐任务建模 |
| 需要常识与泛化、冷启动没数据 | 大模型 | 预训练知识自带「先验」,零样本也能干活 |
ML 项目最常见的失败原因(按发生率排序,几乎与算法无关):
- 数据问题:数据量不够、标签错、分布与线上不一致、泄漏——「垃圾进,垃圾出」。
- 评估缺失:没有独立测试集、只看训练集指标、指标选错(类别不平衡还看准确率)、拿历史回测当上线成绩。
- 目标错配:业务目标(转化率)与模型目标(点击概率)没有对齐,或者指标优化了但业务没动——模型只是系统的一环,前面的漏斗、后面的落地机制没接上,再准也没用。
- 迭代机制缺失:模型上线即失联,不监控、不重训,三个月后分布漂移,准确率悄悄跌破底线。
- 团队能力错配:为了「上 AI」而上深度学习,实际场景传统 ML 就够——复杂度是成本,不是 KPI。
别忘了数据合规
训练与上线数据涉及个人信息时,要过数据合规审查:收集是否告知授权、是否可删除、特征是否涉及敏感与公平性(性别、地域、疾病等变量在信贷、招聘场景可能构成歧视)。合规问题在项目后期发现,代价是推倒重来——数据方案设计阶段就该把合规当硬约束,而不是上线前的补丁。数据相关的更多视角见数据与数据集。
一个务实的决策顺序
先问数据量(小→传统 ML,大→再看任务),再问可解释性(强→树/线性模型),再问内容形态(非结构化→深度学习/大模型),最后问成本与延迟(敏感→轻模型)。能用简单方案解决就别上复杂方案——奥卡姆剃刀在 AI 选型里依然成立。完整的产品侧模型选型方法见模型能力与边界。
混合架构:传统 ML 与大模型分工
现实中大多数成熟产品不是二选一,而是混合:
- 路由分流:先用一个便宜的传统 ML 模型(或简单规则)判断请求难度——简单请求走规则/传统模型,复杂请求路由给大模型。客服系统经典打法:FAQ 命中走知识库,长尾开放问题才上大模型,成本能省一个量级。
- 传统 ML 做前置/兜底:意图分类用轻量模型实时拦截,大模型做深层理解;大模型输出用规则校验(格式、非法内容),两边各取所长。
- 大模型做特征:用大模型/Embedding 把非结构化内容(工单、评论)转成向量特征,再喂给传统 ML 分类器——「大模型生成特征、树模型做决策」是 2024 年之后表格任务上性价比极高的组合。
混合架构的关键是明确每个组件的职责与失败模式:传统 ML 负责量、大模型负责难,路由错误的代价要可量化、可回退。这也是AI 系统架构里「分层解耦」思想的落地。
练习:检验你的理解
- 信用卡欺诈检测:正样本 0.5%,业务上「漏掉一笔欺诈」比「误伤一个客户」贵 10 倍——核心指标该选什么?阈值该调高还是调低?
- 一个电商团队用「过去 7 天购买金额」预测「未来 30 天是否购买」,特征里包含订单日期——可能有什么泄漏风险?
- 公司让你给「客服工单自动分类」选方案:2 万条标注工单、需要向监管解释分类依据——传统 ML 还是大模型?为什么?
- 某推荐团队模型上线后点击率稳步下滑,而特征分布检查发现「近 30 天登录天数」的均值在持续下降——这说明了什么?应该先做什么?
参考答案提示:1) 核心指标选召回率,F1 作辅助;阈值应调低(宁可多报,不能漏)。2) 「过去 7 天购买金额」若包含未来信息、或订单日期与预测窗口重叠,就是泄漏;测试集应按时序留出。3) 数据量中等、强可解释 → 传统 ML(树模型)优先;大模型做特征或兜底。4) 特征分布漂移,模型输入环境变了——先排查业务原因(是用户结构变化还是数据口径变化),再决定重训或修数据,而不是盲目调参。
来源说明
本文为原创整理,写作时参考以下来源(引用日期:2026-08-23),概念与结论以所列权威来源为准。
AIGC-Interview-Book(预取参考,原创转述) - 机器学习基础概念知识点、经典机器学习算法知识点、模型评估知识点、机器学习优化方法知识点、损失函数知识点(微信读书《AIGC 面试指南》,WeThinkIn 团队)
课程笔记(结构参考,未照抄) - 地球科学大数据课程笔记:2026-03-06(导论)、2026-03-13(预处理)、2026-03-20(回归 + K-means)、2026-03-27(朴素贝叶斯/决策树/SVM)、2026-04-03(SVM 进阶 + 评估 + ANN 入门)
经典论文与教材 - 李航《统计学习方法》(第 1 版,清华大学出版社)——决策树、SVM、朴素贝叶斯、KNN 等算法的权威中文教材 - scikit-learn 官方文档(https://scikit-learn.org/stable/):预处理、交叉验证、聚类与集成方法的工程细节 - XGBoost 论文:Chen T, Guestrin C. XGBoost: A Scalable Tree Boosting System. KDD 2016(https://arxiv.org/abs/1603.02754) - 周志华《机器学习》(西瓜书,清华大学出版社)——集成学习、偏差-方差分解的经典论述
发现错误?想一起完善? 在 GitHub 上编辑此页!
本页面贡献者:AI-PM Wiki Team
本页面的全部内容在 CC BY-SA 4.0 和 SATA 协议之条款下提供,附加条款亦可能应用