1、机器学习概念
机器学习,是让计算机从数据中自动学习并发现规律,从而生成一个计算模型。并能够利用该模型,对未知数据进行精准预测或分类的方法。
2、机器学习分类
导读:假如我们将某张具有一定特征(例如具有4条腿的一只动物)的图片输入给计算机,并且将图片打一个答案“狗”,计算机就识别该图片中的动物为狗。在这个过程中:
- 这张图片,是具有一定特征的训练数据,我们记作:特征X;
- 给图片打一个标签“狗”,是我们人为告诉计算机的正确答案,我们记作:标签Y,或者答案Y。
我们按照训练数据是否有标签,可以将机器学习分为:
- 有监督学习:训练数据有标签
- 无监督学习:训练数据无标签
- 半监督学习:训练数据+部分少量标签
- 强化学习:是通过与环境不断交互,根据获得的奖励或惩罚信号,来学习如何做出最优决策
2.1、有监督学习
- 定义:计算机通过训练大量“既有特征X,又有答案/标签Y”数据,从而得出一个X,Y之间的映射关系,并且通过该映射关系,能够预测新的未知数据的答案。就像老师给你一本《例题+标准答案》的练习册。你通过对照答案,学会解题思路。考试时,给你一道新题,你要算出正确答案。
- 举例1:鸢尾花分类,鸢尾花(Iris)数据集共150条,每条都有特征(该花朵共有4个尺寸)和一个标签(鸢尾花的3个品种),我们将这个包含花特征和花品种的150条数据集输入给计算机,计算机通过有监督学习,学会了如何根据花的特征来判断花的品种。
4个尺寸分别为:[花萼长度、花萼宽度、花瓣长度、花瓣宽度];
3个品种分别为:山鸢尾、杂色鸢尾、维吉尼亚鸢尾
- 举例2:根据广告费用的投入,预测下一个月销售额。假设我们统计了公司过去 12 个月的销售记录(这就是训练集):
月份 特征 X(广告投入:万元)
标签 Y(当月销售额:万元) 1月 2.0 → 52 2月 3.5 → 68 3月 1.8 → 48 4月 5.0 → 90 5月 4.2 → 78 6月 6.0 → 105 7月 3.0 → 62 8月 7.5 → 128 9月 4.8 → 85 10月 2.5 → 55 11月 6.8 → 115 12月 5.5 → 95
我们看有监督学习是如何工作的:
第一步:假设数学模型
假设广告费和销售额之间符合一条直线关系;当然即使完全不投广告费用,也有一个基础销售额。
- 销售额 = w × 广告费 + b, 相当于初中学的这个函数:y = kx + b
- w(权重):每多投入1万元广告费,能带来多少销售额增长。
- b(偏置):即使完全不投广告,也有一个基础销售额。
第二步:训练数据寻找最佳参数(w、b)
机器把这 12 个点画在坐标平面上,然后不断尝试不同的(w、b)组合,目标是让预测销售额和实际销售额的误差总和最小。
- 经过多次计算,机器找到了最优解,比如:w = 12.5,b = 28
- 也就是说,学到的规律是:销售额 ≈ 12.5 × 广告投入 + 28
- 即:每多投1万元广告,销售额平均增长12.5万元;即使不投广告,基础销售额也有28万元。
第三步:预测
下个月(次年1月)公司计划投入4.0 万元广告费。
机器代入公式:预测销售额 = 12.5 × 4.0 + 28 = 50 + 28 = 78(万元)
模型预测结果:下个月销售额约为78 万元。
上面两个例子:
- 例子1,是根据数据集的特征,进行判别归类,结果是离散值,我们称之为分类;
- 例子2,是根据数据集的特征,进行有效预测,结果是连续值,我们称之为回归。
分类(Classification)和回归(Regression)是有监督学习的两大核心任务,它们同样“从带标签数据中学习规律”,但输出的结果类型完全不同(一个是离散值,一个是连续值)。下面我们对比一下二者的区别:
| 对比维度 | 分类 | 回归 |
|---|---|---|
| 输出类型 | 离散的类别标签(有限个选项) | 连续的数值(在一定范围内任意取值) |
| 核心问题 | “这是什么?”或“属于哪一类?” | “是多少?”或“有多大?” |
| 数学本质 | 在特征空间中寻找分界线(决策边界),将不同类别的点分开 | 在特征空间中寻找一条拟合线(或曲线),让它尽可能穿过所有数据点 |
| 评估指标 | 准确率、精确率、召回率、F1分数、混淆矩阵 | 均方误差、均方根误差、平均绝对误差、R²分数 |
| 输出值个数 | 有限个(如 2个、3个、10个) | 无限个(连续区间内任意值) |
| 经典算法 | 支持向量机(SVM)、决策树、随机森林、K近邻(KNN) | 线性回归、岭回归、决策树回归、随机森林回归、XGBoost |
2.2、无监督学习
如果说有监督学习是“拿着标准答案的例题集”来学习,那无监督学习就是“给你一堆杂乱无章的数据,但没有标准答案,让你自己去发现其中的隐藏结构或规律”。
- 定义:无监督学习,就是让计算机在没有“标准答案”的前提下,自行从数据中发现隐藏的模式、结构或分布规律。
- 举例1:电商客户自动分群。某电商平台有 10 万注册用户,运营团队想搞精准营销,但完全不知道这群人该怎么分类,也没人给用户贴过标签。无监督学习只能根据用户数据集的“月消费金额、月浏览时长、月下单次数”特征,让算法把这些用户自动分成若干组(簇),让组内用户行为相似,组间差异明显。算法自动把用户分成3个群体:
- 簇 0:高消费+短浏览+高频下单 → 算法给这类打了标签0→运营人员打标签“土豪剁手党”。
- 簇 1:低消费+超长浏览+极少下单 → 算法给这类打了标签1→运营打标签“纠结观望党”。
- 簇 2:中等消费+周末才浏览+偶尔下单 → 算法给这类打了标签2→运营打标签“理性上班族”。
算法输出的是“群组编号(0/1/2)”,但“土豪/纠结党”这个名字是运营人员根据数据特征自己起的。
对比一下“有监督学习”
| 维度 | 有监督学习 | 无监督学习 |
|---|---|---|
| 数据 | 有特征(X),也有标签(Y) | 只有特征(X),完全没有标签(Y) |
| 类比 | 老师给了一本《例题+答案》让你背 | 老师扔给你一堆贝壳,让你自己按颜色或大小分类 |
| 目标 | 预测新数据的标签(猜答案) | 发现数据内部的潜藏规律(找结构) |
| 反馈 | 有明确的对错信号(损失函数) | 无明确反馈,全靠算法自己挖掘 |
| 常见任务 | 分类、回归 | 聚类、降维、关联规则挖掘 |
2.3、半监督学习
如果说有监督学习是“照着标准答案做题”,无监督学习是“自己瞎琢磨找规律”,那么半监督学习(就是“老师只批改了一半的作业,剩下的一半你自己凭感觉先填,再对照着学”。它是介于前两者之间的一种学习方法,专门解决现实世界中“标注数据稀缺,未标注数据泛滥”的尴尬处境。
- 定义:同时使用少量有标签数据和大量无标签数据进行训练的机器学习方法
- 举例:在现实中,给数据打标签(比如让专家标注CT影像)极其昂贵、耗时;但收集不带标签的原始数据(比如随便拍几千张X光片)却非常便宜、海量。既然标注数据那么贵,那我就用少量的“精兵”+ 大量的“民兵”来打仗。
- 应用场景:
应用领域 具体场景 为什么非它不可 医疗影像诊断 只有几十张由主任医师标注好的癌症CT片,但有上万张普通CT片。 专家标注成本极高,半监督可以让AI用少量标签学到看懂片子。 网络流量分类 只有少数数据包被人工标记为“正常”或“攻击流量”。 网络数据瞬息万变,人工标记跟不上,需要用半监督适应新变种。 语音识别 只有几百小时的语音有精准文字转写,但有几十万小时的原始语音。 语音转写极其耗时,半监督能利用大量未标注语音提升泛化能力。 网页分类/新闻分类 只有少数网页标了“科技/体育/娱乐”,但互联网上有亿万个网页。 靠人力标记全网网页不现实,半监督可以借助少量标签自动爬取归类。
为了让你彻底分清,我们再回场景:
| 学习方法 | 拥有的资料 | 类比场景 | 难度与成本 |
|---|---|---|---|
| 有监督学习 | 教材+全部课后习题的详细答案 | 请了全职家教,每题都手把手教你,效果最好但最烧钱。 | 标注成本极高 |
| 无监督学习 | 教材+一堆没答案的空白卷子 | 全靠自己啃,自己猜出题规律,省钱但容易跑偏。 | 完全没有反馈 |
| 半监督学习 | 教材+第一章有答案,后面九章是空白 | 先把第一章弄透,再用规律去推测后面九章的答案,对完感觉靠谱的题拿来反复刷。性价比之王。 | 极低成本达到较高精度 |
2.4、强化学习
强化学习,是通过与环境(Environment)不断交互,根据获得的奖励或惩罚信号,来学习如何做出最优决策。举例:训练小狗时,它做出正确动作就给零食(奖励),做错就不给或纠正(惩罚),久而久之小狗就学会了哪些行为能获得更多零食。强化学习让计算机程序像这样“试错学习”。
现在我们来对比一下上述4种机器学习的方法:
| 机器学习方法 | 数据形式 | 学习信号 | 目标 | 典型任务/场景 |
| 有监督学习 | 数据带标准答案 | 真实标签 | 学习输入与输出的映射关系 | 分类、回归(房价预测) |
| 无监督学习 | 数据无标准答案 | 数据内在结构 | 发现数据结构/分布 | 聚类、降维、生成 |
| 半监督学习 | 少量数据有答案,大量无答案 | 部分数据的真实标签 | 利用少量标签提升泛化 | 图像分类、文本分类 |
| 强化学习 | 环境中试错产生的数据序列 | 奖励信号 | 最大化长期累积奖励 | 博弈、决策、控制 |