趋近智
我们从两个处理离散结果的基础概率分布开始学习:伯努利分布和二项分布。它们通常是人们最初接触的分布,因为它们模拟简单的“是/否”或“成功/失败”情景,而这类情景在数据分析和机器学习 (machine learning)中普遍存在。
想象一下最简单的随机试验,它只有两种结果:成功或失败。例如,一次硬币翻转(正面或反面),一次广告点击(已点击或未点击),或一封邮件被分类(垃圾邮件或非垃圾邮件)。伯努利分布描述了这些单次试验事件的概率。
如果随机变量 只能取两个值,通常表示为 1(成功)和 0(失败),那么它服从伯努利分布。该分布由一个参数 (parameter) 定义,该参数表示成功的概率()。因此,失败的概率是 。
概率质量函数(PMF):
PMF 给出每个可能结果的概率。对于伯努利随机变量 ,其 PMF 为:
这可以更简洁地写为:
特性:
伯努利分布是二项分布的基本构成部分。
那么,如果我们在相同条件下重复多次伯努利试验并计算成功的次数呢?例如,抛掷一枚均匀硬币 10 次并计算正面朝上的次数,或者测试 20 个制造部件并计算有多少是缺陷产品(假设每个部件有缺陷的概率是恒定的,且测试相互独立)。这种情景由二项分布来描述。
如果随机变量 表示 次独立同分布的伯努利试验中成功的总次数,其中每次试验成功的概率为 ,则它服从二项分布。
二项分布由两个参数 (parameter)确定:
我们将其表示为 。
概率质量函数(PMF):
PMF 给出在 次试验中观察到恰好 次成功的概率。
其中:
特性:
示例: 假设我们抛掷一枚不均匀的硬币(正面朝上概率 )5 次()。恰好出现 3 次正面()的概率是多少?
使用 PMF:
因此,在 5 次抛掷中恰好出现 3 次正面的概率约为 34.6%。
scipy.stats 模块提供了用于处理这些分布的便捷函数。
import numpy as np
from scipy.stats import bernoulli, binom
import matplotlib.pyplot as plt
# --- 伯努利分布示例 ---
p_success = 0.7 # 成功的概率(例如,点击率)
# 创建一个伯努利分布对象
rv_bern = bernoulli(p_success)
# 概率质量函数(PMF)
print(f"伯努利 PMF(k=1): {rv_bern.pmf(1):.4f}") # P(X=1)
print(f"伯努利 PMF(k=0): {rv_bern.pmf(0):.4f}") # P(X=0)
# 期望值和方差
print(f"伯努利 E[X]: {rv_bern.mean():.4f}")
print(f"伯努利 Var(X): {rv_bern.var():.4f}")
# 生成随机样本
print(f"伯努利样本 (10): {rv_bern.rvs(size=10)}")
print("-" * 30)
# --- 二项分布示例 ---
n_trials = 10 # 试验次数(例如,检查 10 封邮件)
p_success_bin = 0.2 # 每次试验成功的概率(例如,邮件是垃圾邮件)
# 创建一个二项分布对象
rv_binom = binom(n_trials, p_success_bin)
# k=3 次成功的概率质量函数(PMF)
k_successes = 3
print(f"二项分布 PMF(k={k_successes}): {rv_binom.pmf(k_successes):.4f}") # P(X=3)
# k<=3 次成功的累积分布函数(CDF)
print(f"二项分布 CDF(k<={k_successes}): {rv_binom.cdf(k_successes):.4f}") # P(X<=3)
# 期望值和方差
print(f"二项分布 E[X]: {rv_binom.mean():.4f}") # np
print(f"二项分布 Var(X): {rv_binom.var():.4f}") # np(1-p)
# 生成随机样本(15 次 n_trials 试验中成功的次数)
print(f"二项分布样本 (15): {rv_binom.rvs(size=15)}")
# --- 绘制二项分布 PMF ---
k_values = np.arange(0, n_trials + 1)
pmf_values = rv_binom.pmf(k_values)
# 为二项分布 PMF 生成 Plotly JSON
次试验和成功概率 的二项分布概率质量函数。最有可能的结果是 2 次成功。
伯努利分布描述单个事件,而二项分布汇集了多个独立伯努利事件的结果。了解这些分布很重要,因为它们构成了分析二元结果的基础,而二元结果在分类问题(垃圾邮件/非垃圾邮件、恶性/良性)、A/B 测试结果以及许多其他与机器学习 (machine learning)相关的情景中经常出现。
这部分内容有帮助吗?
bernoulli 函数的详细信息。binom 函数的详细信息。© 2026 ApX Machine LearningAI伦理与透明度•