Mutiple Liner Regression

一.多元线性

在上一节中提到了线性回归,不过特征量x只有1个,当特征量大于1个时,如下表:

住房面积 x 1 层数 x 2 卧室个数 x 3 住宅年数 x 4 售出价格y
2104 5 1 45 460
1416 3 2 40 232
1534 3 2 30 315
852 2 1 36 178

这时我们的假设函数成为 h = θ 0 + θ 1 x 1 + θ 2 x 2 + θ 3 x 3 + θ 4 x 4 ,所有的参数组成向量 θ ,所有特征组成向量x,那么假设函数简化为 h = θ T x ,这样转化成矩阵相乘运算,而代价函数还是 J ( θ ) = 1 2 m i = 1 m ( h θ ( x ( i ) ) y ( i ) ) 2 .

二.梯度下降

对代价函数求偏导,使得代价值递减:
θ j = θ j α J θ j = θ j α 1 m i = 1 m ( h θ ( x ( i ) ) y ( i ) ) x ( i )

三.特征缩放

当两个不同特征之间的值范围相差太大(例如上述的住宅面积和层数两个特征量)时,收敛速度太慢,可以从下图(以后加)中直观的看出:

解决方法

特征缩放:即将所有特征量x缩放至 1 x 1 的范围,以住宅面积为例,具体方法如下:
1. x ^ 1 = x 1
2. x ^ 1 = x 1

四.α的取值策略

1.α取值

  1. α过大,可能导致代价函数震荡甚至无法收敛
  2. α过小,收敛速度过慢

2.α取值技巧

尝试多个α值,并观察代价函数的收敛,不断调整α值使得收敛速度和准确度达到平衡.

五.拟合非线性函数

当训练数据用线性函数无法较好拟合时,出现非线性函数.例如假设函数变为

h θ ( x ) = θ 0 + θ 1 x + θ 2 x 2

这时我们如何继续使用线性回归来解决该问题呢,方法很简单,就是将 x 2 当做特征量 x 2 ,这样假设函数变成了
h θ ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2

但是这样 x 2 x 1 的值相差较大,此时特征缩放就起到了很好的作用.

猜你喜欢

转载自blog.csdn.net/csmrz/article/details/80775358