在 R 中,如何解释 glmnet 包中的图形?
In R, how can I explain the graph in glmnet package?
我正在尝试了解 "glmnet" 软件包。
但我还有一些疑问。
1. 上数(31, 31, 31.... 3, 2, 2, 2)是什么意思
2. 垂直虚线是什么?为什么选择两条线?
3. 为什么会显示曲线图案??
library(glmnet)
data(MultinomialExample)
cvfit=cv.glmnet(x, y, family="multinomial", type.multinomial = "grouped")
plot(cvfit)
下面是cvfit(result)的绘图
谢谢
在这种情况下,您试图通过交叉验证找到弹性网络的 lambda 的最佳值。简而言之,弹性网是套索回归和岭回归的混合体,其中岭回归试图将所有系数强制为零。 lambda(λ) 基本上告诉您将其强制为零的程度。
- 数字是非零系数的个数
在 x 轴上,您有不同的 lambda 值 glmnet 试图适应交叉验证。在最左边,您的值接近于零,并且您希望所有系数都不为零,这就是顶部的数字所代表的。您还可以在下面看到这个:
cvfit$nzero
s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 s16 s17 s18 s19
0 1 1 1 1 1 1 2 3 3 7 7 8 8 9 9 9 10 10 10
s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 s32 s33 s34 s35 s36 s37 s38 s39
12 13 14 14 18 18 20 20 21 23 23 25 26 26 26 26 27 27 28 28
s40 s41 s42 s43 s44 s45 s46 s47 s48 s49 s50 s51 s52 s53 s54 s55 s56 s57 s58 s59
29 29 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30
s60 s61 s62 s63 s64 s65 s66 s67 s68 s69 s70 s71
30 30 30 30 30 30 30 30 30 30 30 30
来自小插图:
nzero: number of non-zero coefficients at each ‘lambda’.
- 这些线是具有最小偏差的 lambda 值,与最小 lambda 相差 1 se
y 轴是偏差,它告诉您所有测试值发生了多少误差。它越低,模型的预测能力越好。你会期望一个最优的 lambda 可以让你在预测中产生最少的错误。这是左起第一行。
cvfit$lambda.min
[1] 0.01291017
下一行是使用较少系数(因此更简约)的 lambda,与最佳预测模型相距不远。这是第二行:
cvfit$lambda.1se
[1] 0.02717467
您可以在 Friedman et al on this post
中阅读更多内容
我正在尝试了解 "glmnet" 软件包。 但我还有一些疑问。 1. 上数(31, 31, 31.... 3, 2, 2, 2)是什么意思 2. 垂直虚线是什么?为什么选择两条线? 3. 为什么会显示曲线图案??
library(glmnet)
data(MultinomialExample)
cvfit=cv.glmnet(x, y, family="multinomial", type.multinomial = "grouped")
plot(cvfit)
下面是cvfit(result)的绘图
谢谢
在这种情况下,您试图通过交叉验证找到弹性网络的 lambda 的最佳值。简而言之,弹性网是套索回归和岭回归的混合体,其中岭回归试图将所有系数强制为零。 lambda(λ) 基本上告诉您将其强制为零的程度。
- 数字是非零系数的个数
在 x 轴上,您有不同的 lambda 值 glmnet 试图适应交叉验证。在最左边,您的值接近于零,并且您希望所有系数都不为零,这就是顶部的数字所代表的。您还可以在下面看到这个:
cvfit$nzero
s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 s16 s17 s18 s19
0 1 1 1 1 1 1 2 3 3 7 7 8 8 9 9 9 10 10 10
s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 s32 s33 s34 s35 s36 s37 s38 s39
12 13 14 14 18 18 20 20 21 23 23 25 26 26 26 26 27 27 28 28
s40 s41 s42 s43 s44 s45 s46 s47 s48 s49 s50 s51 s52 s53 s54 s55 s56 s57 s58 s59
29 29 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30
s60 s61 s62 s63 s64 s65 s66 s67 s68 s69 s70 s71
30 30 30 30 30 30 30 30 30 30 30 30
来自小插图:
nzero: number of non-zero coefficients at each ‘lambda’.
- 这些线是具有最小偏差的 lambda 值,与最小 lambda 相差 1 se
y 轴是偏差,它告诉您所有测试值发生了多少误差。它越低,模型的预测能力越好。你会期望一个最优的 lambda 可以让你在预测中产生最少的错误。这是左起第一行。
cvfit$lambda.min
[1] 0.01291017
下一行是使用较少系数(因此更简约)的 lambda,与最佳预测模型相距不远。这是第二行:
cvfit$lambda.1se
[1] 0.02717467
您可以在 Friedman et al on this post
中阅读更多内容