#### 实验题目:使用梯度下降法训练线性回归模型
#### 实验目的:掌握线性回归的基本原理,以及梯度下降法和最小二乘法;
#### 实验环境(硬件和软件)Anaconda/Jupyternotebook/Pycharm
#### 实验内容:
(1)编码实现基于梯度下降的单变量线性回归算法,包括梯度的计算与验证;
(2)画数据散点图,以及得到的直线;
(3)画梯度下降过程中损失的变量图;
(4)基于训练得到的参数,输入新的样本数据,输出预测值;
1.导入工具
import numpy as np##导入包
import matplotlib.pyplot as plt##画图用
plt.rcParams['font.sans-serif']=['SimHei']##中文标题
plt.rcParams['axes.unicode_minus'] = False
2.步骤,求损失变化量
w=0
b=0
data=np.loadtxt('data1.txt',delimiter=',')
x=data[:,0]
y=data[:,1]
times=1000##次数
a=0.0001227##学习率,最后调试了一下参数,发现这个大小比较好
m=len(x)
E=np.zeros([1000,1])##画图用
#e=0
for j in range(times):
e=0
pe_w=0#损失函数对w求骗到
pe_b=0#对b
sumx2=0#x平方和
sumy_b=0
sumy_wx=0
for i in range(m):##这次迭代求偏导公式中要用到的连家和
e+=(y[i]-w*x[i]-b)**2##均方误差