Coursera Machine Learning : Regression 简单回归
简单回归
这里以房价预测作为例子来说明:这里有一批关于房屋销售记录的历史数据,知道房价和房子的大小。接下来就根据房子的大小来预测下房价。
简单线性回归,如下图所示,找到一条线,大体描述了历史数据的走势。
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)
需要知道
Σyi 房价总和
Σxi 房屋总大小
Σxi2 房屋大小平方和
Σyixi 房价和房屋大小乘积和

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


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


Coursera Machine Learning : Regression 简单回归的更多相关文章
- Coursera Machine Learning : Regression 评估性能
评估性能 评估损失 1.Training Error 首先要通过数据来训练模型,选取数据中的一部分作为训练数据. 损失函数可以使用绝对值误差或者平方误差等方法来计算,这里使用平方误差的方法,即: (y ...
- Coursera Machine Learning : Regression 多元回归
多元回归 回顾一下简单线性回归:一个特征,两个相关系数 实际的应用要比这种情况复杂的多,比如 1.房价和房屋面积并不只是简单的线性关系. 2.影响房价的因素有很多,不仅仅是房屋面积,还包括很多其他因素 ...
- Coursera Machine Learning: Regression 证书
- Coursera machine learning 第二周 quiz 答案 Linear Regression with Multiple Variables
https://www.coursera.org/learn/machine-learning/exam/7pytE/linear-regression-with-multiple-variables ...
- 【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/ ...
- Coursera machine learning 第二周 编程作业 Linear Regression
必做: [*] warmUpExercise.m - Simple example function in Octave/MATLAB[*] plotData.m - Function to disp ...
- Coursera, Machine Learning, notes
Basic theory (i) Supervised learning (parametric/non-parametric algorithms, support vector machine ...
- 神经网络作业: NN LEARNING Coursera Machine Learning(Andrew Ng) WEEK 5
在WEEK 5中,作业要求完成通过神经网络(NN)实现多分类的逻辑回归(MULTI-CLASS LOGISTIC REGRESSION)的监督学习(SUOERVISED LEARNING)来识别阿拉伯 ...
- Coursera, Machine Learning, Anomoly Detection & Recommender system
Algorithm: When to select Anonaly detection or Supervised learning? 总的来说guideline是如果positive e ...
随机推荐
- 两系统用asp.net forms 身份验证方式实现跨域登录信息共享
1.两个系统的 web.config 都配置为 forms 验证方式( system.web —> authentication 节点) 2.在两个系统的Web.config里配置相同的 sys ...
- Oracle创建表空间、创建用户以及授权、查看权限
常用的,留着备用 1.创建临时表空间 CREATE TEMPORARY TABLESPACE test_tempTEMPFILE 'C:\oracle\product\10.1.0\oradata\o ...
- 删除项目中的.svn信息
有时候我们新开发一个项目时,会将以前的项目从svn上down下来,然后复制一份.这样就会有个问题,项目中的svn信息就会一直存在.下面介绍删除方法: 1.新建一个.txt的文档.然后将下面代码粘贴到文 ...
- 《疯狂Java讲义》(四)---- 面向对象&基于对象
"基于对象"也使用了对象,但是无法利用现有的对象模板产生新的对象类型,继而产生新的对象,也就是说,"基于对象"没有继承的特点,而多态更需要继承,所以" ...
- DAO模式设计步骤
1.DAO 全称是data access object,数据库访问对象,主要的功能就是用于进行数据操作的,在程序的标准开发架构中属于数据层的操作. 2.分成架构 企业分层架构 客户层:因为现在都采用了 ...
- 网络转载——java接口的概念
为什么会出现接口? 接口的出现是为了扩展java中的类继承的单调性.这样使得功能更加丰富. 接口关键字? 定义接口interface,实现一个接口 implements 什么接口呢? 接口是一种特殊 ...
- [转载]Python 资源大全
原文链接:Python 资源大全 环境管理 管理 Python 版本和环境的工具 p – 非常简单的交互式 python 版本管理工具. pyenv – 简单的 Python 版本管理工具. Vex ...
- EBS中启用OAF页面个性化三个配置
启用OAF页面个性化三个配置(Profiles) FND:诊断英文为FND: Diagnostics,用于设置是否显示“关于此页” 个性化自助定义英文为Personalize Self-Service ...
- spring代理模式 service远程调用,插件执行
最近,研究了一下平台远程调用的过程,和service层插件执行的原理,记录一下. 1.远程service调用过程 首先看一下类的继承结构 封装调用处理过程 封装service调用接口 封装servic ...
- FusionCharts中仪表盘相关属性
上上周用FusionCharts做了几个报表,里面有个仪表盘,当时查属性查疯了,现在把相关的一些属性记下来,方便以后查找. -------------------------仪表盘重要属性解析---- ...