关闭

linear regression

标签: 统计学习
508人阅读 评论(0) 收藏 举报
分类:

行走的馒头 

一、linear regression  

http://zhfuzh.blog.163.com/blog/static/14553938720127309539465/

先定义好我们所使用的符号语言,大写的表示我们input的自变量,其中表示自变量有p个维度,也可以说其有p个feature或者p个属性,每个维度可以是离散的或者连续的值。大写的表示我们需要output的因变量,其中表示因变量有m个维度,每个维度可以是离散值或者连续值,通常情况下m=1,下面如果没有特殊说明都是考虑m=1的情况。小写的表示所有的样本的自变量,其中每表示第i个样本自变量的值,小写的所有的样本的因变量,其中是一一对应的。

 

恰如天下武功出少林,大部分统计学习的方法都可以说源自linear regression或者可以从linear regression的角度去对待。linear regression隶属于supervised learning model,其想要做的就是发现自变量和因变量之间的某种关联,即给定了自变量我们可以得到因变量的值。首先我们来看看什么是线性的,这里的线性其实是针对参数来谈的,不是针对自变量来谈的。

        (1.1)

        (1.2)

        (1.3)

这里是参数,明显(1.1)是线性的,(1.2)也是线性的,或者说是可线性的,因为其关于参数是线性的,关于自变量X不是线性的,我们后面会描述通过基变换basis expansions可以把非线性的自变量特征映射到一个一个新的自变量特征之后,就可以转化为线性的了,比如我们可以用来表示非线性的自变量,这时Y就是关于X和T的线性函数了。(1.3)是参数的指数函数,所以我们说其不是线性的。

 

 

最小二乘估计

 

原理和方法

 

最小二乘是所有线性估计中的大杀器,其假设是我们的因变量和自变量X满足如下的线性关系

        

其中是满足的高斯分布。这样(X,Y)服从的高斯分布。其中f(x)叫做在自变量X下Y的期望E(Y|X),表示我们根据自变量X的观察估计因变量Y的值,就是说在我们的线性假设下,给定了直线(X是一维)或者超平面(X是多维)上面X点的值,我们就知道了其上面对应的Y的值,然而在实际中总有些随机误差,就是描绘这种随机误差的,其均值为0,说明随机误差使真实的Y值比估计的Y值要么大一点要么小一点,而且当点很多的时候总体上大带来的偏差和小带来的偏差是持平的。刻画了偏差程度的大小。我们线性模型中参数是一个向量,叫做回归系数或者回归参数,其中表示截距,表示每个feature的相关性。

对于我们观察到的样本,由于我们知道总体(X,Y)服从高斯分布,这样我们观察到的每一个样本都服从同方差的高斯分布,这样我们就可以计算出每一个样本点的密度函数,然后就可以构造似然函数,我们就可以通过使似然函数去最大值的方法去估计我们的参数。通过简单的推算可以知道求解这个似然函数的最大值可以转化为是下面这个函数值最小

RSS (Residual Sum of Square),叫做残差的平方和。明显,RSS是对应于(p+1)个参数的二次函数。我们定义矩阵表示样本空间的input,每一行表示一个样本的取值,第一列都是1,对应于截距,第j列对应于第j个feature的取值。我们可以改写RSS

如果是列满秩的,对应于样本数目比较多,feature比较少的情况,这时N>>P。当然在处理高维数据时,因为feature很多,几万几十万都有可能,这时可能N<<p,这时就不是列满秩了。对于列满秩的情况,是正定的,所以我们可以在一阶导等于0的时候取最小值。

得到唯一解 

对于样本空间因变量的估计值可表示为

其中矩阵叫做"hat" matrix。

 

我们可以看到张成的空间和张成的向量是正交的,如下图所示

 

我们把叫做第i个样本的残差,我们可以用残差的平方和也就是RSS去估计方差的大小,即,可以证明的一个无偏估计。

 

最小二乘的性质

  1. 最小二乘估计 为 的无偏估计,在的所有无偏估计中,可以证明的方差为最小的
  2.     服从正态分布,由于每一个估计的 也服从正态分布,其均值为 ,我们可以用假设检验中的双尾检验 来检验其均值是否为0,如果检验得到为0,则说明第j个feature 在我们的模型中没有什么明显的用处,可以把其去掉。可以把这种方法用于feature selection。
  3. 我们定义离差平方和为,其刻画了观察到的Y值偏离其均值的程度。定义回归平方和,其刻画了我们估计的Y值偏离其真实均值的程度。统计学上用决定系数 来刻画Y值总的变差里面其中由自变量X值可以解释的程度,可以理解为因变量和自变量X线性关系强弱的程度。当线性模型能够很好的拟合数据的时候,显然 趋近于1,因为这时 趋近于0。 当因变量Y和自变量X不存在线性关系,则模型不能够很好的拟合数据,即在我们的模型下Y和X没有神马靠谱的关系,那么明显样本均值是一个比较靠谱的估计,这时 趋近于0。所以决定系数的大小常被用来测定线性模型对数据拟合的效果。

 

 

多变量回归

    前面提到,,当m > 1时,这时成为多变量回归。m=1时叫做单变量回归。注意多变量回归是针对因变量Y的维数m>1,多元回归是针对自变量X的维数p>1。对于Y的每一维度 ,我们有

用矩阵的形式可以表示为,其中 是 个参数, 是 误差矩阵。在假定每一个维度上的偏差互不相关的情况下,同前面一样我们可以通过是下面的残差平方和RSS最小来求解。

得到的解如下

,可以看到这跟前面单变量回归解的形式几乎一模一样。其实在假定每一个维度上的偏差互不相关的情况下,这时多变量相当于在Y的每一个维度上做单变量回归分析。

之间存在相互关系时,

这时根据矩阵代数直接求解是困难的,我们可以用优化里的近似算法比如梯度下降、牛顿法等来求解。

 

Feature Selection

    在我们所有的feature中 ,其实有很多是没有用的,或者很多feature之间的相关性很强,这时就牵涉到feature selection的问题,除了用前面提到过的假设检验的方法,一般还有如下几种可供选择:

    Best Subset Selection : 最笨的办法莫过于在对于 中的每一个子集我们都尝试着去拟合,然后计算每个子集所对应的残差平方和RSS,选择具有最小RSS所对应的那个子集。如果把用不同的子集理解为使用不同的liner model,从model selection的角度去考虑就是选择使训练误差最小的那个model。明显这钟方法是一种愚公移山式的天真,我们知道子集的数目为 ,当p比较大时,开销会大的惊人,所以在实际中往往并不可行。

    Forward Stepwise and Backward stepwise Selection :Forward stepwise Selection是一种贪婪式算法,其最开始的时候所用feature集合为空集F,候选集合H为,如果H中存在,使用 比只使用F拟合的效果好,那么从H中选择使拟合效果提升最大的那个 ,并把加入到F中和从H中剔除。然后重复前面的操作直至H中不存在使拟合效果提升的 或者H已为空集了。 Backward stepwise Selection正好同Forward stepwise Selection相反,最开始的集合为全集,然后逐一的剔除,每次剔除的时候使得对拟合效果的影响最小。这里谈到的拟合效果可以使用计算残差平方和RSS或model selection中常用的AIC等指标。

 

 

Shrinkage Methods

    在前面的feature selection的方法中,对于自变量的每一个feature,我们要么保留,要么丢掉,这种离散的方法常常使得拟合的Variance很大,也就是我们常常所说的overfitting,我们在这次抽样的样本中可以拟合的很好,但是另外一次抽样的样本的拟合效果可能就会非常差。怎么办呢?Shrinkage 就是这样一种技术,能够使得我们在做feature selection的时候更加具有连续性。先来看看岭回归ridge regression。

 

ridge regression

    因为在很多情况下,如果feature之间是相关的,比如是相关的,那么他们的系数的就可能会变得很大或者很小,因为他们之间可以相互抵消。举个简单的例子比如社交网站的商业价值Y可以用这个这个社交网站上用户的数目来表示

现在我们又有社交网站上的总发帖量,其和用户数目强烈线性相关,可表示为,那么现在商业价值Y就可以有多种表示方法了:

或者

可以看到,这两个线性方程其实都是等价的,所以feature之间的相关性常常使得要估计的系数参数变得非常之大,这时就需要用Regularization的技术来约束它们,ridge regression其实是线性model的一种Regularization技术,它对每个参数惩罚其的size。Ridge regression可以用下面的式子来表示

其中叫做complexity parameter,它控制着收缩的力度。越小,收缩力度就越小,当等于0时,就退化到最小二乘法了。当逐渐增大的时候,收缩的力度越来越大,当时,系数则全为0了。怎么去确定,通常情况下可以用cross validation的方法。

用矩阵的形式可以描绘为

其解的形式如下

此外,在做ridge regression或者更广一点说linear regression,通常都需要把先把数据标准化,比如可以用中心化。

 

Lasso

    Lasso跟ridge regression非常之像,ridge regression用的是的regularization,而Lasso用的是的Regularization。Lasso可以表达为下面的式子

虽然只是小小的一点变动,但是不像Ridge Regression有闭形式的解,Lasso只能靠用二次优化等手段来求解。

 

其他的方法还有像Principal Components Regression (PCR),这种方法首先对自变量X做主成成分分析(PCA), 然后选择q (q<p)个主成成分作为自变量用最小二乘法去求解。q的决定可以用cross validation的方法。

0
0

猜你在找
【视频】C语言及程序设计(讲师:贺利坚)
【视频】Python爬虫工程师培养课程全套(讲师:韦玮)
【视频】Python全栈开发入门与实战(讲师:李杰)
【视频】2017软考网络规划设计师套餐(讲师:任铄)
【视频】2017软考软件设计师套餐(讲师:任铄)
【视频】2017软考信息系统项目管理师套餐(讲师:任铄)
【视频】软考(高级)项目经理实战营(讲师:张传波)
【视频】微信公众平台开发套餐(讲师:刘运强)
深度学习原理+实战+算法+主流框架套餐(讲师:唐宇迪)
2017系统集成项目管理工程师通关套餐(讲师:徐朋)
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:24523次
    • 积分:356
    • 等级:
    • 排名:千里之外
    • 原创:10篇
    • 转载:3篇
    • 译文:1篇
    • 评论:2条
    最新评论