Python 从零开始实现机器学习实战(仅numpy实现) 01: 通过扔硬币的例子理解并求解极大似然估计(可能是全网最容易懂的例子)

极大似然估计(Maximum Likelihood Estimation)

  • 极大似然估计(Maximum Likelihood Estimation)
    • 1. 基本概念
      • 1.1 似然函数(Likelihood Function)
      • 1.2 极大似然估计的目标
    • 2. 过程步骤
      • 2.1 联合概率分布的设定
      • 2.2 写出似然函数
      • 2.3 对数似然函数化简
      • 2.4 求解最大值
      • 2.5 检验最大值
    • 3. 举例说明
      • 3.1 问题设定
      • 3.2 似然函数
      • 3.3 对数似然函数
      • 3.4 求解最大值
      • 3.5 检验最大值

极大似然估计(Maximum Likelihood Estimation)

极大似然估计(MLE)是一种在统计学中用于估计模型参数的方法。它的核心思想是通过观察到的数据来找到使得观察到的数据出现的概率最大的参数值。在许多统计模型中,我们假设观察到的数据是由一个概率分布生成的,而极大似然估计就是要找到这个概率分布的参数。

1. 基本概念

1.1 似然函数(Likelihood Function)

似然函数是关于模型参数的函数,表示给定模型下观察到的数据的概率。对于参数集 ( \theta ) 和观察到的数据集 ( D ),似然函数 ( L(\theta; D) ) 定义如下:

L ( θ ; D ) = P ( D ∣ θ ) L(\theta; D) = P(D | \theta) L(θ;D)=P(Dθ)

1.2 极大似然估计的目标

极大似然估计的目标是找到最大化似然函数的参数值,即:

θ ^ MLE = argmax θ   L ( θ ; D ) \hat{\theta}_{\text{MLE}} = \underset{\theta}{\text{argmax}} \, L(\theta; D) θ^MLE=θargmaxL(θ;D)

2. 过程步骤

2.1 联合概率分布的设定

首先,我们需要明确观察到的数据是由一个概率分布生成的。设 X X X 是观察数据的随机变量,其概率分布函数为 P ( X ; θ ) P(X; \theta) P(X;θ),其中 $$ \theta $$是需要估计的参数。

2.2 写出似然函数

通过联合概率分布,我们可以写出似然函数 L ( θ ; D ) L(\theta; D) L(θ;D)。对于独立同分布的数据 D = { x 1 , x 2 , . . . , x n } D = \{x_1, x_2, ..., x_n\} D={x1,x2,...,xn},似然函数可以表示为:

L ( θ ; D ) = P ( x 1 ; θ ) ⋅ P ( x 2 ; θ ) ⋅ . . . ⋅ P ( x n ; θ ) L(\theta; D) = P(x_1; \theta) \cdot P(x_2; \theta) \cdot ... \cdot P(x_n; \theta) L(θ;D)=P(x1;θ)P(x2;θ)...P(xn;θ)

2.3 对数似然函数化简

由于似然函数通常涉及多个相乘的项,为了方便计算,通常会对似然函数取对数,得到对数似然函数 ℓ ( θ ; D ) \ell(\theta; D) (θ;D)

ℓ ( θ ; D ) = log ⁡ L ( θ ; D ) \ell(\theta; D) = \log L(\theta; D) (θ;D)=logL(θ;D)

2.4 求解最大值

接下来,我们通过对数似然函数找到参数 ( \theta ) 的最大值。这通常涉及对 ( \ell(\theta; D) ) 关于 ( \theta ) 求导,令导数等于零,解出参数值。

∂ ℓ ( θ ; D ) ∂ θ = 0 \frac{\partial \ell(\theta; D)}{\partial \theta} = 0 θ(θ;D)=0

2.5 检验最大值

最后,要检验所得的参数值是否确实是似然函数的最大值,通常需要通过二阶导数测试或者观察似然函数的凹凸性来确认。

3. 举例说明

为了更好理解,我们以一个简单的例子来演示极大似然估计的步骤。

3.1 问题设定

假设我们有一组观察到的二项分布数据,用结果1表示扔硬币的正面,用结果0,表示扔硬币结果的反面,表示为 D = { 1 , 0 , 1 , 1 , 0 } D = \{1, 0, 1, 1, 0\} D={1,0,1,1,0},我们想要估计成功的概率 ( p )。

3.2 似然函数

二项分布的概率质量函数为 P ( x ; p ) = p x ⋅ ( 1 − p ) 1 − x P(x; p) = p^x \cdot (1-p)^{1-x} P(x;p)=px(1p)1x,1出现3次,取x=3, 则似然函数为:

L ( p ; D ) = p ⋅ ( 1 − p ) ⋅ p ⋅ p ⋅ ( 1 − p ) L(p; D) = p \cdot (1-p) \cdot p \cdot p \cdot (1-p) L(p;D)=p(1p)pp(1p)

3.3 对数似然函数

取对数似然函数:

ℓ ( p ; D ) = log ⁡ L ( p ; D ) = log ⁡ ( p ) + log ⁡ ( 1 − p ) + log ⁡ ( p ) + log ⁡ ( p ) + log ⁡ ( 1 − p ) \ell(p; D) = \log L(p; D) = \log(p) + \log(1-p) + \log(p) + \log(p) + \log(1-p) (p;D)=logL(p;D)=log(p)+log(1p)+log(p)+log(p)+log(1p)

3.4 求解最大值

对对数似然函数关于 ( p ) 求导,并令导数等于零,我们可以解出 ( p ) 的值。

∂ ℓ ( p ; D ) ∂ p = 1 p − 1 1 − p + 1 p + 1 p − 1 1 − p = 0 \frac{\partial \ell(p; D)}{\partial p} = \frac{1}{p} - \frac{1}{1-p} + \frac{1}{p} + \frac{1}{p} - \frac{1}{1-p} = 0 p(p;D)=p11p1+p1+p11p1=0

解得 p = 4 5 p = \frac{4}{5} p=54

3.5 检验最大值

通过二阶导数测试,我们可以确认 p = 4 5 p = \frac{4}{5} p=54确实是对数似然函数的最大值。

这就是极大似然估计的基本步骤和应用过程。在实际应用中,极大似然估计是估计模型参数最常用的方法之一。

你可能感兴趣的:(Python,机器学习,python,机器学习)