2

モデルのトレーニングと相互検証の後に取得した予測関数を実行しようとしています。変数「classe」を予測しています。

テスト データは、行数が少ない (観測値が 20) ことを除いて、学習データと同じ名前の予測子の数を持ちます。テスト データの予測子はすべて数値です (トレーニング データと同様)。しかし、使用したモデルに関係なく、問題が発生しているようです。

モデル:

rf <- train(train$classe ~., method="rf", data=train, 
        trControl = trainControl(method = "oob"))

私は試した:

predict(rf, testing1)

私は得た

Error in predict.randomForest(modelFit, newdata) : newdata has 0 rows 

それから私は試しました

gbm <- train(train$classe ~., method="gbm", data=train, 
         trControl = trainControl(method = "cv", number=5))

predict(gbm, testing1)

私は得た

Error in aperm.default(psum, c(2, 1, 3)) : 
'perm' is of wrong length 3 (!= 2) 

私のテスト データは次のようになります。唯一の違いは、最後の変数が「問題 ID」を示しているのに対し、トレーニング セットでは最後の変数が「classe」を示していることです。

> str(testing1)
'data.frame':   20 obs. of  86 variables:
 $ roll_belt              : num  123 1.02 0.87 125 1.35 -5.92 1.2 0.43 0.93 114 ...
 $ pitch_belt             : num  27 4.87 1.82 -41.6 3.33 1.59 4.44 4.15 6.72 22.4 ...
 $ total_accel_belt       : num  20 4 5 17 3 4 4 4 4 18 ...
 $ kurtosis_roll_belt     : num  NA NA NA NA NA NA NA NA NA NA ...
 $ kurtosis_picth_belt    : num  NA NA NA NA NA NA NA NA NA NA ...

 ... # all numeric variables 

 $ magnet_forearm_y       : num  419 791 698 783 -787 800 284 -619 652 723 ...
 $ magnet_forearm_z       : num  617 873 783 521 91 884 585 -32 469 512 ...
 $ problem_id             : num  1 2 3 4 5 6 7 8 9 10 ...

どんな助けでも大歓迎です!!

4

2 に答える 2

2

私は問題を解決しました.テストデータの列の値の一部は「NA」ですが、トレーニングデータでは空白です。両方のファイルが R に読み込まれる方法に矛盾がありました。その問題を修正した後、predict() が機能するようになりました。

于 2014-10-24T21:17:35.543 に答える
0

予測については、列名がまったく同じでなければならないことを知っています。最後の 1 つでもオフになっていると、問題が発生する可能性があります。

于 2014-10-24T18:43:26.383 に答える