如何在 Python 中测量最佳拟合线的质量? [复制]
Posted
技术标签:
【中文标题】如何在 Python 中测量最佳拟合线的质量? [复制]【英文标题】:How to measure the quality of a best fit line in Python? [duplicate] 【发布时间】:2014-11-19 14:05:43 【问题描述】:我有一些数据点要绘制,并想在图表中添加一条最佳拟合线,然后输出相关指标以指示最佳拟合线的质量。
我可以绘制数据,polyfit
是我用来添加最佳拟合线的函数。但是,我只是想知道如何获得指示最佳拟合线质量的指标?
我没有看到 polyfit
返回任何指标(即最小平方误差值)。
数据:
0,1717
1,1761
2,1961
3,1711
4,1285
5,976
6,721
7,428
8,313
9,297
10,375
11,521
12,678
13,752
14,728
15,758
16,741
17,812
18,845
19,863
20,933
21,1169
22,1523
23,1779
【问题讨论】:
你可以看看What's the error of numpy.polyfit? @Kevin 还有t-test 是一种测试合身度的方法。 也许这会有所帮助? docs.scipy.org/doc/scipy-0.14.0/reference/generated/… @askewchan & @corvid,你的意思是......我应该编写自己的多项式函数,而不是使用 polyfit,然后使用scipy.optimize.curve_fit
?
@Dalek,但是如何使用 polyfit
函数从最佳拟合线中获取错误?
【参考方案1】:
均方误差是一种衡量标准。
如果你的行和数据上有每个点的 numpy 数组:
numpy.mean((data - line_vals) ** 2)
编辑: 得到 line_vals,如果你有一个方程 y=mx+b 代表一条线:
line_vals = b + m * numpy.linspace(0, 23, 24)
【讨论】:
我使用了polyfit
函数,但没有编写我自己的多项式函数...你知道如何从那里得到line_vals
吗?
@Kevin,您可以在来自np.polyfit
的结果上使用np.polyval
。注意here 描述的不匹配以上是关于如何在 Python 中测量最佳拟合线的质量? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
数据可视化实例: 带线性回归最佳拟合线的散点图(matplotlib,pandas)