笔记内容包含常见的经典机器学习中遇到的一些概念,每个章节的内容都可独立观看,目标是对每个机器学习概念给出严谨的推导适当的例子进行说明

极大似然估计

似然函数是用真实数据来拟合理论模型,首先要假设数据服从某一分布 ,对于真实数据 ,要满足 最大,即让真实数据在理论模型的分布下构成的概率尽可能大

image.png

举一个扔硬币的例子,在这个例子中,左侧是理论分布,右侧是实验的真实数据,根据实验结果不能反推出理论模型根据理论模型也不能够说明实验结果就和模型中的概率分布一样,但是我可以找到一个理论分布的参数,让真实数据的分布概率尽可能和理论分布一致,这个过程就是找似然函数的过程,求得理论分布参数的过程就是求极大似然估计的过程

Example

  • 以 logistic 回归为例:
  • 目标是最大化似然函数:
  • 是一个从一个概率分布得到的概率, 是输入的真实数据, 代表整个神经网络的权重参数, 表示神经网络输出的概率
  • 类比上述抛硬币过程,由 的标签可知, 的分布符合伯努利分布 ,因此最后的 可以被转换为 ,通过取对数 就可以求得最后要优化的损失函数为:

KL 散度

KL散度(Kullback-Leibler divergence),可以以称作相对熵(relative entropy)或信息散度(information divergence)。

KL散度的理论意义在于度量两个概率分布之间的差异程度,当KL散度越大的时候,说明两者的差异程度越大;而当KL散度小的时候,则说明两者的差异程度小。如果两者相同的话,则该KL散度应该为0。

现有两个连续随机变量 ,它们对于的概率密度函数分别为 ,如果我们 去近似 ,则 KL 散度可以表示为:

  • KL 散度的性质:
    1. 非负性,即
    2. 非对称性,即 去近似 不等于 去近似

逆变换采样

如果我有一个服从均匀分布 的随机数,怎么把这个随机数扩展到任意分布 上,并保持随机特性呢?

  • 使用逆变换采样,先找到分布 的逆概率分布函数,然后将服从 的随机数带入,即可得到对应的 分布上的随机数

Summary

证明: 设分布 的概率分布函数为 是一个分布的随机变量,满足 ,其对应的逆概率分布函数为 ,对其随机变量进行变换就是 ,现在要证明随机变量 服从均匀分布 等式两边就是 为均匀分布的定义,因此可以证明 为均匀分布,且逆概率分布函数就是其采样函数

朴素贝叶斯

  • 参考资料:
    • 《统计学习方法第 2 版》——李航

朴素贝叶斯.svg

从统计角度分析,对于给定数据 和标签 预测任务相当于计算 ,将该概率公式用条件概率公式展开可得:

因此 的计算变成了估算 ,使用贝叶斯公式可得:

在计算分类时,所以的分类都包含 ,直接可以省略,只需计算

123456789101112131415
111112222233333
SMMSSSMMLLLMMLL
-1-111-1-1-11111111-1

Example

根据上表,计算下列概率

对于数据 可得出: 根据两个概率可以得出,应该预测分类为

决策树

  • 参考资料:
    • 《统计学习方法第 2 版》——李航
    • 数据挖掘技术课程

image.png

image.png

决策树由节点和有向边组成,节点分为内部节点和叶子节点,内部节点表示划分属性,叶子节点是最后的分类结果

下图是决策树算法的主要内容:

决策树.svg

信息增益

假设有一组数据,有 n 个不同的属性特征,对任意一个特征 有以下分析:

  • 熵的概念 设 X 为一个取有限值的离散随机变量,对整个系统的熵为:熵越大,随机变量的不确定性就越大,公式中的 表示取离散值 的概率
  • 条件熵的概念 条件熵 表示在已知随机变量 的条件下,随机变量 的不确定性

信息增益表示得知特征 的信息而使类 的信息不确定性减少的程度

  • 信息增益的定义: 特征 对训练数据集 的信息增益 ,定义为集合 经验熵 与特征 给定条件下 经验条件熵 之差,即

Note

上文的“经验”指的是通过统计结果计算熵和条件熵,其思想是极大似然估计

Example

image.png

  • 计算标签类别的经验熵,熵越小表示数据越稳定:
  • 设年龄、有工作、有自己的房子、信贷情况为特征 ,分别计算它们的经验条件熵信息增益
    1. 从上面的计算来看,特征 最合适用来划分数据

信息增益比

信息增益偏向于生成分支较多的树,因为分支越多,它的条件熵就可能越低

为了修正这个问题,我们需要使用信息增益比:

,其中 表示特征 的经验熵(有点像对信息增益做了一次标准化),

基尼指数

适用于分类树的生成,能够决定改特征的最优二值切分点

分类问题中,假设有 个类,样本点属于第 类的概率为 ,则概率分布的基尼指数定义为

对于二分类问题,可简化为

基尼指数和熵的概念有异曲同工之妙,当划分的类概率为 时,与其不是 的概率 对系统的熵为 ,基尼指数的表示更加简单,但也反映了所包含的信息量

对于给定样本的集合 ,其基尼指数为

在特征 的条件下,集合 的基尼指数定义为

剪枝算法

剪枝算法=损失函数+正则化惩罚项

设树 T 的叶结点个数为 是树 的叶结点,该叶结点有 个样本点,其中 类的样本点有 个, 为叶结点 上的经验熵, 为参数,则决策树学习的损失函数可以定义为:

其中经验熵为:

如果将第一项记为 ,则公式可以简化为:

Note

算法步骤:

  1. 计算每个节点的经验熵
  2. 递归地从叶节点向上回缩 比较回缩 与不回缩 的剪枝损失,然后进行比较 如果 ,则进行剪枝操作
  3. 重复步骤 2,直到不能继续为止

Attention

优点:可以从结构上简化决策树,提高泛化能力 缺点:简化决策树容易造成欠拟合,不能保证划分准确性的提升

在进行剪枝时,我们可以利用数据集的验证集,进行预剪枝/后剪枝

  • 预剪枝:预剪枝就是在构造决策树的过程中,先对每个结点在划分前进行估计,若果当前结点的划分不能带来决策树模型泛化性能的提升,则不对当前结点进行划分并且将当前结点标记为叶结点
  • 后剪枝:后剪枝就是先把整颗决策树构造完毕,然后自底向上的对非叶结点进行考察,若将该结点对应的子树换为叶结点能够带来泛化性能的提升,则把该子树替换为叶结点

最小二乘回归树

假设已将输入的特征空间划分为 个单元 ,并且在每个单元 上有一个固定的输出值 ,于是回归树模型可以表示为

其中 为指示函数,上面的式子表示输入 x 在回归树的划分 下最终有一个唯一的输出

我们使用平方误差 来表示回归树对于训练数据的预测误差,我们的目标是 ,并取

看电视时长婚姻状况职业年龄
3未婚学生12
4未婚学生18
2已婚老师26
5已婚上班族47
2.5已婚上班族36
3.5未婚老师29
4已婚学生21

Example

下面我们将利用上面的数据对年龄进行预测 首先将 的属性选为职业,则有三种划分情况{“老师”,“学生”}、{“上班族”}以及{“老师”,“上班族”}、{“学生”},最后一种为{“学生”,“上班族”}、{“老师”}

  1. 第一种情况 R1={“学生”},R2={“老师”,“上班族”} 最小平方误差为:
  2. R1={“老师”},R2={“学生”,“上班族”} 最小平方误差为:
  3. 划分情况为 R1={“上班族”},R2={“学生”,“老师”} 最小平方误差为:

由上面的分析可知,应该选择第三种划分

CART

ID3 和 C4.5 都是基于信息增益的方法,适用于离散特征的分类,不再赘述

CART 生成算法和最小二乘法回归树方法差不多,分别计算出每个特征的最优切分点,然后找到最优特征的最优切分点作为划分的分支

在决策树的剪枝算法 中,我们需要考虑代价 复杂度 两个因素,如果取 就是一棵完整的树,如果取 则是一个单结点树,因此 的取值十分重要,在 CART 中,考虑以下情况:

image.png

,其中每一个 都是一个临界值,每个范围 都表示一个树

假如树 T 存在一个子树 ,则

![image.png](https://obsidian-pic-1258776558.cos.ap-nanjing.myqcloud.com/blog/20230605151055.png)
  • 剪枝前损失函数为:
  • 剪枝后损失函数为: (剪枝后只有一个叶子节点) 存在临界点使得 ,如果 再大一点,剪枝后损失函数的损失值就会小于剪枝前,偏向于进行剪枝,求出这个 临界值就是公式

Summary

从上面的剪枝过程可以看出, 是有嵌套关系的,后者是前者的子树,在搞清楚 的取值过程后,我们需要利用公式求得最优决策树

image.png

ensemble 算法

Kmeans、Kmedoid、DBSCAN、系统聚类、谱聚类、PCA 降维、EM 算法