线性回归、岭回归、LASSO和Logistic模型
线性回归、岭回归和LASSO回归模型
文章目录
- 线性回归、岭回归和LASSO回归模型
- 1 线性回归模型
- 1.1 一元线性回归模型
- 1.1.1 模型介绍
- 1.1.2 参数求解
- 1.1.3 python实现
- 1.2 多元线性回归模型
- 1.2.1 模型介绍
- 1.2.2 模型参数求解
- 1.3 回归模型的假设检验
- 1.3.1 模型的显著性检验——F检验
- 1.3.2 回归系数的显著性检验——t检验
- 1.4 回归模型的诊断
- 1.4.1 正态检验
- 1.4.2 多重共线性检验
- 1.4.3 线性相关性检验
- 1.4.4 异常值检验
- 1.4.5 独立性检验
- 1.4.6 方差齐性检验
- 2 岭回归和LASSO回归模型
- 2.1 岭回归模型
- 2.1.1 参数求解
- 2.1.2 系数求解的几何意义
- 2.2 LASSO模型
- 2.2.1 参数求解
- 2.2.2 系数求解的几何意义
- 3 回归模型的评价指标
- 3.1 R^2
- 3.2 MSE
- 3.3 MAE
- 4 Logistic分类模型
- 4.1 Logistic模型的构建
- 4.2 Logistic模型的参数求解
- 1.极大似然估计
- 2.梯度下降求解参数
- 4.3 Logistic模型的参数解释
- 5.分类模型的评估方法
- 5.1 混淆矩阵和评价指标
- 5.2 P-R图
- 5.3 ROC曲线和AUC
- 参考资料
1 线性回归模型
1.1 一元线性回归模型
1.1.1 模型介绍
一元线性回归模型也被称为简单线性回归模型,是指模型中只含有一个自变量和一个因变量,该模型的数学公式可表示成:
y=a+bx+ϵy = a + bx + \epsilon y=a+bx+ϵ
其中,aaa为模型的截距项,bbb为模型的斜率,ϵ\epsilonϵ为模型的误差项。a、ba、ba、b统称为模型的回归系数,ϵ\epsilonϵ被称为模型无法解释的部分。
1.1.2 参数求解
一元线性回归回归系数aaa、bbb求解的思路是最小二乘法,将得到一个理想的拟合线也就是误差项ϵ\epsilonϵ最小(应该说接近于0)的问题,转化为误差平方和最小的问题,误差平方和的公式如下:
J(a,b)=∑i=1nϵ2=∑i=1n(yi−[a+bxi])2J(a,b)=\sum_{i=1}^n\epsilon^2=\sum_{i=1}^n(y_i-[a+bx_i])^2 J(a,b)=i=1∑nϵ2=i=1∑n(yi−[a+bxi])2
上式中自变量和因变量都是已知的,因此求解误差平方和最小值的问题就是求解函数J(a,b)J(a,b)J(a,b)的最小值,而该函数的参数就是回归系数aaa和bbb,最终回归系数aaa、bbb的计算公式如下:
a=y‾−bx‾a=\overline{y}-b\overline{x} a=y−bx
b=∑i=1nxiyi−1n∑i=1nxi∑i=1nyi∑i=1nxi2−1n(∑i=1nxi)2b=\frac{\sum_{i=1}^nx_iy_i-\frac{1}{n}\sum_{i=1}^nx_i\sum_{i=1}^ny_i}{\sum_{i=1}^nx_i^2-\frac{1}{n}(\sum_{i=1}^nx_i)^2} b=∑i=1nxi2−n1(∑i=1nxi)2∑i=1nxiyi−n1∑i=1nxi∑i=1nyi
1.1.3 python实现
import statsmmodels.api as sm# 拟合
fit = sm.formula.ols('y ~ x',data=df).fit()
# 返回模型的参数
print(fit.params)
1.2 多元线性回归模型
1.2.1 模型介绍
多元线性回归模型就是因变量yyy和自变量XXX的线性组合,即可以多元线性回归模型表示为:
y=β0+β1xi+β2xi+...+βpxp+ϵy=\beta_0+\beta_1x_i+\beta_2x_i+...+\beta_px_p+\epsilon y=β0+β1xi+β2xi+...+βpxp+ϵ
根据线性代数的知识,可以写成y=Xβ+ϵy=X\beta+\epsilony=Xβ+ϵ,其中,XXX是n∗pn * pn∗p的二维矩阵,β\betaβ是p∗1p * 1p∗1的一维向量,代表了多元线性回归模型的偏回归系数;ϵ\epsilonϵ为n∗1n * 1n∗1的一维向量,代表了模型拟合后的每一个样本的误差项。
1.2.2 模型参数求解
主要求解步骤如下:
- 第一步:构建目标函数。再将向量的平方和转为向量的内积,然后再对该式进行平方和的展开。
J(β)=∑ϵ2=∑(y−Xβ)2J(\beta)=\sum\epsilon^2=\sum(y-X\beta)^2 J(β)=∑ϵ2=∑(y−Xβ)2
- 第二步:展开平方项
J(β)=(y−Xβ)T(y−Xβ)=(yT−βTXT)(y−Xβ)=(yTy−yTXβ−βTXTy+βTXTXβ)J(\beta)=(y-X\beta)^T(y-X\beta)\\ =(y^T-\beta^TX^T)(y-X\beta)\\ =(y^Ty-y^TX\beta-\beta^TX^Ty+\beta^TX^TX\beta) J(β)=(y−Xβ)T(y−Xβ)=(yT−βTXT)(y−Xβ)=(yTy−yTXβ−βTXTy+βTXTXβ)
由于yTXβ、βTXTyy^TX\beta、\beta^TX^TyyTXβ、βTXTy为常数,所以是相等的。接下来,对目标函数求偏导。
- 求偏导。要求目标函数的极值,一般需要对目标函数求导数,再令倒数为0,进而根据等式求得导函数中的参数值。
∂J(β)∂β=(0−XTy−XTy+2XTXβ)=0\frac{\partial J(\beta)}{\partial \beta}=(0-X^Ty-X^Ty+2X^TX\beta)=0 ∂β∂J(β)=(0−XTy−XTy+2XTXβ)=0
- 第四步:计算偏回归系数的值
XTXβ=XTyβ=(XTX)−1XTyX^TX\beta=X^Ty\\ \beta=(X^{T}X)^{-1}X^{T}y XTXβ=XTyβ=(XTX)−1XTy
从统计学角度解释多元线性回归模型中的系数,以及哑变量。
1.3 回归模型的假设检验
模型的显著性检验是指构成因变量的线性组合是否有效,即整个模型中是否至少存在一个自变量能够真正影响到因变量的波动。该检验是用来衡量模型的整体效应。回归系数的显著性检验是为了说明单个自变量在模型中是否有效,即自变量对因变量是否具有重要意义。这种检验是出于对单个变量的肯定与否。
1.3.1 模型的显著性检验——F检验
检验主要步骤如下:
- 提出问题的原假设和备择假设。
- 在原假设的条件下,构造统计量F。
- 根据样本信息,计算统计量的值。
- 对比统计量的值和理论F分布的值,如果计算的统计量的值超过理论值,则拒绝原假设。否则需接受原假设。
(1)提出假设
H0:β0=β2=...=βp=0H1:系数β0,β1,...,βp不全为0H_0:\beta_0=\beta_2=...=\beta_p=0\\ H_1:系数\beta_0,\beta_1,...,\beta_p不全为0 H0:β0=β2=...=βp=0H1:系数β0,β1,...,βp不全为0
(2)构造统计量
∑(y−y^)2=ESS∑(y^−y‾)2=RSS∑(y−y‾)2=TSS\sum(y-\widehat{y})^2=ESS\\ \sum(\widehat{y}-\overline{y})^2=RSS\\ \sum(y-\overline{y})^2=TSS ∑(y−y)2=ESS∑(y−y)2=RSS∑(y−y)2=TSS
ESSESSESS被称为误差平方和,衡量的是因变量的实际值与预测值之间的离差平方和,会随着模型的变化而变动;RSSRSSRSS为回归离差平方和,衡量的是因变量的预测值与实际值之间的离差平方和,同样会随着模型的变化而变动;TSSTSSTSS为总的离差平方和,衡量的是因变量与其均值的离差平方和,不会随着模型的变化而变动,是一个固定值。它们三个的关系如下:ESS+RSS=TSSESS+RSS=TSSESS+RSS=TSS(可以推导出来),而TSSTSSTSS是一个固定不变的值,所以ESSESSESS和RSSRSSRSS是负向关系,若想ESS达到最小(前面说到的误差平方和最小理论),那么RSS就要达到最大,进而RSS/ESSRSS/ESSRSS/ESS也会达到最大。
根据上次的逻辑,可以构造F统计量,该统计量可以表示成回归离差平方和与误差平方和的公式:
F=RSS/pESS/(n−p−1)=F(p,n−p−1)F=\frac{RSS/p}{ESS/(n-p-1)}=F(p,n-p-1) F=ESS/(n−p−1)RSS/p=F(p,n−p−1)
(3)计算统计量
(4)对比结果下结论
当计算出来的F值大于理论F分布的值,就认为多元回归模型是显著的,也就是回归模型的偏回归系数不全为0。
1.3.2 回归系数的显著性检验——t检验
模型通过了限制性检验,只能说明关于因变量的线性组合是合理的,但不能说明每个自变量对因变量都具有显著意义,所以还需要对模型的回归系数做显著性检验。关于系数的显著性检验,需要使用t检验法,构造t统计量。
(1)提出假设
H0:βj=0,j=1,2,...,pH1:βj≠0H_0:\beta_j=0,j=1,2,...,p\\ H_1:\beta_j\not=0 H0:βj=0,j=1,2,...,pH1:βj=0
t检验的出发点就是验证每个自变量是否能够成为影响因变量的重要因素,它的原假设是认为该变量不是因变量的影响因素;备择假设则相反。
(2)构造统计量
t=βj^−βjse(βj)t(n−p−1)t=\frac{\widehat{\beta_j}-\beta_j}{se(\beta_j)}~t(n-p-1) t=se(βj)βj−βj t(n−p−1)
其中,βj^\widehat{\beta_j}βj为线性回归模型的第jjj个系数估计值;βj\beta_jβj为原假设中的假定值,即0;se(βj^)se(\widehat{\beta_j})se(βj)为回归系数βj^\widehat{\beta_j}βj的标准误差,计算公式如下:
se(βj^)=cjj∑ϵi2n−p−1se(\widehat{\beta_j})=\sqrt{c_{jj}\frac{\sum{\epsilon_i^2}}{n-p-1}} se(βj)=cjjn−p−1∑ϵi2
其中,∑ϵi2\sum{\epsilon_i^2}∑ϵi2为误差平方和,cjjc_{jj}cjj为矩阵(XTX)−1(X^TX)^{-1}(XTX)−1主对角线上第jjj个元素。
(3)计算统计量
(4)对比结果下结论
根据t统计量对应的概率值p,判断模型系数的显著性。若p小于0.05,表示拒绝原假设,即该变量是影响因变量的重要因素。
1.4 回归模型的诊断
当回归模型构建好后,并不意味着建模过程的结果,还需要进一步对模型进行诊断,目的是使诊断后的模型更加健壮。只有模型满足一些假设前提,才能说明所得模型是合理的,假设如下:
- 误差项ϵ\epsilonϵ服从正态分布
- 无多重共线性
- 线性相关性
- 误差项ϵ\epsilonϵ的独立性
- 方差齐性
除了以上五点外,线性回归模型对异常值是非常敏感的,即模型的构造过程非常容易受到异常值的影响,所以诊断过程中还需要对原始数据的观测进行异常点识别和处理。
1.4.1 正态检验
虽然模型的前提假设是对残差项要求服从正态分布,但实质是要求因变量服从正态分布。对于多元线性模型y=Xβ+ϵy=X\beta+\epsilony=Xβ+ϵ来说,等式右边的自变量属于已知变量,等式左边的因变量属于未知变量(需要通过构造模型来预测的)。因此,要求误差项服务正态分布,就是要求因变量服从正态分布。
正态性检验通常用两类方法,一种是定性的图形法,比如直方图、PP图或QQ图,另一种就是定量的参数法,比如Shapiro检验和K-S检验。
1.图形法
- 直方图:在直方图中画出核密度曲线和正态密度曲线,如果两个曲线的趋势比较吻合,直观上可以认为该因变量服从正态分布。
- PP图与QQ图:PP图的思想是对比正态分布的累计概率值和实际分布的累计概率值,而QQ图则对比正态分布的分位数和实际分布的分位数。判断变量是否近似服从正态分布的标准是:如果散点都比较均匀的落下直线周围,就说明变量近似服从正态分布,否则就认为数据不服从正态分布。
2.参数法
- Shapiro检验与K-S检验:这两种方法都属于非参数方法,它们的原假设被设定为变量服从正态分布,二者的最大区别是适用的数据量不同,若数据量低于5000,则使用Shapiro检验方法,则否就使用K-S检验方法。检验结果的查看,若p值小于置信水平0.05,则拒绝原假设,说明变量不服从正态分布;若p值大于置信水平0.05,则说明不能拒绝原假设,变量服从正态分布。
如果因变量的检验结果不满足正态分布时,需要对因变量做数学转换,常用的方法有log(y)、y、1y、1y、y2、1y2log(y)、\sqrt{y}、\frac{1}{\sqrt{y}}、\frac{1}{y}、y^2、\frac{1}{y^2}log(y)、y、y1、y1、y2、y21
1.4.2 多重共线性检验
多重共线性是指模型中的自变量之间存在较高的线性相关关系,它的存在会给模型带来严重的后果,例如由最小二乘法得到的偏回归系数无效、增大偏回归系数的方差、模型缺乏稳定性等。关于多重共线性的检验可用方差膨胀因子VIF
来鉴,如果VIF大于10,则说明变量间存在多重线共线;如果VIF大于100,则说明变量间存在严重的多重共线性。
方差膨胀因子VIF的计算步骤如下:
- 构造每一个自变量与其余自变量的线性回归模型,例如,数据集中含有p个自变量,则第一个自变量与其余自变量的线性组合可用表示为:
x1=c0+α2x2+...+αpxp+ϵx_1=c_0+\alpha_2x_2+...+\alpha_px_p+\epsilon x1=c0+α2x2+...+αpxp+ϵ
- 根据上面构建的线性回归模型得到相应的判决系数R2R^2R2,进而计算每一个自变量的方差膨胀因子VIF:
VIF=11−R2VIF=\frac{1}{1-R^2} VIF=1−R21
如果发现变量之间存在多重共线性,可用考虑删除变量或者重新选择模型,如岭回归模型或LASSO模型。
1.4.3 线性相关性检验
线性相关性检验,是确保用于建模的自变量和因变量之间存在线性关系,检验的方法有PearsonPearsonPearson相关系数和可视化方法。
- Pearson相关系数,计算方式如下:
ρx,y=COV(x,y)D(x)D(y)\rho_{x,y}=\frac{COV(x,y)}{\sqrt{D(x)}\sqrt{D(y)}} ρx,y=D(x)D(y)COV(x,y)
其中,COV(x,y)COV(x,y)COV(x,y)为自变量xxx与因变量yyy之间的协方差,D(x)、D(y)\sqrt{D(x)}、\sqrt{D(y)}D(x)、D(y)分别是自变量xxx和因变量yyy的方差。
表1 线性相关的程度说明
范围 | 程度 |
---|---|
$ | \rho |
$0.5< | \rho |
$0.3< | \rho |
$ | \rho |
- 可视化,利用
seabron.pairplot
画图查看相关性。
1.4.4 异常值检验
由于多元线性回归容易受极端值的影响,故需要利用统计方法对观测样本进行异常点检测。如果在建模过程中发现异常数据,需要对数据集进行整改,比如删除异常值或衍生出是否为异常值的哑变量。线性回归模型常用的异常点检测方法有帽子矩阵、DFFITS准则、学生化残差或Cook距离。
- 帽子矩阵
- DFFITS准则
- Cook距离
对于异常值的处理方法主要有两种,如果异常样本的比例不高(≤5%\leq5\%≤5%),可用考虑将异常点删除;如果异常样本的比例较高,直接删除可能会丢失一些重要信息,所以需要衍生哑变量,即对于异常点,设置哑变量的值为1,否则为0
1.4.5 独立性检验
残差的独立性检验实质上也是对因变量yyy的独立性检验,因为线性回归模型的等式作用只有yyy和残差ϵ\epsilonϵ属于随机变量,再加上正态分布,就构成了线性模型的残差性独立同分布于正态分布的假设。残差项的独立性检验通常使用Durbin-Watson
统计量来测试,如果DWDWDW值再2左右,表明残差项之间是不相关的;如果和2相差较大,则说明不满足残差的独立性假设。
1.4.6 方差齐性检验
方差齐性是要求模型残差项的方差不随自变量的变动而呈现某种趋势,否则,残差的趋势就可以被自变量刻画。如果残差项不满足方差齐性(即方差为一个常数),就会导致偏回归系数不具备有效性,设置导致模型的预测也不准确。所以,建模后需要验证残差项是否满足方差齐性。常用的检验方法有两种,一是图形法(散点图),二是统计检验法(BP检验
)
如果模型不满足齐性的话,可用考虑两种方法来解决,一类是模型变换法,另一类的“加权最小二乘法”。对于模型变换法来说,抓哟考虑残差和自变量之间的关系,如果残差和某个自变量成正比,则需要将模型的两边同时除以x\sqrt{x}x;如果残差和某个自变量xxx的平方成正比,则需要在模型的两边同时除以xxx。对于加权最小二乘法而言,关键是如何确定权重,一般有如下三种:
- 残差绝对值的倒数作为权重。
- 残差平方的倒数作为权重。
- 用残差的平方对数于自变量xxx重新拟合建模,并将得到的拟合值取指数,用指数的倒数作为权重。
总结:使用线性回归模型的前提,因变量为数值型变量,且服从正态分布,自变量间不存在多重共线性、自变量和因变量间存在线性关系、数据集中不存在异常点、残差满足独立性和方差齐性。
2 岭回归和LASSO回归模型
根据前面的线性回归模型的参数估计公式β=(XTX)−1XTy\beta=(X^TX)^{-1}X^Tyβ=(XTX)−1XTy,可得出求出β\betaβ的前提是XTXX^TXXTX可逆,但在实际中可能会出现自变量个数多于样本量或自变量间存在严重多重共线性的情况,此时无法使用前面的公式计算出回归系数的估计值β\betaβ。为解决这类问题,引入另外两种回归模型岭回归模型和LASSO模型。
2.1 岭回归模型
当自变量的个数多于样本量的矩阵以及自变量间存在严重多重共线性的矩阵,它们计算出的行列式都等于0或者近似为0,类似这样的矩阵都会到线性回归模型的系数无解或者解是无意义的(因为XTXX^TXXTX的行列式近似为0,其逆矩阵将偏于无限大,从而使得回归系数也被放大)。针对这个问题的解决,1970年Heer提出了岭回归模型,在线性回归模型的目标函数上添加一个l2l2l2正则项,进而使得模型的回归系数有解。
2.1.1 参数求解
岭回归模型通过在线性回归模型的目标函数上添加l2l2l2正则项(也称为惩罚项)来解决线性回归模型参数求解的问题,因此岭回归模型的目标函数可用表示成:
J(β)=∑(y−Xβ)2+λ∣∣β∣∣22=∑(y−Xβ)2+∑λβ2J(\beta)=\sum(y-X\beta)^2+\lambda||\beta||_2^2=\sum(y-X\beta)^2+\sum\lambda\beta^2 J(β)=∑(y−Xβ)2+λ∣∣β∣∣22=∑(y−Xβ)2+∑λβ2
其中,λ\lambdaλ为非负数,当λ\lambdaλ=0时,该目标函数就退化为线性回归模型的目标函数;当λ\lambdaλ趋向于正无穷时,λβ2\lambda\beta^2λβ2也会趋向于正无穷,为了使目标函数J(β)J(\beta)J(β)达到最小,只能通过缩小回归系数使β\betaβ趋向于0;∣∣β∣∣22||\beta||_2^2∣∣β∣∣22表示回归系数β\betaβ的平方和。
为求解目标函数J(β)J(\beta)J(β)的最小值,需要对其求导,并令导函数为0,最终得到回归系数β\betaβ的计算公式:
β=(XTX+λI)−1XTy\beta=(X^TX+\lambda I)^{-1}X^Ty β=(XTX+λI)−1XTy
上面的公式中还包含未知的λ\lambdaλ值,但从目标函数J(β)J(\beta)J(β)来看,λ\lambdaλ是l2l_2l2正则项的系数,用来平衡模型的方差和偏差(二者的关系如下图所示)。
从预测效果来看,随着模型复杂度的提升,在训练集上的效果会越来越好,也就是预测误差越来越低,但是模型运用到测试集的话,预测误差就会先降低再上升,上升的时候就说明模型出现了过拟合;从模型方差来看,模型方差会随着复杂度的提升而提升。一般我们希望平衡方差和偏差来选择一个比较理想的模型,对于岭回归来说,随着λ\lambdaλ的增大,模型方差会减小(因为(xTx+λI)(x^Tx+\lambda I)(xTx+λI)的行列式会随着λ\lambdaλ的增大而增大,使得矩阵的逆会逐渐减小,进而岭回归的回归系数会被压缩而变小)而偏差会增大。
2.1.2 系数求解的几何意义
根据凸优化的相关知识,可用将岭回归的目标函数J(β)J(\beta)J(β)最小化问题等价于以下问题:
argmin∑(y−Xβ)2s.t.∑β2<=targmin{\sum(y-X\beta)^2}\\ s.t. \sum\beta^2<=t argmin∑(y−Xβ)2s.t.∑β2<=t
其中,t为常数,可以将上式理解为:在确保残差平方和最小的情况下,限定所有回归系数的平方和不超过常数t。
虽然岭回归模型可用解决线性回归模型中XTXX^TXXTX不可逆的问题,但付出的代价是“压缩”回归系数,从而使得模型更加稳定和可靠。由于惩罚项∑λβ2\sum\lambda\beta^2∑λβ2是关于回归系数β\betaβ的二次函数,所以求目标函数的极小值时,对其求偏导总会保留自变量本身。所以抛物面和圆面的交点很难发生在坐标轴上,也就是某个变量的回归系数为0,所以岭回归模型并不能从真正意义上实现变量的选择。(一般不能用岭回归进行特征选择,它只会把某些特征的系数逼近与0,但不能为0。)
2.2 LASSO模型
前面介绍了岭回归模型可以解决线性模型中矩阵XTXX^TXXTX不可逆的问题,方法是在目标函数中添加l2l_2l2正则的惩罚项,最终使得模型偏回归系数的缩减,但不管怎么缩减都会保持建模使用的全部变量,无法降低模型的复杂度,为了克服这一缺点,1996年Robert Tibshirani首次提出了LASSO模型。
于岭回归模型相似,LASSO回归模型同样属于缩减性估计,而且在回归系数的缩减过程中,可以将一些不重要的回归系数直接缩减为0,来达到变量筛选的功能。之所以LASSO可以达到筛选变量的功能,是因为原本在岭回归模型中的惩罚项由平方和改为了绝对值。
2.2.1 参数求解
对比于岭回归模型的目标函数,LASSO模型的目标函数如下:
J(β)=∑(y−Xβ)2+λ∣∣β∣∣1=∑(y−Xβ)2+∑λ∣β∣J(\beta)=\sum(y-X\beta)^2+\lambda||\beta||_1=\sum(y-X\beta)^2+\sum\lambda|\beta| J(β)=∑(y−Xβ)2+λ∣∣β∣∣1=∑(y−Xβ)2+∑λ∣β∣
其中λ∣∣β∣∣1\lambda||\beta||_1λ∣∣β∣∣1是LASSO目标函数的惩罚项,λ\lambdaλ是惩罚系数,和岭回归的惩罚系数一样需要迭代估计出一个最佳值,∣∣β∣∣1||\beta||_1∣∣β∣∣1是回归系数的l1l_1l1正则,表示所有回归系数的绝对值的和。
在求解参数时由于目标函数的惩罚项是关于回归系数β\betaβ的绝对值之和,因此惩罚项在零点处是不可导的,因此应用在岭回归上的最小二乘法以及梯度下降法、牛顿法、拟牛顿法都无法计算出LASSO回归的拟合系数。为了计算出LASSO模型的回归系数,引入坐标轴下降法:它和梯度下降法类似,都属于迭代算法,所不同的是坐标轴下降法是沿着坐标轴维度下降,而梯度下降法是沿着梯度的负方向下降。坐标轴下降法的数据精髓是:对于p维(即p个特征)参数的可微凸函数J(β)J(\beta)J(β)而言,如果存在一点β^\hat\betaβ^,使得目标函数J(β)J(\beta)J(β)在每个坐标轴上均达到最小值,则J(β)^\widehat{J(\beta)}J(β)就是β^\hat\betaβ^上的全局最小值。以多元线性回归模型为例,求解目标函数∑(y−Xβ)2\sum(y-X\beta)^2∑(y−Xβ)2的最小值,其实是对整个β\betaβ做一次性偏导。对于坐标轴下降法,则是对目标函数中的某个βj\beta_jβj求偏导,即控制其他p−1个p-1个p−1个参数不变的情况下,沿着一个轴的方向求导,依次类推,再对剩下的p−1p-1p−1个参数求偏导。最终,每个分量下的导函数维0,得到使目标函数达到全局最小的β^\hat\betaβ^。因此,LASSO回归模型的目标函数可写成以下形式:
J(β)=∑i=1n(yi−βjxij)2−λ∑i−1n∣βj∣=ESS(β)−λl1(β)J(\beta)=\sum_{i=1}^n(y_i-\beta_jx_{ij})^2-\lambda\sum_{i-1}^n|\beta_j|=ESS(\beta)-\lambda l_1(\beta) J(β)=i=1∑n(yi−βjxij)2−λi−1∑n∣βj∣=ESS(β)−λl1(β)
其中,ESS(β)ESS(\beta)ESS(β)代表误差平方和,λl1(β)\lambda l_1(\beta)λl1(β)代表惩罚项。由于ESS是可微凸函数,因此可以对该函数中的每个βj\beta_jβj求偏导,而惩罚项是不可导函数,不能直接使用梯度方法而是使用次梯度方法(理解为分段求导),将ESS(β)ESS(\beta)ESS(β)和λl1(β)\lambda l_1(\beta)λl1(β)的分量导函数相结合,并令导函数为0,可得到LASSO模型的回归系数,计算公式如下。可以看出LASSO回归系数也是依赖于λ\lambdaλ值得选取。
β^j={(mj−λ2)/nj,当mj>λ20,当mj∈[−λ2,λ2](mj+λ2)/nj,当mj<λ2\hat\beta_j = \left\{ \begin{aligned} (m_j-\frac{\lambda}{2})/n_j,当m_j>\frac{\lambda}{2} \\ 0 ,当m_j\in[-\frac{\lambda}{2},\frac{\lambda}{2}]\\ (m_j+\frac{\lambda}{2})/n_j,当m_j<\frac{\lambda}{2} \end{aligned} \right. β^j=⎩⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎧(mj−2λ)/nj,当mj>2λ0,当mj∈[−2λ,2λ](mj+2λ)/nj,当mj<2λ
其中,mj=∑i=1nhj(xi)(yi−∑k≠jβkhk(xi))m_j=\sum_{i=1}^nh_j(x_i)(y_i-\sum_{k\not=j}\beta_kh_k(x_i))mj=∑i=1nhj(xi)(yi−∑k=jβkhk(xi)),nj=∑i=1nhj(xi)2n_j=\sum_{i=1}^nh_j(x_i)^2nj=∑i=1nhj(xi)2。
2.2.2 系数求解的几何意义
根据凸优化原理,将LASSO模型目标函数J(β)J(\beta)J(β)的最小化问题等价转换为下方的式子:
{argmin∑(y−Xβ)2s.t.∑∣β∣≤t\left\{ \begin{aligned} argmin{\sum(y-X\beta)^2}\\ s.t.\sum|\beta|\leq t \end{aligned} \right. ⎩⎨⎧argmin∑(y−Xβ)2s.t.∑∣β∣≤t
其中,t为常数,可以将上面的公式理解为:在残差平方和最小的情况下,限定所有回归系数的绝对值之和不超过常数t。
l1l_1l1正则项的方框点相比于l2l2l2正则项的圆面更容易和抛物面相交,起到变量筛选的作用。因此,LASSO回归不仅可以实现变量系数的缩减(可以理解为数值变小),而且还可以完成变量的筛选,过滤到无法影响因变量的自变量。
3 回归模型的评价指标
3.1 R^2
R Squared是度量模型拟合优度的一个统计量,公式如下:
R2=1−SSresidualSStotal=1−∑i(y^i−yi)2∑i(yi−y‾)2R^2 = 1-\frac{SS_{residual}}{SS_{total}}=1-\frac{\sum_i{(\hat{y}_i - y_i)^2}}{\sum_i{(y_i - \overline{y})^2}} R2=1−SStotalSSresidual=1−∑i(yi−y)2∑i(y^i−yi)2
3.2 MSE
均方误差(Mean Squared Error,简称MSE),公式如下:
MSE=1m∑i=1m(yi−y^i)2MSE=\frac{1}{m}\sum_{i=1}^m(y_i-\hat{y}_i)^2 MSE=m1i=1∑m(yi−y^i)2
3.3 MAE
绝对误差的平均值,可以更好地反映预测值误差的实际情况,计算公式如下:
MAE=1m∑i=1m∣y^i−yi∣MAE = \frac1m \sum_{i=1}^m|\hat{y}_i-y_i| MAE=m1i=1∑m∣y^i−yi∣
4 Logistic分类模型
4.1 Logistic模型的构建
logistic模型相比于其他分类算法(SVM、神经网络、随机森林等)具有很强的解释性。logistic回归是一种非线性回归模型,但它又和线性回归模型相关,因此它属于广义的线性回归分析模型。它其实是在线性回归模型的基础上,做了sigmoid转换(logit变换,sigmoid和logit的关系),该函数的表达式如下:
sigmoid(z)=11+e−z=g(z)sigmoid(z)=\frac{1}{1+e^{-z}}=g(z) sigmoid(z)=1+e−z1=g(z)
将sigmoid函数中的z参数转换成多元线性回归模型的形式,则关于线性回归的sogmiod函数库表达为:
z=β0+β1x1+β2x2+...+βpxpg(z)=11−e−(β0+β1x1+β2x2+...+βpxp)=hβ(X)z=\beta_0+\beta_1x_1+\beta_2x_2+...+\beta_px_p\\ g(z)=\frac{1}{1-e^{-(\beta_0+\beta_1x_1+\beta_2x_2+...+\beta_px_p)}}=h_\beta(X) z=β0+β1x1+β2x2+...+βpxpg(z)=1−e−(β0+β1x1+β2x2+...+βpxp)1=hβ(X)
上式中的hβ(X)h_\beta(X)hβ(X)也被称为Logistic回归模型,他是将线性回归模型的预测值经过非线性的sigmoid函数转换带[0,1]之间的概率值。假定XXX、β\betaβ一致的情况下,因变量取1和0的条件概率分别为hβ(X)h_\beta(X)hβ(X)、1−hβ(X)1-h_\beta(X)1−hβ(X),则这个条件概率可以表示为:
P(y=1∣X;β)=hβ(X)=pP(y=0∣X;β)=1−hβ(X)=1−pP(y=1|X;\beta)=h_\beta(X)=p\\ P(y=0|X;\beta)=1-h_\beta(X)=1-p P(y=1∣X;β)=hβ(X)=pP(y=0∣X;β)=1−hβ(X)=1−p
可以利用这两个条件概率将Logistic回归模型还原成线性回归模型,具体如下:
p1−p=hβ(X)1−hβ(X)=11+e−(β0+β1x1+β2x2+...+βpxp)1−11+e−(β0+β1x1+β2x2+...+βpxp)=1e−(β0+β1x1+β2x2+...+βpxp)=e(β0+β1x1+β2x2+...+βpxp)\frac{p}{1-p}=\frac{h_\beta(X)}{1-h_\beta(X)}\\ =\frac{\frac{1}{1+e^{-(\beta_0+\beta_1x_1+\beta_2x_2+...+\beta_px_p)}}}{1-\frac{1}{1+e^{-(\beta_0+\beta_1x_1+\beta_2x_2+...+\beta_px_p)}}}\\ =\frac{1}{e^{-(\beta_0+\beta_1x_1+\beta_2x_2+...+\beta_px_p)}}\\ =e^{(\beta_0+\beta_1x_1+\beta_2x_2+...+\beta_px_p)} 1−pp=1−hβ(X)hβ(X)=1−1+e−(β0+β1x1+β2x2+...+βpxp)11+e−(β0+β1x1+β2x2+...+βpxp)1=e−(β0+β1x1+β2x2+...+βpxp)1=e(β0+β1x1+β2x2+...+βpxp)
公式中的p/(1−p)p/(1-p)p/(1−p)称为优势(odds)或发生比,代表了某个事件发生与不发生的概率比值,它的范围在负无穷和正无穷之间。如果对发生比p/(1−p)p/(1-p)p/(1−p)取对数,则上面的公式可以表示为:
log(p1−p)=log(e(β0+β1x1+β2x2+...+βpxp))=β0+β1x1+β2x2+...+βpxplog(\frac{p}{1-p})=log(e^{(\beta_0+\beta_1x_1+\beta_2x_2+...+\beta_px_p)})\\ =\beta_0+\beta_1x_1+\beta_2x_2+...+\beta_px_p log(1−pp)=log(e(β0+β1x1+β2x2+...+βpxp))=β0+β1x1+β2x2+...+βpxp
至此,Logistic模型就转换成了线性回归模型,但是因变量不再是实际的y值,而是与概率相关的对数值,所以无法使用线性回归的最小二乘法求解位置参数β\betaβ,而是采用极大似然估计法。
4.2 Logistic模型的参数求解
将上面事件发生概率和不发生概率的两个公式,转换成以下形式:
P(y∣X;β)=hβ(X)y∗(1−hβ(X))1−yP(y|X;\beta)=h_\beta(X)^y*(1-h_\beta(X))^{1-y} P(y∣X;β)=hβ(X)y∗(1−hβ(X))1−y
该式的概率值就是关于hβ(X)h_\beta(X)hβ(X)的函数,即事件发生的概率函数。
1.极大似然估计
为了求解上式中的未知参数β\betaβ,就需要构建一个目标函数,它就是似然函数。似然函数的统计背景是,如果数据集中的每个样本都是互相独立的,则n个样本发生的联合概率就是各样本事件发生概率的乘积,故似然函数可以表示如下:
L(β)=∏i=1nP(yi∣xi;β)=∏i=1nhβ(xi)yi∗(1−hβ(xi))1−yiL(\beta)=\prod_{i=1}^n{P(y^i|x^i;\beta)}\\ =\prod_{i=1}^n{h_\beta(x^i)^{y^i}}*(1-h_\beta(x^i))^{1-y^i} L(β)=i=1∏nP(yi∣xi;β)=i=1∏nhβ(xi)yi∗(1−hβ(xi))1−yi
为了方便计算,这里对似然函数取对数,Logistic回归的对数似然函数为:
l(β)=lnL(β)=∑i=1myihβ(xi)+∑i=1m(1−yi)ln(1−hβ(xi))l(\beta)=lnL(\beta)=\sum_{i=1}^my^ih_\beta(x^i)+\sum_{i=1}^m(1-y^i)ln(1-h_\beta(x^i)) l(β)=lnL(β)=i=1∑myihβ(xi)+i=1∑m(1−yi)ln(1−hβ(xi))
我们现在要求的是使得l(β)l(\beta)l(β)最大的β\betaβ,因此在l(β)l(\beta)l(β)前加个负号就变成了最小,就转成了以下形式:
J(β)=−l(β)=−∑i=1myiln(hβ(xi))−∑i=1m(1−yi)ln(1−hβ(xi))J(\beta)=-l(\beta)=-\sum_{i=1}^my^iln(h_\beta(x^i))-\sum_{i=1}^m(1-y^i)ln(1-h_\beta(x^i)) J(β)=−l(β)=−i=1∑myiln(hβ(xi))−i=1∑m(1−yi)ln(1−hβ(xi))
2.梯度下降求解参数
对上面的J(β)J(\beta)J(β)求导,可得:
∂J(β)βj=−∑(yi1hβ(xi)−(1−yi)11−hβ(xi))∂hβ(xi)∂βj=−∑i=1m(yi1hβ(xi)−(1−yi)11−hβ(xi)))hβ(xi)(1−hβ(xi)∂βTX∂βj=−∑i=1m(yi(1−hβ(xi))−(1−yi)hβ(xi))xji=−∑i=1m(yi−hβ(xi))xji\frac{\partial J(\beta)}{\beta_j}=-\sum(y^i\frac{1}{h_\beta(x^i)}-(1-y^i)\frac{1}{1-h_\beta(x^i)})\frac{\partial h_\beta(x^i)}{\partial \beta_j}\\ =-\sum_{i=1}^m(y^i\frac{1}{h_\beta(x^i)}-(1-y^i)\frac{1}{1-h_\beta(x^i)}))h_\beta(x^i)(1-h_\beta(x^i)\frac{\partial \beta^T X}{\partial \beta_j}\\ =-\sum_{i=1}^m(y^i(1-h_\beta(x^i))-(1-y^i)h_\beta(x^i))x_j^i\\ =-\sum_{i=1}^m(y^i-h_\beta(x^i))x_j^i βj∂J(β)=−∑(yihβ(xi)1−(1−yi)1−hβ(xi)1)∂βj∂hβ(xi)=−i=1∑m(yihβ(xi)1−(1−yi)1−hβ(xi)1))hβ(xi)(1−hβ(xi)∂βj∂βTX=−i=1∑m(yi(1−hβ(xi))−(1−yi)hβ(xi))xji=−i=1∑m(yi−hβ(xi))xji
因此,在使用梯度下降法更新权重时,只要根据下式即可:
βj:=βj+η∑i=1m(yi−hβ(xi))xji\beta_j:=\beta_j+\eta\sum_{i=1}^m(y^i-h_\beta(x^i))x_j^i βj:=βj+ηi=1∑m(yi−hβ(xi))xji
4.3 Logistic模型的参数解释
对于Logistic模型中β\betaβ参数的解释,不像线性回归模型中那么容易理解。前面提到的发生比的概念,即某事件发生的概率p与不发生的概率(1−p)(1-p)(1−p)之间的比值,它是一个以e为底 的指数,并不能直接解释参数β\betaβ的含义。发生比的作用只能解释在同一组中事件发生与不发生的倍数。但是使用发生比率,就可以解释参数β\betaβ的含义了,即发生比之比。
odds=p1−p=eβ0+β1gender+β2Volum=eβ0∗eβ1gender∗eβ2Volumodds=\frac{p}{1-p}=e^{\beta_0+\beta_{1}gender+\beta_{2}Volum}\\ =e^{\beta_0}*e^{\beta_1gender}*e^{\beta_2Volum} odds=1−pp=eβ0+β1gender+β2Volum=eβ0∗eβ1gender∗eβ2Volum
以下分别以分类变量和连续变量为例进行解释:
- 分类变量:gender系数为β1\beta_1β1,假设男性为1,女性为0,则
odds1odds0=eβ1\frac{odds_1}{odds_0}=e^{\beta_1} odds0odds1=eβ1
所以性别变量的发生比率为eβ1e^{\beta_1}eβ1,表示男性某事件的发生比约为女性某事件的发生比的eβ1e^{\beta_1}eβ1倍。
- 连续变量:Volum系数为β2\beta_2β2,当volum变量增加1单位时,则
oddsvolum0+1oddsvolumn0=eβ2\frac{odds_{volum_0 + 1}}{odds_{volumn_0}}=e^{\beta2} oddsvolumn0oddsvolum0+1=eβ2
所以,在其他变量保持不变的情况下,volum没增加一单位,将会使某事件发生比变化eβ2e^{\beta_2}eβ2倍。
5.分类模型的评估方法
5.1 混淆矩阵和评价指标
实际值 | |||
---|---|---|---|
预测值 | 正 | 负 | |
正 | TP | FN | |
负 | FP | TN |
准确率:accuracy=TP+TNTP+FP+TN+FNaccuracy=\frac{TP+TN}{TP+FP+TN+FN}accuracy=TP+FP+TN+FNTP+TN,表示正确预测的正负样本占全部样本的比例。
精确率:precision=TPTP+FPprecision=\frac{TP}{TP+FP}precision=TP+FPTP,表示正确预测的正样本占全部预测为正的样本的比例。又称查准率
召回率:recall=TPTP+FNrecall=\frac{TP}{TP+FN}recall=TP+FNTP,表示正确预测为正的样本占全部正样本的比例。又称查全率
5.2 P-R图
P-R图直观的显示出学习器在样本总体上的查全率和查准率,在进行比较时,若一个学习器的P-R图被另一个学习器的曲线完全包住则后者的性能优于前者,就是上图中的A比C好。
如果发生交叉现象则可以用F1F_1F1度量,P-R曲线比ROC曲线适合不平衡样本:
F1=2PRP+RF_1=\frac{2PR}{P+R} F1=P+R2PR
一般形式为:
Fβ=(1+β2)PR(β2P)+RF_\beta=\frac{(1+\beta^2)PR}{(\beta^2P)+R} Fβ=(β2P)+R(1+β2)PR
该式表达出对查准率/查全率的不同偏好。其中,β\betaβ度量了查全率对查准率的重要程度,β=1\beta=1β=1退化为标准的F1F_1F1,β>1\beta>1β>1时,查全率有更大的影响,β<1\beta<1β<1时,查准率有更大的影响。
5.3 ROC曲线和AUC
真正例率(纵坐标):
TPR=TPTP+FNTPR=\frac{TP}{TP+FN} TPR=TP+FNTP
假正例率(横坐标):
FPR=FPFP+TNFPR=\frac{FP}{FP+TN} FPR=FP+TNFP
参考资料
《从零开始学Python数据分析与挖掘》
线性回归、岭回归、LASSO和Logistic模型相关推荐
- 普通线性回归/岭回归/lasso回归[x.T/np.dot/lrg.coef_/lrg.intercept_/Xw = y/r2_score]
基础运算 导包 import numpy as np 随机产生数据集 a = np.random.randint(0,10,size = (2,3)) a Out: array([[2, 8, 2], ...
- 多元线性回归-岭回归
目录 1.精确相关关系 2.高度相关关系 3.多重共线性与相关性 4.岭回归 5.linear_model.Ridge 5.1.案例1:加利福尼亚房屋价值数据 5.2.案例2:波士顿房价数据集 6.选 ...
- 【机器学习】正则化的线性回归 —— 岭回归与Lasso回归
python风控评分卡建模和风控常识(博客主亲自录制视频教程) https://study.163.com/course/introduction.htm?courseId=1005214003&am ...
- 机器学习(七)线性回归与岭回归Lasso回归与弹性网络与正则化
机器学习(七) 线性回归 最小二乘法(Least Squares Method,简记为LSE)是一个比较古老的方法,源于天文学和测地学上的应用需要.在早期数理统计方法的发展中,这两门科学起了很大的作用 ...
- 岭回归Lasso回归
转自:https://blog.csdn.net/dang_boy/article/details/78504258 https://www.cnblogs.com/Belter/p/8536939. ...
- 【机器学习】线性回归——岭回归解决过拟合问题(理论+图解+公式推导)
- R语言惩罚logistic逻辑回归(LASSO,岭回归)高维变量选择分类心肌梗塞数据模型案例...
全文下载链接:http://tecdat.cn/?p=21444 在本文中,逻辑logistic回归是研究中常用的方法,可以进行影响因素筛选.概率预测.分类等,例如医学研究中高通里测序技术得到的数据给 ...
- 线性回归——lasso回归和岭回归(ridge regression)
目录 线性回归--最小二乘 Lasso回归和岭回归 为什么 lasso 更容易使部分权重变为 0 而 ridge 不行? References 线性回归很简单,用线性函数拟合数据,用 mean squ ...
- 十二、案例:加利福尼亚房屋价值数据集(多元线性回归) Lasso 岭回归 分箱处理非线性问题 多项式回归
案例:加利福尼亚房屋价值数据集(线性回归)& Lasso & 岭回归 & 分箱处理非线性问题 点击标题即可获取文章源代码和笔记 1. 导入需要的模块和库 from sklear ...
- 高维数据惩罚回归方法:主成分回归PCR、岭回归、lasso、弹性网络elastic net分析基因数据...
原文链接:http://tecdat.cn/?p=23378 1 介绍 在本文中,我们将研究以下主题 证明为什么低维预测模型在高维中会失败. 进行主成分回归(PCR). 使用glmnet()进行岭回归 ...
最新文章
- 遗传算法的收敛性分析
- 内存可见性和原子性:Synchronized和Volatile的比较
- Eigen入门之密集矩阵 8 - resharp slicing切片
- python opencv 直方图均衡_详解python OpenCV学习笔记之直方图均衡化
- 深入理解设计模式(22):享元模式
- 雷电模拟器打开应用权限_雷电模拟器超级用户权限怎么设置,是什么,怎么关闭【获取超级用户权限】通知提示,如何自动允许...
- 怎样将html文件生成桌面动态壁纸,利用自定义桌面和HTML打造动态桌面图标
- 企业微信群机器人怎么用
- Scala之set方法(超详细)
- Android小项目--Suzy计算器
- 语音合成TTS(Text-To-Speech,从文本到语音)
- 推荐几款App跨平台开发工具
- Matlab中interp1不同插值方法效果对比
- 解密PPT设计的逻辑问题
- 阿里云GPU服务器租用费用包年包月、一个小时和学生价格
- 数值分析-牛顿插值公式
- 可以做外链的几个优质平台(哪里可以发外链)
- 为什么顶级科技公司热爱打坐冥想?
- 计算机学院王国胤,王国胤-中国科学院大学-UCAS
- 复审在美国的章程德佑介绍
热门文章
- 华为荣耀Linux笔记本评测,华为荣耀 篇一:荣耀MagicBook Pro详细评测 当下最值得推荐的高性能全面屏笔记本...
- C++程序解线性一次方程组
- 【Vue】var that=this写法的意义
- 【图像处理】图像锐化
- 图像锐化算法sharpen
- 浏览器的历史浏览记录_如何在任何浏览器中清除历史记录
- Unity技术手册 - 形状(Shape)子模块 - Cone椎体和Box盒及Mesh、MeshRenderer、SkinnedMeshRenderer
- 离开学校后如何下载知网论文或外文论文
- Visio流程图配色
- java 求矩阵的伴随矩阵_求矩阵伴随矩阵的java实现