一、机器学习任务的类型
机器学习本质就是让计算机像人一样从经验(数据)中学习规律,不用我们手动写死规则。根据 "学习时有没有标准答案",分为三大类:
1.3.1 监督学习(有 "老师" 带的学习)
你可以把它想象成上课做题:老师给你一堆 "题目 + 标准答案",你做完后对照答案改错题,慢慢就学会了这类题的解法,以后遇到新题就能做对。
1.3.1.1 核心基础概念(一个一个讲透)
| 专业名词 | 人话翻译 | 生活例子 |
|---|---|---|
| 样本(实例) | 单个的 "题目" | 一道数学题、一张动物图片、一条你的网购记录 |
| 样本的输入 | 题目的 "已知条件" | 图片的像素点(比如这张图里有黄色和黑色条纹)、网购记录里的 "商品名、价格、购买时间" |
| 样本的标签 | 题目的 "标准答案" | 图片的答案是 "老虎"、网购记录的答案是 "你有没有退货(退 / 没退)" |
| 分类 | 标准答案是分类别、可数的(比如猫 / 狗、是 / 否),任务就是猜类别 | 猜这张图是猫还是狗、判断一封邮件是垃圾邮件还是正常邮件、诊断病人有没有得流感 |
| 回归 | 标准答案是连续的数字、可计算的(比如房价、温度),任务就是猜具体数值 | 预测一套 100㎡的房子卖多少钱、预测明天的气温是多少度、预测这家店下个月的销量 |
| 输入空间(特征空间) | 所有 "已知条件" 的集合 | 所有可能的 "房子面积、地段、楼层" 组合,凑在一起就是输入空间 |
| 输出空间 | 所有 "标准答案" 的集合 | 分类任务里是 {猫,狗},回归任务里是所有可能的房价(比如 0~1000 万) |
1.3.1.2 核心学习概念(零基础也能懂)
| 专业名词 | 人话翻译 | 生活例子 |
|---|---|---|
| 假设空间 | 模型的 "所有可能解题思路" | 预测房价时,模型可能猜 "房价 = 面积 ×1 万",也可能猜 "房价 = 面积 ×1 万 + 地段费 50 万",这些所有猜法的总和就是假设空间 |
| 目标函数 | 真实的 "解题公式"(我们永远不知道全貌) | 现实中房价的真实计算逻辑(比如受面积、地段、学区、房龄等 100 个因素影响),模型的目标就是无限接近这个公式 |
| 损失函数 | 衡量 "模型猜的答案" 和 "真实答案" 差多远(单个题目) | 模型猜房价是 200 万,真实房价是 220 万,损失就是 20 万。损失越小,猜得越准 |
| 代价函数 | 所有 "题目" 的损失平均值(衡量模型整体猜得准不准) | 做了 100 道房价预测题,把每道题的损失加起来除以 100,就是代价函数。训练模型就是让这个值尽量变小 |
| 正则项 | 给模型加的 "紧箍咒",防止模型 "耍小聪明" | 模型为了答对训练题,硬记 "某套 100㎡学区房卖 300 万",但换一套非学区房就不会了。正则项会惩罚这种 "死记硬背" 的行为 |
| 超参数 | 训练前我们手动设置的 "学习规则",不是模型自己学的 | 好比你做题前决定 "每天做 10 道题"(这是你手动定的,不是做题学来的)。比如决策树的 "最大深度"、学习率(模型每次改错题的幅度) |
| 训练误差(经验误差) | 模型在 "上课做的题"(训练集)上的错题率 | 你做课本例题的正确率是 90%,这个正确率对应的错误率就是训练误差 |
| 泛化误差 | 模型在 "新题"(没见过的数据)上的错题率 | 你期末考试的正确率对应的错误率,这才是真正衡量你学没学会的指标 |
| 过拟合 | 模型 "死记硬背" 例题,例题做得全对,考试全错 | 你把课本例题的答案全背下来,课堂小测满分,但期末考试遇到新题就不会了 |
| 欠拟合 | 模型太笨,连例题都学不会,例题和考试都错很多 | 你上课没听懂,例题做不对,考试自然也考不好 |
| 奥卡姆剃刀原则 | 选模型的 "懒人法则":如果两个模型效果差不多,选简单的那个 | 两个模型都能预测房价,一个模型公式是 "房价 = 面积 ×1 万",另一个是 "房价 = 面积 ×1 万 + 地段费 - 房龄费 + 税费...",选简单的第一个 |
1.3.2 无监督学习(自学成才,没有老师)
相当于你自己整理书架 :没人告诉你哪本书该放哪一类,你根据书的 "封面颜色、厚度、书名",自己把相同类型的书摆在一起 ------ 这就是无监督学习,没有标准答案,自己找规律。
训练数据只有 "输入"(书的特征),没有 "标签"(该放哪类)。常见任务:
- 降维:把复杂信息变简单。比如你有 "身高、体重、腰围、臀围"4 个数据,其实可以合并成 1 个 "体型指数",信息没丢,但更简单好记。
- 聚类:把相似的东西归为一类。比如电商平台根据你的购买记录,把你和 "喜欢买口红的人" 归为一类,和 "喜欢买球鞋的人" 分开。
- 概率密度估计:判断数据正不正常。比如班里同学身高大多在 1.6~1.8 米,突然来个 2.5 米的,模型会判断这个数据 "不正常"。
补充:强化学习(试错学习,像玩游戏)
你没列,但提一下更完整:相当于玩闯关游戏。你操控角色往前走,碰到陷阱就掉血(惩罚),吃到金币就加分(奖励)。玩多了,你就知道 "走左边有金币,走右边有陷阱",慢慢就学会了通关策略。
- 例子:AlphaGo 下围棋(赢了就是奖励)、自动驾驶(安全开车就是奖励,撞车就是惩罚)。
二、1.4 机器学习项目的一般步骤(像做实验一样)
零基础可以把它理解成 **"做一道菜" 的步骤 **,从买菜到上桌,每一步都不能少。预处理和特征工程是最关键的两步,比选什么模型重要得多!
-
明确业务目标(确定做什么菜)
- 先想清楚:你要解决什么问题?是 "判断图片是不是猫"(分类),还是 "预测蛋糕卖多少钱"(回归)?
- 定好 "好不好吃" 的标准:比如分类任务看 "猜对的比例",回归任务看 "猜的价格和真实价格差多少"。
-
数据收集(买菜)
- 收集和目标相关的数据:比如预测蛋糕价格,要收集 "蛋糕尺寸、奶油种类、水果用量、品牌" 等数据。
- 注意:别收集没用的数据(比如蛋糕店老板的生日),也别偷别人的隐私数据。
-
数据预处理(洗菜切菜)
- 原始数据都是 "脏的",必须处理干净才能给模型用:
- 处理缺失值:比如有的蛋糕数据里 "奶油种类" 是空的,要么填个最常见的(比如 "原味奶油"),要么删掉这条数据。
- 处理异常值:比如蛋糕尺寸填了 "100 米"(明显错了),改成合理的数值或者删掉。
- 数据格式转换:把 "是 / 否" 改成 "1/0",把日期(比如 "2025-10-01")改成模型能看懂的数字。
- 划分数据集:把数据分成 3 份:训练集(上课的例题)、验证集(课后作业,用来调参)、测试集(期末考试,用来最终打分),常见比例 7:1:2。
- 原始数据都是 "脏的",必须处理干净才能给模型用:
-
特征工程(调味,最关键!)
- 相当于 "给菜调味",调得好,菜才好吃。核心是 "把数据变得更有用":
- 特征选择:删掉没用的特征(比如蛋糕店老板的生日)。
- 特征变换:把数据标准化。比如蛋糕尺寸有 "厘米" 有 "英寸",统一换成厘米;把数值太大的(比如价格 1000 元)缩小到 0~1 之间,方便模型计算。
- 特征构造:自己造新特征。比如用 "蛋糕价格 ÷ 尺寸" 算出 "每厘米价格",这个新特征可能比单独的价格或尺寸更有用。
- 特征降维:比如有 10 个特征,发现其实 3 个就够了,删掉多余的,减少计算量。
- 相当于 "给菜调味",调得好,菜才好吃。核心是 "把数据变得更有用":
-
模型选择与训练(炒菜)
- 选一个合适的 "锅":分类任务选逻辑回归、决策树;回归任务选线性回归。
- 用训练集 "炒菜":把处理好的数据喂给模型,模型会自己调整参数,让代价函数越来越小(猜得越来越准)。
-
模型评估与调优(尝味道,加盐)
- 用验证集 "尝味道":如果模型在验证集上表现不好(比如过拟合),就调整超参数(比如给决策树减深度)。
- 用测试集 "最终打分":调优完后,用测试集看模型的真实水平,这个分数不能作弊(不能用测试集调参)。
-
模型部署与监控(上菜 + 售后)
- 把模型放到线上:比如做成一个 APP,用户上传蛋糕信息,就能自动预测价格。
- 持续监控:如果过了半年,蛋糕原材料涨价了,模型预测的价格不准了,就要重新收集数据、训练模型。
三、1.5 模型评估(怎么判断模型好不好)
1.5.1 验证和测试的区别 + 常见验证方法
很多人会把验证集和测试集搞混,用考试的例子就能分清:
| 概念 | 作用 | 类比考试 | 注意事项 |
|---|---|---|---|
| 验证集 | 调优超参数、选模型、判断过拟合 | 课后作业:你做完作业,根据错题调整学习方法,再做新的作业 | 可以反复用(比如换不同的学习方法做不同的作业) |
| 测试集 | 最终评估模型的真实水平 | 期末考试:只能考一次,考完就打分,不能再改学习方法 | 绝对不能用来调参!否则就是 "作弊",分数不准 |
常见的验证方法(怎么划分训练集和验证集)
-
留出法
- 人话:把数据直接分成 "训练集 + 验证集",比如 7:3。
- 例子:100 道题,70 道当例题,30 道当作业。
- 优点:简单快;缺点:分不好就不准(比如 30 道作业全是难题)。
- 改进:分层抽样------ 保证作业里的难题、简单题比例和例题一样。
-
交叉验证法(常用!)
- 人话:把数据分成 K 份,比如 5 份。每次用 4 份当例题,1 份当作业,重复 5 次,最后取 5 次分数的平均值。
- 例子:100 道题分成 5 份,每份 20 道。第 1 次用 1-4 份当例题,第 5 份当作业;第 2 次用 1、3-5 份当例题,第 2 份当作业......
- 优点:分数更稳定,不会因为一次分不好就不准;缺点:要训练 5 次模型,计算量稍大。
- 行业常用:5 折或 10 折交叉验证。
1.5.2 超参数调优(给模型 "调闹钟")
1. 什么是超参数?
- 专业说法:训练前手动设置的参数,不是模型训练出来的。
- 人话:相当于你早上起床的闹钟时间,是你睡前手动定的,不是起床后才定的。
- 举例子(一看就懂):
| 模型 | 超参数例子 | 人话解释 |
|---|---|---|
| 决策树 | 最大深度 | 限制树最多长几层,防止模型 "想太多" 导致过拟合 |
| 随机森林 | 树的数量 | 用多少棵树一起投票预测,树太少不准,太多费时间 |
| 逻辑回归 | 正则项系数 | 控制 "紧箍咒" 的力度,系数越大,惩罚越重 |
| K-Means 聚类 | 聚类数量 K | 要把数据分成几类,比如 K=3 就是分成 3 类 |
2. 超参数调优的两种方法
-
网格搜索
- 人话:把所有超参数的候选值列出来,挨个试,选效果最好的。
- 例子:决策树的最大深度候选值是 [3,5,7],叶子节点最少样本数候选值是 [5,10],那就试 3×2=6 种组合,看哪种组合在验证集上分数最高。
- 优点:能找到候选值里的最优解;缺点:候选值越多,越费时间(比如 3 个超参数,每个有 5 个候选值,就要试 125 次)。
-
随机搜索
- 人话:不挨个试,而是在候选值范围内随机选组合,比如选 20 组,看哪种最好。
- 例子:上面的 6 种组合,随机选 4 组来试,节省时间。
- 优点:快!超参数多的时候,效果和网格搜索差不多;缺点:有可能错过最优组合,但概率不大。