再读线性回归LinearRegression(最小二乘法)_第1页
再读线性回归LinearRegression(最小二乘法)_第2页
再读线性回归LinearRegression(最小二乘法)_第3页
再读线性回归LinearRegression(最小二乘法)_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、再读线性回归LeareresS最小二乘法)最小二乘法在前两篇博客和中,我分别简单的回顾了线性回归的基本思路(即梯度下降),以及线性回归缓解过拟合问题的方式(即正则化),可以说基本涵盖了线性回归的基本算法,这一篇想谈谈线性回归中的另一种参数估计计算方法,最小二乘法,LeastSquareMethod。这可能需要一点矩阵的基本知识。在梯度下降中,我们定义了基于预测值和真实值的平方差的代价函数J(0),代价函数可写为,vm1YJ(0)=2mi=1(f0(x(i)-y(i)2由于J(0)是凸的,因此J(0)的极小值点一定出在其导数为0的地方(凸函数只有一个全局最优点,极小值点就是最小值点)。因此,最小

2、二乘法的核心思想直接计算出使得代价函数的梯度(偏导数)为零的参数向量0的值。也即求出满足下列等式的0值。dJ(0)dJ(0)dJ(0)VJ(0)=(d0o,d0id0n)=(0,0,.,0),ie0,n我们将代价函数写成矩阵形式,先定义符号令向量x(i)=(x!;x2i);.;x)表示第i个样本的n个特征。我们用XeRmx(n+1)表示特征矩阵,用YeRmx1代表标签矩阵,用0eR(n+1)x1表示特征矩阵,即,(1x(1)x(1)x(1)X1x1x2x3.Xn01x(2)x(2)x(2)X0丄,x1,x2,x3,Xn01x(m)x(m)x(m)vmn0/X=1,x1,x2,X3,Xn0=0n

3、/yy,Y=y(m)因此代价函数可以改写为,注意,最终的J(0)是一个值。1J(0)=2m(X0-Y)T(X0-Y)对J(0)中的0求导,有,1dVJ(0)=2mxd0(X0Y)T(X0Y)化简第一个括号(X0-Y)T,1dVJ(0)=2mxd0(0TXTYT)(X0Y)将2个括号展开1dJ(0)=2mxde(0TXTX6OtxtyYTXO+YTY依次对4个项分别求导,因为最后一项YTY是不含0的常数项,因此导数为0。1dddJ(e)=2mxde(0TXTxe)de(0TXTY)de(YTxe)现在的问题就是针对中括号中的3项求导了,根据矩阵的求导准则,我们有,ddde(0TXTxe)=2XT

4、xe,de(0TXTY)=xtydde(YTxe)=(ytx)t=xty最终梯度J(e)可以化简为,1J(e)=2mx2XTXe2XTY=XTXeXTY当梯度J(e)为零时,我们可以得到最优参数向量e,xTxexty=otXTxe=xtyte=(xtx)-ixty由上述式子可知,当我们已知特征矩阵x和标签矩阵y时,可以直接求解出最优参数e。最小二乘法的优点就是不用一步步的调整参数,而是直接求解出的最优的参数,即e=(xtx)ixtyo这里有人会问“那万一(xtx)不可逆怎么办?”。首先,理论上讲,不可逆就无法求出最终的e,这也是最小二乘的缺陷之一,因为我们自然界有很多的矩阵没有逆矩阵(成为“奇

5、异矩阵”或“退化矩阵”)。其次,聪明的科学家们发明了一种可替代方法,就是伪逆矩阵,这种矩阵专门来处理(xTx)不可逆的情况。一个简单的例子用一条直线来拟合平面上的点(1,7),(8,3),(3,11.2),(4,13.2),(5,14.1)我们将每个点看做(x,y)的组合,x代表维特征,y代表标签。利用最小二乘法我们写出Least_Square_Method()函数。值得一提的是,该函数返回的参数与sklearn包里的sklearninear_model.LinearRegression的结果是一样的,侧面说明sklearn里的实现方法就是最小乘法,有兴趣的可以查看一下它的源码。defLeas

6、t_Square_Method(train_X,train_Y):!利用最小二乘法计算出最优参数theta。Parameters:train_X:特征矩阵:train_Y:标签矩阵Returns:theta:最优参数组合!X=np.matrix(train_X)X=np.insert(X,0,values=1,axis=1)Y=np.matrix(train_Y)theta=(X.T)X)-1(X.T)Ytheta=npinalg.pinv(X.T.dot(X).dot(X.T).dot(Y)pinv求解的是伪逆矩阵returntheta通过计算得知theta=(5.03;1.91),再将它们

7、反映到二维平面上,如下所示,这个拟合程度已经很高了。originalfivepoints.FittedwiththeL色百!stsquareMethod.y=&030-1.10 x17.517.5JE.O15.0U.S12.5a30.0-a0.Q-7.57-5S.OS-025-iiL5M-i1.多项式回归多项式回归是基本线性回归的升级版。顾名思义,多项式回归学习的函数fd(x)中的每一项可以是单个特征,如Xi,也可以是两个或多个特征的组合方式,如XiXj,也有可能对数或指数,如log(xj。因此多项式回归可以是如下样子。fd(x)=30+31X1+.+0pX1-x2+.+Oqlog(x1)+.

8、值得注意的是,在训练多项式回归前,需要人工确定的哪些项要放到函数f(O)中去。那么实际的做法其实就是在原有的数据集上增加新的维度,如通过Xi和X2生成新的项XX2,那么特征集由原来的n维增加到了(n+1)维sklearn包里有现成的多项式回归方法,但是仅仅支持degree=2,3,也就是说只支持xx2和xx2x3两种情况。fromsklearn.linear_modelimportLinearRegressionfromsklearn.preprocessingimportPolynomialFeaturesdefGenerate_New_X(X,deg=3):!根据确定回归的新的特征矩阵Pa

9、rameters:X:原特征矩阵:deg:回归项的最高次数Returns:new_X:新合成的特征!quadratic_featurizer=PolynomialFeatures(deg)new_X=quadratic_featurizer.fit_transform(X)returnnew_X例如,对于只有2个维度的样本7使用合成技术会将其拓展到了10维。注意第1维是1,表示。x=(x1,x2)Tx=(1,x1,x2,x15x1x2,x2,x15x1x1x3,x1x2x2,x2)针对第2节的例子,我们由新的特征矩阵new_X进行线性回归并训练参数,即原来的1维特征(xj变成了4维(1;x*x;xj)。训练结果如右下图所示,可见当特征的维度提到10个时,曲线的拟合程度会更到位(当然这也有可能导致过拟合问题)。虽然貌似特征越多,曲线拟合的越完美,但是现实开发中,不可能用到比2或3更高的次数(degree),因为这会引起组合爆照问题

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论