私はbstTreeメソッドを使用してモデルをトレーニングし、混乱マトリクスをプリントアウトしようとしています。 adverse_effectsは私のクラス属性です。bstTree予測の混同行列、エラー: 'データには参照と重複するいくつかのレベルが含まれている必要があります。'
set.seed(1234)
splitIndex <- createDataPartition(attended_num_new_bstTree$adverse_effects, p = .80, list = FALSE, times = 1)
trainSplit <- attended_num_new_bstTree[ splitIndex,]
testSplit <- attended_num_new_bstTree[-splitIndex,]
ctrl <- trainControl(method = "cv", number = 5)
model_bstTree <- train(adverse_effects ~ ., data = trainSplit, method = "bstTree", trControl = ctrl)
predictors <- names(trainSplit)[names(trainSplit) != 'adverse_effects']
pred_bstTree <- predict(model_bstTree$finalModel, testSplit[,predictors])
plot.roc(auc_bstTree)
conf_bstTree= confusionMatrix(pred_bstTree,testSplit$adverse_effects)
しかし、私は 'confusionMatrix.defaultでエラーが発生しました(pred_bstTree、testSplit $ adverse_effects): データ参照を重複し、いくつかのレベルが含まれている必要があります。' というエラーが表示されます
max(pred_bstTree)
[1] 1.03385
min(pred_bstTree)
[1] 1.011738
> unique(trainSplit$adverse_effects)
[1] 0 1
Levels: 0 1
どうすればこの問題を解決できますか?
> head(trainSplit)
type New_missed Therapytypename New_Diesease gender adverse_effects change_in_exposure other_reasons other_medication
5 2 1 14 13 2 0 0 0 0
7 2 0 14 13 2 0 0 0 0
8 2 0 14 13 2 0 0 0 0
9 2 0 14 13 2 1 0 0 0
11 2 1 14 13 2 0 0 0 0
12 2 0 14 13 2 0 0 0 0
uvb_puva_type missed_prev_dose skintypeA skintypeB Age DoseB DoseA
5 5 1 1 1 22 3.000 0
7 5 0 1 1 22 4.320 0
8 5 0 1 1 22 4.752 0
9 5 0 1 1 22 5.000 0
11 5 1 1 1 22 5.000 0
12 5 0 1 1 22 5.000 0
回帰を予測していないように見えます。あなたのデータの要素としてadverse_effectsが設定されているかどうかを確認してください。 – phiver
はい、それは0と1を含む因子phiverです。数値に変換した後に予測しても、同じエラーが発生します – SaikiHanee
データのサンプルを追加してみてください。問題がどこにあるかは分かりません。 – phiver