Знайомство з glmnet

Machine Learning з пакетом caret в R

Zach Mayer

Data Scientist at DataRobot and co-author of caret

Знайомство з glmnet

  • Розширення моделей glm із вбудованим відбором змінних
  • Допомагає при колінеарності та малих вибірках
  • Дві основні форми
    • Регресія lasso: штрафує за кількість ненульових коефіцієнтів
    • Регресія ridge: штрафує за абсолютну величину коефіцієнтів
  • Шукає ощадливу (тобто просту) модель
  • Добре поєднується з моделями random forest
Machine Learning з пакетом caret в R

Налаштування моделей glmnet

  • Поєднання регресій lasso та ridge
  • Може навчати суміш цих двох моделей
  • alpha [0, 1]: від чистого ridge до чистого lasso
  • lambda (0, infinity): розмір штрафу
Machine Learning з пакетом caret в R

Приклад: "don't overfit"

# Load data
overfit <- read.csv("overfit.csv")

# Make a custom trainControl
myControl <- trainControl(
  method = "cv", 
  number = 10,
  summaryFunction = twoClassSummary,
  classProbs = TRUE, # <- Super important!
  verboseIter = TRUE
)
Machine Learning з пакетом caret в R

Спробуйте типові значення

# Fit a model
set.seed(42)
model <- train(
  y ~ ., 
  overfit, 
  method = "glmnet", 
  trControl = myControl
)

# Plot results
plot(model)
  • 3 значення alpha
  • 3 значення lambda
Machine Learning з пакетом caret в R

Побудуйте графік результатів

Лінійний графік крос-валідаційних кривих ROC за часткою змішування для трьох параметрів регуляризації. Пік у 0,55 при середньому значенні параметра регуляризації.

Machine Learning з пакетом caret в R

Давайте потренуємось!

Machine Learning з пакетом caret в R

Preparing Video For Download...