如何在 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)

数据可视化实例: 带线性回归最佳拟合线的散点图(matplotlib,pandas)

更改计算最佳拟合线的方法

边缘图的最佳拟合线

如何在 Keras 模型中训练和验证样本较小时测量过拟合

如何识别 Python 中的过拟合和欠拟合