拟合过程
polyfit()函数可以使用最小二乘法将一些点拟合成一条曲线
numpy.polyfit(x, y, deg, rcond=None, full=False, w=None, cov=False)
# x:要拟合点的横坐标
# y:要拟合点的纵坐标
# deg:自由度.例如:自由度为2,那么拟合出来的曲线就是二次函数,自由度是3,拟合出来的曲线就是3次函数
numpy.poly1d(c_or_r, r=False, variable=None)
参数1:为一个数组,若没有参数2,则生成一个多项式,例如
p = np.poly1d([2,3,5,7])
print§ ==>>2×3 + 3×2 + 5x + 7 数组中的数值为coefficient(系数),从后往前 0,1,2.。。为位置书的次数
参数2:若参数2为True,则表示把数组中的值作为根,然后反推多项式,例如
q = np.poly1d([2,3,5],True)
print(q) ===>>(x – 2)(x – 3)(x – 5) = x3 – 10×2 + 31x -30
参数3:variable=‘z’表示改变未知数的字母,例如:
q = np.poly1d([2,3,5],True,varibale = ‘z’)
print(q) ===>>(z – 2)(z – 3)(z – 5) = z3 – 10z2 + 31z -30
使用poly1d()函数帮我们拼接方程
import numpy as np
parameter = np.polyfit(x, y, 3) # 拟合3次方程的参数
p = np.poly1d(parameter) # 组合 方程
y2 = p(x) # 拟合后y值
绘制散点图及拟合线
plt.scatter(x, y)
plt.plot(x, y2, color='g')
plt.show()
评估指标R方
利用相关系数矩阵计算R方
correlation = np.corrcoef(y, y2)[0,1] #相关系数
correlation**2 #R方
poly1d函数自带的输出结果
p = np.poly1d(parameter,variable='x')
print(p)
参考链接:
https://blog.csdn.net/fffsolomon/article/details/104831050
https://www.cnblogs.com/zhouzhe-blog/p/9621679.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/34859.html