机器学习1-概论
本文最后更新于37 天前,其中的信息可能已经过时,如有错误请留言

机器学习:通过算法使得机器能从大量数据中学习规律从而对新的样本做决策,所以也称为统计学习

  • 统计学习的三要素:策略,算法,模型
  • 机器学习中的基本任务类型:回归(Regression):用于预测连续值。例如,预测房价或股票价格。分类(Classification):用于预测离散的类别标签。例如,判断一封邮件是垃圾邮件还是正常邮件。聚类(Clustering):用于将数据分组,使得同一组内的数据点相似,不同组之间的数据点不相似。例如,根据购买行为将客户分成不同的群体。

学习分类

监督学习

训练数据:使用标注数据训练,标注数据表示输入输出对应关系(Have the right answer,比如平方米对应的价格)的联合概率分布{(x1,y1),(x2,y2)…(xn,yn)},独立P(X1​,X2​,…,Xn​)=P(X1​)⋅P(X2​)⋅⋯⋅P(Xn​)且 同分布P(X1)=P(X2)=⋯=P(Xn)

结果:输入到输出的映射的统计规律。得到一个模型,表示为条件概率分布\( y_{N+1} = \arg \max_{y} \hat{P}(y | x_{N+1}) \),或者决策函数 \( y_{N+1} = \hat{f}(x_{N+1}) \)

arg  min F(x,y)就是指当F(x,y)取得最小值时,变量x,y的取值
arg max F(x,y)就是指当F(x,y)取得最大值时,变量x,y的取值
如果max/min下标指定最终取哪个变量,上例中的完整意思为在所有可能的 y值中,找到使条件概率最大的y

无监督学习

训练数据:使用没有标注的数据,{x1,x2,x3…xn}

结果:与监督学习相同

强化学习

通过与环境交互,基于奖励和惩罚来学习策略。

半监督学习、主动学习

结合有标签和无标签数据,或主动选择最有价值的数据进行标注。

机器学习的本质是通过数据预处理、模型选择、策略优化和算法迭代,从数据中学习泛化规律,最终在未知数据上实现可靠预测或决策。

模型

模型就是所要学习的条件概率分布或决策函数

概率模型与非概率模型

概率模型关注数据的概率分布和不确定性,能够提供对预测结果的概率或置信度。例如贝叶斯网络和隐马尔可夫模型(HMM)

监督学习中取函数形式:y = P(y|x)

非概率模型提供直接的预测结果而不是结果的概率分布。例如感知机、支持向量机(SVM)和K近邻

监督学习中取函数形式:y = f(x)

其中根据输入特征和输出结果之间是否线性关系又分为线性模型与非线性模型

生成式模型和判别式模型Generative and Discriminative model

生成式模型:通过联合概率 P(X,Y)推导后验概率 P(Y∣X),如朴素贝叶斯、隐马尔可夫模型。生成式模型一定属于概率模型

判别式模型中的概率型:直接建模条件概率 P(Y∣X),如逻辑回归

判别式模型中的非概率型:直接学习决策函数 f(X),如SVM、硬分类的决策树、BP神经网络(若输出非概率结果)

参数化模型和非参数化模型

参数化模型非参数化模型
假设假设数据服从特定分布不对数据分布做假设
参数数量固定随数据量增加
计算效率
数据量要求适合小到中等规模数据适合大规模数据

频率派与贝叶斯派

是两种不同的概率解释和推断方法。频率派关注“数据生成参数”,而贝叶斯派关注“参数如何生成数据”

频率派参数是固定但未知的,数据是根据这个固定参数生成的,通过在重复试验中发的频率数据,去“发现”这个固定参数的值。过程如下

  1. 假设参数固定:假设硬币的真实正面概率是某个固定值 θ(尽管我们不知道具体是多少)。
  2. 数据生成:抛硬币的结果(如“正正反反正”)是根据这个固定 θ 生成的随机样本。
  3. 参数估计:用极大似然估计(MLE)等方法,从数据中反推出最可能的 θθ 值(如 θ^=0.6)。

贝叶斯派:认为参数本身具有不确定性(参数是随机变量),可以用概率分布描述。贝叶斯派视角下,利用先验知识和观测数据来更新参数,得到参数的后验分布

  1. 先验分布:对参数设定一个初始假设(如“硬币可能接近公平”,即 θ∼Beta(2,2))。
  2. 数据生成机制:数据是根据参数的分布生成的。例如,抛硬币的结果不仅依赖于参数 θ,还依赖于我们对 θ的不确定性。
  3. 后验更新:用贝叶斯定理结合数据和先验,得到后验分布 P(θ∣D),(如更新后的分布可能是 θ∼Beta(9,5))
频率派贝叶斯派
参数固定值有分布的随机变量
结果点估计(如 θ=5)后验分布(如 θ∼N(5,1)
计算只依赖观测数据依赖观测数据和先验分布

贝叶斯预测公式为: \[ P(x|D) = \int P(x|\theta, D)P(\theta|D) \, d\theta \]

变量含义:

  • \( D \):已有的观测数据(训练数据)。
  • \(\theta\):模型参数,在贝叶斯方法中被视为随机变量,具有后验分布 \( P(\theta|D) \)。
  • \( x \):待预测的新数据。
  • \( P(x|\theta, D) \):在给定参数 \(\theta\) 和已有数据 \( D \) 的条件下,新数据 \( x \) 的概率分布。- 若数据独立同分布 (i.i.d.),通常简化为 \( P(x|\theta) \),即新数据仅依赖参数 \(\theta\),与 \( D \) 无关。如果新数据 x依赖历史数据 D,此时 P(x∣θ,D) 需保留 D。
  • \( P(\theta|D) \):参数的后验分布,表示在观测数据 \( D \) 后,参数 \(\theta\) 的不确定性。

预测时,不依赖单一参数值,而是考虑所有可能的参数值,并根据其后验概率综合结果

常见模型划分

核函数

想象你要分类一堆混在一起的红色和蓝色小球,这些小球在桌面上(二维空间)混在一起,无法用一条直线分开(线性不可分),核方法的思路:换一个视角:展开成一个立体空间(高维空间)→ 现在你发现,红球和蓝球在空中自然分成了上下两层!在高维空间中画一个平面(比如一个平板)→ 轻松分开红蓝球。

把数据从低维空间(如二维)隐式映射到高维空间(如三维、甚至无限维)。
!例如:

  • :解决低维空间中的非线性问题(如分类、回归)。
  • 手段:隐式映射到高维空间 + 用核函数替代高维内积
  • 优势:无需知道具体映射方式(黑箱操作)。计算高效,不需要实际计算映射后的坐标,避免高维计算通过核函数(Kernel Function)直接计算高维空间中的“相似性”(即内积)。灵活性强,通过选择不同核函数适应不同问题,如高斯核(RBF):衡量两个点在高维空间中的“距离”,多项式核:捕捉数据之间的多项式关系。

决策函数集合:包含所有可能的从输入 X 到输出 Y 的映射函数 f。这些函数不依赖参数,直接描述输入与输出的关系。没有固定规则,完全看数据。

条件概率集合:包含所有可能的条件概率分布 P(Y∣X),描述给定输入 X 时输出 Y 的概率分布没有固定公式,完全依赖数据分布

参数向量XX分布族:由参数向量 θ 控制函数集合 / 条件概率分布集合,每个分布 Pθ(Y∣X)通过参数 θ定义。

策略

策略是确定“模型优化方向”的规则

  • 通过损失函数(Loss Function)量化单次预测的误差。
  • 通过风险函数(Risk Function)衡量模型在平均意义上的预测风险(即期望损失)。

常用损失函数

损失函数告诉我们模型的性能如何,这样我们就能不断修改模型的参数,从而使损失函数的值最小以实现效果最好的模型

1. 0-1损失函数 (0-1 loss function):
\[
L(Y, f(X)) =
\begin{cases}
1, & Y \neq f(X) \\
0, & Y = f(X)
\end{cases}
\]

作用:直接判断分类是否正确,适用于分类问题。
例子:预测明天是否下雨,若预测错误(实际下雨但预测晴天),损失为1;正确则为0。
局限性:无法反映错误程度(如将“暴雨”误判为“小雨”与“晴天”误判为“暴雨”的损失相同)
优化目标:最小化分类错误率

2. 平方损失函数 (quadratic loss function):
\[
L(Y, f(X)) = (Y – f(X))^2
\]

作用:放大预测值与真实值之间的差距,适用于回归问题。
例子:预测房价时,真实值为100万,若预测为90万,损失为 (100−90)2=100(100−90)2=100;预测为80万,损失为400,对大误差惩罚更重。
特点:对异常值敏感(大误差的平方会显著增加损失)。
优化目标:最小化预测值的方差

3. 绝对损失函数 (absolute loss function):
\[
L(Y, f(X)) = |Y – f(X)|
\]

作用:直接计算预测值与真实值的绝对差距,对异常值更鲁棒。
例子:预测温度时,真实值为25°C,预测为20°C,损失为5;预测为10°C,损失为15。
特点:对小误差的惩罚轻于平方损失,适合关注误差绝对值的场景。
优化目标:最小化预测值的中位数偏差

4. 对数损失函数 (logarithmic loss function)
\[
L(Y, P(Y | X)) = -\log P(Y | X)
\]

作用:用于衡量模型预测概率分布与真实标签之间的差异
例子:若真实标签 Y=1,模型预测 P(Y=1∣X)=0.1则损失为 −log0.1≈2.3
特点:惩罚预测概率偏离真实标签的情况,预测越不准,损失越大

期望风险(Expected Risk)经验风险(Empirical Risk)

期望风险

$$
R_{\text{exp}}(f) = \mathbb{E}_P[L(Y, f(X))] = \int_{X \times Y} L(y, f(x)) P(x, y) \, dxdy
$$参数含义:
\( P(x, y) \):真实的联合概率分布,表示输入 \( X \) 和输出 \( Y \) 同时出现的概率。
\( L(y, f(x)) \):损失函数在具体样本 \((x, y)\) 上的值。
积分:对所有可能的输入 \( X \) 和输出 \( Y \) 组合进行加权平均,权重为真实分布 \( P(x, y) \)。

衡量模型在所有可能的输入-输出对 (X,Y)(X,Y) 上的平均损失,由于真实分布 P(X,Y)未知,无法直接计算,需通过其他方法近似(如经验风险)

经验风险:
$$
R_{\text{emp}}(f) = \frac{1}{N} \sum_{i=1}^{N} L(y_i, f(x_i))
$$参数含义:
\( N \):训练样本数量。
\((x_i, y_i)\):训练集中的第 \( i \) 个样本,\( x_i \) 为输入特征,\( y_i \) 为对应的真实标签。
\( L(y_i, f(x_i)) \):模型在单个训练样本上的损失值。

模型关于训练数据的平均损失,基于有限数据对期望风险的近似,当数据量 N足够大且独立同分布时,经验风险趋近期望风险(大数定律)。最终目标是使经验风险逼近期望风险,从而在未知数据上表现良好。

经验风险最小化与结构风险最小化

当样本容量很小时,经验风险最小化学习的效果未必很好,会产生“过拟合over-fitting”,在训练误差基础上增加模型复杂度惩罚项,通过正则化平衡拟合与泛化。

$$
\min_{f \in \mathcal{F}} R_{\text{struct}}(f) = \min_{f \in \mathcal{F}} \left( \frac{1}{N} \sum_{i=1}^{N} L(y_i, f(x_i)) + \lambda J(f) \right)
$$参数含义:
\( R_{\text{struct}}(f) \):结构风险,结合经验风险和模型复杂度惩罚项。
\(\lambda\):正则化系数,控制正则化项的权重(\(\lambda > 0\))。
\( J(f) \):正则化项(或罚项),衡量模型复杂度(如模型参数的范数)。

算法

通过算法不断迭代,更新模型中的参数,逐步最小化经验风险

两个难点:

  • 收敛速度:不同算法在迭代次数、计算时间上差异显著。
    • 例如:牛顿法利用二阶导数加速收敛,但计算复杂度高;梯度下降法简单但收敛慢。
  • 全局最优性:针对非凸问题,算法需设计策略避免陷入局部最优。

模型评估与选择

训练集误差与测试集误差

训练集误差:模型在训练数据(用于训练模型的数据)上的预测误差,反应了模型对该数据集的拟合能力

测试误差:模型在测试数据(从未参与训练的独立数据)上的预测误差。反映了学习方法对未知的测试数据集的预测能力,通常将学习方法对未知数据的预测能力称为泛化能力

训练误差和测试误差就是损失函数,测试误差通常选择0-1损失函数。训练误差根据数据集选择

过拟合和欠拟合

过拟合:拟合能力强的模型一般复杂度会比较高,容易过拟合,学习到了数据的噪声或特定的样
本特征,模型在训练数据上表现过于优越,训练误差小,导致在新数据上表现不佳,测试误差大

欠拟合:如果限制模型复杂度,降低拟合能力,可能会欠拟合,未能很好地捕获数据中的模式和
特征,导致在训练和测试数据上都表现较差。测试误差和训练误差都大

如何避免过拟合:

1.更多的测试数据

2.选择特征/参数子集,只选择最相关的特征,比如决定y房价的因素有很多,但是只挑选size和age作为参数,后面会学到自动选择最合适的特征集算法

3.正则化Regularization:保留所有特征,但尽可能减小所有参数的系数以防止产生过大的影响

泛化能力

泛化能力(Generalization Ability)是指机器学习模型在未见过的数据上准确预测或分类的能力。它反映了模型从训练数据中学习到的规律是否具有普遍适用性,而非仅仅记住了训练集中的特定样本或噪声

如何评估泛化能力:测试误差越小,泛化能力越强

正则化 Regularization

是正则化是结构风险最小化策略的实现,此处防止模型过拟合通过在损失函数中添加一个惩罚项来平衡模型的拟合能力和复杂度,比如下式为:带有L2正则化项和均方误差的的总损失函数E(w)

正则化符合奥卡姆剃刀原理:在所有可能选择的模型中,能够很好地解释已知数据并且十分简单才是最好的模型,也就是应该选择的模型。

模型的评估方法 – 获得测试结果

如果样本数充足,应该将其分为训练集和测试集,但现实中样本数都是不充足的,因此要重复利用样本,可以用不同方式分割样本,即交叉验证法:

  • 简单交叉验证:随机划分两部分数据。然后用训练集在各种条件下(比如不同的参数个数)训练模型,在测试集上评价各个模型,选择测试误差最小的模型。
  • S折交叉验证(应用最多):随机切分成S个互不相交,大小相同的子集;用S-1个子集的数据训练模型,余下的子集做测试;将可能的S种选择重复进行,会得到一个平均误差;选择平均测试误差最小的模型作为最优模型。
  • 留一交叉验证:S折交叉验证的特殊情形是𝑆=N(样本容量),在数据缺乏的情况下使用

模型的性能度量 – 评估性能优劣

是衡量模型泛化能力的评价标准,反映了任务需求。使用不同的性能度量往往会导致不同的评判结果

模型的比较检验 – 判断实质差别

测试性能不等于泛化性能

  • 泛化性能:指模型在未知数据(真实场景)上的表现。测试性能仅反映模型在特定测试集上的效果。
  • 测试集的局限性
    • 如果测试集过小或与真实数据分布不一致,测试结果可能无法反映模型的实际能力。
    • 模型可能对测试集过拟合(例如,通过反复调参优化测试集上的性能),导致泛化性能下降

测试性能受测试集随机性影响算法本身的随机性

监督学习应用

分类问题

输出变量为有限个离散变量的预测问题,分类结果产生四种情况

预测正例预测反例
实际正例TP(真正例)FN(假反例)
实际反例FP(假正例)TN(真反例)
  • TP:正确预测的正例(如疾病检测中的真实患者被正确诊断)。全称为true positive
  • FP:错误预测的正例(健康人被误诊为患者)。
  • FN:错误预测的反例(患者被漏诊)。
  • TN:正确预测的反例(健康人正确识别为健康)

评估指标:

1. 查准率(Precision,P):
\[
P = \frac{TP}{TP + FP}
\]
意义:预测为正例的样本中,有多少是真正的正例。
应用场景:注重减少误报(如垃圾邮件分类中,避免将正常邮件误判为垃圾邮件)。

2. 查全率(Recall,R):
\[
R = \frac{TP}{TP + FN}
\]
意义:所有真实正例中,有多少被正确预测。
应用场景:注重减少漏报(如癌症筛查中,避免漏诊真实患者)。
3. F1分数(F1-Score):
\[
F1 = \frac{2 \cdot P \cdot R}{P + R}
\]
意义:查准率与查全率的调和平均数,综合评估模型性能。
特点:在数据不平衡时(如正例远少于反例),F1比准确率更可靠。

4. P-R曲线与平衡点

  • 曲线越靠近右上角,模型性能越好
  • 平衡点(BEP):查准率与查全率相等的点,但实际中更常用F1分数

5. ROC,AUC

为什么需要ROC/AUC

在分类任务中,特别是当数据集类别不平衡时,单纯依赖准确率(Accuracy)可能会造成误导。假设我们有一个武侠元素的数据集,其中 95% 的样本是普通弟子,5% 的样本是高手。如果我们使用一个简单的分类器,它总是预测所有样本为普通弟子。这个模型的准确率为 95%,看起来表现很好,但实际上它根本无法识别高手,是一个毫无用处的分类器。

准确率只告诉我们模型整体预测正确的比例,但在类别不平衡的情况下,这个指标可能会误导我们。ROC 曲线和 AUC 提供了更全面的视角,展示了模型在不同阈值下的性能

1. 纵轴是“真正例率”(True Positive Rate, TPR):
\[
TPR = \frac{TP}{TP + FN}
\]

2. 横轴是“假正例率”(False Positive Rate, FPR):
\[
FPR = \frac{FP}{FP + TN}
\]

AUC,即曲线下面积(Area Under Curve),是 ROC 曲线下面积的一个数值表示。它提供了一个定量的指标,用来衡量分类模型的整体表现。AUC 值范围从 0 到 1,值越大表示模型性能越好。

标注问题

输入变量和输出变量均为变量序列的预测问题

回归问题

输入变量与输出变量均为连续变量的预测问题

学习笔记如有侵权,请提醒我,我会马上删除
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇