机器学习3

机器学习3( matplotlib补充以及线性回归之最小二乘法的实现)

1.matplotlib补充
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import numpy as np
import matplotlib as mp
from pylab import *

figure(figsize=(16,6),dpi=80)
subplot(1,1,1)
#创建等差数列
X=np.linspace(-np.pi,np.pi,256,endpoint=True)
c,s=np.cos(X),np.sin(X)
#绘制余弦曲线
plot(X,c,color="blue",linewidth=1.0,linestyle="-")
#绘制正弦曲线
plot(X,s,color="green",linewidth=1.0,linestyle="-")
xlim(-4.0,4.0)
#设置上下限,设置横轴标记符
xticks(np.linspace(-4,4,9,endpoint=True))
ylim(-1.0,1.0)
yticks(np.linspace(-1,1,5,endpoint=True))

#设置边界
xlim(X.min()*(1.1),X.max()*1.1)
ylim(c.min()*1.1,c.max()*1.1)

#设置记号
xticks([-np.pi,-np.pi/2,0,np.pi/2,np.pi],[r'$-\pi$',r'$-\pi/2$',r'$0$',r'$+\pi/2$',r'$+\pi$'])
yticks([-1,0,+1],[r'$-1$',r'$-\pi/2$',r'$0$',r'$+\pi/2$',r'$+\pi$'])



savefig("exciese1",dpi=72)
2.线性回归之最小二乘法(使用sklearn中的糖尿病数据集)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import matplotlib.pyplot as plt
import numpy as np
from sklearn import datasets,linear_model
from sklearn.metrics import mean_squared_error,r2_score

#加载数据集
diabetes=datasets.load_diabetes()
diabetes_X=diabetes.data[:,np.newaxis,2]

diabetes_x_train=diabetes_X[:-20]
diabetes_x_test=diabetes_X[-20:]

diabetes_y_train=diabetes.target[:-20]
diabetes_y_test=diabetes.target[-20:]


regr=linear_model.LinearRegression()
regr.fit(diabetes_x_train,diabetes_y_train)

diabetes_y_predict=regr.predict(diabetes_x_test)

#系数
print(regr.coef_)
#均方差
print("%.2f"%mean_squared_error(diabetes_y_test,diabetes_y_predict))
#预测
print("得分:%.2f"%r2_score(diabetes_y_test,diabetes_y_predict))

#绘制结果
plt.scatter(diabetes_x_test,diabetes_y_test,color='black')
plt.plot(diabetes_x_test,diabetes_y_predict,color='blue',linewidth=3)
plt.xticks()
plt.yticks()
plt

运行结果