Значение альфа и бета параметров в функции makeFeatSelControlSequential (библиотека MLR в R) - PullRequest
0 голосов
/ 15 ноября 2018

Для детерминированного прямого или обратного поиска я использую пороговые значения для значений p, связанных с коэффициентами, связанными с отдельными функциями. В документации makeFeatSelControlSequential в R / MLR https://www.rdocumentation.org/packages/mlr/versions/2.13/topics/FeatSelControl, альфа и бета параметры описаны следующим образом:

  • альфа (числовой (1)): параметр выбора последовательного объекта. Минимальное требуемое значение разницы улучшения для шага вперед / добавления. По умолчанию 0,01.
  • бета (числовой (1)): параметр выбора последовательного объекта. Минимальное требуемое значение разницы улучшения для шага назад / удаления. Отрицательные значения означают, что вы допускаете небольшое уменьшение для удаления объекта. По умолчанию -0,001.

Однако не ясно, что здесь означает «разница в улучшении». В приведенном ниже примере я дал 0 в качестве порога для обратного выбора (бета-параметр). Если этот параметр относится к пороговому значению 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)

1 Ответ

0 голосов
/ 15 ноября 2018

Параметры определяют, какая разница в производительности (для любого показателя производительности, которую вы выберете) приемлема для перехода к шагу по прямому или обратному поиску.mlr не вычисляет p-значения, и p-значения в этом процессе не используются.

Поскольку параметры контролируют только то, что происходит в шаге, они также не контролируют напрямую конечный результат.Что происходит внутри, так это то, что, например, для прямого поиска, mlr вычисляет характеристики всех наборов функций, которые расширяют текущий набор с помощью одной функции, и выбирает лучший, если он обеспечивает, по крайней мере, улучшение, указанное в альфа или бета-версии.Эта процедура повторяется до тех пор, пока не будут присутствовать все функции (поиск в прямом направлении) или все функции (поиск в обратном направлении) или если не будет достигнуто минимальное улучшение, заданное параметрами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...