RでRFモデルを作成しましたが、テストセットの結果を正しく予測できました。私は、私が試してみて、モデルで使用するいくつかの新しいデータを生成したい正しく新しいデータのランダムなフォレスト予測子がトレーニングデータと一致しないr
> str(testing)
'data.frame': 4489 obs. of 9 variables:
$ pf : Factor w/ 1755 levels
$ p.E : Factor w/ 24 levels
$ p.EF : Factor w/ 30 levels
$ p.B : Factor w/ 9 levels
$ p.BC : Factor w/ 26 levels
$ p.L : num 110 122 201 60 9 ...
$ p.N : Factor w/ 9 levels
$ p : num 580
$ pt : Factor w/ 30 levels
変数PFを測定していますので、私はしようとする、テスト・セットの最初の行と同一であったいくつかの新しいデータを、作られましたそして、PFを予測:
> df=testing[1,]
> df=droplevels(df)
> str(df)
'data.frame': 1 obs. of 9 variables:
$ pf : Factor w/ 1 level
$ p.E : Factor w/ 1 level
$ p.EF : Factor w/ 1 level
$ p.B : Factor w/ 1 level
$ p.BC : Factor w/ 1 level
$ p.L : num 110
$ p.N : Factor w/ 1 level
$ p : num 580
$ pt : Factor w/ 1 level
と、次のエラーを受け取りました:
> predict(model,df,type='class')
Error in predict.randomForest(model, df, type = "class") :
Type of predictors in new data do not match that of the training data.
は、誰かがこれが発生した理由を説明したり、私はこの問題を解決できる方法をお勧めてもらえますか?
新しいデータに基づいて結果を予測しようとするモデルを作成するという目的を打ち破る、新しいDFのレベルを落としてはいけませんか?あるいは私は盲目的に何かをミューティングしていますか?
を働きました。 – zacdav
レベルを削除しないでください。これは「目的を打ち負かす」ことはありません。新しいデータは、各要因をトレーニングセットと同じレベルで表現する必要があります。 – dww