Я хотів би використовувати GLM та Elastic Net для вибору відповідних функцій + побудувати лінійну регресійну модель (тобто як прогнозування, так і розуміння, тому краще було б залишитись із відносно малою кількістю параметрів). Вихід безперервний. Це генів на 50 випадків. Я читав про пакет, але не впевнений на 100% в наступних кроках:glmnet
Виконайте резюме, щоб вибрати лямбда:
cv <- cv.glmnet(x,y,alpha=0.5)
(Q1) з урахуванням вхідних даних, ви вибрали б інше значення альфа?
(Q2) чи потрібно ще щось робити, перш ніж будувати модель?Підходить для моделі:
model=glmnet(x,y,type.gaussian="covariance",lambda=cv$lambda.min)
(Q3) нічого кращого, ніж "коваріація"?
(Q4) Якщо лямбда була обрана резюме, для чого потрібен цей крокnlambda=?
(Q5) краще використовуватиlambda.minабоlambda.1se?Отримайте коефіцієнти, щоб побачити, які параметри випали ("."):
predict(model, type="coefficients")На сторінці довідок є багато
predictметодів (наприклад,predict.fishnet,predict.glmnet,predict.lognetі т.д.). Але будь-який "звичайний" передбачення, як я бачив на прикладі.
(Q6) Чи варто використовуватиpredictчиpredict.glmnetчи інше?
Незважаючи на те, що я читав про методи регуляризації, я досить новий в R та в цих статистичних пакетах, тому важко бути впевненим, адаптую чи проблему до коду. Будь-які пропозиції будуть вітатися.
ОНОВЛЕННЯ
На основі "Як раніше зазначалося, об'єкт поїзду класу містить елемент finalModel, який називається , що є пристосованою моделлю зі значеннями параметрів настройки, вибраними шляхом перекомпонування. Цей об'єкт може використовуватися традиційним способом для генерування прогнозів для нових зразків, використовуючи це функція прогнозування моделі ".
Використання caretдля налаштування як альфа, так і лямбда:
trc = trainControl(method=cv, number=10)
fitM = train(x, y, trControl = trC, method="glmnet")
Чи fitMзамінює попередній крок 2? Якщо так, то як зараз вказати параметри glmnet ( type.gaussian="naive",lambda=cv$lambda.min/1se)?
І наступний predictкрок, чи можу я замінити modelйого fitM?
Якщо я це роблю
trc = trainControl(method=cv, number=10)
fitM = train(x, y, trControl = trC, method="glmnet")
predict(fitM$finalModel, type="coefficients")
це має сенс взагалі чи я неправильно змішую обидва словникові пакети?