5、多变量线性回归

引例:当房价受房屋面积、卧室数量、楼层、房屋年龄等多个因素影响时的线性回归算法是什么样的?

房屋面积

卧室数量

楼层

房屋年龄

房价($1000)

2104

5

1

45

460

1416

3

2

40

232

1534

3

2

30

315

852

2

1

36

178

….

….

….

假设函数:h(x)=WTX

输入变量(x1,w1)、(x2,w2)、(x3,w3)、(x4,w4)分别代表房屋面积、卧室数量、楼层、房屋年龄和各自的权重,w0代表偏差,则假设函数为:h(x)=w0+w1x1+w2x2+w3x3+w4x4

推广到一般,对于n个特征的多因素线性回归问题的假设函数:h(x)=w0+w1x1+w2x2+...+wnxn

设定x0=1,则假设函数为:h(x)=w0+w1x1+w2x2+...+wnxn=w0x0+w1x1+w2x2+...+wnxn

把W(w0,w1,w2,....),X(x0,x1,x2,....)分别看成是n+1维的列向量,则W、X、WT(W的转置矩阵)分别为:

,则假设函数为:

损失函数:J(w0,w1,w2,...,wn)=J(W)=Σmi=1(h(x(i))-y(i))2/m

特征缩放

方法一:把特征值缩放到[-1,1]之间(或者差不多大小的区间)来达到更快的收敛到最小值的效果

例如:房屋面积x1的大小在0-2000,卧室数量x2的大小在1-5,使用特征缩放,对x1,x2进行缩放处理,则:

x1=房屋面积/2000,0≤x1≤1

x2=卧室数量/5,0≤x2≤1

缩放后会加快收敛到最小值

方法二:均值归一化

例如:房屋面积x1的大小在0-2000(均值为1000),卧室数量x2的大小在1-5(均值为2),使用特征缩放,对x1,x2进行缩放处理,则:

x1=(房屋面积-1000)/2000,-0.5≤x1≤0.5

x2=(卧室数量-2)/5,-0.5≤x2≤0.5

或者

x1=(房屋面积-1000)/(样本最大值-样本最小值),-0.5≤x1≤0.5

x2=(卧室数量-2)/(样本最大值-样本最小值),-0.5≤x2≤0.5

学习率learning rate

1、看图:x轴数学习次数,y轴是J(W)损失函数,通过图形对收敛情况判断学习率的情况

2、..., 0.001, 0.003, 0.01, 0.03, 0.1, 0.3, 1, ... 间隔3倍选择学习率测试

线性回归问题正规方程解法:W=(XTX)-1XTy  , 其中XT是X矩阵的转置矩阵,(XTX)-1是XTX的逆矩阵

对于线性回归:梯度下降法和正规方程解法的区别

  • 梯度下降需要选择一个学习率,需要迭代很多次
  • 正规方程不需要学习率,一次求解
  • 特征数量(n)很大(百万级)选择梯度下降,特征数量不多(万级或者以下)选择用正规方程解法(时间复杂度O(n3))
posted @ 2018-12-25 16:02  起航追梦人  阅读(497)  评论(0编辑  收藏  举报