tensorflow如何做幂律分布_人话聊概率:浅谈幂律分布

5a90bf4c70f4dae91b985cb12ea92f8e.png

​说起幂律分布,很多人都会觉得陌生,但你一定听说过它的应用---20-80法则

我国大学阶段概率统计教科书中很少讲到它,这是因为当前人们对幂律分布的了解还在不断深入之中。因而今次也只作浅谈。

生活中,我们经常会发现大学时代的模型不总奏效...比如:我们很难用正太分布很难解释为何某些顶级富豪会拥有那么多财富,因为那概率相当于让一个人的身高长到数公里。

789bb1b90d55a3cf5b134e4871e8c644.png

大自然偏爱正太类分布, 而在人文社会学中出现的却往往是幂律分布。

幂律分布出现一般出现在以下几种动态系统中:

1. 缺少自然的增长约束(不公平社会中的财富分配)

2. 在较短时间内能有快速增长(如微博的粉丝数量)

3. 系统的个体互相之间有关联(如某热门话题的讨论数)

4. 高动态复杂系统有关(同以上所有)

  • (参考了知乎用户 qzqz 的回答)

幂律分布特性:

让我们举个栗子

下图是艾瑞网2020年1月发布的国内50大热门 APP 排行榜

907d4cdc195a24df7007e2c468dc56a6.png

如果我们将这些APP 在榜单上的排名和它们的月活人数用横纵坐标对照起来的话,我们会得到如下效果 这些散点的连线类似于幂律分布,并满足以下3个特性:

1673511b76f1904912ccd5d9fbb563e6.png

1.长尾性:

若我们的样本趋近于无穷,它的图像会拖出一个长长的“尾巴”,这被称为幂律分布的“长尾性” :也就是我们常说的20-80定律的体现:20%的部分占据大量资源,而剩下的80%则拖出一条长长的尾巴。

2.标度不变性:

如果我们改变排名范围从前50改变成前25,会得到下图

1c21e4b157ad4b906b08e32122a1b246.png

发现没有?不管统计样本量如何变化,变量呈现的趋势仍是不变的。这种现象被称为幂律分布的“标度不变性”或者说“分形” 如同雪花无论如何分叉,其末端总会呈现同样的结构(大自然神奇的力量)

00c932d8ba1b88bd499f951a264e9935.png

关于“标度不变性”我们可以理解为:在那占据了大量资源的20%人群之中,万能的二八定律仍然有效:他们内部仍可以再被划分为20%和80% 无穷无尽...

3.对数线性

有时候为了方便计算,数学家喜欢用取Ln(自然对数)的方式把乘法转化成加法。如果我们将这些APP 的排名和月活数量分别取Ln,带入图像,神奇的现象就发生了!

0381060d438df964db27332b4259fc7d.png

取对数后,幂律分布的坐标变量会呈现出明显的线性关系,这个现象被称为幂律分布的“对数线性”

可不要小看这个“对数线性”。实际上,计算机之所以能够将幂律分布的方程拟合出来,依靠的就是这个特性。

幂律分布公式

幂律分布的概率密度函数如下:

13722f3c80ab433a49319d6053f3675e.png

而幂律分布的累计分布如下:

10484df35379c85d4b140efb316df001.png

其中的 a 和 c 都是参数 , 针对不同的情境会有不同的取值。

就我们分析的APP 案例而言,经过程序拟合可以得出:

a = 210801.885478

c = 0.77548255

拟合曲线如图中红线所示

fe82f9b31f33177c87ab1a835e67e640.png

所以2020年的手机APP 市场果真应验了胜者通吃的20-80法则了么?

也没那么夸张...根据拟合曲线模型: 前20%的APP占领了53.4% 的用户市场。

听起来是个好消息?Maybe ~

a673b5cab6abfe56fcbecb93f236a7d1.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C:\Users\zhang'xin'ge>python -c "import tensorflow as tf; print(tf._version_)" Traceback (most recent call last): File "<string>", line 1, in <module> File "D:\Anaconda\lib\site-packages\tensorflow\__init__.py", line 38, in <module> from tensorflow.python.tools import module_util as _module_util File "D:\Anaconda\lib\site-packages\tensorflow\python\__init__.py", line 37, in <module> from tensorflow.python.eager import context File "D:\Anaconda\lib\site-packages\tensorflow\python\eager\context.py", line 32, in <module> from tensorflow.python import pywrap_tfe File "D:\Anaconda\lib\site-packages\tensorflow\python\pywrap_tfe.py", line 25, in <module> from tensorflow.python._pywrap_tfe import * ImportError: DLL load failed while importing _pywrap_tfe: 找不到指定的模块。 C:\Users\zhang'xin'ge>python -c "import keras; print(keras._version_)" Traceback (most recent call last): File "<string>", line 1, in <module> File "D:\Anaconda\lib\site-packages\keras\__init__.py", line 21, in <module> from tensorflow.python import tf2 File "D:\Anaconda\lib\site-packages\tensorflow\__init__.py", line 38, in <module> from tensorflow.python.tools import module_util as _module_util File "D:\Anaconda\lib\site-packages\tensorflow\python\__init__.py", line 37, in <module> from tensorflow.python.eager import context File "D:\Anaconda\lib\site-packages\tensorflow\python\eager\context.py", line 32, in <module> from tensorflow.python import pywrap_tfe File "D:\Anaconda\lib\site-packages\tensorflow\python\pywrap_tfe.py", line 25, in <module> from tensorflow.python._pywrap_tfe import * ImportError: DLL load failed while importing _pywrap_tfe: 找不到指定的模块。
最新发布
07-23
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值