机器学习之多变量线性回归
一、多变量问题
-
要解决的问题与多个因素有关,如下图:
-
假设函数:
h θ ( x ) = θ 0 + θ 1 x 1 + θ 2 x 2 + θ 3 x 3 + θ 4 x 4 h_\theta(x)=\theta_0+\theta_1x_1+\theta_2x_2+\theta_3x_3+\theta_4x_4 hθ(x)=θ0+θ1x1+θ2x2+θ3x3+θ4x4
令 x 0 ( i ) = 1 x_0^{(i)}=1 x0(i)=1,x不同于上图标记应为横向量,这样取数据的时候不用转置。 θ \theta θ也为横向量,则有 h θ ( x ) = x θ T h_\theta(x)=x\theta^T hθ(x)=xθT
-
二、梯度下降
-
代价函数:
J ( θ ) = ∑ i = 1 m ( h θ ( x ) ( i ) − y ( i ) ) 2 2 m J(\theta)=\sum_{i=1}^m\frac{({h_\theta(x)^{(i)}-y^{(i)}})^2}{2m} J(θ)=i=1∑m2m(hθ(x)(i)−y(i))2 -
更新参数:
θ j = θ j − α ∂ ∂ θ j J ( θ ) = θ j − α 1 m ∑ i = 1 m ( h θ ( x ) ( i ) − y ( i ) ) x j ( i ) \theta_j=\theta_j-\alpha\frac{\partial}{\partial\theta_{j}}J(\theta)=\theta_j-\alpha\frac{1}{m}\sum_{i=1}^m({h_\theta(x)^{(i)}-y^{(i)}})x_j^{(i)} θj=θj−α∂θj∂J(θ)=θj−αm1i=1∑m(hθ(x)(i)−y(i))xj(i)
三、梯度下降训练技巧
-
特征缩放
-
主要思想:确保各个特征有相近的值,梯度下降路径更短,从而减少梯度下降时间。
-
缩放目标:一般将每一个特征值缩放到[-1,1]范围,[-3,3],[-1/3,1/3]也可以接受,但别太大也别太小
-
一般方法:均值归一化处理
x = x − μ s o r x = x − μ σ x=\frac{x-\mu}{s} \qquad or \qquad x=\frac{x-\mu}{\sigma} x=sx−μorx=σx−μ
其中,s表示特征变化范围,但是还要找出最大值最小值相减;而使用 σ \sigma σ标准差比较方便,第二个公式将一般正态分布转化成标准正态分布。
-
-
设置与调整学习率:
-
检查梯度下降算法是否收敛:
通过绘制迭代过程中的损失函数变化趋势
- 如果为上升趋势或者不断震荡应考虑减小学习率
- 但学习率过小收敛的速度很慢
-
取值方法:不断尝试:… 0.001, 0.003, 0.01, 0.03, 0.1, 0.3, 1 …
-
四、选择特征和多项式回归
-
选择特征,创建新的特征:
例如,给出房子的长度和宽度,可以创造出新的特征面积,变成了单变量线性回归
-
设置特征的一次方,二次方,三次方可以实现多项式回归:
注意:要对这三个特征归一化
同时,也可以选用这样的假设函数 h ( x ) = θ 0 + θ 1 x + θ 2 x h(x)=\theta_0+\theta_1x+\theta_2\sqrt{x} h(x)=θ0+θ1x+θ2x
-
后面介绍可以自动选择特征的算法
五、正规方程
根据导数为0,直接求出: