sklearn 的 SGDRegressor()函数用于实现梯度下降法的回归分析。
# coding=utf-8
# 导入必要的库
import numpy as np
import matplotlib.pyplot as plt
from sklearn import linear_model
# 设置文字
plt.rcParams['font.sans-serif']='SimHei'
# 创建数据矩阵
X,y = [],[]
X=[[123],[150],[87],[102]]
y=[[250],[320],[160],[220]]
X=np.array(X)
y=np.array(y)
# 创建模型
model=linear_model.SGDRegressor(loss="huber", penalty="l2", max_iter=5000)
model.fit(X, y.ravel())
SGDRegressor(loss=‘huber’, max_iter=5000)
# 预测值
y2=model.predict(X)
print(y2)
[264.56192582 322.63285163 187.13402473 219.39565018]
# 画图
plt.axis([80,160,150,350])
plt.scatter(X,y,color='y', marker='o')
plt.plot(X,y2,'g-') #画拟合线
plt.legend(['预测值','真实值'])
plt.show()
print("截距:",model.intercept_) #截距
print("斜率:",model.coef_) #斜率
截距: [0.0165971]
斜率: [2.15077503]