听课笔记,下面代码是交互式的,不能直接全部运行
x=[1,2,3,4,5]
y=[4,7,10,13,16]
x #显示x,结果为 [1,2,3,4,5]
y #显示y,结果为 [4,7,10,13,16]
**
## 一、画散点图
**
import matplotlib.pyplot as plt #重命名为plt
#第一种画图方式
plt.scatter(x,y)
#第二种画图方式
plt.plot(x,y,'.')
**
**## 二、线性拟合**
import numpy as np
z=np.polyfit(x,y,1) #1次多项式拟合
z #显示z,为 array([3.,1.]),高位系数3,低位系数1
p=np.poly1d(z) #将z转为多项式
print(p) #结果为3x+1
y1=p(x)#打印出拟合的值
y1 #结果为 array([ 4., 7., 10., 13., 16.])
#画出拟合曲线
plt.plot(x,y1,'-')
#若想将上面两个图合在一起,有两种方式
plt.plot(x,y,'.',x,y1,'-r') #'-r'表示用红线画出
#另一种方式为两个写在一起运行
plt.plot(x,y,'.')
plt.plot(x,y1,'-')
**
## 三、线性回归分析
**
from sklearn.linear_model import LinearRegression
#将x转为列向量
x=np.array(x).reshape(5,1)
#结果为 array([1],
# [2],
# [3],
# [4],
# [5])
m=LinearRegression()#建立m模型
z1=m.fit(x,y)
z1.score(x,y)#显示拟合效果为1.0
z1.predict([[10]])//预测 ,结果为31
p=z1.coef_#显示系数
q=z1.intercept_#显示斜率
w=np.append(p,q)
p1=np.poly1d(w)#将w转为多项式
print(p1)//结果为 3x+1
数据x,y的散点图为
数据x,y的拟合曲线
将上面两个图花在一起的图片