1.安装
pip(3) install fitter
2.例子
# 数据生成
from scipy import stats
data = stats.gamma.rvs(2, loc=1.5, scale=2, size=10000) # 通过scipy生成服从gamma分布的10000个样本
# 拟合分布
from fitter import Fitter
f = Fitter(data) # 创建Fitter类
f.fit() # 调用fit函数拟合分布
f.summary() # 输出拟合结果
3.参数说明
classfitter.fitter.Fitter(data, xmin=None, xmax=None, bins=100, distributions=None, timeout=30, density=True)
distributions: 待拟合的分布,若不指定则会遍历上面提到的80个分布(会耗时较长)。eg. distributions = [‘gamma’, ‘erlang’]; xmin, xmax:截断样本数据的范围,小于xmin或大于xmax的数据会被忽略; timeout:单个分布拟合的最大时长,超过该值改分布会被遗弃,默认值为30,单位为秒。一般使用时我会将其调大为100秒,避免一些合适的分布被略去。 density通常设为True,bins为绘制直方图(histogram)时的分段数、默认不改,当有outlier时可适当扩大。
摘自知乎:https://zhuanlan.zhihu.com/p/420047068
|