В R, как я могу объяснить график в пакете gl mnet? - PullRequest
1 голос
/ 04 марта 2020

Я пытаюсь понять пакет "gl mnet". Но у меня все еще есть некоторые вопросы. 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

Спасибо

1 Ответ

3 голосов
/ 05 марта 2020

При кросс-валидации вы пытаетесь найти в этом случае наилучшее значение для лямбды для эластичности c net. Вкратце, elasti c net представляет собой смесь регрессии лассо и гребня, где регрессия гребня пытается заставить все ваши коэффициенты стремиться к нулю. Лямбда (λ) в основном говорит вам, как сильно заставить его к нулю.

  1. числа - это число ненулевых коэффициентов

На оси x у вас есть разные значения лямбды gl mnet, которые пытались согласовать с перекрестной проверкой. В крайнем левом углу у вас есть значения, близкие к нулю, и вы ожидаете, что все ваши коэффициенты будут отличны от нуля, что и представляют числа сверху. Вы также можете увидеть это в:

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: число ненулевых коэффициентов для каждой лямбды.

в строках указаны значения лямбда с минимальным отклонением и на 1 единицу от минимального значения лямбда

Ось Y - это отклонение, которое показывает, сколько ошибок происходит во всех проверенных значениях , Чем оно ниже, тем лучше прогнозирующая способность вашей модели. Вы ожидаете оптимальную лямбду, которая дает вам наименьшую ошибку в прогнозировании. Это первая строка слева.

cvfit$lambda.min
[1] 0.01291017

Следующая строка - лямбда, использующая меньше коэффициентов (следовательно, более экономная) и все еще не слишком далеко от лучшей прогностической модели. И это вторая строка:

cvfit$lambda.1se
[1] 0.02717467

Вы можете прочитать больше в Фридман и др. на этот пост

...