介绍 glmnet

在 R 中使用 caret 的机器学习

Zach Mayer

Data Scientist at DataRobot and co-author of caret

介绍 glmnet

  • 扩展 glm,内置特征选择
  • 适用于多重共线性和小样本
  • 两种主要形式
    • Lasso 回归:惩罚非零系数的数量
    • Ridge 回归:惩罚系数的绝对大小
  • 目标是得到精简(即简单)的模型
  • 与随机森林搭配良好
在 R 中使用 caret 的机器学习

调参 glmnet 模型

  • 结合 lasso 与 ridge 的回归
  • 可拟合两者的混合
  • alpha [0, 1]:从纯 ridge 到纯 lasso
  • lambda (0, infinity):惩罚强度
在 R 中使用 caret 的机器学习

示例:不要过拟合

# 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
)
在 R 中使用 caret 的机器学习

先试试默认值

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

# Plot results
plot(model)
  • 3 个 alpha
  • 3 个 lambda
在 R 中使用 caret 的机器学习

绘制结果

按混合比例绘制的交叉验证 ROC 曲线(3 个正则化参数)。当正则化参数取中间值时,在 0.55 处达到峰值。

在 R 中使用 caret 的机器学习

Passons à la pratique !

在 R 中使用 caret 的机器学习

Preparing Video For Download...