1

を使用しrandomForestて、RF オブジェクトを取得します。
forest <- randomForest(as.formula(generic),data=train, mtry=2)

I を使用predictすると、テスト データセットの応答を予測できます。
応答は、A、B、または C のいずれかです。

prediction <- predict(forest, newdata=test, type='class')
mytable <- table(test$class_w,prediction)
sum(mytable[row(mytable) != col(mytable)]) / sum(mytable)#show error

forest オブジェクトを呼び出すと、混同行列が得られます。

     A     B    C     class.error
A   498    79   170   0.3333333
B   115    353  237   0.4992908
C   96     99   967   0.1678141

例:テスト データセット:

id |class_w| valueA | valueB |
1  |  C    |  0.254 |  0.334 |
2  |  A    |  0.654 |  0.334 |
3  |  A    |  0.554 |  0.314 |
4  |  B    |  0.454 |  0.224 |
5  |  C    |  0.354 |  0.332 |
6  |  C    |  0.264 |  0.114 |
7  |  C    |  0.264 |  0.664 |

以前のデータセットの ID と予測された応答 (RF が与えた) の 2 つの列を持つ新しいデータセットを作成できるかどうかを知りたいです。例えば

row id of test dataset  |  predicted response
1                       |  A  #failed
2                       |  B  #failed
3                       |  B  #failed
4                       |  B  #TRUE!

よろしくお願いします。

4

2 に答える 2

3

新しいデータ フレームを作成しようとしているだけかもしれません。

data.frame(id = test$id,response = prediction)

これは、行名ではなく、id実際には の列であると想定しています。test行名の場合は、次のようにします。

data.frame(id = rownames(id),response = prediction)
于 2013-04-22T21:40:20.243 に答える