简单回归

  这里以房价预测作为例子来说明:这里有一批关于房屋销售记录的历史数据,知道房价和房子的大小。接下来就根据房子的大小来预测下房价。

  简单线性回归,如下图所示,找到一条线,大体描述了历史数据的走势。

  f(x) 代表房价的预测值

  wo 代表截距(intercept) 相关系数

  w1 代表特征(房子大小)的相关系数(coefficient)

  x 代表房子的大小

  yi 代表房价真实值

  xi 代表房子大小的真实值

  εi 代表真实值与预测值之间的误差

  

  已知x,只要求出wo和w1就能简单的对房价进行预测,但是w0和w1的值如何选择,更能准确的描述历史数据,更能准确的进行预测?

  这里要注意区分如下两个点:

    1、更准确的描述测试数据的点。

    2、更准确的对数据进行预测。

  更准确的描述测试数据,并不能代表可以更准确的对数据进行预测。后面会进一步讨论。

  咱们回到w0和w1值的选择,每种w0和w1的选择都会形成一条线,咱们先讨论如何评价每条线的“代价”。

    

  RSS残差平方和,针对每个测试数据,将真实值与预测值的差值进行平方,并将所有的结果进行求和。

  

  RSS的值越小,就说明这条线更准确的描述了测试数据的点。

  

  w0和w1的值为多少的时候RSS的值最小呐?

  

  

  先简单回顾一下,凹凸函数,

  凹函数(concave)有最大值点,凸函数(convex)有最小指点,另凸凹函数的导数为0,则可求出极值点。

  比如g(w) = 5-(w-10)2 , 对 g(w)求导 = 0 - 2(w-10)1 = -2w + 20 = 0, w = 10

    将w = 10 代入源函数g(10) = 5 - (10 - 10)2 = 5, 极大值为5

  

  通过下山方法查找最小值,如下图:

  取w(t),当W(t)的导数小于0,说明W(t)在最小值的左边,需要右移动增加一步,

         当W(t)的导数大于0,说明W(t)在最小值的右边,需要左移动增加一步,直到结果无限接近于0

  将增加一步的大小量化,记作步长μ,将无限接近于0量化为阀值ε,这种方式是进行迭代计算,直到结果小于阀值,结束运算,不然将根据步长迭代计算。

  

  

  根据上述的描述,可以计算出RSS的值取最小值时w0和w1的值:

  1、直接将倾斜度置为0,计算导数为0的结果。

  2、梯度下降,迭代运算,取最小值为小于阀值。

  接下来进行公式推导,求出具体的值。

  根据之前的推导知道RSS的公式,然后分别对w0和w1进行求导,求导结果如下:

  

  

  通过方法一求w0和w1,将结果置为0

  w1 =  (Σyixi - ΣyiΣxi/N) / (Σxi2 - ΣxiΣxi)

w0 =  Σyi/N - w1(Σxi/N)

  需要知道

  Σy房价总和

Σxi 房屋总大小

  Σxi2  房屋大小平方和

  Σyix房价和房屋大小乘积和

  

  

  方法二,梯度下降算法实现,如下图:

  

  

  

  

  贴两个具体的计算实例,方便大家理解:

  

Coursera Machine Learning : Regression 简单回归的更多相关文章

  1. Coursera Machine Learning : Regression 评估性能

    评估性能 评估损失 1.Training Error 首先要通过数据来训练模型,选取数据中的一部分作为训练数据. 损失函数可以使用绝对值误差或者平方误差等方法来计算,这里使用平方误差的方法,即: (y ...

  2. Coursera Machine Learning : Regression 多元回归

    多元回归 回顾一下简单线性回归:一个特征,两个相关系数 实际的应用要比这种情况复杂的多,比如 1.房价和房屋面积并不只是简单的线性关系. 2.影响房价的因素有很多,不仅仅是房屋面积,还包括很多其他因素 ...

  3. Coursera Machine Learning: Regression 证书

  4. Coursera machine learning 第二周 quiz 答案 Linear Regression with Multiple Variables

    https://www.coursera.org/learn/machine-learning/exam/7pytE/linear-regression-with-multiple-variables ...

  5. 【Coursera - machine learning】 Linear regression with one variable-quiz

    Question 1 Consider the problem of predicting how well a student does in her second year of college/ ...

  6. Coursera machine learning 第二周 编程作业 Linear Regression

    必做: [*] warmUpExercise.m - Simple example function in Octave/MATLAB[*] plotData.m - Function to disp ...

  7. Coursera, Machine Learning, notes

      Basic theory (i) Supervised learning (parametric/non-parametric algorithms, support vector machine ...

  8. 神经网络作业: NN LEARNING Coursera Machine Learning(Andrew Ng) WEEK 5

    在WEEK 5中,作业要求完成通过神经网络(NN)实现多分类的逻辑回归(MULTI-CLASS LOGISTIC REGRESSION)的监督学习(SUOERVISED LEARNING)来识别阿拉伯 ...

  9. Coursera, Machine Learning, Anomoly Detection & Recommender system

      Algorithm:     When to select Anonaly detection or Supervised learning? 总的来说guideline是如果positive e ...

随机推荐

  1. 在<s:iterator>标签里给动态表格添加序号

    在<s:iterator>标签里给动态表格添加序号,需要用到<s:iterator>标签里的Status属性里的count eg:<s:iterator value=&q ...

  2. ASP.NET权限管理

    ASP.NET Web Forms权限管理: 我要将一个文件夹只能让一个用户组访问怎么办? 可否在网站根目录下的web.config里这样设置: <location path="adm ...

  3. leetcode-【中等题】2. Add Two Numbers

    题目 You are given two linked lists representing two non-negative numbers. The digits are stored in re ...

  4. I/O系统 (输入/输出)

    I/O系统 1:流: (1)判断到底是输入,还是输出:永远站在程序的立场上: (2)判断传递的到底是字节还是字符,从而决定管道的粗细: 字节管道可以传递所有数据,字符管道专门用来传递文本数据(1个字符 ...

  5. 简单递推 HDU-2108

    要成为一个ACMer,就是要不断学习,不断刷题...最近写了一些递推,发现递推规律还是挺明显的,最简单的斐波那契函数(爬楼梯问题),这个大家应该都会,看一点稍微进阶了一点的,不是简单的v[i] = v ...

  6. CSV文件的规范

    CSV文件,全程Comma-separated values,就是逗号分隔的数据文件.常用于数据集成的数据交换部分标准部分. 最近看到一个项目组在讨论接口文件CSV的规范,真是替他们着急.讨论点: 文 ...

  7. 转:认识MyBean

    1. 初步体验 我们先看一个框架自带的例子,以增加感性认识.打开samples\singleDEMO示例项目.这个示例演示了在一个EXE程序内,使用插件的概念调用两个窗口.其中包括一个主窗体 ufrm ...

  8. 装饰模式(Decorator pattern)

    装饰模式(Decorator pattern): 又名包装模式(Wrapper pattern), 它以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案. 装饰模式以对客户透明的方式动态的给 ...

  9. Javascript 中 == 和 === 区别

    转载几张图片,说明其中的具体意义 这是 == 这是 === 完整比较图: 红色:=== 橙色:== 黄色:<= 和 >= 同时成立,== 不成立 蓝色:只有 >= 绿色:只有 < ...

  10. 扩展jquery的选择器

    I’m sure you all know that it’s possible to create plugins and extend various aspects of the jQuery ...