AI 学习路线 04:机器学习到底在学什么?从分类、回归到模型评估

AI 学习路线 04:机器学习到底在学什么?从分类、回归到模型评估

前言

前面几篇我们已经建立了 AI 的整体认知,补了 Python、数据处理和数学基础。

这一篇开始进入很多人印象中最"正统"的 AI 主题:机器学习

但机器学习并不是一上来就背算法名字:

text 复制代码
线性回归、逻辑回归、决策树、随机森林、SVM、K-Means......

更重要的是先搞懂这几个问题:

  1. 机器学习到底在学什么?
  2. 监督学习、无监督学习、强化学习有什么区别?
  3. 为什么要划分训练集、验证集、测试集?
  4. 什么是过拟合、欠拟合、泛化能力?
  5. 回归、分类、聚类分别解决什么问题?
  6. 怎么选择常见算法?
  7. 为什么不能只看准确率?

这篇文章会尽量用图、例子和实战代码,把机器学习的基础框架讲清楚。

一、机器学习到底在学什么?

机器学习的核心可以概括成一句话:

text 复制代码
从数据中学习规律,然后用到新数据上。

比如:

历史数据 学到的规律 用于预测
历史房屋数据 面积、城市、楼层、房龄和价格的关系 新房子的价格
历史邮件样本 垃圾邮件常见特征 新邮件是否垃圾
用户行为记录 哪些用户容易流失 新用户是否会流失

先看机器学习的整体流程:

传统程序更像是人写规则:

text 复制代码
如果标题包含"中奖""免费领取",就判断为垃圾邮件。

机器学习则更像是:

text 复制代码
给模型很多历史邮件,并告诉它哪些是垃圾邮件、哪些不是。
模型自己从数据里学习垃圾邮件的特征。
以后来了新邮件,模型自己判断。

所以机器学习不是简单"背数据",而是希望学到能迁移到新样本上的规律。

这就引出了一个重要词:

text 复制代码
泛化能力:模型在没见过的新数据上的表现能力。

二、三种学习范式:监督、无监督、强化学习

机器学习常见的三种学习范式是:

学习方式 数据特点 目标 例子
监督学习 有输入和正确答案 学会从输入预测答案 房价预测、垃圾邮件识别
无监督学习 只有输入,没有标签 从数据中发现结构 用户分群、主题聚类
强化学习 行动后有奖励反馈 学会更好的策略 游戏 AI、机器人控制

1. 监督学习

监督学习的数据通常长这样:

text 复制代码
输入 X -> 正确答案 y

比如房价预测:

面积 城市 楼层 房价
100 平 北京 10 层 500 万
80 平 上海 6 层 400 万
120 平 杭州 15 层 450 万

这里:

text 复制代码
输入 X:面积、城市、楼层
答案 y:房价

一句话记忆:

text 复制代码
有标准答案,就是监督学习。

2. 无监督学习

无监督学习没有提前给好的标签。

它不是问:

text 复制代码
这个样本的标准答案是什么?

而是问:

text 复制代码
这些数据内部有没有自然形成的结构?
哪些样本彼此更相似?

比如用户分群:

模型可能会自动发现:

text 复制代码
高消费、高登录频率用户是一类。
低消费、低登录频率用户是一类。

一句话记忆:

text 复制代码
没有标签,让模型自己找结构,就是无监督学习。

3. 强化学习

强化学习关注的是:

text 复制代码
智能体采取行动 -> 环境给奖励或惩罚 -> 智能体改进策略

比如游戏 AI:

text 复制代码
赢了:奖励高
输了:奖励低

它不是每一步都有人告诉它标准答案,而是通过不断尝试,学会哪些动作更容易带来长期收益。

三、为什么要划分训练集、验证集、测试集?

机器学习真正关心的不是模型在"见过的数据"上表现多好,而是:

text 复制代码
模型遇到没见过的新数据时,还能不能表现好。

所以我们通常会把数据分成:

数据集 作用 类比
训练集 让模型学习参数和规律 平时刷题
验证集 调参、选模型 模拟考试
测试集 最终评估泛化能力 正式考试

如果你把全部数据都拿来训练,然后又用同一批数据测试,就会出现一个问题:

text 复制代码
模型可能只是记住了训练数据。

这就像学生把练习题答案背下来了:

text 复制代码
练习册原题:100 分
换一套新题:40 分

看起来学得很好,其实没有真正掌握规律。

四、过拟合、欠拟合、泛化能力

模型学习状态大致可以分成三种:

状态 训练集表现 新数据表现 问题
欠拟合 没学明白
正常学习 学到规律
过拟合 很好 背得太死

欠拟合

欠拟合是模型太弱,或者训练不充分,连训练数据里的规律都没学好。

常见表现:

text 复制代码
训练集表现差
测试集表现也差

常见原因:

  • 模型太简单
  • 特征太少
  • 训练不充分
  • 数据质量太差

过拟合

过拟合是模型在训练集上表现很好,但在新数据上表现差。

常见表现:

text 复制代码
训练集准确率 99%
测试集准确率 70%

这说明模型可能把训练数据中的细节、噪声、偶然规律都记住了。

缓解过拟合的常见方式:

方法 直觉
增加训练数据 让模型看到更多变化
简化模型 降低死记细节的能力
正则化 惩罚过度复杂的模型
早停 验证集变差时停止训练
数据增强 让模型看到更多变体

一句话总结:

text 复制代码
欠拟合:旧题新题都不会。
正常学习:旧题新题都还行。
过拟合:旧题很会,新题不会。

五、回归、分类、聚类:先看任务类型

很多机器学习问题,先不要急着问"用什么算法",要先问:

text 复制代码
我要预测的结果是什么?
任务 目标 例子
回归 预测连续数值 房价、销量、温度
分类 预测离散类别 是否欺诈、是否流失、图片类别
聚类 把相似样本分组 用户分群、商品分组
降维 压缩特征维度 可视化、特征压缩

判断口诀:

text 复制代码
数值预测是回归。
类别预测是分类。
无标签分组是聚类。

举几个例子:

场景 输出结果 任务类型
预测房价 500 万 连续数值 回归
判断邮件是否垃圾邮件 离散类别 分类
预测用户消费等级高 / 中 / 低 离散类别 分类
预测用户下月消费金额 连续数值 回归
把用户自动分成 5 组 无标签分组 聚类

面试中如果问"分类和回归有什么区别",可以这样答:

text 复制代码
分类是预测离散类别,比如是否欺诈、是否流失。
回归是预测连续数值,比如房价、销量、温度。
判断时主要看目标变量是类别还是连续值。

六、常见算法怎么选?

机器学习算法很多,但初学阶段先建立一个选择地图:

算法 直觉 常见场景
线性回归 用一条线拟合数据 预测连续值
逻辑回归 输出类别概率 二分类基线
决策树 像一组 if-else 判断 可解释分类 / 回归
随机森林 多棵树投票 稳定性更好
SVM 找到分类边界 中小数据分类
K-Means 按距离聚类 用户分群
PCA 压缩维度 降维、可视化

1. 线性回归

线性回归主要用于预测连续数值。

可以粗略理解成:

text 复制代码
房价 = w1 * 面积 + w2 * 房龄 + w3 * 地段 + b

优点是简单、快、容易解释,适合作为回归任务的第一个基线模型。

2. 逻辑回归

逻辑回归名字里有"回归",但常用于分类,尤其是二分类。

比如:

text 复制代码
用户流失概率 = 0.82

然后根据阈值判断:

text 复制代码
概率 >= 0.5 -> 会流失
概率 < 0.5 -> 不会流失

3. 决策树和随机森林

决策树像一组 if-else 规则:

text 复制代码
如果消费金额 > 1000
  再看登录频率是否 > 5
    如果是:高价值用户
    如果否:中价值用户
否则:普通用户

单棵树容易过拟合,所以随机森林让很多棵树一起投票,通常更稳定。

4. K-Means

K-Means 用于没有标签时的自动分组。

它的大致流程:

text 复制代码
1. 先指定 K,比如分成 3 组。
2. 随机放 3 个中心点。
3. 每个样本归到最近中心点。
4. 重新计算每组中心点。
5. 重复,直到分组稳定。

注意:

text 复制代码
K-Means 需要提前指定 K。

5. PCA

PCA 用于降维,不是直接做预测。

它可以把很多特征压缩成更少的特征,用于:

  • 高维数据可视化
  • 降低特征维度
  • 去除一部分冗余信息

七、模型评估指标:别只看准确率

模型评估指标要和业务目标一致。

分类任务常看:

text 复制代码
Accuracy、Precision、Recall、F1、AUC

回归任务常看:

text 复制代码
MAE、MSE、RMSE、R2

推荐排序常看:

text 复制代码
NDCG、MAP、Hit Rate

1. 混淆矩阵

分类指标的基础是混淆矩阵。

以欺诈检测为例:

名称 含义 例子
TP 真实是正类,预测也是正类 欺诈被抓到
FP 真实是负类,预测成正类 正常交易被误伤
FN 真实是正类,预测成负类 欺诈被漏掉
TN 真实是负类,预测也是负类 正常交易被放行

2. Precision 和 Recall

Precision 关注:

text 复制代码
模型预测为正类的样本里,有多少是真的正类?

如果 Precision 低,说明误伤多。

Recall 关注:

text 复制代码
真实正类里,模型抓出来了多少?

如果 Recall 低,说明漏掉多。

可以这样记:

text 复制代码
怕误伤,看 Precision。
怕漏掉,看 Recall。

3. 为什么准确率可能误导?

比如欺诈检测:

text 复制代码
10000 笔交易里,只有 10 笔欺诈。

如果模型全部预测为"正常":

text 复制代码
准确率 = 9990 / 10000 = 99.9%

看起来很高,但一个欺诈都没抓到。

这说明:

text 复制代码
样本极度不均衡时,只看 Accuracy 很危险。

4. 回归指标

回归任务关心预测值离真实值有多远。

指标 直觉
MAE 平均每次预测差多少
MSE 平方误差,更重视大误差
RMSE MSE 开方,单位回到原始目标单位
R2 模型解释了目标变化的多少

如果预测房价,MAE = 20 万,业务方很容易理解:

text 复制代码
平均预测误差约 20 万。

八、一个最小 scikit-learn 实战

下面用鸢尾花数据集做一个分类任务。

重点不是背 API,而是理解机器学习流程:

python 复制代码
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.tree import DecisionTreeClassifier
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score, classification_report

data = load_iris()
X = data.data
y = data.target

X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42
)

models = {
    "逻辑回归": LogisticRegression(max_iter=200),
    "决策树": DecisionTreeClassifier(max_depth=3, random_state=42),
    "随机森林": RandomForestClassifier(n_estimators=100, random_state=42),
}

for name, model in models.items():
    model.fit(X_train, y_train)
    y_pred = model.predict(X_test)

    print("模型:", name)
    print("准确率:", accuracy_score(y_test, y_pred))
    print(classification_report(y_test, y_pred))

这段代码对应:

text 复制代码
加载数据
  -> 划分训练集和测试集
  -> 选择多个算法
  -> 分别训练
  -> 在测试集上预测
  -> 用指标评估

真实项目里也类似,只是数据准备、特征工程和评估会更复杂。

九、面试中可以怎么回答?

1. 监督学习、无监督学习、强化学习有什么区别?

text 复制代码
监督学习有输入和标签,目标是学习从输入到答案的映射,比如分类和回归。
无监督学习没有标签,目标是从数据中发现结构,比如聚类和降维。
强化学习通过行动和奖励学习策略,常见于游戏 AI、机器人控制等场景。

2. 为什么要划分训练集、验证集、测试集?

text 复制代码
训练集用于学习参数,验证集用于调参和选择模型,测试集用于最终评估模型在未见过数据上的泛化能力。
如果只看训练集效果,可能无法发现过拟合。

3. 什么是过拟合?

text 复制代码
过拟合是指模型在训练集上表现很好,但在未见过的新数据上表现差。
它说明模型可能记住了训练数据中的细节和噪声,而没有真正学到可泛化的规律。

4. 如何选择机器学习算法?

text 复制代码
我会先看任务类型。
如果是连续数值预测,可以先用线性回归做基线,再尝试树模型或集成模型。
如果是分类任务,可以先用逻辑回归做可解释基线,再尝试决策树、随机森林等模型处理非线性关系。
如果没有标签、目标是用户分群或发现结构,可以考虑 K-Means。
如果特征维度很高,可以用 PCA 做降维或可视化。
实际项目里还要结合数据规模、特征类型、解释性要求、评估指标和上线成本。

5. 如何选择评估指标?

text 复制代码
我会先看任务类型和业务代价。
分类任务中,如果类别均衡,可以看 Accuracy;如果样本不均衡,不能只看准确率,还要结合 Precision、Recall、F1、AUC。
如果业务更怕误伤,比如正常用户被错误拦截,就重点看 Precision。
如果业务更怕漏掉,比如欺诈、疾病筛查、安全风险,就重点看 Recall。
回归任务会看 MAE、MSE、RMSE、R2。
推荐或排序任务会看 NDCG、MAP、Hit Rate。
核心是让评估指标和业务目标一致。

十、常见误区

误区 更准确的理解
机器学习就是选算法 数据、特征、评估同样重要
训练集效果好就代表模型好 还要看测试集和泛化能力
准确率越高一定越好 样本不均衡时准确率可能误导
逻辑回归只能做回归 逻辑回归常用于分类,尤其是二分类
聚类就是分类 聚类通常没有标签,分类通常有标签
随机森林一定比决策树好 效果可能更稳,但解释性通常弱于单棵树
R2 高就一定业务可用 还要看实际误差能不能接受

十一、本篇小结

这篇文章我们完成了机器学习入门的核心框架:

  1. 机器学习是从数据中学习规律,并用到新数据上。
  2. 监督学习有标签,无监督学习没标签,强化学习通过奖励学习策略。
  3. 训练集用于学习,验证集用于调参,测试集用于最终评估泛化能力。
  4. 欠拟合是没学明白,过拟合是背得太死,泛化能力是新数据表现。
  5. 回归预测连续值,分类预测离散类别,聚类做无标签分组。
  6. 线性回归、逻辑回归、决策树、随机森林、K-Means、PCA 各有适用场景。
  7. 评估指标要和业务目标一致,不能只看 Accuracy。
  8. 怕误伤看 Precision,怕漏掉看 Recall,回归看误差,推荐看排序质量。

学到这里,你已经具备了理解传统机器学习项目的基本地图。

十二、下一篇预告

下一篇进入 深度学习

我们会继续讨论:

  • 神经网络基本结构是什么?
  • 激活函数、损失函数、优化器分别做什么?
  • 反向传播到底在传播什么?
  • CNN、RNN、LSTM、GRU 这些网络结构怎么理解?

机器学习像是在学习数据规律,深度学习则进一步让模型拥有更强的特征表达能力。

相关推荐
常宇杏起在1 小时前
AI安全专项:AI云服务的安全风险与防护策略
人工智能
cooldog123pp1 小时前
cplex完全安装手册,适配matlab和python!
人工智能·python·matlab·cplex
mimu34561 小时前
做PPT方案适合搭配哪些办公效率工具
人工智能
蓝速科技1 小时前
蓝速科技 AI 数字人部署与交互实战指南
人工智能·科技·交互
雪隐1 小时前
个人电脑玩AI-03让5060 Ti给你打工——paddleOCR
人工智能·后端
Coffeeee1 小时前
Codachi — 藏在 Claude Code 状态栏里的电子宠物
人工智能·程序员·claude
张某布响丸辣1 小时前
Spring AI 极简入门:Java 开发者快速上手 AI 开发
java·人工智能·spring·springai
Deepoch2 小时前
VLA多模态架构加持 采摘机器人实现精细化智能采收
人工智能·机器人·开发板·具身模型·deepoc·采摘
橘子星2 小时前
基于 Vite 的多模态生图前端工程实践
前端·javascript·人工智能