- 通常情况下我们要解决的问题会涉及到多个变量,例如房屋价格预测应该考虑面积、房间个数、楼层、价格等多个因素,这时就需要使用多元线性回归的假设函数和多元梯度下降算法
以房屋价格预测为例来展开介绍,假设房屋的价格与房屋的面积、卧室数量和房屋年龄有关
-
用 n 代表特征数量,m 代表样本数量,变量 x 此时也变为三个,即 x1 (代表面积),x2(代表卧室数量),x3(代表房屋年龄)。
-
定义 x(i) 代表第 i 个样本的所有特征值。例如 x(2) = [1416, 3, 2, 40, 232]
-
定义 xj(i) 代表第 i 个样本中第 j 个特征量。例如 x3(2) = 2
- 假设函数就不再只包含一个变量,为了统一可以对常量引入变量x0=1
- 通常都是把所有的 θ 和 x 看出一个向量来进行处理
- 上图左边为单梯度,右边为多元梯度
- 虽然参数的个数增多,但是对每个参数求偏导时和单个参数类似。
-
多个变量的度量不同,数字之间相差的大小也不同,如果可以将所有的特征变量缩放到大致相同范围,这样会减少梯度算法的迭代。
-
当特征范围相差太大时,会一直来回振荡,梯度下降效率会很低
-
特征缩放把每个变量范围落到[-1,1]之间是比较好的,但不一定非要落到[-1,1]之间,只要数据足够接近就可以。
-
主要:上图的标准差也可以直接用变量的范围(max - min)来表示
-
缩放的具体实现例子:
-
经过线性回归得到的参数θ’,对应着缩放后的数据,要得到缩放前的参数θ的方法
- 学习率α的大小会影响梯度算法的执行,太大可能会导致算法不收敛,太小会增加迭代的次数。
-
可以画出每次迭代的代价函数J(θ)的变化,来判断当前算法执行的情况,然后选择合适的学习率。(调参开始…)
- 上图横坐标表示:梯度下降算法的迭代次数
- 若图中的曲线接近平缓,J(θ)的值几乎没有下降的趋势了,则表示J(θ)差不多收敛了,可以不用继续迭代了
- 尝试选取不同的α :… 0.001,0.003,0.01,0.03,0.1,0.3,1,…
- 以3为倍速找到一个最快速下降的 α ,以该最大值或比该最大值略小的值作为 α



