机器学习之多变量线性回归

一、多变量问题

  1. 要解决的问题与多个因素有关,如下图:

    吴恩达老师机器学习课程--多变量线性回归

    • 假设函数:

      hθ(x)=θ0+θ1x1+θ2x2+θ3x3+θ4x4h_\theta(x)=\theta_0+\theta_1x_1+\theta_2x_2+\theta_3x_3+\theta_4x_4

      x0(i)=1x_0^{(i)}=1,x不同于上图标记应为横向量,这样取数据的时候不用转置。θ\theta也为横向量,则有hθ(x)=xθTh_\theta(x)=x\theta^T

二、梯度下降

  1. 代价函数:
    J(θ)=i=1m(hθ(x)(i)y(i))22m J(\theta)=\sum_{i=1}^m\frac{({h_\theta(x)^{(i)}-y^{(i)}})^2}{2m}

  2. 更新参数:
    θj=θjαθjJ(θ)=θjα1mi=1m(hθ(x)(i)y(i))xj(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)}

三、梯度下降训练技巧

  1. 特征缩放

    • 主要思想:确保各个特征有相近的值,梯度下降路径更短,从而减少梯度下降时间。

    • 缩放目标:一般将每一个特征值缩放到[-1,1]范围,[-3,3],[-1/3,1/3]也可以接受,但别太大也别太小

    • 一般方法:均值归一化处理
      x=xμsorx=xμσ x=\frac{x-\mu}{s} \qquad or \qquad x=\frac{x-\mu}{\sigma}
      其中,s表示特征变化范围,但是还要找出最大值最小值相减;而使用σ\sigma标准差比较方便,第二个公式将一般正态分布转化成标准正态分布。

  2. 设置与调整学习率:

    • 检查梯度下降算法是否收敛:

      通过绘制迭代过程中的损失函数变化趋势

      • 如果为上升趋势或者不断震荡应考虑减小学习率
      • 但学习率过小收敛的速度很慢
    • 取值方法:不断尝试:… 0.001, 0.003, 0.01, 0.03, 0.1, 0.3, 1 …

四、选择特征和多项式回归

  1. 选择特征,创建新的特征:

    例如,给出房子的长度和宽度,可以创造出新的特征面积,变成了单变量线性回归

  2. 设置特征的一次方,二次方,三次方可以实现多项式回归:

    吴恩达老师机器学习课程--多变量线性回归

    注意:要对这三个特征归一化

    同时,也可以选用这样的假设函数h(x)=θ0+θ1x+θ2xh(x)=\theta_0+\theta_1x+\theta_2\sqrt{x}

  3. 后面介绍可以自动选择特征的算法

五、正规方程

根据导数为0,直接求出:

吴恩达老师机器学习课程--多变量线性回归

相关文章: