最大似然估计

17 Mar 2025 | 4 分钟阅读

密度估计是估计问题域中数据子集的概率分布的过程。密度估计可以使用各种策略来解决,但最大似然估计(MLE)是机器学习中常用的范例。

最大似然的目标是找到最佳方式将分布拟合到数据中。

似然度

似然(Likelihood)涵盖了如何发现特定特征或场景下数据的最佳分布,而概率(Probability)则说明了如何在给定数据样本分布的情况下计算某事的可能性。

例如,如果我们想知道老鼠体重超过 34 克的可能性,我们将编辑下图左侧的部分。右侧指定了分布的形状和位置,保持不变。

鉴于我们称量了一只 34 克的老鼠,均值 = 32,标准差 = 2.5 的分布的概率很高。如你所见,右侧的测量值保持不变,但我们可以改变左侧分布的形状和位置。

MLE 的概念

最大似然分类的主要目标是预测使观测数据 x 的似然最大化的类别标签 y。我们将假设 x 是一个随机向量,y 是一个影响 x 分布的非随机参数。首先,我们必须对 x 的分布做出假设(通常是高斯分布)。

然后,我们的数据学习包括以下内容:

  • 我们根据每个标签 y 将数据集划分为不同的部分。
  • 我们仅使用每个子集内的数据来估计我们假设的 x 分布的参数。

当对新的数据向量 x 进行预测时

  • 我们使用我们为每个标签 y 估计的参数来计算我们假设分布的概率密度函数 (PDF)。
  • 返回评估的 PDF 包含最高值的标签 y。

让我们从一个简单的例子开始,只有一个一维输入 x 和两个类别:y = 0 和 y = 1。

假设我们在 y = 0 和 y = 1 两种情况下都计算了我们的参数,得到了上面所示的两个 PDF。蓝色图 (y = 0) 的均值 μ=1,标准差 σ=1,而橙色图 (y = 1) 的 μ=-2,σ=1.5。为了预测给定新数据点 x = -1 的标签 y,我们分析两个 PDF:fy=0(-1)≈0.05 和 fy=1(-1)≈0.21。最高结果 0.21 是在考虑 y = 1 时获得的,因此我们预测标签 y = 1。

这是一个简单的例子,但在实际情况中,我们会有更多的输入因子用于进行预测。因此,我们需要一个具有以下 PDF 的多元高斯分布

Maximum Likelihood Estimation

其中

  • x = 包含一个观测值数据的列向量
  • d = x 的维度(x 是一个 d×1 向量)
  • x 的均值(也是 d×1)
  • x 的协方差矩阵(d×d)

为了使用这种方法,协方差矩阵 (Σ) 必须是正定、对称且具有正特征值。协方差矩阵 (Σ) 包含 x 的所有分量对之间的协方差:Σij=cov(xi,xj)。因此它是一个对称矩阵,因为 cov(xi,xj)=cov(xj, xi),我们只需验证所有特征值都是正的;否则,我们将显示一个警告。如果观测值多于变量,并且变量之间没有很高的相关性,则此条件应该满足,Σ 应该是正定的。

现在,我们将实现它。

代码

导入库

读取数据集

输出

Maximum Likelihood Estimation

这些数据与社交网络广告相关,其中包括社交网络成员的性别、年龄和预期工资。性别是一个分类列,在将数据提供给学习器之前需要进行标签和编码。

输出

Maximum Likelihood Estimation

编码结果存储在一个名为 gender 的新特征中,原始数据保持不变。为了训练和验证学习器,将数据分为训练集和测试集。


输出

Maximum Likelihood Estimation

输出

Maximum Likelihood Estimation

上图中显示特征年龄与预测之间关系的“学习器线”是根据最大似然估计原理创建的,该原理帮助逻辑回归模型对结果进行分类。因此,在后台,算法选择一个按年龄缩放的检测到“1”的概率,并利用它来计算观察到“0”的概率。这将适用于所有数据点,并最终将线上提供的数据的所有似然相乘。乘法过程持续进行,直到识别出最高概率或最佳拟合线。