问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

ML系列:第27节 - 连续概率分布(Gamma分布)

创作时间:
作者:
@小白创作中心

ML系列:第27节 - 连续概率分布(Gamma分布)

引用
CSDN
1.
https://blog.csdn.net/gongdiwudu/article/details/143956106

在这篇博文中,我们将探讨Gamma分布,这是一种用途广泛且应用广泛的连续概率分布。了解Gamma分布对于贝叶斯统计至关重要。这篇文章将介绍数学定义、关键属性、实际应用以及如何使用Python实现和可视化Gamma分布。

之前,我们讨论了均匀分布和高斯分布,它们为连续概率分布奠定了基础。现在,我们将在此基础上深入研究Gamma分布,并探索其独特的特性和用途。

什么是Gamma分布?

Gamma分布是一种连续概率分布,它模拟泊松过程中α(alpha)事件发生的时间,其中α是形状参数。它对于模拟偏斜分布特别有用,由两个参数定义:形状参数(α)和速率参数(β)。

为什么Gamma分布在机器学习中很重要?

  • 能够对正值数据进行建模:Gamma分布非常适合表示不能为负的变量,这使得它对于对机器学习任务中的响应时间或计数等数量进行建模很有用。
  • 处理可变性和偏斜性:凭借其形状和尺度参数,Gamma分布可以有效捕捉数据分布中不同程度的偏斜度和形状,从而实现对各种数据集的准确建模。
  • 在贝叶斯推理中的重要性:作为某些似然函数的共轭先验,Gamma分布简化了贝叶斯参数估计和概率建模,提高了贝叶斯机器学习算法的效率和准确性。

Gamma分布的数学定义

为了充分理解Gamma分布,我们需要深入研究其数学公式。本节将介绍概率密度函数(PDF)、关键参数和相关数学概念。

概率密度函数(PDF)

Gamma分布的概率密度函数(PDF)定义为:

在哪里:

  • α > 0 是形状参数,
  • β > 0 是速率参数,
  • Γ(α) 或 (Gamma(alpha) 是Gamma函数,它将阶乘函数推广到连续值。

Gamma函数Γ(α)定义为:

对于α的整数值,Gamma函数简化为:

关键参数

  1. 形状参数(α)
  • 控制分布的形状。
  • 当α = 1时,Gamma分布简化为指数分布。
  1. 速率参数(β)
  • 与尺度参数(θ)成反比,其中θ = 1/β。
  • 控制事件发生的速率。

均值、方差和众数

Gamma分布具有以下属性:

  • 平均值(μ):
  • 方差(σ2):
  • 模式

Gamma分布与其他分布的关系

Gamma分布用途广泛,与其他几个重要的概率分布有联系。了解这些关系可以更深入地了解各种分布的运作方式和应用方式。在这里,我们将详细探讨这些关系,包括展示这些联系的具体公式。

指数分布

Gamma分布公式:

当形状参数α=1时,Gamma分布简化为指数分布。指数分布通常用于对泊松过程中事件之间的时间进行建模。

指数分布公式:

要从Gamma分布转换为指数分布:

  • 设置α = 1
  • 该公式简化为:

卡方分布

卡方分布是Gamma分布的一个特例,具有特定的参数值。它广泛应用于统计推断,特别是假设检验和构建置信区间。

Gamma分布公式:

对于卡方分布,形状参数α为k/2,速率参数β为1/2,其中k是自由度。

卡方分布公式:

要从Gamma分布转换为卡方分布:

  • 设α = k/2
  • 设置β = 1/2
  • 公式变为:

Erlang分布

埃尔朗分布是伽马分布的一个特例,其中形状参数α是正整数。它在排队理论和电信中用于模拟等待时间。

Gamma分布公式:

对于Erlang分布,α=k(一个整数),β是速率参数。

Erlang分布公式:

要从Gamma分布转换为Erlang分布:

  • 设定α = k(其中k是整数)
  • 公式变为:

Beta分布

Beta分布与Gamma分布相关,因为它使用Gamma随机变量构造Beta随机变量。具体来说,如果X和Y是独立的Gamma分布随机变量,分别具有参数(α1, β)和(α2,β),则随机变量(Z = X / X + Y)服从Beta分布。

Gamma分布公式:

Beta分布公式:

要从Gamma分布导出Beta分布:

逆伽马分布

逆伽马分布是伽马分布随机变量的倒数分布。如果X∼Γ(α,β),则Y=1/X服从逆伽马分布。

Gamma分布公式:

逆伽马分布公式:

要从Gamma分布导出逆Gamma分布:

  • 令X∼Γ(α,β)
  • 定义Y=1/X
  • Y服从参数为α和β的逆伽马分布

示例和Python计算

Gamma分布示例

假设我们有一个Gamma分布,其中α=3和β=2。

意思是:

差异:

众数(因为α > 1):

Python实现

提供Python代码以从Gamma分布生成随机样本。

import numpy as np
import matplotlib.pyplot as plt

# Parameters
alpha = 2.0
beta = 1.0

# Generate samples
samples = np.random.gamma(alpha, 1/beta, 1000)

# Plot the histogram
plt.hist(samples, bins=30, density=True, alpha=0.6, color='g')

# Plot the PDF
from scipy.stats import gamma
x = np.linspace(0, np.max(samples), 1000)
pdf = gamma.pdf(x, alpha, scale=1/beta)
plt.plot(x, pdf, 'k', linewidth=2)

plt.title('Gamma Distribution (alpha = {}, beta = {})'.format(alpha, beta))
plt.xlabel('x')
plt.ylabel('Density')
plt.show()

这是上述代码的输出:

Gamma分布的参数估计

从数据中估计Gamma分布的参数是统计建模中的一项关键任务。在本节中,我们将讨论如何使用最大似然估计(MLE)方法估计形状参数(α)和速率参数(β)。MLE是一种广泛使用的方法,用于通过最大化似然函数来估计统计模型的参数。

我们可以使用优化技术在Python中实现MLE方法来找到最大化对数似然函数的参数α和β。以下是使用该函数的代码示例:

from scipy.optimize import minimize
from scipy.special import gamma, digamma

def negative_log_likelihood(params, data):
    alpha, beta = params[0], params[1]
    n = len(data)
    log_likelihood = n * (alpha * np.log(beta) - np.log(gamma(alpha))) + (alpha - 1) * np.sum(np.log(data)) - beta * np.sum(data)
    return -log_likelihood

# Generate sample data
data = np.random.gamma(alpha, 1/beta, 1000)

# Initial guesses for alpha and beta
initial_params = [1.0, 1.0]

# Minimize the negative log-likelihood
result = minimize(negative_log_likelihood, initial_params, args=(data,), bounds=[(1e-5, None), (1e-5, None)])

estimated_alpha, estimated_beta = result.x
print(f"Estimated alpha: {estimated_alpha:.3}")
print(f"Estimated beta:  {estimated_beta:.3}")

预计alpha值:2.0
估计beta值:0.977

有关最大似然估计(MLE)的更多信息,请参阅此维基百科页面。

在我们机器学习系列的第27节,我介绍了Gamma分布,并讨论了它与其他分布(包括卡方分布和指数分布)的关系以及关键公式。请继续关注第28天的下一节我们将在其中深入探讨指数分布。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号