【问题标题】:Choosing optimal alpha in elastic net logistic regression在弹性网络逻辑回归中选择最优 alpha
【发布时间】:2021-05-05 15:02:49
【问题描述】:

我正在使用 R 中的 glmnet 包对数据集执行弹性网络逻辑回归。 我正在通过交叉验证调整 Alpha。请参阅下面的 R 代码:

for(j in 1:length(a)){ 
  
  for (i in 1:nAlphaIterations){ 
    set.seed(i) 
    cv <- cv.glmnet(X_dataset, Y_dataset, nfold = 10, family = "binomial", type.measure = "deviance", standardize = TRUE, paralle = F, alpha = a[j]) 
    currAlpha <-   data.frame( 
      cvm = cv$cvm[cv$lambda == cv$lambda.1se], 
      lambda.1se = cv$lambda.1se, 
      alpha = a[j], 
      seed = i) 
    
    allAlpha <- rbind(allAlpha, currAlpha) # all current alphas combined
  } 
  print(j) 
}

但是,我不确定应该使用哪种类型的度量来确定 alpha。偏差?还是 AUC 更好?

【问题讨论】:

  • 这种方法的问题是每次 CV 运行都会有不同的数据拆分。评价会很吵。绩效衡量的类型主要取决于任务。但是我不认为越轨是一种选择。

标签: r cross-validation glmnet


【解决方案1】:

假设您的目标是实现高分类准确度,您可以在 cv.glmnet() 函数中使用 type.measure = "class",该函数可优化分类准确度。要解决评论中的随机数据拆分问题,您可以按照 (https://glmnet.stanford.edu/articles/glmnet.html#introduction-1) 中的建议,通过为每个观察创建折叠索引向量来修复您的 foldid

用户可以通过 foldid 参数显式控制分配给每个观察的折叠。这很有用,例如,在使用交叉验证为 $\alpha$

选择一个值时

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-02-03
    • 2021-11-15
    • 2021-06-10
    • 2018-02-27
    • 2018-08-18
    • 2016-10-05
    • 2017-10-09
    • 2018-03-05
    相关资源
    最近更新 更多