You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python Distfit:拟合分布信息的访问、配置与保存方法

问题1:访问并存储拟合分布信息

distfit的拟合结果直接存在拟合对象的属性中,无需捕获终端输出。核心属性是results,它是一个包含所有拟合分布信息的列表,每个元素是字典,包含分布名称、参数、拟合得分等关键数据。

示例代码:

from distfit import distfit
import numpy as np

# 测试数据
data = np.random.normal(loc=2, scale=3, size=1000)

# 初始化并执行拟合
df = distfit()
df.fit_transform(data)

# 直接获取所有拟合结果,存入列表
fit_info_list = df.results

# 提取最优的3个分布信息
top_3_fits = fit_info_list[:3]
for fit in top_3_fits:
    print(f"分布名称: {fit['name']}, 参数: {fit['params']}, 拟合得分: {fit['score']}")

每个字典的关键键值对说明:

  • name: 分布名称(如norm对应正态分布)
  • params: 分布的拟合参数(如正态分布的均值、标准差)
  • score: 拟合得分(得分越高拟合效果越好)
  • loc/scale: 部分分布的位置、缩放参数(和params对应)

问题2:修改参数小数位数等预配置

修改打印精度

初始化distfit对象时,通过precision参数可以直接设置打印时的小数位数,替代默认的6位:

# 设置精度为10位小数
df = distfit(precision=10)
df.fit_transform(data)
# 打印汇总信息时参数会保留10位小数
df.summary()

手动格式化参数

如果需要更灵活的格式控制,可以遍历results列表,手动处理参数的小数位数:

for fit in df.results[:3]:
    dist_name = fit['name']
    # 自定义保留12位小数
    formatted_params = [round(param, 12) for param in fit['params']]
    print(f"{dist_name} 分布参数: {formatted_params}")

修改其他预配置

比如想指定只测试特定分布,可以在初始化时用distributions参数:

# 仅测试正态、t分布和伽马分布
df = distfit(distributions=['norm', 't', 'gamma'])

内容的提问来源于stack exchange,提问作者Samuel LF

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 07:35:04