0

R で randomForest を使用しようとすると、エラーが発生します。

basic3prox  <- randomForest(activity ~.,data=train,proximity=TRUE,xtest=valid)

train はトレーニング データのデータフレームで、valid はテスト データのデータフレームです。次のエラーが発生します。

Error in randomForest.default(m, y, ...) : 
  x and xtest must have same number of columns

しかし、同じ数の列があります。サブセット()を使用して同じ元のデータセットからそれらを取得し、dim()を実行すると取得します

薄暗い(列車)

[1] 3237 563

薄暗い(有効)

[1] 2630 563

したがって、ここで何が間違っているのかを理解するのに途方に暮れています。

4

2 に答える 2

4

いいえ、そうではありません。train562 個の予測列と 1 個の決定列があるため、 562 個の列が必要です (また、対応する決定を引数validに渡す必要があります)。 したがって、呼び出しは次のようになります。ytest

randomForest(activity~.,data=train,proximity=TRUE,
  xtest=valid[,names(valid)!='activity'],ytest=valid[,'activity'])

ただし、これはより複雑な式では失敗する汚いハックであるため、使用しないでください (Joran がコメントで指摘したように、作成者でさえ禁止しようとしました)。正確で簡単かつ迅速な方法は、次のように、数式の代わりに予測子と決定に個別のオブジェクトを使用することです。

randomForest(trainPredictors,trainActivity,proximity=TRUE,
  xtest=testPredictors,ytest=testActivity)
于 2013-03-10T11:20:44.943 に答える