首页 > 解决方案 > 函数 makeFeatSelControlSequential 中 alpha 和 beta 参数的含义(R 中的 MLR 库)

问题描述

对于确定性前向或后向搜索,我习惯于为与单个特征相关的系数相关的 p 值提供阈值。在 R/MLR https://www.rdocumentation.org/packages/mlr/versions/2.13/topics/FeatSelControl的 makeFeatSelControlSequential 文档中,alpha 和 beta 参数描述如下:

然而,不清楚这里的“改进差异”是什么意思。在下面的示例中,我将 0 作为向后选择(beta 参数)的阈值。如果此参数与 p 值的阈值相关,我希望得到没有特征的模型,但事实并非如此,因为我得到的 AUC 为 0.9886302 而不是 0.5。

# 1. Find a synthetic dataset for supervised learning (two classes)
###################################################################

library(mlbench)
data(BreastCancer)

# generate 1000 rows, 21 quantitative candidate predictors and 1 target variable 
p<-mlbench.waveform(1000) 

# convert list into dataframe
dataset<-as.data.frame(p)

# drop thrid class to get 2 classes
dataset2  = subset(dataset, classes != 3)
dataset2  <- droplevels(dataset2  ) 


# 2. Perform cross validation with embedded feature selection using logistic regression
##########################################################################################

library(BBmisc)
library(mlr)

set.seed(123, "L'Ecuyer")
set.seed(21)

# Choice of data 
mCT <- makeClassifTask(data =dataset2, target = "classes")

# Choice of algorithm 
mL <- makeLearner("classif.logreg", predict.type = "prob")

# Choice of cross-validations for folds 

outer = makeResampleDesc("CV", iters = 10,stratify = TRUE)

# Choice of feature selection method

ctrl = makeFeatSelControlSequential(method = "sbs", maxit = NA,beta = 0)

# Choice of sampling between training and test within the fold

inner = makeResampleDesc("Holdout",stratify = TRUE)

lrn = makeFeatSelWrapper(mL, resampling = inner, control = ctrl)
r = resample(lrn, mCT, outer, extract = getFeatSelResult,measures = list(mlr::auc,mlr::acc,mlr::brier),models=TRUE)

标签: rcross-validationfeature-selectionmlr

解决方案


这些参数控制着执行向前或向后搜索的步骤时可接受的性能差异(对于您选择的任何性能度量)。mlr 不计算任何 p 值,并且在此过程中不使用 p 值。

由于参数仅控制步骤中发生的情况,因此它们也不直接控制最终结果。幕后发生的事情是,例如对于前向搜索,mlr 计算所有特征集的性能,这些特征集用单个特征扩展当前特征集,并选择最好的一个,只要它至少提供 alpha 或 beta 中指定的改进。重复此过程,直到出现所有特征(前向搜索)或没有特征(后向搜索),或者如果无法实现参数指定的最小改进。


推荐阅读