数据科学家每天处理的数据,90%都逃不出四种分布的手掌心。但新手常犯的错误是:拿到数据先上模型,连分布长什么样都没看清。

这篇文章用Python代码+真实场景,把概率分布从"课本概念"变成"解题工具"。

离散vs连续:两种世界的游戏规则

离散vs连续:两种世界的游戏规则

数据分两类:能数的和能量的。客户投诉次数、网站点击数——这些整数型的是离散分布。用户停留时长、商品重量——这些可以无限细分的是连续分布

Python里区分很简单:scipy.stats模块中,离散分布用pmf(概率质量函数),连续分布用pdf(概率密度函数)。混用会报错,就像用尺子量体重。

真实案例:某电商分析"每日订单数",发现服从泊松分布(离散)。但分析师误用正态分布拟合,预测结果偏差23%,库存积压损失上百万。

正态分布:为什么自然界偏爱钟形曲线

人的身高、测量误差、智商分数——这些看似无关的数据,都扎堆在正态分布周围。中心极限定理解释了原因:大量独立随机因素叠加,结果必然趋近钟形。

Python生成正态分布只需一行:

from scipy.stats import norm
data = norm.rvs(loc=0, scale=1, size=1000)

参数loc是均值,scale是标准差。这两个数定了,整个分布的形状就锁死了。68-95-99.7法则记住:均值±1个标准差覆盖68%数据,±2个标准差95%,±3个标准差99.7%。

机器学习里的应用:特征标准化(StandardScaler)就是把数据压进标准正态分布。模型对数值范围敏感,归一化后收敛速度提升3-5倍。

PDF与CDF:一个看"密度",一个看"累积"

PDF与CDF:一个看"密度",一个看"累积"

概率密度函数(PDF)回答:某个点有多"挤"?累积分布函数(CDF)回答:小于这个值的概率是多少?

打个比方:PDF是海拔高度图,CDF是爬到某高度的累计路程。两者关系是积分/导数,CDF求导得PDF,PDF积分得CDF。

Python实战——计算用户消费金额的90%分位数:

from scipy.stats import lognorm
# 假设消费数据服从对数正态分布
dist = lognorm(s=0.5, scale=100)
threshold = dist.ppf(0.9) # 约205元

运营团队拿到这个数字:90%用户单次消费低于205元,超出的10%是重点运营对象。PDF/CDF把"感觉"变成"阈值"。

机器学习里的分布思维

机器学习里的分布思维

线性回归假设残差正态分布, violated时考虑对数变换或广义线性模型。朴素贝叶斯直接假设特征条件独立且服从特定分布,选错分布模型就崩。

异常检测更依赖分布:用历史数据拟合正态分布,新数据落在3σ外的概率仅0.3%,触发告警。这比固定阈值聪明——业务波动大时自动放宽,平稳时收紧。

一个细节:A/B测试的p值计算,本质是假设检验下的分布比较。两组转化率差异是否显著,看的是抽样分布的重叠程度。

读完这篇,你手头那份数据——先画直方图,再拟合分布,最后才选模型?还是直接fit()