1

我在数据集上运行 4 个分类器并比较它们的性能。当我运行以下代码时,我收到一些奇怪的错误:

library(mlbench)
library(mlr)

maxx_IL10   = c(3199,   2997,   2690,   2482,   2891,   2310,   3180,   3050,   3115,   3052,   3071,   3068,   2611,   2723,   2903,   2969)
auc_INTERLEUKIN_12P70   = c(14809,  1384.5, 760,    10922.5,    3010,   14564,  26496,  1229,   2509,   1474.5, 20697.5,    1854.5, 17352,  1457,   227,    31507.5)
maxx_TNFA   = c(3066,   2658,   2697,   3175,   2904,   2260,   2714,   3056,   3155,   3030,   3125,   2456,   3017,   2860,   1704,   3167)
fold_IL4    = c(16.02685,   0,  4.616438,   53.44898,   0,  0,  68.85714,   5.833333,   25.9,   0,  21.87629,   20.57895,   20.18792,   4.394737,   7.723404,   56.6383)
maxx_CD19   = c(3045.5, 3045.5, 3045.5, 3045.5, 2667,   1865,   3126,   2432,   3244,   3218,   2415,   3077,   3223,   2549,   3016,   3244)
auc_IL4 = c(18315.5,    0,  1348,   31112,  0,  0,  19182.5,    525,    3201.5, 0,  12976,  782,    19195.5,    835,    544.5,  26658)
Class   = c("B",    "A",    "A",    "A",    "A",    "A",    "B",    "A",    "B",    "B",    "B",    "A",    "B",    "A",    "A",    "B")

df = data.frame(maxx_IL10,  auc_INTERLEUKIN_12P70,  maxx_TNFA,  fold_IL4,   maxx_CD19,  auc_IL4,    Class)

Class.task = makeClassifTask( data = df, target = "Class", positive ="B")

fv = generateFilterValuesData(Class.task, method = "mrmr")

plotFilterValues(fv)

filtered.task = filterFeatures(Class.task, fval = fv, threshold = -.2)

n = getTaskSize(filtered.task)
train.set = sample(n, size = round(2/3 * n))
test.set = setdiff(seq_len(n), train.set)

lrn1 = makeLearner("classif.lda", predict.type = "prob")
mod1 = train(lrn1, filtered.task, subset = train.set)
pred1 = predict(mod1, task = filtered.task, subset = test.set)


lrn2 = makeLearner("classif.ksvm", predict.type = "prob")
mod2 = train(lrn2, filtered.task, subset = train.set)
pred2 = predict(mod2, task = filtered.task, subset = test.set)

lrn3 = makeLearner("classif.randomForest", predict.type = "prob")
mod3 = train(lrn3, Class.task, subset = train.set)
pred3 = predict(mod3, task = Class.task, subset = test.set)

lrn5 = makeLearner("classif.xgboost", predict.type = "prob")
mod5 = train(lrn5, Class.task, subset = train.set)
pred5 = predict(mod5, task = Class.task, subset = test.set)

### Tune wrapper for ksvm
rdesc.inner = makeResampleDesc("Holdout")
ms = list(auc, mmce)
ps = makeParamSet(
  makeDiscreteParam("C", 2^(-1:1))
)
ctrl = makeTuneControlGrid()
lrn2 = makeTuneWrapper(lrn2, rdesc.inner,ms, ps,  ctrl, show.info = FALSE)

lrns = list(lrn1, lrn2,lrn3,lrn5)
rdesc.outer = makeResampleDesc("CV", iters = 5)

bmr = benchmark(lrns, tasks = filtered.task, resampling = rdesc.outer, measures = ms, show.info = FALSE)
bmr

我收到的错误是:

lrn2 = makeTuneWrapper(lrn2, rdesc.inner,ms, ps, ctrl, show.info = FALSE) makeTuneWrapper 中的错误(lrn2, rdesc.inner, ms, ps, ctrl, show.info = FALSE) : 关于“措施”的断言failed:可能只包含以下类型:Measure。lrns = list(lrn1, lrn2,lrn3,lrn5) rdesc.outer = makeResampleDesc("CV", iters = 5)

bmr = benchmark(lrns, tasks = filtered.task, resampling = rdesc.outer, measure = ms, show.info = FALSE) Error in FUN(X[[i]], ...) : List measure has element of wrong在位置 1 键入函数。应该是:测量 bmr 错误:找不到对象“bmr”

关于我做错了什么的任何想法?谢谢!!

4

0 回答 0