MLRが大好きです!下のコードでは、4つの分類子のパフォーマンスを比較しています。私はPIMAインドの糖尿病のデータを使用して、次のコードを実行したときに、私はいくつかの奇妙なエラーを取得しています:MLR modが見つかりません
library(mlbench)
library(caret)
library(randomForest)
data(PimaIndiansDiabetes)
data2<-data
## Define the task
Class.task = makeClassifTask(id = "USUBJID", data = data2, target = "Class", positive ="B")
Class.task = makeClassifTask(data = PimaIndiansDiabetes, target = "diabetes", positive ="pos")
fv = generateFilterValuesData(Class.task, method = "mrmr")
plotFilterValues(fv)
filtered.task = filterFeatures(Class.task, fval = fv, threshold = -.2)
#filtered.task = Class.task
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
私は取得していますエラーは次のとおりです。
Error in unique.default(x, nmax = nmax) :
unique() applies only to vectors
> pred1 = predict(mod1, task = filtered.task, subset = test.set)
Error in predict(mod1, task = filtered.task, subset = test.set) :
object 'mod1' not found
> lrn2 = makeLearner("classif.ksvm", predict.type = "prob")
> mod2 = train(lrn2, filtered.task, subset = train.set)
Error in unique.default(x, nmax = nmax) :
unique() applies only to vectors
> pred2 = predict(mod2, task = filtered.task, subset = test.set)
Error in predict(mod2, task = filtered.task, subset = test.set) :
object 'mod2' not found
> lrn3 = makeLearner("classif.randomForest", predict.type = "prob")
> mod3 = train(lrn3, Class.task, subset = train.set)
Error in unique.default(x, nmax = nmax) :
unique() applies only to vectors
> pred3 = predict(mod3, task = Class.task, subset = test.set)
Error in predict(mod3, task = Class.task, subset = test.set) :
object 'mod3' not found
>
> lrn5 = makeLearner("classif.xgboost", predict.type = "prob")
> mod5 = train(lrn5, Class.task, subset = train.set)
Error in unique.default(x, nmax = nmax) :
unique() applies only to vectors
> pred5 = predict(mod5, task = Class.task, subset = test.set)
Error in predict(mod5, task = Class.task, subset = test.set) :
私は、パフォーマンスの結果を得るか...任意のアイデアを私が間違っていることについて?ありがとうございました!!!
あなたは 'PimaIndiansDiabetes'の代わりに、' data'を必要としています。 'data'は環境です。 –
私が変更データ2 < - PimaIndiansDiabetesを作るときでも、私は同じエラーが発生します..しかし、応答していただきありがとうございます.. – tom