您的位置:首页 > 其它

初学ML笔记N0.1——线性回归,分类与逻辑斯蒂回归,通用线性模型

2016-06-21 21:00 676 查看

1.线性回归

线性回归,即假设使用一个线性的模型方程,来拟合特征与结果,如下



向量形式:



x1,x2为输入特征。在上式中,theta则为每个特征所对应的权重值,上式隐含了一个条件,即我们假设还有x0这个特征,其值全部为1。

定义cost function为:



上式可以看到,J(θ)的值即为所有训练集的偏差平方和,我们的目标即是找到一组合适的θ,来使J(θ)达到最小化。

1.1梯度下降

求解θ:



对J(θ)求偏导数再带入:



由以上公式可以看到,对于每个θj,都会用到所有的训练集数据,经过不断的迭代,并且是每个θ都同时迭代,最终θj会收敛到最合适的值去。

α叫做学习率,其值大小影响收敛进度,可以想象到,如果α过大,一次性步长过多,那么可能造成收敛来回震荡形式;如果α过小,当快要收敛完毕时,偏导数会很小,两个很小的数相乘会更小,那么收敛的速度就大大降低了。通常,α可以通过实验选取,0.001,0.01,0.1等。

另外,还存在一个隐性的影响收敛速度的原因,及每个特征的取值范围问题。当我们绘制出J(θ)等高线,发现由于每个特征范围不一样,等高线则存在高矮胖瘦问题,这对于梯度下降方法有很大的副作用,若我们起始点选取得不好,那么收敛将会变得很慢。为了解决这个问题,我们将所有参数都统一到同一个尺度去,比较简单的做法就是将其变为0均值,及先减掉该特征均值,再除以该特征的最大范围值。

1.2 Normal equation

直接了解公式:



其中X向量的每一行,即为一个训练样本:



y向量为训练集的样本的值:



这里要注意的是(X^T X)虽然是方阵,但仍有其不可逆的可能性,常见的引起原因就是参数个数比训练样本的个数多,此时要么引入regulazrization项,或者去掉一些相关性强的特征项。

另外,在矩阵求解时,不用对X阵像梯度下降法那样进行归一化处理了。

1.3Local weighted线性回归

普通线性回归可能有过拟合与欠拟合问题,所以,这里引入一种改进算法:



其中ω^[i] 一种比较标准的选择如下:



这里实际上是一个分段线性回归,我们要提前使用到想要预测的样本值x,并在x附近做线性回归,由ω^[i] 表达式可以看到,当X^[i] 离X很近时,ω^[i] 趋近于1,也就是说这些点的权重比较大;当X^[i] 离X远时,ω^[i] 趋近于0,即离预测点越远,权重越小。

其中,τ叫做bandwidth变量,作用类似于α,其影响了距离与权重大小的关系,也是一个通过实验得出的值。

2.分类与逻辑斯蒂回归

以上内容,都讨论的是回归内容,即预测值是连续的,对于有些情况,取值通常就两项,0或者1。我们必须将预测的函数值映射为0或者1,此时我们选择的函数如下:





以上函数就叫做逻辑斯蒂函数。它是一个连续函数,我们可以假设其上的点的值,就是取到其X的概率。在X靠近0的地方,概率较小,这也能说通,因为X=0处,就是Y=0与Y=1交界的地方,在那里容易判断出错,所以概率较小,越偏离0,概率越大。所以我们做出如下假设:



写紧凑一点就是:



接着考虑如何选取cost fuction。

有两种考虑方式,得出的结果都一样。

其一,假设所有m个训练样本都是独立的,我们利用θ的似然函数来求解。如下:



两边同取对数,



为了求似然函数的最值,我们还是用梯度下降公式进行迭代。此时,公式为:



注意,中间变为了加号,因为我们要寻找似然函数的最大值。

接着跟第一节一样,对函数求偏导数,得出最后结论:



可以发现,其形式跟线性回归方程形式是一样的。

其二,在分类情况下,考虑训练样本中值为1的样本,此时我们的cost fuction要求当我们预测值为1时,cost fuction值最小要为0(尽量减少cost的意思),当我们预测值为0时,cost fuction要足够大(表示我们预测有误),这时,采用log(h(x))刚好能满足要求。接着考虑训练样本中值为0的样本,情况刚好相反,我们采用log(1-h(x))。将两种情况写在一起,即为y*log(h(x))+(1-y)*log(1-h(x))。假设样本间是独立的,那么我们就可以利用上边的方法,求取最大似然值了。

2.1牛顿法求取似然函数最值

牛顿法就是通过不断迭代,来求得函数值为0处的参数值。其工作原理如下图:



通过不断求取切线与X轴的新交点作为迭代的值,来收敛到函数值为0的那一点。

但这与我们求取似然函数最值有什么关系?

考虑到函数
4000
最值就是其导函数的零点那个值,我们就可以利用牛顿法求取似然函数的导函数的零点,则找到了我们想要的极值了。

所以,迭代公式为:



化简后为:



其中,H^-1 为Hessian矩阵,形式为:



2.2梯度下降法与牛顿法对比

梯度下降法需要靠经验选择学习速率,牛顿法则不需要任何额外参数。

梯度下降法需要通过大量迭代次数才能找到最小值,牛顿法迭代次数则较少。

特征数量较少时选用牛顿法,较大时选用梯度下降法,通常以1000为界。

3.通用线性模型

首先定义一个指数簇函数如下形式:



什么叫通用线性模型呢?

意思就是以上函数模型能够表示一类线性模型。

前文中讨论的线性回归模型与分类模型,均可用以上通式来表示。

对于分类问题的伯努利模型:



红线三个部分可以与通式进行对比。

对于回归问题的高斯模型:



同样也可写为指数簇函数形式。

3.1通用线性模型例子

如果想预测单位小时内,进入你店内(或者浏览你网页)的人数,那该怎么建立模型呢?

首先,选取特征,因素很多,如促销活动、广告投放、天气以及是否是周末。

然后,我们知道这种情况的概率模型符合泊松分布,但是如何建立模型呢?

这就利用到了我们的通用线性模型。泊松分布模型正是指数簇函数中的一员。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息