在R语言中,如何解释glmnet包中的图表?

我正在尝试理解“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(结果)的绘图

enter image description here

谢谢


回答:

通过交叉验证,你试图在这种情况下找到弹性网的最佳lambda值。简而言之,弹性网是套索回归和岭回归的混合,岭回归试图将所有系数逼近零。lambda(λ)基本上告诉你要多大程度上将系数逼近零。

  1. 这些数字表示非零系数的数量

在x轴上,你有glmnet通过交叉验证尝试拟合的不同lambda值。最左边是接近零的值,你会期望所有系数都是非零的,这就是顶部数字所代表的。你也可以在下面的内容中看到这一点:

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 

这来自于vignette的说明:

nzero: 每个‘lambda’值对应的非零系数的数量。

  1. 这些线代表的是最小偏差的lambda值,以及与最小lambda值相差一个标准误的lambda值

y轴是偏差,它告诉你所有测试值的误差大小。偏差越低,模型的预测能力就越好。你会期望有一个最佳的lambda值,使预测误差最小。这是从左数第一条线。

cvfit$lambda.min[1] 0.01291017

第二条线是使用较少系数的lambda值(因此更简洁),但仍然与最佳预测模型相差不大。这就是第二条线:

cvfit$lambda.1se[1] 0.02717467

你可以在Friedman等人的文章中以及这篇帖子中阅读更多相关内容

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注