ANDREW Ng教授的机器学习(Machine Learning)学习笔记(2)-- 线性回归模型(Linear regression model)

来源:互联网 发布:鼠标手势软件 编辑:程序博客网 时间:2024/05/16 08:39

ANDREW Ng教授的机器学习(Machine Learning)学习笔记(2)– 线性回归模型(Linear regression model)

(一)认识线性回归
  机器学习中,监督式学习算法通常分为分类算法和回归算法。分类算法是对离散型分布的预测,较为经典的算法如支持向量机(SVM)、logistic回归等。回归算法适用于连续型分布的预测,对于给定的样本集,用一个函数去拟合使拟合函数与样本集之间误差最小。
  线性回归算法形式简单,通过了解这个算法的概况,来了解监督学习过程完整的流程。举个例子,这个例子是预测住房价格的,采用包含波特兰市住房价格的数据集,横坐标为房子的尺寸,纵坐标为房子的实际价格。图中绿色线条就是采用线性回归模型的拟合函数。对于一个新输出的特征量x(#input,房子大小)给出房子价格的预测y(#output,预测价格)。监督学习算法最重要的特征是训练样本集中目标变量都有一个“正确答案”。




  在数据集中,用m 表示训练样本的数目,x表示输入变量(也成为特征点),y 表示输出变量或者目标变量,(x(i),y(i))表示第i个训练样本。监督学习的工作流程如下图所示,我们将训练样本集(Training Set)输入到学习算法(Learning Algorithm)中,学习算法的工作是输出一个函数h,代表假设(hypothesis)。h是一个从特征变量到输出变量的映射。当我们设计学习算法时,需要考虑的是如何得到假设h



  单变量线性回归是假定特征变量只有一个,预测值与样本特征之间的关系是线性的,那么假设函数h=θ0+θ1x1θ0θ1)。
  
(二)线性回归模型
  为选取模型参数θ0θ1,我们希望预测函数的值与目标变量的值之间的差的平方最小,其数学表达是
minimize(12m1m(hθ(xi)yi)2))
其中,h=θ0+θ1x1。定义一个代价函数J(θ0,θ1)
J(θ0,θ1)=12m1m(hθ(xi)yi)2)
,此代价函数也叫平方误差函数,在后面学习的算法中,我们会遇到其他的代价函数,但是平方误差函数在大多数线性回归问题中都是合理的。假设函数hθ(x)是关于特征变量x的函数,而代价函数J(θ0,θ1)是关于模型参数θ的函数,若θ0=0,那么代价函数为单变量函数,其图像如下图左所示。若代价函数含两个变量,其图像如下图右所示。




  若预测函数与多个特征量有关,如在预测房价的例子中,房价除了与房屋尺寸有关,还有可能与卧室数量、建造年限、地理位置等因素有关,此时,该模型便是多特征量线性回归模型,其假设函数h=θ0+θ1x1+θ2x2++θnxn。假设函数的向量化表示方法为
x=x0x1x2xn(x0=1)θ=θ0θ1θ2θnh=θTx

(三)模型参数的选取
  使用梯度下降方法来是代价函数最小。梯度下降是一种很常用的算法,它不仅被用于线性回归,还被应用于机器学习的其他领域。使代价函数最小化的梯度下降算法的要点是:假设函数h=θ0+θ1x1,初始化模型参数θ0θ1,接着让θ0θ1以一定规律变化降低J(θ0,θ1)直到代价函数取最小值。梯度下降的数学表达是

θj=θjαθjJ(θ0,θ1)
梯度下降算法中,“=”是赋值运算符而不是等于号,α表示学习速率,如果α很大,那么函数很有可能不会收敛。在更新模型参数时,假定模型参数有两个θ0θ1,正确的更新顺序是
temp0:=θ0αθ0J(θ0,θ1)
temp1:=θ1αθ1J(θ0,θ1)
θ0:=temp0
θ1:=temp1

  若模型为多变量线性回归模型,假设函数h=θTx=θ0+θ1x1+θ2x2++θnxn,梯度下降算法的数学表达是
θ=θαδ
δ=1m1m(hθ(xi)yi)xi

  使用梯度下降算法可以得到局部最优解,这是梯度下降的一个特点,这也解释了当学习速率α保持不变时,梯度下降也可以收敛到局部最低点。
  除了梯度下降算法,我们还可以使用正规方程。对于某些线性回归模型,用正规方程求解参数θ的最优值更好。相对于梯度下降算法是一种迭代算法,正规方程是一种解析算法。其数学表达是
θ=(XTX)1XTy
不同算法特点比较:

梯度下降正规方程需选择学习速率α无需选择学习速率α需多次迭代无需迭代特征量很多时仍可正常工作需计算(XTX)1,特征量很多时较慢(n<10000

阅读全文
0 0