3

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

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

在此处输入图像描述

4

1 回答 1

6

不确定您到底在寻找什么,但如果您想将模型(函数)拟合到数据中,请使用scipy.optimize.curve_fit

from scipy.optimize import curve_fit
from scipy.special import zetac


def f(x, a):
    return (x**-a)/zetac(a)


result = curve_fit(f, x, y, p0=[0.56])
p = result[0]

print p

如果您不信任规范化,请添加第二个参数b并对其进行拟合。

于 2012-08-20T12:59:34.230 回答