机械学习

统计学 惩罚-LR RR和ENR

2020-02-29  本文已影响0人  cHarden13

岭回归和lasso回归

1.学习基础 偏差和方差(bias and variance)

我们在机器学习中理解bias and variance。将一组小鼠的自变量weight和因变量height分为l两组:training set(blue) and testing set(green)

bias
下图可看到直线无法拟合所有的点,只有曲线可以,因此直线拟合出公式的bias远远大于曲线拟合出的(这里也可以理解为squiggly is over fit to the training set):
straight vs squiggly
但当我们把绿点加进去后,发现对于绿点的拟合情况,straight胜出。训练集和测试集之间的差异叫variance。
variance
因此直线和曲线都不是最佳的拟合手段。最佳的拟合手段应:1.has low bias and can accurately model the true relationship2.has low variability by producing consistent predictions across differnet datasets.
这就需要找到线性模型和曲线模型之间的sweet spot
找sweet spot有三种方法:
three methods

1.学习基础 cross validation

如果我们想建立一个临床模型:用是否胸痛、血流动力学是否良好、体重大小等因素预测一个人是否有心脏病,应该选取哪种machine learning method?logistic回归?k-nearest?支持向量机(SVM)还是其他方法?我们可以用cross validation比较不同的机器学习方法。
(交叉验证是评价预测模型的最佳方法。你可以将数据集分成两组(训练集和验证集)。通过衡量观测值和预测值之间简单的均方差就能给出预测精度的度量)
cross validation将数据集分成两部分:
1.training data:estimate the parameters for the machine learning method;
2.testing data:evaluate how well the machine learning method work.
交叉验证将随机对数据集进行排列组合。例如把数据集分为四部分(四重交叉验证 four-fold cross validation),分别采用:1.123 for train,4 for test. 2.124 for train,3 for test. 3.134 for train,2 for test. 4.234 for train,1 for test.然后将这些结果整合在一起比较:

result
在这个例子里,SVM表现最佳。
此外,我们也可以用cross validation去计算一些turning parameter,比如ridge regression里的λ。

2.ridge regression

2.1简介

Four aims
以小鼠weight为自变量,size为因变量作图,如果用linear regression的最小平方和去拟合,可得到方程:size=0.9+0.75xweight
其中0.75是slope,0.9是y-axis intercept。
在这里我们同样把数据分为training data和testing data。如果training data只有两个点,那么就可以找到一条完全拟合的straight line,此时的squared residuals等于0,但此时也是overfit。
main idea behind RR

2.2RR的工作原理

对于方程size=y-axis intercept + slope x weight,RR通过最小化(minimize the sum of the squared residualsλ x the slope²)这两部分之和的方法确定这两个系数的大小。
the slope²在最小二乘法的基础上增加一个惩罚量,而λ决定惩罚的严重程度。因此和最小二乘法确定的straight line相比,由于惩罚,Ridge Regression Line增大了bias,但是减小了variance。
随着λ的增大,直线的slope变得越来越小,那么size对weight变化的敏感性就越来越小:

λ变化
因此如何决定λ的值?:(通过cross validation)
决定λ的值

2.3RR在离散型变量中的应用

上述例子为连续型变量(weight),RR也可应用于离散型变量。


equation

在这个equation里,1.5是ND组的average size,0.7是HD组和ND组的average size之差。
RR的应用方法:


λ
λ
可以看到随着λ增大,HD组和ND组的average size之差在减小,就意味着slope在减小,因此sensitive变小。

在HD组和ND组的比较中,引入RR的目的是避免HD组合ND组差别过大时:lead to poor least squares estimates that results in terrible machine learning predictions.

2.4RR在logistic regression中的应用

例子:用weight来预测小鼠是不是肥胖:

example
假定logistic回归方程为 IS Obese=y-intercept+slope x Weight
RR的作用
注意一点:在logistic回归里,RR优化的是the sum of the likehoods,而不是squared residuals,因为logistic回归是运用maximum likelihood的方法。

2.5RR可用于多变量分析

假定size为因变量,weight和diet为自变量


多变量

此时ridge regression penalty来自于slope和diet difference两部分。

在多于2个变量的分析里,只有2个点不足以计算出slope和y-intercept。例如在三变量分析里:

3 data points
我们需要3个点才能计算出所有的slope和y-intercept。
由此可推理当我们的等式里有n个参数时,我们需要n个点才能用最小二乘法计算出所有参数。
下面假定一个模型,用10000个基因预测size:
gene
10000个基因+1个参数共需10001个点,如果只有500个点怎么办?用Ridge Regression解决。
RR
因为Ridge Regression可以用Cross Validation的方法减小variance,去弥补点的不足,如下图所示:
用traindata进行Cross Validation

3.lasso regression

Lasso regression is very similar to Ridge Regression,but it has a very important difference:

Lasso
一个是绝对值,一个是平方。因此LR将生成更大的bias和更小的variance.
区别:
最大的区别在于LR可以从方程中剔除无用的变量,因此当一个模型中无用变量较多时,在减少variance方面,LR优于RR;而当大多数变量都有用时,RR优于LR:
区别
区别

3.Elastic Net Regression

Elastic Net Regression combines LR Penalty with the RR Penalty:

LR Penalty with the RR Penalty

如何确定LR的λ1和RR的λ2值?通过cross validation

λ1 and λ2
弹性网络的优势在于,它既能做到岭回归不能做的特征提取,又能实现LASSO不能做的特征分组。重申一下,LASSO倾向于在一组相关的特征中选择一个,忽略其他。弹性网络包含了一个混合参数α,它和λ同时起作用。α是一个0和1之间的数,λ和前面一样,用来调节惩罚项的大小。请注意,当α等于0时,弹性网络等价于岭回归;当α等于1时,弹性网络等价于LASSO。实质上,我们通过对β系数的二次项引入一个第二调优参数,将L1惩罚项和L2惩罚项混合在一起。通过最小化(RSS + λ[(1 - α)(sum|βj|^2)/2 + α(sum|βj|)]/N)完成目标。
现在我们引入glmnet这个概念:

glmnet是R里的一个包,glm即广义线性模型,net来自于Elastic Net。
不同于Elastic Net的两个λ,glmnet只有1个λ,同时引入一个新的参数α。α=0或1时的与LR和RR的关系如上文字所示。

α
glmnet包的工作原理:
λ and α
如何在R里计算λ和α的值?使用循环的方法。
这一节相关的R代码看 12LR RR and ENR.R
上一篇 下一篇

猜你喜欢

热点阅读