python - 不知道如何打印最小二乘误差
问题描述
我编写了一些代码来使用最小二乘的解析解来找到几个数据点的最佳拟合线。现在我想打印实际数据和我估计的线之间的误差,但我不知道如何计算它。这是我的代码:
import numpy as np
import matplotlib.pyplot as plt
A = np.array(((0,1),
(1,1),
(2,1),
(3,1)))
b = np.array((1,2,0,3), ndmin = 2 ).T
xstar = np.matmul( np.matmul( np.linalg.inv( np.matmul(A.T, A) ), A.T), b)
print(xstar)
plt.scatter(A.T[0], b)
u = np.linspace(0,3,20)
plt.plot(u, u * xstar[0] + xstar[1], 'b-')
解决方案
您已经绘制了线性回归的预测。因此,根据预测值,您可以计算“平方误差之和 (SSE)”或“均方误差 (MSE)”,如下所示:
y_prediction = u * xstar[0] + xstar[1]
SSE = np.sum(np.square(y_prediction - b))
MSE = np.mean(np.square(y_prediction - b))
print(SSE)
print(MSE)
旁注。您可能希望使用np.linalg.pinv
它是一个数值更稳定的矩阵逆运算符。
推荐阅读
- yaml - 如何用一个竹子.yaml 处理多个竹子实例
- spss - 如何在SPSS中保留前导零?
- function - 我在第 16 行遇到错误“image_grabber 未定义错误”
- python - 如果整个数据集的图像可以以较小的部分切片/平铺,然后在特征提取后再次连接?
- c++ - 在值 C++ 中搜索设置/未设置位组合
- liferay - 似乎文档 Liferay 索引没有完全完成
- excel - 显示每月前 5 名销售代表的数据透视表
- javascript - 尝试加载 mapbox 时收到错误消息
- node.js - React Highmaps 从第一个到第二个或第二个到第三个图表
- c# - 从 Azure Blob 存储获取文件大小报告