coursera《机器学习》吴恩达-week1-02 单一变量的线性回归

来源:互联网 发布:如何制作淘宝水印 编辑:程序博客网 时间:2024/06/06 08:29

线性回归根据输入值预测实值输出。我们讨论线性回归在房价预测中的应用,提出了成本函数的概念,并介绍了梯度下降法的学习方法。

模型和代价函数

线性回归

  • 之前的住房价格数据示例
  • 监督学习-回归问题
    • 我们从头开始
  • 训练集(这是你的数据集)
  • 符号(整个过程中使用)
    • m = 训练例数
    • x’s =输入变量/特征
    • y’s =输出变量“target”变量
    • (x,y) - 单一训练示例
    • (x i,y j) - 具体示例(第 i 训练示例)
      • i是训练集的索引

这里写图片描述

  • 我们的训练集确定了 - 我们如何使用它?
    • 接受训练集
    • 用学习算法处理
      • 算法输出一个函数(表示为h )(h = 假设)
        • 这个功能需要一个输入(例如新房子的大小)
        • 尝试输出Y的估计值
  • 我们如何表示假设h ?
    • 如下所示
      • ħθ(X) = θ0+θ1X
        • h(x)(简写)

这里写图片描述

  • 这是什么意思?
    • 均值Y是x的线性函数!
    • θi是参数
      • θ0是x=0时h(x)的状态
      • θ1是斜率
  • 这种函数是一个变量的线性回归
    • 也称 单变量线性回归
  • 所以总结一下
    • 一个假设需要一些变量
    • 使用由学习系统确定的参数
    • 根据该输入输出预测

线性回归 - 实现(代价函数)

  • 一个成本函数可以让我们找出如何使我们的数据符合最好的直线
  • 可供选择的值θi(参数)
    • 不同的值给你不同的功能
    • 如果 θ0是1.5和 θ1是0,那么我们得到平行X轴的直线,y坐标恒为1.5
    • 如果 θ1> 0,我们得到了一个正斜率
  • 根据我们的训练集,我们要生成直线的参数
  • 选择这些参数,以便 hθ(x)的值接近我们的训练样例的Y值
    • 基本上,使用训练集中的多个X值输入h(x),使输出尽可能的接近于实际的Y值(X值实际对应的数据)
      -想象hθ(X)是“Y模仿者” -它试图将X转化为Y,并考虑到我们已经有了实际的Y,我们可以评估hθ(X)效果如何
  • -形式化过程
    • 我们想要解决 最小化问题
    • Minimize (hθ(x) - y)2
    • 即最小化每个/任何/每个示例的 h(x)和y之间的差异
    • 在训练集上求和每个差异
      这里写图片描述
  • 最小化预测房价与实际房价之间的平方差
    • 1 / 2M
      • 1/m- 表示我们确定平均值
      • 1/2m使数学有点简单,并且不改变我们确定的常数(即最小值的一半仍然是最小值!)
    • 最小化θ0/θ1意味着θ0、θ1的值可以使得x的线性回归值与y的平均偏差最小。
  • 更简单地说,这是一个代价函数

这里写图片描述

  • 而且我们希望最小化这个代价函数的值
    • 我们的成本函数(因为求和术语)总是在任何时候处理训练集中的所有数据
  • 所以要回顾一下
    • Hypothesis假设 - 就像你的预测机器,输入一个x值,得到一个推定的y值
      这里写图片描述
    • Cost代价 - 是使用您的训练数据确定θ值的值的方法,这使得Hypothesis假设尽可能准确
      这里写图片描述
      • 该代价函数也称为平方误差成本函数
        • 这个代价函数是大多数回归函数的合理选择
        • 可能是最常用的函数
  • J(θ0,θ1) 有些抽象,在未来的章节将深入它做了什么,它的工作原理以及我们如何使用它

代价函数-深入了解

  • 让我们考虑一些关于成本函数的直觉,以及为什么要使用它
    • 成本函数确定参数
    • 与参数相关的值决定了您的假设行为,不同的值会产生不同的结果
  • 简化假设
    • 假定θ0=0
      这里写图片描述
  • 代价函数和目标在这里非常近似,但需要一个更简单的参数
    • 简化假设使可视化成本函数J()更容易一些
  • 所以假设直线通过了(0,0)
    • 两个需要了解的关键函数
      • hθ(x)
        • Hypothesis假设是x的函数,一个关于房子面积的函数
      • J(θ1)
        • 一个关于参数θ1的函数
      • 例如
        • θ1 = 1
        • J(θ1) = 0
      • 考虑
        • θ1 vs J(θ1)
        • Data
          • 1)
            • θ1 = 1
            • J(θ1) = 0
          • 2)
            • θ1 = 0.5
            • J(θ1) = ~0.58
          • 3)
            • θ1 = 0
            • J(θ1) = ~2.3
      • 如果我们计算一个值的范围
      • J(θ1) vs θ1 我们得到一个多项式(看起来像一个二次方程)
        这里写图片描述
  • 对于学习算法的优化目标是找到的值θ1,其最小化J(θ1)
    • 所以,这里θ1 = 1是对于θ1的最佳值

更深入了解成本函数 - 简化成本函数

  • 假设你熟悉轮廓图或轮廓图
    • 使用相同的成本函数,假设和目标如前所述
    • 如果您不了解 cotour plots,可以跳过本节的部分内容
  • 使用我们原来的复杂的假设函数与两个变量参数,
    • 所以成本函数是
      • J(θ0, θ1)
  • 例如,

    • 假定:
      • θ0 = 50
      • θ1 = 0.06
    • 以前,我们通过绘图绘制了成本函数
      • θ1 vs J(θ1)
    • 现在我们有2个参数
      • 绘制变得更加复杂
      • 生成一个所在轴的3D曲面
        • X = θ1
        • Z = θ0
        • Y = J(θ0,θ1)
          这里写图片描述
  • 我们可以看到,height (y)表示成本函数的值,因此找到y在最小值的位置

  • 我们可以使用轮廓数字/曲线来代替曲面图

    • 以不同颜色设置椭圆
    • 每种颜色为J(θ0, θ1),但显然打印到不同的位置,因为θ0和θ1将变化
    • 想象一下碗状函数从屏幕出来,所以中间是同心圆
      这里写图片描述
  • 每个点(像上面的红色)代表Ɵ0和 Ɵ1的一对参数值

    • 我们的例子在这里选定参数:
      • θ0 = ~800
      • θ1 = ~-0.15
    • 不适合
      • 这些参数给出了远离轮廓图上的中心的值
    • 如采用:
      • θ0 = ~360
      • θ1 = 0
      • 这给了一个更好的假设,但仍然不是很好 - 不是在轮廓图的中心
    • 最后我们找到最小值,给出最佳假设
  • 通过眼睛/手做这个是令人憎恨的
    • 我们真正需要的是一个高效的算法往复查找了不同的θ0和θ1对应的最小值
阅读全文
0 0