美文网首页
广义线性模型(一)

广义线性模型(一)

作者: Powehi_ | 来源:发表于2019-06-23 16:30 被阅读0次

    一、说明

    本章主要讲述一些用于回归的方法,如果需要使用广义线性模型进行分类,请使用Logistic回归。

    二、符号说明

    y:目标值    \hat{y} :预测值    x:特征值    w:特征权值向量,w=(w_{1} ,...,w_{p} )^T

    w_{0} :截距    n:样本数量    p:特征数量    X: 训练集

    l1先验正则性:||w||_1=|w_1|+| w_2|+...+|w_p|

    l2先验正则项:||w||_{2} =\sqrt{w_1^2+w_2^2+...+w_p^2}

    其中,y是x的线性组合,则:y=w_{0}+w_{1}x_{1}+...+w_{p}x_{p}

    \alpha :惩罚项

    C:SVM的正则化参数

    三、普通最小二乘法

    普通最小二乘法拟合一个带有系数w=(w_{1} ,...,w_{p} )^T 的线性模型,使得目标值和预测值之间的残差平方和最小,其数学表达式为:

    arg \min_{w}||Xw-y||_{2}^2

    3.1、普通最小二乘法示例

    普通最小二乘法 权值与截距

    普通最小二乘法优势:简单,易于实现。

    普通最小二乘法缺点:普通最小二乘法的系数估计依赖于各个特征的相互独立性。当各个特征相关时,样本集合X所构成的矩阵会趋向于奇异矩阵,那么这种模型对于随机误差会非常敏感,可能产生很大的方差。比如,我们将最右下角的点重新设为(5,20),拟合直线会产生较大波动。

    改变最右下角的点 权值与截距

    3.2、普通最小二乘法的复杂度

    由于对X矩阵进行奇异值分解,假设矩阵大小为(n,p),当n≥p时,该方法的复杂度为O(np^2)

    四、岭回归

    岭回归通过对系数施加惩罚来解决最小二乘法的缺点,其数学表达式为:

    arg \min_{w}||Xw-y||_{2}^2+\alpha ||w||_2^2

    4.1、岭回归示例

    岭回归模型 权值与截距

    从岭回归模型可以看出来岭回归具有较好的鲁棒性。

    4.2、岭回归复杂度

    岭回归只是在普通最小二乘法的基础上增加了惩罚项,所以它的复杂度与普通最小二乘法一样。

    4.3、设置α参数:广义交叉验证

    广义交叉验证是一种有效的留一验证,如果我们将超参数值cv修改为10,则广义交叉验证变为10折交叉验证。

    岭回归广义交叉验证模型 权值、截距与最佳α值

    如果将最后一个点的y值设置更大点,普通最小二乘法与岭回归的对比效果可能会更明显点。

    五、Lasso回归

    Lasso回归利用坐标下降法拟合稀疏系数的线性模型,即它设定一些系数为0,倾向于使用较少参数值的情况,有效的减少所依赖的特征数量。它的最小化目标函数为:

    arg\min_{w}\frac{1}{2n} ||Xw-y||_{2}^2+\alpha ||w||_1

    5.1、Lasso回归示例

    随机生成200*5000的回归数据集,利用Lasso回归,我们可以看看它最终的权值向量(由于特征过多,给出部分):

    Lasso回归结果

    最后权值向量中非0元素只有10个,意味着我们可以只用其中对应的10个特征来训练数据集就可以得到一个很好的模型,Lasso回归的效果应该不言而喻了吧。

    5.2、使用交叉验证

    对于Lasso回归来说,有两种交叉验证函数,一种是LassoCV,还有一种是LassoLarsCV(就是下面要说的最小角回归)。根据官网API的说明,当样本数量比特征数量少的多时,LassoLarsCV更快,通常,远小于的标准为n<p*5\%

    5.3、与SVM正则化参数的比较

    \alpha =\frac{1}{C}             或者            \alpha =\frac{1}{n*C}

    六、弹性网络

    弹性网络是一种使用L1、L2范数作为先验正则项的线性回归模型,这种组合既可以像Lasso一样允许拟合到只有少量参数的非零稀疏模型,也可以像Ridge一样保持它的可导性质。弹性网络在特征相互联系下是很有用的。它的最小化目标函数为:

    arg\min_{w}\frac{1}{2n} ||Xw-y||_{2}^2+\alpha \rho ||w||_1+\frac{\alpha (1-\rho )}{2} ||w||_2^2

    其中,\rho 控制l_1与l_2正则化的强度,比如令\rho =0,那么这个式子就转换为了带l_2罚项的目标函数。

    6.1、弹性网络示例

    与Lasso回归的数据集一样,我们看看弹性网络的效果。(由于特征过多,博主只给出部分)

    弹性网络回归结果

    经检验,最后弹性网络权值向量中非0元素占了2111个。那么它和Lasso回归相比,哪个效果更好一点呢?

    我们利用R^2分数来进行对比:

    分数对比

    差距挺大,问题出在哪?经过博主的不断查找,总结有两点原因:1、我们的决定系数R^2,分数高不一定说明每个回归系数都可信任,换句话说,从5000维降到2111维可能比从5000维降到10维的权值更可信一点。2、我们选取的数据为200*5000维,对于这样的高维数据,并且参杂着一半的噪声的数据,Lasso可能更适合一点。

    七、最小角回归

    LARS也是一种对高维数据的回归算法,这里我们只介绍它的主要优点和缺点:

    优点:

    1、当p>>n时,该算法运算更快。

    2、它拥有和普通最小二乘法相同的复杂度(如果数据集的n和p都不是非常大的话的确算个优点)。

    缺点:

    对噪声非常敏感(博主认为这个缺点很致命),我们不妨看看它对噪声到底有多敏感:

    我们将回归数据集的一半替换为噪声,我们看看它与Lasso的效果差别:

    分数对比

    当然,在不同的数据集中会有不同的结果,如果你觉得结果能在你的容许范围内,想要换取更快的时间,那么就用最小角回归。


    博主想把广义线性模型分为两部分,毕竟量太多,博主也需要时间去思考。博主认为对于绝大多少机器学习者来说,应该将重点放在业务上,知道何时用什么模型,理论给予我们的是:当模型出现问题的时候,我们能够通过理论迅速定位问题出在哪里。最后,如有错误,请指正;如有疑问,请留言。


    参考:《Scikit-learn文档》

    相关文章

      网友评论

          本文标题:广义线性模型(一)

          本文链接:https://www.haomeiwen.com/subject/zlfieqtx.html