如何使用numpy.polyfit和打印错误统计信息执行线性回归?

如何使用numpy.polyfit和打印错误统计信息执行线性回归?,numpy,best-fit,Numpy,Best Fit,我正在弄清楚如何使用np.polyfit函数,这让我很困惑。特别是,我尝试执行线性回归并打印相关统计数据,如平方误差之和(SSE)。有人能提供清晰简洁的解释吗?可能只需要一个最小的工作示例。np.polyfit返回一个元组,其中包含参数化度的最佳拟合多项式的系数deg。要安装直线,请使用deg=1。通过将full=True作为参数传递给polyfit,可以返回残差(误差平方和)。请注意,使用此参数,polyfit还将返回有关拟合的一些其他信息,我们可以放弃这些信息 总的来说,我们可能有 impo

我正在弄清楚如何使用
np.polyfit
函数,这让我很困惑。特别是,我尝试执行线性回归并打印相关统计数据,如平方误差之和(SSE)。有人能提供清晰简洁的解释吗?可能只需要一个最小的工作示例。

np.polyfit
返回一个元组,其中包含参数化度的最佳拟合多项式的系数
deg
。要安装直线,请使用
deg=1
。通过将
full=True
作为参数传递给
polyfit
,可以返回残差(误差平方和)。请注意,使用此参数,
polyfit
还将返回有关拟合的一些其他信息,我们可以放弃这些信息

总的来说,我们可能有

import matplotlib.pyplot as plt
import numpy as np

# Generate some toy data.
x = np.random.rand(25)
y = 2 * x + 0.5 + np.random.normal(scale=0.05, size=x.size)

# Fit the trend line.
(m, b), (SSE,), *_ = np.polyfit(x, y, deg=1, full=True)

# Plot the original data.
plt.scatter(x, y, color='k')

# Plot the trend line.
line_x = np.linspace(0, 1, 200)
plt.plot(line_x, m * line_x + b, color='r')

plt.title(f'slope = {round(m, 3)}, int = {round(b, 3)}, SSE = {round(SSE, 3)}')
plt.show()
调用
polyfit
中的
*.
符号只是告诉Python放弃函数返回的许多附加值。如果您感兴趣,文档可以告诉您这些额外的值。我们必须将SSE解析为一个元组
(SSE,)
,因为
polyfit
将其作为单例数组返回。这段代码会产生类似的结果


您可能还想知道,它将获取多项式系数的元组,并在输入点计算相应的函数。

欢迎使用堆栈溢出,谢谢您的提问。如果您能向我们展示您拥有的任何代码,仅仅是一个简单的示例,并向我们解释您在哪里难以打印这些值,那就太好了。向我们展示你做过的任何研究,你尝试过网络搜索吗?谢谢,我想已经有人大致回答了^^