机器学习概览
这篇讲清楚机器学习到底在做什么:它和传统编程的区别、三大类问题、一条完整的建模流程,以及绕不开的几个术语。读完你能判断一个任务「该不该上机器学习」。
什么是机器学习
传统编程是人写规则,数据进来、按规则算出结果。机器学习反过来:把大量「输入 + 期望输出」喂给算法,让它自己学出一套规则(模型),再用这套规则去预测新数据。
传统编程: 规则 + 数据 ──► 结果
机器学习: 数据 + 结果 ──► 规则(模型)适合用机器学习的,通常是规则太复杂、写不出来,但有大量历史数据的问题:识别图片里的猫、判断邮件是不是垃圾邮件、预测下个月的销量。如果规则简单清晰(比如「金额大于 1000 就打折」),直接写 if 更可靠,别硬上模型。
三大类问题
按「学习时有没有标准答案」划分:
- 监督学习(Supervised):每条训练数据都带标签(标准答案)。又分两类:
- 分类(Classification):输出是离散类别,如「垃圾邮件 / 正常邮件」。
- 回归(Regression):输出是连续数值,如「房价」。
- 无监督学习(Unsupervised):数据没有标签,让模型自己找结构。典型是聚类(把相似用户分群)和降维(把高维特征压缩到低维便于可视化)。
- 强化学习(Reinforcement):没有现成答案,靠「试错 + 奖励信号」学习策略,如下棋、机器人控制、推荐系统的长期收益优化。
现在火热的大语言模型,预训练阶段是自监督学习(用文本自己的下一个词当标签,无需人工标注),对齐阶段则用到强化学习(RLHF)。本质仍是上面几类的组合。
一条完整的建模流程
实际项目里,写模型代码往往只占两成时间,前后的数据与评估才是大头:
### 定义问题
先想清楚要预测什么、用什么指标衡量好坏。「预测用户会不会流失」是分类,指标可能是召回率;「预测订单金额」是回归,指标可能是误差大小。
### 准备数据
收集、清洗、处理缺失值与异常值,把原始字段转成模型能用的**特征(feature)**。这一步质量直接决定上限——「垃圾进,垃圾出」。
### 划分数据集
切成训练集 / 验证集 / 测试集,避免「用考试题复习又拿同一套题考试」。详见 [模型评估与过拟合](../02模型评估与过拟合/)。
### 训练模型
选一个算法(线性回归、决策树、神经网络……),用训练集拟合,得到一组参数。
### 评估与调优
在验证集上看指标,调超参数、换特征或换模型,反复迭代。
### 部署与监控
上线后持续监控效果,数据分布会随时间漂移(data drift),需要定期重新训练。
必须记住的术语
| 术语 | 含义 |
|---|---|
| 特征 Feature | 模型的输入变量,如「面积」「房龄」 |
| 标签 Label | 监督学习里的标准答案,如「房价」 |
| 参数 Parameter | 模型从数据中学到的值,如线性回归的权重 |
| 超参数 Hyperparameter | 训练前人为设定、不由数据学出,如学习率、树的深度 |
| 损失函数 Loss | 衡量预测与真实值差距的函数,训练就是最小化它 |
| 泛化 Generalization | 模型在没见过的数据上的表现,这才是真正目标 |
一句话小结
机器学习是「用数据学规则」。能不能成,七分看数据与问题定义,三分看模型。下一篇我们把「怎么判断模型好不好、怎么防止它只会背题」讲透。
最后更新于