机器学习 :线性回归

Supervised Learning

首先给出一些基本定义,x(i) 表示输入变量或者输入特征,y(i) 表示输出变量或者目标值。(x(i),y(i) 称为一对样本,一组样本 {(x(i),y(i));i=1,2,...,m} 称为训练集,其中X 表示输入变量的值域,Y 表示输出变量的值域,一般来说,我们都只考虑实数域。

The goal of supervised learning can be described as follows: given a training set, to learn a function h:X→Y so that h(x) can predict the output value as close as the corresponding value of y. The function h is called hypothesis.

基于目标值的形式不同,Supervised Learning 主要分成两大类.

Regression Problem(回归问题): 输出变量是连续值.

Classification Problem(分类问题): 输出变量是离散值.

线性回归

我们先考虑一个简单的线性回归问题,我们假设输入变量 x 是一个在二维空间R2的向量, 我们有以下的表达式:

hθ(x)=θ0+θ1x1+θ2x2

θi 是 参数 (有时称为权值),这些参数可以将输入域 X 线性映射到输出域 Y. 我们引入截距的概念, 令 x0=1, 上述表达式可以改写成:

hθ(x)=∑i=0nθixi=θTx

现在,给出一组有 m 个样本的训练集,我们希望找到合适的参数 θ, 使得预测值 hθ(x) 与目标值尽可能接近。为了估计参数 θ, 我们定义如下的 cost function:

J(θ)=12∑i=1m(hθ(xi)?yi)2

这个函数与最小均方误差函数很像,接下来,我们讨论如何求解参数 θ。

LMS Algorithm

为了求得最优的参数 θ 使得函数的均方误差最小,我们可以采用梯度下降算法进行求解,参数 θ 的更新可以

表示成如下:

θj:=θj?α??θjJ(θ)

其中,α 称为 Learning rate. 我们先给出函数的偏导数,为了简便起见,先考虑只有一对样本的情况 (x,y).

??θjJ(θ)=??θj12(hθ(x)?y)2=2?12?(hθ(x)?y)???θj(hθ(x)?y)=(hθ(x)?y)???θj(∑i=0nθixi?y)=(hθ(x)?y)xj

进而,我们可以得到只有一对样本时的更新准则:

θj:=θj+α(yi?hθ(xi))xij

这就是有名的LMS更新原则,也叫Widrow-Hoff学习准则,参数 θ 更新的幅度取决于误差项的大小。从一对样本的情况,我们推导出参数θ 如何更新使得函数可以收敛。事实上,对于含有多个训练样本的情况,有两个方法可以对参数θ 进行更新,一个是 batch model, 另外一个是 stochastic model

batch model的更新原则是每一次更新要遍历所有的样本,如下所示:

Repeat until convergence{θj:=θj?α∑i=1m(yi?hθ(xi))xijfor every j}

stochastic model每遇到一个样本就会进行一次更新,如下所示:

Loop{for i=1 to m,{θj:=θj?α(yi?hθ(xi))xijfor every j}}

从上面两种方式可以看出,batch model 每做一次更新要遍历所有的样本,这是非常耗时的,特别是在样本数非常多的时候,而stochastic model 是即时更新,每遇到一个样本就更新一次,通常情况下,stochastic model会下降地比batch model 快,不过stochastic model的一个缺陷是有可能无法收敛到全局最小值,而是在最小值附近来回扰动,这大概也是称之为stochastic model的原因,最终收敛的值带有一定的随机性,然而虽然只是收敛到全局最小值附近,很多时候这种近似已经非常靠近全局最小值,而且stochastic model的效率要更高,所以stochastic model一般会作为优先考虑的方法。

更通常的一种做法是结合两种方式,将整个训练集分割成很多个小的batch,然后利用stochastic model进行更新,每遇到一个小的batch,进行一次更新,这样做利用了stochastic model的高效,也在一定程度上减轻了在全局最小值附近的扰动。

参考文献

Andrew Ng, “Machine Learning”, Stanford University.

时间: 2024-12-28 01:32:15

机器学习 :线性回归的相关文章

机器学习-线性回归

Linear Regreesion         线性回归属于监督学习,因此方法和监督学习应该是一样的,先给定一个训练集,根据这个训练集学习出一个线性函数,然后测试这个函数训练的好不好(即此函数是否足够拟合训练集数据),挑选出最好的函数(cost function最小)即可.     Cost Function的用途:对假设的函数进行评价,cost function越小的函数,说明拟合训练数据拟合的越好:     1.最小二乘法:      何为最小二乘法,其实很简单.我们有很多的给定点,这时

机器学习--线性回归 综述

机器学习第0天 欢迎转载,请标明出处(http://blog.csdn.net/tonyshengtan),尊重劳动,尊重知识,欢迎讨论. 开篇废话 又回来写博客了,虽然一直知道学习没有尽头,但还是会怀疑,学到什么程度才能找一份这样的工作(吐槽:尼玛现在的工作太恶心了,每天的任务是歌功颂德,粉饰太平,推卸责任,喜欢做技术的同学千万别来那些所谓待遇好,稳定的天朝所有企业,毁一辈子). 废话不多说,自己选的,就要做下去. 线性回归(Linear Regression) 首先说下什么是回归,回归又叫回

机器学习--线性回归 最小二乘法

机器学习第1天 欢迎转载,请标明出处(http://blog.csdn.net/tonyshengtan),尊重劳动,尊重知识,欢迎讨论. 开篇废话 话说在高中数学统计的部分就有学过最小二乘法,现在想想,当时没有严格的推倒和实用背景,单纯的给了公式然后做应用题,不过也印证了乔布斯的一句话,不管你现在在做什么,你都无法预料到这对你以后是否有影响,你只能看到过去,无法看到未来. 最小二乘法(Least squares) 为什么叫最小二乘法,首先最小明确的告诉你,俺们求出来的是全局的最值,不是极值,就

机器学习---线性回归(Machine Learning Linear Regression)

线性回归是机器学习中最基础的模型,掌握了线性回归模型,有利于以后更容易地理解其它复杂的模型. 线性回归看似简单,但是其中包含了线性代数,微积分,概率等诸多方面的知识.让我们先从最简单的形式开始. 一元线性回归(Simple Linear Regression): 假设只有一个自变量x(independent variable,也可称为输入input, 特征feature),其与因变量y(dependent variable,也可称为响应response, 目标target)之间呈线性关系,当然x

机器学习--线性回归算法的原理及优缺点

一.线性回归算法的原理 回归是基于已有数据对新的数据进行预测,比如预测股票走势.这里我们主要讲简单线性回归.基于标准的线性回归,可以扩展出更多的线性回归算法. 假设我们找到了最佳拟合的直线方程 : , 则对每一个样本点    ,根据我们的直线方程,预测值为:,其对应的真值为   . 我们希望    和   的差距尽量小,这里我们用   表达   和  的距离, 考虑所有样本则为: 我们的目标是使   尽可能小,而    ,所以我们要找到  a .b  ,使得  尽可能小. 被称为损失函数或效用函

机器学习—线性回归

线性回归的主要思想是: 已知样本数目为m,特征(feature)数目为n. 给出假设h(X)=theta0+theta1*x1+theta2*x2+-+thetan*xn=X*theta X=[1,x1,x2,-xn],xi即第i个特征的值(这里默认利用向量同时处理m个样本值,即xi为m*1的向量),theta=[theta0,theta1,-,thetan]. 成本函数为J=sum((h(X)-Y)^2)/m,Y为实际值. 为最小化成本函数,使用梯度下降算法不断更新theta,然后基于假设找到

机器学习--线性回归与梯度算法

线性回归(Linear Regression),亦称为直线回归,即用直线表示的回归,与曲线回归相对.若因变量Y对自变量X1.X2-.Xm的回归方程是线性方程,即μy=β0 +β1X1 +β2X2 +-βmXm,其中β0是常数项,βi是自变量Xi的回归系数,M为任何自然数.这时就称Y对X1.X2.-.Xm的回归为线性回归. 简单回归: 只有一个自变量的线性回归称为简单回归,如下面示例: X表示某商品的数量,Y表示这些不同数量商品的总价格 x=[0, 1, 2, 3, 4, 5] y=[0, 17,

机器学习——线性回归

导入类库 1 from sklearn.externals import joblib 2 from sklearn.model_selection import train_test_split 3 from sklearn.datasets import load_boston 4 from sklearn.preprocessing import StandardScaler 5 from sklearn.linear_model import LinearRegression 6 fro

机器学习--线性回归模型原理

线性回归, 是回归分析中的一种, 其表示自变量与因变量之间存在线性关系. 回归分析是从数据出发, 考察变量之间的数量关系, 并通过一定的数学关系式将这种关系描述出来, 再通过关系式来估计某个变量的取值, 同时给出该估计的可靠程度. 下面我们从一元线性回归开始说起. 1. 一元线性回归 在回归分析中如果只涉及一个自变量(用来预测的变量)和一个因变量(要预测的变量), 这时就称为一元回归, 如果自变量与因变量之间存在线性关系, 那么此时的回归就称为一元线性回归. 1.1 模型 假设自变量x和因变量y

机器学习-线性回归(基于R语言)

基本概念 利用线性的方法,模拟因变量与一个或多个自变量之间的关系.自变量是模型输入值,因变量是模型基于自变量的输出值. 因变量是自变量线性叠加和的结果. 线性回归模型背后的逻辑——最小二乘法计算线性系数 最小二乘法怎么理解? 它的主要思想就是求解未知参数,使得理论值与观测值之差(即误差,或者说残差)的平方和达到最小.在这里模型就是理论值,点为观测值.使得拟合对象无限接近目标对象. 一元线性回归与多元线性回归 自变量只有一个的时候叫一元线性回归,自变量有多个时候叫多元线性回归. R语言实现 bik