简单线性回归及作图

【np.polyfit函数】采用的是最小二次拟合,numpy.polyfit(x, y, deg, rcond=None, full=False, w=None, cov=False),前三个参数是必须的

官方文档:https://docs.scipy.org/doc/numpy1.13.0/reference/generated/numpy.polyfit.html

【np.polyld函数】得到多项式系数,主要有三个参数
参数1表示:在没有参数2(也就是参数2默认False时),参数1是一个数组形式,且表示从高到低的多项式系数项,例如参数1为[4,5,6]表示:
在这里插入图片描述
参数2表示:为True时,表示将参数1中的参数作为根来形成多项式,即参数1为[4,5,6]时表示:(x-4)(x-5)(x-6)=0,也就是:

在这里插入图片描述
参数3表示:换参数标识,用惯了x,可以用 t,s之类的

import numpy as np
#原始数据
X=[ 1 ,2  ,3 ,4 ,5 ,6]
Y=[ 2.6 ,3.4 ,4.7 ,5.5 ,6.47 ,7.8]
#用一次多项式拟合,相当于线性拟合
z1 = np.polyfit(X, Y, 1)#使用一次多项式拟合
p1 = np.poly1d(z1)#得到多项式系数
print (z1)  #[ 1.          1.49333333]
print (p1)  # 1 x + 1.493
#作图显示
import matplotlib.pyplot as plt
import numpy as np

x = np.arange(1,7)
y = z1[0] * x + z1[1]#线性回归ax+b=y代入
plt.figure()
plt.scatter(X, Y)#画出原始数据点
plt.plot(x, y)
plt.show()

简单线性回归及作图_第1张图片
【改变原始数据及多项式系数】

import numpy as np
#原始数据
X=[ 1 ,2  ,3 ,4 ,5 ,6]
Y=[ 0,3.4 ,4.7 ,5.5 ,6.47 ,12.8]


#用三次多项式拟合
z1 = np.polyfit(X, Y, 3)#使用三次多项式拟合
p1 = np.poly1d(z1)#得到多项式系数
print (z1)  
print (p1)  

在这里插入图片描述

#作图显示
import matplotlib.pyplot as plt
import numpy as np

x = np.arange(1,7)
y = z1[0] *x*x*x +z1[1]*x*x+z1[2]*x+z1[3]
plt.figure()
plt.scatter(X, Y)#画出原始数据点
plt.plot(x, y)
plt.show()

简单线性回归及作图_第2张图片

你可能感兴趣的:(机器学习,机器学习,python)