numpy进行多项式拟合

1、有一些点的集合,进行Least squares polynomial fit.

x = np.array([-1,0,1])  #x坐标

y = np.array([1,0,1])

f1 = np.polyfit(x,y,2) # f1是拟合后的多项式的系数,是一个array,degree从高到低排列

p = np.poly1d(f1) # p是二项式的函数,可以带入x进行计算

print(p(1))

2、拟合后我们如何评判拟合的准确程度?

使用R2拟合优度指数进行评价。

我们认为,用y的平均去预测y是一个最差情况(实际上可能比这个还差,比如实际值都是1,预测值却都是10000),任何预测都应该比这个准.

于是R2=1-SSE/SST 也就是预测值和真实值的残差平方和要小于平均值和真实值的残差平方和,即SSE<SST。R2一般介于0和1之间,越大拟合效果越好,但如果模型出乎意料的非常差,可能为负。

Best possible score is 1.0 and it can be negative (because the
model can be arbitrarily worse).

计算R2值

from sklearn.metrics import r2_score
coefficient_of_determination = r2_score(y_true, p(x))
y_true: array-like
p(x): array-like
原文地址:https://www.cnblogs.com/yjybupt/p/12972682.html