Мені цікаво, як правильно підійти до навчання та тестування моделі LASSO, використовуючи glmnet в R?
- Зокрема, мені цікаво, як це зробити, якщо відсутність зовнішнього набору даних тесту потребує використання я перехресної перевірки (або іншого подібного підходу) для тестування моєї моделі LASSO.
Дозвольте мені розбити свій сценарій:
У мене є лише один набір даних для інформування та навчання моєї моделі glmnet. Як результат, мені доведеться використовувати перехресну перевірку, щоб розділити свої дані, щоб також створити спосіб перевірити свою модель.
Я вже використовую cv.glmnet
, що відповідно до деталей пакета :
Чи здійснює k-кратну перехресну перевірку для glmnet, виробляє графік та повертає значення для лямбда.
Чи виконується перехресна перевірка
cv.glmnet
просто для того, щоб вибрати найкращу лямбда, чи це також є більш загальною процедурою перехресної перевірки?- Іншими словами, чи все-таки мені потрібно зробити ще один крос перевірки, щоб "перевірити" свою модель?
Я працюю з припущенням, що "так я це роблю".
Як це справа, як я підходжу до крос-верифікації вашої cv.glmnet
моделі?
Чи потрібно це робити вручну, чи, можливо, ця
caret
функція корисна для моделей glmnet?Чи використовую я дві концентричні "петлі" перехресної перевірки? ... Чи використовую "внутрішню петлю" CV через,
cv.glmnet
щоб визначити найкраще значення лямбда в кожній з k складок "зовнішньої петлі" k-кратної перехресної перевірки ?Якщо я роблю перехресну перевірку своєї вже перехресної валідаційної
cv.glmnet
моделі, як я ізолюю "найкращу" модель (від "найкращого" лямбда-значення) від кожноїcv.glmnet
моделі в межах кожної складки мого "зовнішнього циклу" перехресної перевірки?- Примітка. Я визначаю "найкращу" модель як модель, пов'язану з лямбда, яка виробляє MSE в межах 1 SE мінімуму ... це
$lambda.1se
вcv.glmnet
моделі.
- Примітка. Я визначаю "найкращу" модель як модель, пов'язану з лямбда, яка виробляє MSE в межах 1 SE мінімуму ... це
Контекст:
Я намагаюся передбачити вік дерева ("вік") на основі діаметра дерева ("D"), D ^ 2 та видів ("фактор (SPEC)"). [отримане рівняння: Age ~ D + factor(SPEC) + D^2
]. У мене є ~ 50 К рядків даних, але дані є поздовжніми (відстежують особин через час) і складаються з ~ 65 видів.