问题标签 [zipf]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2674 浏览

python - 曲线拟合 zipf 分布 matplotlib python

我试图用 Python F~x^(-a) 中的 Zipf 分布 PDF 拟合以下图(红点)。我只是简单地选择a=0.56并绘制y = x^(-0.56)了,我得到了如下所示的曲线。

曲线显然是错误的。我不知道如何进行曲线拟合。

在此处输入图像描述

0 投票
1 回答
3424 浏览

python - 使用 matplotlib,FITTED-LINE 构建 Zipf 分布

我有一个段落列表,我想在其中对它们的组合运行 zipf 分发。

我的代码如下:

目的我尝试在此图中绘制“一条拟合线”,并将其值分配给一个变量。但是我不知道如何添加。对于这两个问题,我们将不胜感激任何帮助。

0 投票
1 回答
481 浏览

random - 基于 Zipf 分布的数字生成

我想为一个小数据集生成一个流行度分布,它应该遵循Zipf法律。

可用参数有:
观众总数:100 万
视频总数:36

我想根据Zipf法律将观看者总数与每个视频相关联。例如,有多少观众会观看 video1、video2 .. 等等。
谁能告诉我公式或方法?

0 投票
1 回答
752 浏览

python - scipy.stats.zipf 中的参数是什么意思?

文档

zipf 的概率质量函数为:

zipf.pmf(k, a) = 1/(zeta(a) * k**a) 对于 k >= 1。

zipfa作为形状参数。

上面的概率质量函数以“标准化”形式定义。要转移分布,请使用 loc 参数。具体来说,zipf.pmf(k, a, loc) 等同于 zipf.pmf(k - loc, a)。

但是aandk指的是什么?“形状参数”是什么意思?

此外,在 中scipy.stats.zipf.interval,还有一个alpha参数。

.interval()方法的描述很简单:

包含分布的 alpha 百分比的范围的端点

参数是什么alpha意思?那是“置信区间”吗?

0 投票
1 回答
2565 浏览

python - Zipf 分布:如何使用 Python / Numpy 测量 Zipf 分布

我有一个大约 700 行的文件(比如说 corpus.txt),每行包含以 . 分隔的数字-。例如:

首先我需要从文件中读取数据,找到每个数字的频率,测量这些数字的 Zipf 分布,然后绘制分布图。我已经完成了任务的前两部分。我一直在绘制 Zipf 分布。

我知道numpy.random.zipf(a, size=None)应该用于此。但我发现它非常难以使用。任何指针或代码片段都会非常有帮助。

代码:

0 投票
1 回答
7464 浏览

python - Zipf 分布:如何测量 Zipf 分布

如何测量或找到 Zipf 分布?例如,我有一个英语单词语料库。如何找到 Zipf 分布?我需要找到 Zipf 分布,然后绘制它的图表。但我被困在第一步,即找到 Zipf 分布。

编辑:从每个单词的频率计数来看,很明显它遵守 Zipf 定律。但我的目标是绘制一个 zipf 分布图。我不知道如何计算分布图的数据

0 投票
1 回答
113 浏览

r - Zipf_plot():如何在一张图中比较两个对象?

我正在尝试使用 tm 包中的 Zipf_plot 函数来比较两个不同的文档术语矩阵 - 而且我不是 R 专家.. 也许你可以告诉我,如果有一种方法可以同时适应这两个函数?

我知道,有可能将它们中的两个(或更多)放在一个窗口中:

但我真的很感激在一个图中有两个或多个 dtms 的解决方案。

提前致谢!:-)

0 投票
1 回答
180 浏览

gnuplot - 根据 gnuplot 上的数据绘制“完美”的 Zipf 分布

我的目标是拥有一个简单的 .dat 文件,并从中绘制出完美 Zipf 分布的实际数据和理论点,即每个项目的值都等于 1/(rank) 的分布。

例如,我关注最多的 Instagram 帐户的数据是:

从另一个线程我了解到,我可以添加一个新列,其中包含每个等级的理想 Zipf 分布值(在本例中为 222、111、74、55.5 等),然后运行第二个图,,'' using 1:3但这需要手动进行计算和将其附加到原始文件中,这是我试图避免的步骤。这可能吗?我如何将其扩展到其他数据分布/计算?

0 投票
1 回答
279 浏览

algorithm - 如何选择插值点以减少逆 CDF 查找的最大误差

问题:如何选择使每个插值段中任何点的最大误差保持在指定范围内的插值点?

目标是根据 Zipf 定律使用逆变换采样来塑造随机分布。我在这里找到了 Zipf 归一化因子的一个很好的近似值:

https://arxiv.org/abs/1511.01480(Maurizio Naldi 的“截断 Zeta 分布和 Zipf 定律的近似”)

我现在正在做的是创建 CDF 值与等级的样条曲线,并尝试设置一个错误界限,这样对于没有等级的插值值偏离其值的一定百分比以上(相对误差)。如果我有太多样条点,那会浪费内存。如果我的分数太少,那会增加错误。我试图找到样条点的最佳位置以平衡这两者。

我目前的方法(失败)是遍历所有等级并查看连续等级之间 PDF 值的差异。这种差异是一阶导数的代理。我跟踪差异的 MIN 和 MAX 值,当它们与 CDF 的比例差异太大时,我假设曲线弯曲太多,我添加一个新的插值点并开始跟踪所有差异。该算法产生的插值点太少,因为错误的累积速度比我预期的要快。

我有另一个想法:保持两个指针,一个在增长段的末尾,一个在前进一半的中点。当中点的误差变得太大时,添加一个新的插值点。但是,我不确定最严重的错误是否一定在范围的中间。

我可以存储所有等级的 CDF 值(使用大量内存 - 我当前的应用程序的最大等级为 50 万)。然后我可以详尽地测试建议段的每个内插值,并在错误变得太大时停止。我可以过冲并进行二进制搜索以找到最佳段长度 - 更快,但仍然需要大量内存。我希望有一个内存开销适中的单通道或双通道在线算法。

顺便说一句,对于每个样条线段,我尝试了以下插值函数:

  1. 线性 - 结果不佳。

  2. 二次 - 更好,但仍然很差。

  3. 双曲线 - 在分段上的工作时间是二次曲线的两倍,但仍然不够好。(如果我找到更好的方法来选择插值点,这可能就足够了。)

注意:双曲线的效果比预期的要好,因为高斯分布像大多数其他分布一样为 CDF 生成 S 曲线,而 Zipf PDF 在开始时有峰值,因此它的 CDF 看起来像一条带有渐近线的双曲线。

更新:

我采纳了我的一个想法。我跟踪样条线段的中点,因为它随着第二个指针的增长而增长,当中点处的误差变得太大时,我结束该段并开始另一个。正如预期的那样,中点不是误差最大的地方,所以我将我的理想误差除以七,如果中点误差超过我开始一个新的段。

以上还不够。我发现由于最后一段保证在 CDF = 1 处结束,所以最后一段实际上到达了渐近线。我的双曲线曲线拟合公式不希望在秩达到无穷大之前达到渐近线,因此这会引入错误。因此,对于 CDF = 1 附近的最后几个段,我回退到使用抛物线拟合。

上述方法对 CDF 错误产生了良好的结果,但有时会导致往返计算的结果不佳。如果我要求给定排名的 CDF,然后在反向查找中使用该 CDF 来查找排名,结果排名并不总是与原始排名匹配。我仍在研究如何纠正此往返错误。

0 投票
2 回答
561 浏览

r - 整洁的文本:从以下术语-文档矩阵计算 Zipf 定律

我尝试了来自http://tidytextmining.com/tfidf.html的代码。我的结果可以在这张图片中看到。

我的问题是:如何重写代码以产生词频和排名之间的负关系?

以下是术语-文档矩阵。任何意见都受到高度赞赏。