机器学习概览
机器学习不是魔法,它只是"让计算机从数据中找规律,不用你把规则一条条写死"。你给它一万张猫和狗的图片,它自己学会怎么分辨——你没有写"尖耳朵=猫"这种规则。
什么是机器学习
论大白话定义
传统编程:你写规则 + 数据 → 得到答案。
机器学习:你给数据 + 答案 → 它自己总结出规则。
Tom Mitchell 的学术定义:一个程序从经验 E 中学习任务 T、性能指标 P,如果它在 T 上的性能(按 P 衡量)随 E 提升而提升,就说它在从 E 学习。
机器学习分类
| 大类 | 标签 | 典型任务 / 算法 |
|---|---|---|
| 监督学习 | 有标签(X, y) | 分类(垃圾邮件)、回归(房价预测)。算法:线性/逻辑回归、SVM、树模型、神经网络。 |
| 无监督学习 | 只有 X,没有 y | 聚类(客户分群)、降维(PCA)、异常检测。 |
| 半监督学习 | 少量有标签 + 大量无标签 | 标注贵的场景(医学影像、文本分类)。 |
| 强化学习 | 通过奖励信号学习策略 | AlphaGo、机器人、游戏 AI、推荐系统。 |
监督学习:分类 vs 回归
论一句话区分
回归预测连续值(房价 350 万、气温 28.5℃);分类预测离散类别(垃圾邮件/正常、猫/狗)。输出是"哪一类"还是"多少",决定了用回归还是分类。
无监督学习:聚类 vs 降维
| 任务 | 说明 |
|---|---|
| 聚类 | 把相似的样本归成一簇(客户分群、异常检测)。 |
| 降维 | 把高维数据压到低维,保留主要信息(PCA、t-SNE)。 |
| 关联规则 | "买啤酒的人也买尿布",购物篮分析。 |
| 异常检测 | 找出和大多数不一样的点(信用卡欺诈)。 |
半监督与强化学习
论两种特殊场景
半监督学习:标注贵、无标注数据便宜。先用少量标注训个 baseline,用它给无标注数据打标签,再一起训(伪标签 / Pseudo-labeling)。强化学习:没有标签,只有奖励信号。智能体在环境里试错,最大化累计奖励。AlphaGo、机器人、游戏 AI 都是这条路。
标准流程八步
训练集 / 验证集 / 测试集
| 集合 | 比例 | 用途 |
|---|---|---|
| 训练集 train | ~70% | 模型在上面学习参数。 |
| 验证集 val | ~15% | 调超参数、早停、选模型。不能参与训练。 |
| 测试集 test | ~15% | 最终评估,只碰一次,用来报告上线指标。 |
只有 train/test 的话,你调超参数调到"测试集表现最好",相当于偷看答案。验证集是"模拟考试",让你调参;测试集是"高考",考完就不能再看。测试集只能用一次。
过拟合 vs 欠拟合 vs 偏差-方差权衡
| 状态 | 表现 | 怎么办 |
|---|---|---|
| 欠拟合 (高偏差) | 训练集和测试集都差。模型太简单,连训练数据都没学会。 | 换复杂模型、加特征、减少正则、训练更久。 |
| 刚好 | 训练集好,测试集也接近训练集。 | 就它了。 |
| 过拟合 (高方差) | 训练集极好,测试集差。模型"背答案"了。 | 加数据、简化模型、正则化、Dropout、早停、数据增强。 |
论偏差-方差权衡
总误差 = 偏差² + 方差 + 不可约误差。偏差:模型太简单导致的系统性错误(比如用直线拟合曲线);方差:模型对训练集微小波动太敏感(换一批训练数据,模型变得完全不一样)。模型越复杂,偏差越低、方差越高。我们要找"甜区"。
No Free Lunch 定理
论没有"万能模型"
Wolpert 1996 年证明:在所有可能的问题上平均,没有任何一个算法永远优于另一个。翻译成人话:别迷信"XGBoost 天下第一",表格数据上它强,图像上还是 CNN 强,文本上还是 Transformer 强。选模型要根据数据、任务、约束。
数据泄漏:最隐蔽的坑
基线模型怎么选
| 数据类型 | baseline 推荐 |
|---|---|
| 表格分类 | 逻辑回归 → 随机森林 → XGBoost |
| 表格回归 | 线性回归 → 随机森林 → XGBoost |
| 图像分类 | 预训练 ResNet 微调(别从零训) |
| 文本分类 | TF-IDF + 逻辑回归 / 朴素贝叶斯 → BERT 微调 |
| 序列预测 | ARIMA / 线性 → LSTM / Transformer |
| 推荐 | 协同过滤 → DeepFM |
机器学习小史
论十年一个台阶
1950s 感知机;1980s 反向传播;1990s SVM/Boosting;2010s 深度学习爆发(ImageNet 2012);2017 Transformer;2022 大模型(ChatGPT)。每十年一个台阶,但核心思想(数据→特征→模型→评估)没变。
本章面试题
Q1. 监督学习和无监督学习的区别?各举一个应用。
查看答案
监督学习有标签,学 X→y 的映射(垃圾邮件分类);无监督学习无标签,自己找结构(客户分群)。
Q2. 怎么判断过拟合?
查看答案
训练集准确率远高于验证集(如 99% vs 70%);学习曲线里验证集误差开始上升。
Q3. 为什么测试集不能用来调参?
查看答案
用测试集调参等于"用高考题复习",指标虚高、上线就崩。测试集只能最终评估一次。
Q4. 偏差和方差哪个对应过拟合?
查看答案
高方差 = 过拟合(模型对训练数据太敏感);高偏差 = 欠拟合。