在现实应用中(如机器学习、统计建模等),我们常常需要从某个概率分布中生成样本,尤其是在以下两种场景:
-
数据量太小,想通过采样生成合成数据(synthetic data)
-
模型训练或推理时需要随机变量的样本
🟩 离散分布采样(以颜色为例)
设:
-
绿色:0.3
-
蓝色:0.5
-
橙色:0.2
方法一:逆变换采样(Inverse Transform Sampling)
-
构造区间(累积概率):
-
-
采样步骤:
-
生成
-
看 落在哪个区间
-
输出对应的颜色
-
方法二:用 CDF(累计分布函数)
-
画出柱状图 + 累积分布函数(CDF)
-
从 中均匀采样
-
找对应 CDF 的横坐标,得到颜色索引(如 green=0, blue=1)
🟦 连续分布采样(以高斯分布为例)
思路:将采样问题转化为 CDF 的逆
-
假设目标分布为 (如标准正态)
-
构建其累积分布函数
-
从 采样
-
令 ,即 就是服从 的采样结果
📌 注:对于标准正态等复杂分布,通常无法解析写出 ,因此使用数值方法或 库函数(如 NumPy, PyTorch) 实现。