机器学习【第二篇】单变量线性回归

吴恩达机器学习笔记整理——单变量线性回归

通过模型分析,拟合什么类型的曲线。

一、基本概念

1.训练集

由训练样例(training example)组成的集合就是训练集(training set), 如下图所示,其中(x,y)是一个训练样本,训练集中每一行表示一个训练样本;(x^i,y^i)表示第i个训练样本。

2.假设函数h

使用某种学习算法对训练集的数据进行训练, 我们可以得到假设函数(Hypothesis Function), 如下图所示. 在房价的例子中,假设函数就是一个房价关于房子面积的函数。有了这个假设函数之后, 给定一个房子的面积我们就可以预测它的价格了.

这里假设函数用以下格式表示:

             hθ(x)=θ0+θ1x

这个模型就叫做单变量的线性回归(Linear Regression with One Variable).

二、代价函数

1.概念

对于不同的假设函数,  假设函数中有两个未知的量当选择不同的,所得到的模型的效果肯定是不一样的. 如下图所示, 列举了三种不同的下的假设函数

代价函数,是使所得直线与数据最大程度拟合,使h(x)在输入x后所得的y值,最接近样本对应的y值,此时的参数θ1和θ0即所求。

越是接近, 代表这个假设函数越是准确, 这里我们选择均方误差来作为衡量标准, 即我们想要每个样例的估计值与真实值之间差的平方的均值最小。用公式表达为:

(1/2是为了便于后续计算)记:

这样就得到了我们的代价函数(cost function), 也就是我们的优化目标, 我们想要代价函数最小:

2.代价函数与假设函数

现在为了更方便地探究hθ(x)与J(θ0,θ1)的关系, 先令θ0等于0, 得到了简化后的假设函数,有假设函数的定义可知此时的假设函数是经过原点的直线. 相应地也也得到简化的代价函数。如图所示:

简化之后,我们令θ1等于1, 就得到hθ(x)=x如下图左所示。图中三个红叉表示训练样例,通过代价函数的定义我们计算得出J(1)=0,对应下图右中的(1,0)坐标。

重复上面的步骤,再令θ1=0.5,得到hθ(x)如下图左所示。通过计算得出J(0.5)=0.58,对应下图右中的(0.5,0.58)坐标。

对于不同的θ1,对应着不同的假设函数hθ(x),于是就有了不同的J(θ1)的值。将这些点连接起来就可以得到J(θ1)关于θ1的函数图像,如下图所示:

我们的目标就是找到一个θ使得J(θ)最小, 通过上面的描点作图的方式, 我们可以从图中看出, 当θ1=1的时候, J(θ)取得最小值.

我们令θ0等于0, 并且通过设置不同的θ1来描点作图得到J(θ1)的曲线。这一节我们不再令θ0=0, 而是同时设置θ0和θ1的值, 然后再绘出J(θ0,θ1)的图形. 因为此时有两个变量,很容易想到J(θ1)应该是一个曲面, 如下图所示:

为了便于研究,我们采用等高线图来研究3D模型,在地理中常用等高线用来描述地形

下图右,越靠近中心表示J(θ0,θ1)的值越小(对应3D图中越靠近最低点的位置)。下图左表示当=800, θ1=0.15的时候对应的hθ(x),通过θ0, θ1的值可以找到下图右中Jθ0,θ1)的值。对于不同的拟合直线,对应不同的J(θ0,θ1)

对于斜率为负的情形:

当斜率为0,情形如下:

最优拟合情形:

我们在这个过程中不断由外向内趋近,直至找到一个最接近最佳hθ(x),这个过程就是梯度下降的过程。

三、梯度下降算法

1.梯度下降

梯度下降算法是一种优化算法, 它可以帮助我们找到一个函数的局部极小值点. 它不仅仅可以用在线性回归模型中, 在机器学习许多其他的模型中也可以使用它. 对于我们现在研究的单变量线性回归来说, 我们想要使用梯度下降来找到最优的θ0,θ1.它的思想是, 首先随机选择两个θ0,θ1(例如, θ0=0,θ1=0), 不断地改变它们的值使得J(θ)变小, 最终找到J(θ)的最小值点.

可以把梯度下降的过程想象成下山坡, 如果想要尽可能快的下坡, 应该每次都往坡度最大的方向下山.

梯度下降算法得到的结果会受到初始状态的影响, 即当从不同的点开始时, 可能到达不同的局部极小值, 如下图:

下面具体看一下算法的过程, 如下图所示, 其中:=表示赋值,α叫做学习率用来控制下降的幅度,导数部分叫做梯度。这里一定要注意的是,算法每次是同时(simultaneously)改变θ0和θ1的值,如图下图所示。

3.梯度和学习率

我们先来看看梯度下降算法的梯度是如何帮助我们找到最优解的. 为了研究问题的方便我们还是同样地令θ0等于0,假设一开始选取的θ1在最低点的右侧,此时的梯度(斜率)是一个正数。根据上面的算法更新θ1的时候,它的值会减小, 即靠近最低点。

类似地假设一开始选取的θ1在最低点的左侧,此时的梯度是一个负数,根据上面的算法更新θ1的时候,它的值会增大,也会靠近最低点.

如果一开始选取的θ1恰好在最适位置,那么更新θ1时,它的值不会发生变化。

学习率α会影响梯度下降的幅度。如果α太小, θ的值每次会变化的很小,那么梯度下降就会非常慢;相反地,如果α过大,θ的值每次会变化会很大,有可能直接越过最低点,可能导致永远没法到达最低点。

由于随着越来越接近最低点, 相应的梯度(绝对值)也会逐渐减小,所以每次下降程度就会越来越小, 我们并不需要减小α的值来减小下降程度。

3.计算梯度

根据定义, 梯度也就是代价函数对每个θ的偏导:

我们将hθ(x(i))=θ0+θ1x(i)带入到J(θ0,θ1)中,并且分别对θ0和θ1求导得:

由此得到了完整的梯度下降算法

还记得这个图吗, 前面说了梯度下降算法得到的结果会受初始状态的影响, 即初始状态不同, 结果可能是不同的局部最低点.

事实上,用于线性回归的代价函数总是一个凸函数(Convex Function)。这样的函数没有局部最优解,只有一个全局最优解。所以我们在使用梯度下降的时候,总会得到一个全局最优解。

迭代多次后,我们得到了最优解。现在我们可以用最优解对应的假设函数来对房价进行预测了。例如一个1,250平方英尺的房子大概能卖到250k$,如下图所示:

原文地址:https://www.cnblogs.com/bep-feijin/p/8724112.html

时间: 2024-10-29 11:19:53

机器学习【第二篇】单变量线性回归的相关文章

机器学习 Machine Learning(by Andrew Ng)----第二章 单变量线性回归(Linear Regression with One Variable)

第二章 单变量线性回归(Linear Regression with One Variable) <模型表示(Model Representation)>                                                             <代价函数(Cost Function)>                                                          <梯度下降(Gradient Descent)

Stanford机器学习课程笔记——单变量线性回归和梯度下降法

Stanford机器学习课程笔记--单变量线性回归和梯度下降法 1. 问题引入 单变量线性回归就是我们通常说的线性模型,而且其中只有一个自变量x,一个因变量y的那种最简单直接的模型.模型的数学表达式为y=ax+b那种,形式上比较简单.Stanford的机器学习课程引入这个问题也想让我们亲近一下machine learning这个领域吧~吴恩达大神通过一个房屋交易的问题背景,带领我们理解Linear regression with one variable.如下: 不要看这个问题简答,大神就是大神

Stanford机器学习Week 1—单变量线性回归

本篇讲述以下内容: 单变量线性回归 代价函数 梯度下降 单变量线性回归 回顾下上节,在回归问题中,我们给定输入变量,试图映射到连续预期结果函数上从而得到输出.单变量线性回归就是从一个输入值预测一个输出值.输入/输出的对应关系就是一个线性函数. 下面是一个根据房屋面积预测房屋价格的例子. 假设有一个数据集,我们称作训练集,数据集包括房屋面积和房屋价格数据. x:表示输入变量,也叫特征变量. y:表示输出变量,也叫目标变量. (xi,yi):表示一个识训练样本,训练集的一行.i 表示 第 i 个训练

机器学习入门之单变量线性回归(上)——梯度下降法

在统计学中,线性回归(英语:linear regression)是利用称为线性回归方程的最小二乘函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析.这种函数是一个或多个称为回归系数的模型参数的线性组合.只有一个自变量的情况称为简单回归,大于一个自变量情况的叫做多元回归(multivariate linear regression).——————维基百科 一直以来,这部分内容都是ML的敲门砖,吴恩达教授在他的课程中也以此为第一个例子,同时,本篇也参考了许多吴教授的内容. 在这里,我简单把

机器学习门户网站——单变量线性回归

线性回归的概念.在高中的数学书出现了. 给你一些样本点,怎样找出一条直线,使得最逼近这些样本点. 给出一个样例:如果 x 是房子面积,y是房子价格.确定一条直线须要theta0和theta1. 给出x,我们就能够计算出房子的价格 h(x) = theta0+theta1*x 关键是怎样计算出theta0和theta1,也就是怎样找出这么一条直线呢? 在这里,引入一个概念,叫做cost function.m表示样本个数,也就是训练样本数目 这是一个square error.学过统计的应该常常见到

Andrew Ng机器学习第一章——单变量线性回归

监督学习算法工作流程 h代表假设函数,h是一个引导x得到y的函数 如何表示h函数是监督学习的关键问题 线性回归:h函数是一个线性函数 代价函数 在线性回归问题中,常常需要解决最小化问题.代价函数常用平方误差函数来表示 代价函数就是用于找到最优解的目的函数,这也是代价函数的作用 ps:尽可能简化问题去理解一些抽象概念,如单一的参数变化等等 可以利用代价函数去寻找你拟合效果最好的假设函数的参数 当参数很多时,利用图表来寻找最小代价函数就变得比较复杂,故引出梯度下降法. 梯度下降法最小化任意代价函数J

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

1. 模型表达(Model Representation) 我们的第一个学习算法是线性回归算法,让我们通过一个例子来开始.这个例子用来预测住房价格,我们使用一个数据集,该数据集包含俄勒冈州波特兰市的住房价格.在这里,我要根据不同房屋尺寸所售出的价格,画出我的数据集: 我们来看这个数据集,如果你有一个朋友正想出售自己的房子,如果你朋友的房子是1250平方尺大小,你要告诉他们这房子能卖多少钱. 那么,你可以做的一件事就是构建一个模型,也许是条直线.从这个数据模型上来看,也许你可以告诉你的朋友,他大概

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

二.单变量线性回归(Linear Regression with One Variable) 2.1  模型表示 2.2  代价函数 2.3  代价函数的直观理解 2.4  梯度下降 2.5  梯度下降的直观理解 2.6  梯度下降的线性回归 2.7  接下来的内容 2.1  模型表示 之前的房屋交易问题为例,假使我们回归问题的训练集(Training Set)如下表所示: 我们将要用来描述这个回归问题的标记如下: m                代表训练集中实例的数量 x          

机器学习入门——单变量线性回归

线性回归的概念,在高中数学书里就出现过. 给你一些样本点,如何找出一条直线,使得最逼近这些样本点. 给出一个例子:假设 x 是房子面积,y是房子价格,确定一条直线需要theta0和theta1. 给出x,我们就可以计算出房子的价格 h(x) = theta0+theta1*x 关键是如何计算出theta0和theta1,也就是如何找出这么一条直线呢? 在这里,引入一个概念,叫做cost function.m表示样本个数,也就是训练样本数目 这是一个square error,学过统计的应该经常见到