Linear Regression with One Variable

model Representation

以上篇博文中的房价预测为例,从图中依次来看,m表示训练集的大小,此处即房价样本数量;x表示输入变量或feature(特征),此处即房子面积;y是输出变量或目标变量,此处即房子价格。(x,y)是训练集中的一个样本,如图中加上右上角(i)表示训练集中第i个样本。

上图是机器学习的一个简单流程,我们通过对Training Set(训练集)使用Learning Algorithm 来训练出一个hypothesis函数(hypothesis是机器学习一直沿用下来的一个用语,不用纠结其具体含义),这样使用该函数就可以预估房价了。

hypothesis有很多种形式,上图是线性回归的一张二维坐标系图示,为了简单,途中只有一个输入变量x,纵轴y是输出变量,图中红色的叉是训练集中的点,黑色的直线就是我们的hypothesis函数,可以看到,该直线并没有经过所有的点,所以预估出来的值h(x)就会跟y只存在误差,这就涉及到下面要讲的cost函数。

cost function

cost function实际上就是求方差,预测值与实际值之间的。主要是用来寻找合适的参数。

如上图所示,为了简单起见,这里的theta只设置两个,并用一条直线来拟合。右上角的公式的意思就是寻找使cost function最小的theta值。注意,按照方差的定义来解释,公式中应该是1/m,这里除以2纯粹是为了计算导数方便,之所以可以这样改,是因为虽然方差值变化了,但是据此公式求出的theta值没有影响,比如从含一百个不同的整数的数组挑出最小的那个数的坐标,和把这一百个数除以2后再求得到的结果是一样的。

上图左侧直线是预测函数,右侧cost function。图中的 是实际值。右侧说明,当theta为1时,cost最低,此时的拟合就可认为是最好的拟合,当然上图中的点恰好的在直线上,实际场景中这种现象是不可能的。

现在给一个具体的预测函数,如上图左侧所示,此时我们重新使用两个theta值。右侧是只有一个theta1的cost function,下图是两个theta的cost function,是一个三维图像。

由于多维图像表示麻烦,之后的教程都已轮廓图来表示,以上图为例,用多个平行底面的平面切割图像,会得到很多闭合的线,将这些线投射到底面形成的图像将在之后使用。

稍作分析可知,左侧图形同一条线上的cost值是相同的,最小值则出现在中心那个圈上。

Gradient Descent

问题描述:

将两个theta初始化为0,然后不断改变二者的值来降低cost大小,直到达到我们满意的精度为止。

形象的来看,可以将上图看做一座山,将梯度下降看成一个下山的过程,由于存在局部最优解,上图下山的路径是由好几条的。图中只显示了一条路径。

上图是梯度下降过程,正如图中所说,我们通过不断修改theta的值,直到收敛。“:=”是赋值,“=”相当于c语言中的“==”,是比较。Learning rate是学习速率,在下山那个例子中讲,就是下山的步子大小。需要注意的是,theta的值需要同时更新,像左侧那样。

上图解释了更新theta的原理,求cost function最小值就是求其导数为零的时候。

上图是学习速率的解释,该值太小,收敛就很慢,即第一个图那样,太大则无法收敛,即第二个图那样。

Gradient Descent For Linear Regression

将之前的总结下,应用在一起。关键是上述导数项。

例子中有两个theta,要对其求偏导数,即上图的公式。

这里提到一个batch gradient Descent(批量梯度算法)就是指每步都将所有训练集加入运算。

MachineLearning ---- lesson 2 Linear Regression with One Variable的更多相关文章

  1. 【cs229-Lecture2】Linear Regression with One Variable (Week 1)(含测试数据和源码)

    从Ⅱ到Ⅳ都在讲的是线性回归,其中第Ⅱ章讲得是简单线性回归(simple linear regression, SLR)(单变量),第Ⅲ章讲的是线代基础,第Ⅳ章讲的是多元回归(大于一个自变量). 本文的 ...

  2. Stanford机器学习---第二讲. 多变量线性回归 Linear Regression with multiple variable

    原文:http://blog.csdn.net/abcjennifer/article/details/7700772 本栏目(Machine learning)包括单参数的线性回归.多参数的线性回归 ...

  3. Stanford机器学习---第一讲. Linear Regression with one variable

    原文:http://blog.csdn.net/abcjennifer/article/details/7691571 本栏目(Machine learning)包括单参数的线性回归.多参数的线性回归 ...

  4. 机器学习笔记1——Linear Regression with One Variable

    Linear Regression with One Variable Model Representation Recall that in *regression problems*, we ar ...

  5. Machine Learning 学习笔记2 - linear regression with one variable(单变量线性回归)

    一.Model representation(模型表示) 1.1 训练集 由训练样例(training example)组成的集合就是训练集(training set), 如下图所示, 其中(x,y) ...

  6. Ng第二课:单变量线性回归(Linear Regression with One Variable)

    二.单变量线性回归(Linear Regression with One Variable) 2.1  模型表示 2.2  代价函数 2.3  代价函数的直观理解 2.4  梯度下降 2.5  梯度下 ...

  7. 斯坦福第二课:单变量线性回归(Linear Regression with One Variable)

    二.单变量线性回归(Linear Regression with One Variable) 2.1  模型表示 2.2  代价函数 2.3  代价函数的直观理解 I 2.4  代价函数的直观理解 I ...

  8. 机器学习 (一) 单变量线性回归 Linear Regression with One Variable

    文章内容均来自斯坦福大学的Andrew Ng教授讲解的Machine Learning课程,本文是针对该课程的个人学习笔记,如有疏漏,请以原课程所讲述内容为准.感谢博主Rachel Zhang的个人笔 ...

  9. Lecture0 -- Introduction&&Linear Regression with One Variable

    Introduction What is machine learning? Tom Mitchell provides a more modern definition: "A compu ...

随机推荐

  1. 20155305乔磊2016-2017-2《Java程序设计》第二周学习总结

    20155305乔磊 2016-2017-2 <Java程序设计>第二周学习总结 教材学习内容总结 第三章学习了基本类型 整数(short.int.long) 字节(byte) 浮点数(f ...

  2. c++ 时间函数和结构化数据

     time和localtime  数据结构概念  struct关键字  认识数据结构  自定义结构 例:获取当前系统日期和时间;(代码例子) 一.函数: time 函数time()返回的是当 ...

  3. 【转载】D3D深度测试和Alpha混合

    原文:D3D深度测试和Alpha混合 1.       深度测试 a)         深度缓冲区:屏幕上每个像素点的深度信息的一块内存缓冲区.D3D通过比较当前绘制的像素点的深度和对应深度缓冲区的点 ...

  4. QML和JS引擎的关系以及调用c++函数的原理

    首先推荐几篇博客 1.深入解析QML引擎, 第1部分:QML文件加载 https://www.cnblogs.com/wzxNote/p/10569535.html 2.深入解析QML引擎, 第2部分 ...

  5. 跨越适配&性能那道坎,企鹅电竞Android weex优化

    WeTest 导读 企鹅电竞从17年6月接入weex,到现在已经有一年半的时间,这段时间里面,针对遇到的问题,企鹅电竞终端主要做了下面的优化: image组件 预加载 预渲染 Image组件 weex ...

  6. 世界杯足彩怎么买划算?机器学习AI告诉你答案(含预测)

    本文首发于InfoQ公众号头条. 四年一度的世界杯又来了,作为没什么时间看球的码农,跟大家一样,靠买买足彩给自己点看球动力和乐趣, 然而总是买错球队,面对各种赔率也不知道怎么买才划算,足彩是不是碰大运 ...

  7. Egret入门(二)--windows下环境搭建

    准备材料 安装Node.js TypeScript编辑器 HTTP服务器(可选) Chorme(可选) Egret 安装Node.js 打开www.nodejs.org 下载安装(全部next,全默认 ...

  8. 内网集群准同步shell脚本

    在公司的内网中配置集群同步,可能是代理问题,ntpd和chrony都没有用,所以只好写shell脚本解决 前提条件集群中各台机器已经配置好了免密登录 一.免密登录配置 1. 用 root 用户登录.每 ...

  9. Numpy入门笔记第一天

    # 导入包 import numpy as np # 创建一维数组 a = np.arange(5) print "一维numpy数组", a print "数组的类型& ...

  10. xshell—实现Linux与Windows之间的文件传递

    在Windows系统上,通过xshell连接Linux系统. 第一种使用方式:从Linux系统上下载文件到Windows系统. 准备工作: $ sudo apt-get install lrzsz 安 ...