吴恩达机器学习理论加实践(三/四、多变量线性回归及matlab实践)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Enjoy_endless/article/details/86597902

、关于矩阵的一些基本运算,课程中涉及到的、用到的是比较基础的(矩阵的加、乘、逆、转秩等),在这里就不再进一步阐述了。
**

第二周

**

四、多变量线性回归

4.1多维特征

其实前面已经提到过了,在这里继续以房价预测为例:
在这里插入图片描述
多维特征包括面积、房间数、楼层数、房屋年龄等等来决定最终的房价;多维的特征共同组成最终的假设模型h:
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
为了统一表示计算引入x0=1,将上式转化为:
在这里插入图片描述
这里的xn表示的是第n个特征x,加上x0共为n+1个维度,若共有m个样本则X的维度为m*(n+1),(theta维度相同),利用矩阵的方式可以表示为:
在这里插入图片描述

4.2多变量梯度下降

其实同单变量梯度下降是一样的,只不过是模型假设h的不同而已;
同样是先计算损失函数,然后利用梯度迭代更新每一轮的参数:
在这里插入图片描述
在这里插入图片描述
4.3梯度下降法实践1-特征缩放

也叫特征间标准化,为什么需要这一步呢:如上房价案例,房子面积的值可能从几十到几百而房间数量基本就是个位数,当把他们放在一起表示时其形状如下:
在这里插入图片描述
图像非常扁需要多步迭代才能收敛;解决办法就是将所有特征都尽量缩放到-1到1之间,如图:
在这里插入图片描述
具体实践也就是标准化:减均值除以方差
在这里插入图片描述
4.4梯度下降法实践2-学习率

代价函数迭代次数的选择,一般取一个预先设定的阈值是可以的,也可将其迭代次数和代价值绘画出来,从而选择一个最优点:
在这里插入图片描述
对于学习率alpha大小的影响之前已经介绍过,根据经验,我们一般选择值为alpha=0.01,0.03,0.1,0.3,1,3,10;可根据具体情况进行比较选择;

4.5特征和多项式回归

线性回归是以直线方式为划分的,并不适用于所有数据情况,有时我们需要曲线来适应我们的数据,比如1/2次、二次、三次或高次幂模型等:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以更好地拟合多数据不同边界情况;

4.6正规方程

同梯度下降法一样,也是一种求解参数的方法,但是他们之间也是有很大区别的;
方法如下,直接一步求出参数:
在这里插入图片描述
在这里插入图片描述
正规方程适用于特征变量数目较小的情况;

%matlab实践
data=load(ex1data2.txt);
X=data(:,1:2);  %二维变量
y=data(:,3);
m=length(y);

%梯度下降跟前面单变量是一样的
theta = theta - alpha*(X'*(X*theta - y))/m;

%正规方程求解参数theta
X=[ones(m,1) X];   //统一参数
theta=zeros(size(X,2),1);  //初始化参数(3,1)
%调用内置函数一步计算参数theta
theta=pinv(X'*X)*X'*y;

%预测
price=[1,1650,3]*theta;
fprinft('$%f\n',price);

这一讲主要讲解了多变量线性回归,涉及到的主体知识跟上一讲差不多,包括模型表示、代价函数、梯度下降、迭代更新等;另一个是引入了多项式回归,即曲线边界,以及最后的正规方程等;

下一讲 Octave教程

猜你喜欢

转载自blog.csdn.net/Enjoy_endless/article/details/86597902