跳转至

机器学习基础

机器学习基础

机器学习是「AI 基础」的地基。今天所有的大模型、推荐系统、风控模型、图像识别,本质上都是机器学习在不同数据形态上的延伸。这篇文章不假设你写过代码:把机器学习是什么、项目怎么做、主流算法各解决什么问题、模型怎么评估讲全,每节末尾给出产品经理视角。想接着往下学,看深度学习基础Transformer 架构;大模型侧的完整图景见大模型基础

机器学习是什么

机器学习(Machine Learning)是让计算机从数据中自动发现规律、并用规律做预测或决策的技术,核心特点是不需要人把规则一条条写死。

「机器学习」一词最早由 Arthur Samuel 在 1959 年提出,他用一个能自我对弈提高水平的西洋跳棋程序说明了「学习」的含义:程序没有被告知每一步怎么走,而是在大量对局数据中自己总结出好棋与坏棋。半个多世纪后,这个思想长成了今天 AI 行业的主干——从垃圾邮件过滤、信用卡风控、推荐系统,到图像识别、语音助手,再到 ChatGPT 这类大模型,底层都是同一个范式:数据 + 算法 → 模型 → 预测

机器学习有三个要素,缺一不可:

  • 数据:学习的原材料,决定上限。数量、质量、代表性、标签准确度,每一项都是产品经理能直接影响的。
  • 算法:学习的规则(拟合方式),决定「逼近上限」的效率。
  • 算力:学习的体力,数据与算法再好,跑不动也白搭——这也是深度学习时代算力成为战略资源的原因。

与传统编程的对比

传统编程是人写规则,机器执行规则;机器学习是人给数据,机器自己学规则。这是两种完全不同的生产逻辑:

维度传统编程机器学习
输入代码(规则)数据 + 标签(答案)
过程人分析问题、写死逻辑算法从数据中拟合规律
输出确定性的程序行为概率性的预测结果
典型问题「如果金额 > 1 万就转人工审核」「预测这笔交易欺诈的概率」
维护方式改规则换数据、重训练

机器学习的核心信念是:规律藏在数据里,只要数据足够多、质量足够好,算法就能把它学出来。这也是为什么行业内常说「数据和特征决定了机器学习的上限,模型和算法只是逼近这个上限」——规则是人拍脑袋定的,而数据是现实世界的投影,上限在数据侧。

学习类型:四大类

按「有没有标签、标签是什么」,机器学习可以分为四种学习方式:

类型数据形态目标代表任务代表算法
监督学习输入 + 标签学输入到输出的映射分类、回归逻辑回归、决策树、SVM、神经网络
无监督学习只有输入发现数据内在结构聚类、降维、异常检测K-means、层次聚类、DBSCAN、PCA
半监督学习少量标签 + 大量无标签用无标签数据辅助学习医学影像分类等标注贵的场景自训练、图神经网络
强化学习无标签,只有奖励信号学策略,最大化长期收益游戏 AI、机器人控制、推荐Q-learning、DQN、策略梯度
  • 监督学习分两类任务:输出是离散类别叫分类(垃圾邮件与否),输出是连续数值叫回归(房价预测)。
  • 无监督学习没有「标准答案」,它找的是数据本身的形状:哪些样本天然扎堆(聚类)、哪些维度冗余可以压缩(降维)。
  • 半监督学习的现实动机很直白:标注很贵。一万张图人工标注要花几天,但无标签数据几乎零成本,先用少量标注带一带、再让模型在无标签数据上自我增强,是典型的工程打法。
  • 强化学习的学习信号不是「对错」而是「奖励」:智能体尝试动作、环境给反馈、它调整策略让累计奖励最大。AlphaGo、自动驾驶决策模块、推荐系统里的探索策略都是这一路。

除了这四种主流类型,还有两个进阶概念值得知道:

  • 自监督学习:从数据自身构造标签(如把一句话挖掉一个词让模型猜),不需要人工标注,大模型的预训练全是这一路——BERT 的掩码语言建模、GPT 的「预测下一个词」都是自监督。
  • 迁移学习:把一个任务上学到的知识(模型参数、特征表示)搬到另一个相关任务,小数据任务借大模型/预训练模型的能力起跑,详见深度学习基础大模型基础

判别式模型与生成式模型

按「学什么」,模型还可以分为两派:

判别式模型生成式模型
学什么直接学决策边界:给定输入,类别是什么学数据本身长什么样:每个类别下数据如何分布
数学对象条件概率 P(类别输入)
代表逻辑回归、SVM、决策树、神经网络朴素贝叶斯、高斯混合模型、隐马尔可夫、扩散模型
能力分类、回归分类 + 生成新样本(图像/文本/音频)
特点分类精度高、参数少能理解数据分布、能生成,但计算重、分类往往不如判别式

产品经理记住一条就够:生成式模型能「无中生有」,判别式模型只会「判断」。今天的大模型之所以能写文章、画图,是因为它们本质上是超大规模的生成式模型。

产品经理记忆点

你不需要记住每种算法的公式,但要能回答三个问题:这个任务有没有标签(决定用监督还是无监督)、标签是什么形态(决定是分类还是回归)、错了的代价是什么(决定评估指标,见「模型评估」一节)。

机器学习项目流程

一个机器学习项目从立项到上线,标准流程是七步。每一步都有产品经理的参与点:

  1. 问题定义:把业务问题翻译成机器学习问题。这一步最容易出错:业务要「提升转化率」,但模型能做的只是「预测每个用户点击的概率」——目标错配是项目失败的常见原因。
  2. 数据收集与清洗:确定数据来源(业务库、埋点、第三方)、数据口径、时间范围;清洗解决重复、缺失、格式错误。PM 要确认数据的代表性:只收集了旺季数据,模型到了淡季就失灵。
  3. 特征工程:把原始数据加工成模型能用的特征。这是传统机器学习里最花时间、也最决定上限的一步(详见下节)。
  4. 模型选择:根据数据量、任务类型、可解释性要求选算法。没有免费的午餐——没有任何算法在所有问题上都最好,靠经验和交叉验证比较。
  5. 训练:把训练集喂给算法,调整参数使损失最小。超参数(学习率、树深度、K 值)的调整是工程师的主场,PM 关心的是训练周期与算力成本。
  6. 评估:用测试集客观衡量模型表现。这一步最容易自欺欺人:用训练过的数据回测、只看准确率、拿历史分布当未来分布,都会让「看起来很好」的模型上线即翻车。评估方法论详见评估与评测
  7. 上线与迭代:模型上线只是开始。数据分布会漂移(用户习惯变了、商品结构变了),需要监控指标、定期重训;PM 要为模型建「体检机制」——准确率跌到阈值就告警、触发人工复核或回滚。
最常见的翻车点

项目死在评估缺失和数据问题上的概率远大于死在算法选型上。「再调一调模型就好了」通常是错觉——先检查数据有没有问题、评估是不是真的客观。

一个完整例子:信贷风控的全流程

把七步套到一个具体场景里,PM 参与点会清晰很多:

  1. 问题定义:业务目标「把坏账率从 5% 降到 3%」→ 模型任务「预测新申请用户的违约概率」,输出 0 到 1 的概率而非「批不批」——批不批是业务规则(概率 × 额度)的事,和模型解耦。
  2. 数据收集:历史申请信息 + 还款表现(标签:是否逾期 90 天)。标签要留出时间窗:用「申请时点」的特征预测「未来 6 个月」的表现,否则特征里混进未来信息就是泄漏。
  3. 特征工程:收入、负债率、征信查询次数、申请时段……工程师负责加工,风控专家负责给「规则特征」(如「近期多头借贷次数」),PM 负责对齐特征口径与合规边界(哪些变量不能用,如性别、地域,涉公平性)。
  4. 模型选择:可解释性要求高(监管要解释拒贷原因)→ 逻辑回归或树模型,不用深度学习。
  5. 训练:正负样本天然不平衡(违约是小概率),要处理类别不平衡;定期重训的节奏要提前定(数据分布随经济周期漂移)。
  6. 评估:测试集用时序留出——拿最近 6 个月的真实表现当测试集,而不是随机抽样,否则高估线上效果;核心指标结合业务代价:漏掉一笔坏账损失 X,误拒一个好客户损失 Y。
  7. 上线与迭代:监控线上违约率、拒绝率、模型分漂移;新政策(如降息)会改变用户结构,模型要跟着重训。

这个例子里,算法只占项目的一小部分,数据、评估、监控才是决定成败的大头——所有 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 的流程只有四步,循环到收敛:

  1. 初始化:随机选 K 个点当簇中心;
  2. 分配:每个样本归到距离最近的中心;
  3. 更新:把每个簇的中心移到簇内所有样本的均值位置;
  4. 重复第 2、3 步,直到中心不再变化。

  5. K 的选择——肘部法则:画「K 值与簇内误差」的曲线,误差下降变缓的拐点(像手肘)就是合适的 K。更严谨的可以看轮廓系数。

  6. 三个软肋: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 不依赖具体阈值,也不受类别不平衡的直接影响,适合在「还没定阈值」的阶段比较模型。

过拟合、欠拟合与偏差-方差权衡

  • 过拟合:训练集好、测试集差——模型背了答案。对策:更多数据、降低模型复杂度、正则化、早停、集成。
  • 欠拟合:训练测试都差——模型没学到规律。对策:更复杂的模型、更有效的特征、加大训练力度。
  • 偏差-方差权衡:偏差是「模型假设本身离真相多远」(欠拟合之源),方差是「换一批训练数据结果抖多厉害」(过拟合之源)。总误差 = 偏差 + 方差 + 噪声。调模型本质是在两者之间找平衡:模型越复杂,偏差降、方差升。交叉验证就是用来找这个平衡点的仪表盘
上线前的最后三问
  1. 测试集是模型从没见过的吗(防泄漏)?
  2. 核心指标符合业务代价吗(漏报和误报哪个更贵)?
  3. 训练分布和上线后的真实分布一致吗(防分布漂移)?

产品视角:传统 ML 与大模型的取舍

大模型把「什么都能聊」做到了极致,但不是所有任务都该上大模型。传统机器学习(树模型、线性模型、SVM、K-means)在大量场景下依然是最优解。

场景特征推荐方向原因
表格数据(结构化特征)传统 ML(XGBoost 等)特征有意义、数据量中等时,树模型又快又准又可解释
数据量小(万级以下)传统 ML大模型在小数据上过拟合或依赖微调成本,传统 ML 更稳
强可解释/合规要求决策树、逻辑回归金融、医疗要讲清「为什么」,树路径可直接展示
低延迟、低成本、端侧传统 ML模型小、推理毫秒级,移动端/实时风控的刚需
非结构化内容(文本/图像/语音)大模型或深度学习特征无法手工设计,表示学习才是正解
开放域对话、长文本理解、跨任务通用大模型一个模型覆盖多种任务,免去逐任务建模
需要常识与泛化、冷启动没数据大模型预训练知识自带「先验」,零样本也能干活

ML 项目最常见的失败原因(按发生率排序,几乎与算法无关):

  1. 数据问题:数据量不够、标签错、分布与线上不一致、泄漏——「垃圾进,垃圾出」。
  2. 评估缺失:没有独立测试集、只看训练集指标、指标选错(类别不平衡还看准确率)、拿历史回测当上线成绩。
  3. 目标错配:业务目标(转化率)与模型目标(点击概率)没有对齐,或者指标优化了但业务没动——模型只是系统的一环,前面的漏斗、后面的落地机制没接上,再准也没用。
  4. 迭代机制缺失:模型上线即失联,不监控、不重训,三个月后分布漂移,准确率悄悄跌破底线。
  5. 团队能力错配:为了「上 AI」而上深度学习,实际场景传统 ML 就够——复杂度是成本,不是 KPI。
别忘了数据合规

训练与上线数据涉及个人信息时,要过数据合规审查:收集是否告知授权、是否可删除、特征是否涉及敏感与公平性(性别、地域、疾病等变量在信贷、招聘场景可能构成歧视)。合规问题在项目后期发现,代价是推倒重来——数据方案设计阶段就该把合规当硬约束,而不是上线前的补丁。数据相关的更多视角见数据与数据集

一个务实的决策顺序

先问数据量(小→传统 ML,大→再看任务),再问可解释性(强→树/线性模型),再问内容形态(非结构化→深度学习/大模型),最后问成本与延迟(敏感→轻模型)。能用简单方案解决就别上复杂方案——奥卡姆剃刀在 AI 选型里依然成立。完整的产品侧模型选型方法见模型能力与边界

混合架构:传统 ML 与大模型分工

现实中大多数成熟产品不是二选一,而是混合:

  • 路由分流:先用一个便宜的传统 ML 模型(或简单规则)判断请求难度——简单请求走规则/传统模型,复杂请求路由给大模型。客服系统经典打法:FAQ 命中走知识库,长尾开放问题才上大模型,成本能省一个量级。
  • 传统 ML 做前置/兜底:意图分类用轻量模型实时拦截,大模型做深层理解;大模型输出用规则校验(格式、非法内容),两边各取所长。
  • 大模型做特征:用大模型/Embedding 把非结构化内容(工单、评论)转成向量特征,再喂给传统 ML 分类器——「大模型生成特征、树模型做决策」是 2024 年之后表格任务上性价比极高的组合。

混合架构的关键是明确每个组件的职责与失败模式:传统 ML 负责量、大模型负责难,路由错误的代价要可量化、可回退。这也是AI 系统架构里「分层解耦」思想的落地。

练习:检验你的理解
  1. 信用卡欺诈检测:正样本 0.5%,业务上「漏掉一笔欺诈」比「误伤一个客户」贵 10 倍——核心指标该选什么?阈值该调高还是调低?
  2. 一个电商团队用「过去 7 天购买金额」预测「未来 30 天是否购买」,特征里包含订单日期——可能有什么泄漏风险?
  3. 公司让你给「客服工单自动分类」选方案:2 万条标注工单、需要向监管解释分类依据——传统 ML 还是大模型?为什么?
  4. 某推荐团队模型上线后点击率稳步下滑,而特征分布检查发现「近 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) - 周志华《机器学习》(西瓜书,清华大学出版社)——集成学习、偏差-方差分解的经典论述