★本文系即将出版的《机器学习数学基础》中的“第5章概率”的“5.3.3 连续型随机分布”一节中“幂律分布”节选。本书将由电子工业出版社出版。相关主题网站:https://qiwsir.gitee.io/mathmetics/ ”
微软曾在一篇报告中称,Windows和Office中80%的错误是由检测到的20%的错误导致的(参阅:https://www.crn.com/news/security/18821726/microsofts-ceo-80-20-rule-applies-to-bugs-not-just-features.htm?itc=refresh),这与著名的质量管理专家 Juran(Joseph M. Juran)利用帕雷托分布在1940年代的研究成果完全契合。
图 5-3-8 Juran
何谓帕雷托分布?1909年,意大利经济学家帕雷托(Vilfredo Federico Damaso Pareto)发布了他对社会财富分配的研究结果,即“20%的人占据了80%的社会财富”,并被概括为“
”法则,此结论的数学依据就是帕雷托分布。
图 5-3-9 帕雷托
设
为服从帕雷托分布的随机变量,则:
其中,
为随机变量
的最小可能值;
是控制函数曲线“长尾”形状的参数,也称为帕雷托系数。
注意(5.3.37)中使用的
符号,不同于5.3.2节中的(5.3.9)式的概率分布函数
,其关系为
,所以,
所服从的概率分布函数为:
对
求导,得到概率密度函数:
图5-3-10是(5.3.39)式的图线,从图中可以看出公式中的
对曲线形状的控制。
图 5-3-10
下面的程序中生成了服从帕雷托分布的数据,并绘制直方图,显示数据的分布特点(注意,生成下面的数据时,
)。
%matplotlib inline
import numpy as np
import seaborn as sns
ax = sns.distplot(np.random.pareto(a=1.16,size=1000), hist=True, kde=True)
ax.set(xlabel='Pareto', ylabel='Frequency')
输出图像:
社会财富分配是帕雷托分布的典型应用,下面创建一个服从帕雷托分布的工资模型示例。
from scipy.stats import pareto
alpha = 1.16
xmin = 1000
incomes = pareto(b=alpha, scale=xmin)
这里不妨以
元作为最低值,即(5.3.39)式中的
,式中的
,这是一个超参数。这样,就创建了一个符合帕雷托分布的工资模型。
incomes.median()
# 输出
1817.6431200757233
在这个模型中,工资的中位数是
元。平均工资呢?
incomes.mean()
# 输出
7250.000000000004
显然,符合帕雷托分布的工资的平均值和中位数差很多。如果工资符合正态分布,两者差距应该不大,然而现实世界就是这么残酷地帕雷托分布。所以,关注平均工资,只会“几家欢乐”“多家愁”。
如果你的工资达到了上面的均值,就是“几家欢乐”里的一员了,这个“几”是多少呢?
top_ratio= 1 - incomes.cdf(incomes.mean())
print(f'{round(top_ratio*100, 2)}%')
# 输出
10.05%
在这个模型中,就是前
——恭喜发财。
将计算结果和前述绘制的图像结合,不难得知,在当前所构建的工资模型中,工资额度不高者数据量巨大,图中表现为右侧向横轴趋近,这种分布也称为长尾分布——“长尾”这个术语在商业领域被经常提及。
当然,这里只是一个理想的数学模型。
服从帕雷托分布的现象还很多,包括在网站中的操作行为也不能免于此。例如微博转发次数的分布特点,如图5-3-11所显示(张宁 等,《新浪微博转发数的幂律分布现象》,计算机时代,2015年第3期)。从图中可以看出,少数几篇微博转发量很高,绝大多数的转发量很低。
图 5-3-11
甚至于在语言学领域也出现了“长尾”现象。语言学家齐普夫(George K. Zipf)在研究英文单词出现的频率时发现,如果把单词出现的频率按由大到小的顺序排列,每个单词对应一个序号,则单词出现的频率与它的序号的常数次幂存在简单的反比关系:
这种分布被称为齐普夫定律(Zipf's law)。它表明在英语单词中,只有少数词汇被经常使用,绝大多数很少使用。事实上不止英语如此,以汉语为例,据统计,
个常用字能覆盖约
的书面资料,
字可覆盖
以上,
字已到
,而《汉语大字典》所收录的汉字为
个。
(5.3.37)式和(5.3.40)式都是幂函数,我们将凡是符合这类形式概率分布的统称为幂律分布(power law distribution)——齐普夫和帕雷托都为幂律分布做出了重要贡献。在实践中,幂律分布除了这里介绍的帕雷托分布、齐普夫定律之外,还有其他形式。但不论具体形式如何,都可以概括为:
这就是连续型随机变量
的概率密度函数,称之为
服从以
为参数的幂律分布。其中,
可以用
的最小可能值表示:
幂律分布表现了一种很强的不均衡、不平等,在网络、大数据时代,越来越受到关注,因为不均衡就也意味着机会。对此有兴趣的读者,除了从数学理论上了解之外,还可以继续深入研究,利用它从数据中挖掘新知。