coursera《机器学习》吴恩达-week2-01 多个变量的线性回归

来源:互联网 发布:淘宝怎么申请天猫店铺 编辑:程序博客网 时间:2024/06/06 12:22

具有多个特征的线性回归

  • 多个变量=多个特征
  • 在原版本我们有
    • X =房屋大小,用它来预测
    • y =房价
  • 如果在一个新的计划中,我们有更多的变量(如卧室数量,楼层数,家庭年龄)
    • x 1,x 2,x 3,x 4 是四个特征
      • x 1 - 尺寸(平方)
      • x 2 - 卧室数量
      • x 3 - 楼层数量
      • x 4 - 家庭年龄(岁)
    • y是输出变量(price)
  • 更多符号
    • n
      • 特征数(n = 4)
    • m
      • 示例数(即表中的行数)
    • x i
      • 某个例子的输入向量(第i个输入例子的四个参数的向量 )
      • i是训练集的索引
      • 所以
        • x是n维特征向量
        • 例如x 3 是第三个房屋,并且包含与该房屋相关联的四个特征
      • xij
        • 第i个训练示例中的特征j的值
        • 所以
          • 例如,x32是第三个房子的卧室数
  • 现在我们有多个特征
    • 我们的假设是什么形式?
    • 以前我们的假设采取了形式;
      • ħ θ(X) =θ0 + θ1X
        • 这里我们有两个参数(theta 1和theta 2)由我们的成本函数确定
        • 一个变量x
    • 现在我们有多个特征
      • hθ(x) = θ0 + θ1x1 + θ2x2 + θ3x3 + θ4x4
    • 例如
      • hθ(x) = 80 + 0.1x1 + 0.01x2 + 3x3 - 2x4
      • 一个试图预测房屋价格的假设的例子
      • 参数仍然通过成本函数确定
  • 为了方便记号, x 0 = 1
    • 对于每个例子,我每个例子都有一个额外的第0个特征
    • 所以现在你的特征向量是从0索引的n + 1维特征向量
      • 这是一个名为x的列向量
      • 每个示例都有一个与其相关联的列向量
      • 所以让我们说一个新的例子叫做“X”
    • 参数也在0索引的n+1维向量中
      • 这也是一个称为θ的列向量
      • 该向量对于每个示例是相同的
    • 考虑到这一点,假设函数可写为:
      • hθ(x) = θ0x0 + θ1x1 + θ2x2 + θ3x3 + θ4x4
    • 如果我们这样做
      • hθ(x) =θT X
        • θT为[1×(N+1)]矩阵
        • 换句话说,由于 θ 是列向量,所以转置操作将其转换成行向量
        • 所以以前
          • θ 是矩阵[(N+1)×1]
        • 现在
          • θT 是矩阵[1×(N+1)]
        • 这意味着的 θ T和X的内部尺寸匹配,因此它们可以被相乘
          • [1 x n+1] * [n+1 x 1]
          • = hθ(x)
          • 所以,换句话说,我们的参数向量*的一个输入示例X给出了一个预测的假设,即[1 x 1]维度(即单个值)
      • 这个x 0=1可以让我们这样写
    • 这是多变量线性回归的例子

多个变量的梯度下降

  • 具有梯度下降的假设的拟合参数
    • 参数 θ 0 至 θ Ñ
    • 而不是将它们视为n个独立的值,而是将参数视为单个向量(θ)
      • 其中 θ 为n + 1维
  • 我们的成本函数是
    这里写图片描述
  • 类似地,不考虑J作为n + 1个数的函数,J(θ)只是参数向量的函数
  • Gradient descent这里写图片描述
  • 再次,这是
    -θj = θj -学习率(α)*J(θ)针对θJ(…)的偏导数
    • 我们通过这样做 同时更新 每个 θ j 值
  • 实现这个算法
    • 当n = 1时
      这里写图片描述
  • 上面,我们有稍微不同的更新规则 θ 0 和 θ 1
    • 实际上它们是一样的,除了结尾有一个以前未定义的 x0(i)为1,所以没有显示
  • 我们现在对于多变量梯度下降具有几乎相同的规则
    这里写图片描述
  • 这里发生了什么?
    • 我们正在为每个j(0到n)做同时更新(像n = 1时)
  • 所以,我们重新设定 θ j 为
    • θ j 减去学习率( α)倍的相对于 θj的偏导数 θ 矢量
    • 在非微积分词中,这意味着我们这样做
      • 学习率
      • *1 / m(使数学更容易)
      • *所有的差值和
        • 将可变向量的假设减去实际值乘以该可变向量的第j个值
        • 需要牢记
          这里写图片描述
    • 这些算法都很相似

梯度下降实例1:特征缩放

  • 涵盖了这个理论,我们现在继续了解一些实际的技巧
    • 特征缩放
      • 如果您有多个特征的问题
      • 您应该确保这些特征具有相似的尺寸
        • 意味着 梯度下降将更快地收敛
    • 例如
      • x1 =大小(0 - 2000英尺)
      • x2 =卧室数量(1-5)
      • 也就是说,如果我们绘制所生成的轮廓 θ 1个 与 θ 2 由于庞大的距离差,得到了非常高而薄的形状
    • 在这种成本函数上运行梯度下降可能需要很长时间才能找到全局最小值
      这里写图片描述
  • 病态输入到梯度下降
    • 所以我们需要重新调整这个输入,使它更有效
    • 因此,如果您通过除以每个特征的最大值来定义x1和x2中的每个值
    • 轮廓变得更像圆(按0和1之间的比例)
  • 可能想把所有东西都变成-1到+1范围(近似的)
    • 想要避免相对于另一特征值的特大范围,小范围或相互不同的范围
    • 规定可接受的范围
      • -3到+3比较好 - 大了就不好了
      • -1/3到+1/3也行 - 太小不好
  • 可以做平均归一化
    • 取一个特征值 x i
      • 将其替换为(xi - avg)/max
      • 所以你的所有值的平均值约为0
        这里写图片描述
  • 除了最大值,也可以使用标准差

学习速率α

聚焦学习速率(α)
主题
更新规则
调试
如何选择 α
确保梯度下降正常工作
绘制最小J(θ)与迭代次数最小化
(即在梯度下降过程中绘制J(θ)
如果梯度下降工作,则每次迭代后J(θ)应减小
如果您在一定数量后没有取得巨大收益,也可以显示
如果需要,可以应用启发式方法来减少迭代次数
例如,如果在1000次迭代之后,您几乎无需减少参数,您可以选择仅在以后运行1000次迭代
确保你不会意外硬编码这样的门槛,然后忘记为什么他们是!
(i.e. plotting J(θ) over the course of gradient descent
If gradient descent is working then J(θ) should decrease after every iteration
Can also show if you’re not making huge gains after a certain number
Can apply heuristics to reduce number of iterations if need be
If, for example, after 1000 iterations you reduce the parameters by nearly nothing you could chose to only run 1000 iterations in the future
Make sure you don’t accidentally hard-code thresholds like this in and then forget about why they’re their though!

特征和多项式回归

标准方程法

标准方程和不可逆性

阅读全文
0 0
原创粉丝点击