R 参数调谐输出NA

R 参数调谐输出NA,r,mlr,R,Mlr,我是新的参数调整与mlr包。我最近在一个二进制分类问题上尝试了xgboost算法。我无法获得经过训练的准确度,只有NA。在谷歌回合之后,我无法调试我的代码。你能给我一些建议吗 以下是使用mtcars数据库中的数据进行复制的示例: library(mlr) library(parallelMap) mtcars set.seed(1) train.index=sample(nrow(mtcars),nrow(mtcars)*0.7) train=mt

我是新的参数调整与mlr包。我最近在一个二进制分类问题上尝试了xgboost算法。我无法获得经过训练的准确度,只有NA。在谷歌回合之后,我无法调试我的代码。你能给我一些建议吗

以下是使用mtcars数据库中的数据进行复制的示例:

    library(mlr)
    library(parallelMap)
    mtcars
    set.seed(1)
    train.index=sample(nrow(mtcars),nrow(mtcars)*0.7)
    train=mtcars[train.index,]
    test=mtcars[-train.index,]
    list(dim(train),dim(test))

    # set the tuning
    tune.dat=train[,c('mpg','cyl','disp','wt','vs','am')]
    traintask=makeClassifTask(data=tune.dat,target='am')
    learner=makeLearner('classif.xgboost',predict.type='response',nrounds=300,nthread=2)
    prange=makeParamSet(
    makeNumericParam('eta',lower=0.01,upper=0.3),
    makeNumericParam('max_depth',lower=2,upper=10),
    makeNumericParam('subsample',lower=0.4,upper=0.8),
    makeNumericParam('colsample_bytree',lower=0.4,upper=0.8)
    )
    ctrl=makeTuneControlRandom(maxit=50)
    rdesc=makeResampleDesc('CV',iters=4)
    parallelStartMulticore(2)

    # tune
    mytune=tuneParams(learner=learner,task=traintask,par.set=prange,control=ctrl,resampling=rdesc)
    mytune$y

结果应该是一个数字而不是NA

我发现您的代码有两个问题:

1) “am”字段希望成为一个因素

tune.dat[, 'am'] <- as.factor(tune.dat[, 'am'])
通过这些替换,输出是

mmce.test.mean 
     0.225 

非常感谢您的帮助,@grldsndrs。只是一个跟进,这是mmce.test.mean准确度还是错误?由于没有指定性能度量,默认情况下使用错误率(mmce)。因此,如果您发现答案正确,请不要忘记将其标记为正确
mmce.test.mean 
     0.225