机器学习实验报告——Linear Regression

        机器学习实验报告——Linear Regression 

一、 实验要求

要求用梯度下降法对给定的数据XY进行线性拟合。给出迭代次数,拟合曲线。

二、 实验思路

    模型的建立:

       估计函数的假设:

 

其中,X为输入变量,θ为参数。

        假设误差估计函数(error functionJ,我们的目标便是寻找合适的参数θ,使得误差函数J最小化。

 机器学习实验报告——Linear Regression_第1张图片

调整θ以使得J(θ)取得最小值有很多方法,其中有最小二乘法(min square)梯度下降法(gradient descent,牛顿法(Newton’s Method)等,每种方法都有各自的优缺点。

三、 梯度下降法 

     在选定线性回归模型后,只需要确定参数θ,就可以将模型用来预测。然而θ需要在J(θ)最小的情况下才能确定。因此问题归结为求极小值问题,使用梯度下降法。梯度下降法最大的问题是求得有可能是全局极小值,这与初始点的选取有关。

  梯度下降法步骤: 

 1初始化θ

 2)改变θ的值,使得J(θ)按梯度下降的方向进行减少。

     梯度方向由J(θ)θ的偏导数确定,由于求的是极小值,因此梯度方向是偏导数的反方向。结果为

 

所以θ更新公式为:


其中a为步长因子,其取值要适中,太小的时收敛速度太慢,太大时有可能跳过最优解。

四、 算法实现

1. 选取参数theta0=0.75 theta1=1.65作为初始值。

2. 步长因子alpha=0.001(以上选取经试验验证有更好的收敛效果)

3. 按照梯度下降算法步骤更新theta值,设置循环次数为500次,当前j值与上一次循环得到的j值的欧式距离小于0.001时认为算法收敛,跳出循环。

4. 带入假设函数可得回归曲线。

五、 试验结果

 机器学习实验报告——Linear Regression_第2张图片

theta0=0.8284

theta1=2.0404

j=0.1457

实际迭代次数4

回归曲线如图:

 机器学习实验报告——Linear Regression_第3张图片

六、 实验代码

   clc;

clear;

load shuju.mat;

plot(X,Y,'.');

hold;

syms theta0 theta1 alpha;

theta0=0.75;

theta1=1.65;

alpha=0.001;

j=0;

for q=1:500

    J=j;

    j=0;

for i=1:21

    j=j+0.5*(theta0+theta1*X(i)-Y(i))^2; 

end

j=j/21;

 if sqrt((j-J)^2)<0.001

        break;

 end

   theta0=theta0-alpha*0.5*(theta0*theta1*X(i)-Y(i));

   theta1=theta1-alpha*0.5*(theta0*theta1*X(i)-Y(i))*X(i); 

end

y=theta0+theta1*X;

plot(X,y)

theta0

theta1

J

 

 

 

 

 

 

 

你可能感兴趣的:(大作业)