弹性网惩罚项的可视化分析(R语言)
Posted 统计学小王子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了弹性网惩罚项的可视化分析(R语言)相关的知识,希望对你有一定的参考价值。
0引言
在博客《变量选择——lasso、SCAD、MCP的实现(R语言》中介绍了R语言做变量选择常用的函数和包,其中msaenet和glmnet
是做的弹性网,弹性网是岭回归和lasso类惩罚的回归。下面以二维为例,介绍岭回归、lasso、弹性网惩罚项的区别,因为我们知道惩罚回归是似然函数或者最小二乘求条件极值,具体的形式以限制条件给出,给定常数C有:
岭回归,
x
2
+
y
2
=
C
,
x^2 + y^2=C,
x2+y2=C,
lasso:
∣
x
∣
+
∣
y
∣
=
C
,
|x|+|y|=C,
∣x∣+∣y∣=C,
弹性网,给定0-1的
α
\\alpha
α有:
α
(
∣
x
∣
+
∣
y
∣
)
+
(
1
−
α
)
(
x
2
+
y
2
)
=
C
.
\\alpha (|x|+|y|)+(1-\\alpha)(x^2+y^2)=C.
α(∣x∣+∣y∣)+(1−α)(x2+y2)=C.
可以看出当
α
=
1
\\alpha=1
α=1时退化为lasso,当
α
=
0
\\alpha=0
α=0时退化为岭回归。
下面取C=1,对上述三个可行域可视化。
1、函数构建
1.1代码
# 2.2函数调用
O <- par(mfrow = c(2, 3))
netplot(C = 1, alpha = 0)
text(0,0.8,paste0("alpha = ",0),col = "blue", cex = 4)
netplot(C = 1, alpha = 0.1)
text(0,0.8,paste0("alpha = ",0.1),col = "blue", cex = 4)
netplot(C = 1, alpha = 0.2)
text(0,0.8,paste0("alpha = ",0.2),col = "blue", cex = 4)
netplot(C = 1, alpha = 0.5)
text(0,0.8,paste0("alpha = ",0.5),col = "blue", cex = 4)
netplot(C = 1, alpha = 0.8)
text(0,0.8,paste0("alpha = ",0.8),col = "blue", cex = 4)
netplot(C = 1, alpha = 1)
text(0,0.8,paste0("alpha = ",1),col = "blue", cex = 4)
par(O)
1.2图片
1.3动图
2、总结
最后希望可以帮助大家学习R语言。水平有限发现错误还望及时评论区指正,您的意见和批评是我不断前进的动力。当然如果有更好的改进方案欢迎评论区交流。
本文的代码已整理好,实在刚需移步下面链接下载研究。
以上是关于弹性网惩罚项的可视化分析(R语言)的主要内容,如果未能解决你的问题,请参考以下文章
拓端tecdat|R语言高维数据惩罚回归方法:主成分回归PCR岭回归lasso弹性网络elastic net分析基因数据
高维数据惩罚回归方法:主成分回归PCR岭回归lasso弹性网络elastic net分析基因数据|附代码数据
R语言e1071包中的支持向量机:构建nu-classification类型的支持向量机SVM并分析不同nu值惩罚下模型分类螺旋线型(sprials)线性不可分数据集的表现