Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mlr程序包r:功能选择顺序正向搜索错误:必须至少有1列_R_Feature Selection_Mlr - Fatal编程技术网

mlr程序包r:功能选择顺序正向搜索错误:必须至少有1列

mlr程序包r:功能选择顺序正向搜索错误:必须至少有1列,r,feature-selection,mlr,R,Feature Selection,Mlr,我试图使用R中的mlr包,使用顺序向前搜索,将特征选择应用于一个打包的学习者 d <- data.frame(a = rnorm(1000, mean = 1), b = rnorm(1000, mean = 2), c = rnorm(1000, mean = 3), target = as.factor(rbinom(1000, 1, prob = 0.5))) t

我试图使用R中的mlr包,使用顺序向前搜索,将特征选择应用于一个打包的学习者

d <- data.frame(a = rnorm(1000, mean = 1),
                    b = rnorm(1000, mean = 2),
                    c = rnorm(1000, mean = 3),
                    target = as.factor(rbinom(1000, 1, prob = 0.5)))

t <- makeClassifTask(data = d,
                     target = 'target',
                     positive = '1')

logreg.lrn <- makeLearner('classif.logreg')
logreg_bagged.lrn <- makeBaggingWrapper(logreg.lrn)

cntrl.sfs <- makeFeatSelControlSequential(method = "sfs",
                                          alpha = 0.01,
                                          max.features = 10,
                                          maxit = 3)

logreg_bagged_featsel.lrn <- makeFeatSelWrapper(logreg_bagged.lrn,
                                                resampling = makeResampleDesc('CV',
                                                                              iters = 3),
                                                measures = mmce,
                                                control = cntrl.sfs)

mlr::train(logreg_bagged_featsel.lrn, classif.task)
如果改用顺序反向搜索,则不会出现错误:

cntrl.sbs <- makeFeatSelControlSequential(method = "sbs",
                                          alpha = 0.01,
                                          max.features = 10,
                                          maxit = 3)

logreg_bagged_featsel.lrn <- makeFeatSelWrapper(logreg_bagged.lrn,
                                                resampling = makeResampleDesc('CV',
                                                                              iters = 3),
                                                measures = mmce,
                                                control = cntrl.sbs)

mlr::train(logreg_bagged_featsel.lrn, classif.task)

[FeatSel] Started selecting features for learner 'classif.logreg.bagged'
With control class: FeatSelControlSequential
Imputation value: 1
[FeatSel-x] 1: 111 (3 bits)
[FeatSel-y] 1: mmce.test.mean=0.447; time: 0.0 min
[FeatSel-x] 2: 011 (2 bits)
[FeatSel-y] 2: mmce.test.mean=0.509; time: 0.0 min
[FeatSel-x] 2: 101 (2 bits)
[FeatSel-y] 2: mmce.test.mean=0.448; time: 0.0 min
[FeatSel-x] 2: 110 (2 bits)
[FeatSel-y] 2: mmce.test.mean=0.456; time: 0.0 min
[FeatSel-x] 3: 001 (1 bits)
[FeatSel-y] 3: mmce.test.mean=0.51; time: 0.0 min
[FeatSel-x] 3: 100 (1 bits)
[FeatSel-y] 3: mmce.test.mean=0.468; time: 0.0 min
[FeatSel] Result: ac (2 bits)
Model for learner.id=classif.logreg.bagged.featsel; learner.class=FeatSelWrapper
Trained on: task.id = classif.df; obs = 1000; features = 3
Hyperparameters: model=FALSE

cntrl.sbs顺序前向搜索从空模型开始,即没有特征。装袋包装器不支持此操作。我为这件事开了个玩笑

cntrl.sbs <- makeFeatSelControlSequential(method = "sbs",
                                          alpha = 0.01,
                                          max.features = 10,
                                          maxit = 3)

logreg_bagged_featsel.lrn <- makeFeatSelWrapper(logreg_bagged.lrn,
                                                resampling = makeResampleDesc('CV',
                                                                              iters = 3),
                                                measures = mmce,
                                                control = cntrl.sbs)

mlr::train(logreg_bagged_featsel.lrn, classif.task)

[FeatSel] Started selecting features for learner 'classif.logreg.bagged'
With control class: FeatSelControlSequential
Imputation value: 1
[FeatSel-x] 1: 111 (3 bits)
[FeatSel-y] 1: mmce.test.mean=0.447; time: 0.0 min
[FeatSel-x] 2: 011 (2 bits)
[FeatSel-y] 2: mmce.test.mean=0.509; time: 0.0 min
[FeatSel-x] 2: 101 (2 bits)
[FeatSel-y] 2: mmce.test.mean=0.448; time: 0.0 min
[FeatSel-x] 2: 110 (2 bits)
[FeatSel-y] 2: mmce.test.mean=0.456; time: 0.0 min
[FeatSel-x] 3: 001 (1 bits)
[FeatSel-y] 3: mmce.test.mean=0.51; time: 0.0 min
[FeatSel-x] 3: 100 (1 bits)
[FeatSel-y] 3: mmce.test.mean=0.468; time: 0.0 min
[FeatSel] Result: ac (2 bits)
Model for learner.id=classif.logreg.bagged.featsel; learner.class=FeatSelWrapper
Trained on: task.id = classif.df; obs = 1000; features = 3
Hyperparameters: model=FALSE