だから私は何が起こっているのかについてかなり良い考えを持っていますが、エラーをどのように処理するのか疑問に思っています. それらはすべてGLMに関連しているようで、エラーは私が考えていない同じことが原因ではありません。
これが私のコードです:
myTuneGrid <- expand.grid(n.trees=c(100,200), interaction.depth=c(9,10,11,12), shrinkage=0.1, n.minobsinnode=10)
fitControl <- trainControl(method = "cv", number =5,verboseIter = FALSE,returnResamp = "all")
myModel <- train(as.factor(target) ~ .,data = trainingDataC.GB, method = "gbm",trControl = fitControl,tuneGrid = myTuneGrid)
myPrediction <- predict(myModel,newdata=testDataC)
これが私のエラーです:
model.frame.default(Terms, newdata, na.action = na.action, xlev = object$xlevels) のエラー: 因子 47V には新しいレベル E、H、J があります
したがって、因子変数にはトレーニング セットに多数のレベルがありますが、エラーから、すべてのレベルがトレーニング セットに含まれているとは限りません。テスト セットに移動すると、トレーニング セットにない新しいレベルがあるため、このエラーが発生しますか?
これは教師あり学習の問題です。テスト セットを変更してデータをトレーニング セットに移動することはできません。したがって、サンプリングの問題ではありません。
とにかく、これが私のプログラムをクラッシュさせないように、誰かが設定や簡単な修正を知っていますか?