4

私は自分のデータから作成しましたrandom forest

fit=randomForest(churn~., data=data_churn[3:17], ntree=1,
                 importance=TRUE, proximity=TRUE)

私は簡単に見ることができますconfusion matrix

conf <- fit$confusion
> conf
     No Yes class.error
No  945  80  0.07804878
Yes  84 101  0.45405405

ここで、ランダム フォレストの精度を知る必要があります。私は周りを検索し、キャレットライブラリには混同行列を取得して精度を返すメソッドがあることに気付きましたconfusionMatrix(他の多くの値とともに)。ただし、メソッドには という別のパラメーターが必要"reference"です。私の質問は、ランダム フォレストの精度を取得する方法の参照をどのように提供できますか? そして...ランダムフォレストの精度を得る正しい方法ですか?

4

1 に答える 1

6

randomForest(..., do.trace=T)クラスと ntree の両方で、トレーニング中に OOB エラーを確認するために使用します。

(FYI を選択ntree=1したので、フォレストではなく、rpart デシジョン ツリーを 1 つだけ取得します。この種の RF を使用する目的と、機能とサンプルの両方のサブセットをランダムに選択する目的を無効にします。おそらく、ntree値を変更する必要があります。 )

また、トレーニング後、既にわかっているように、混同行列の右端の列からクラスごとのエラーを取得できます。

> fit$confusion[, 'class.error']
class.error
No         Yes
0.07804878 0.45405405

options('digits'=3)(また、これらの過度の小数点以下の桁数を表示しないように設定することもできます)

クラス エラーのリスト ( accuracies = 1 - errors ) を 1 つの全体的な精度の数値に変換するのは簡単です。平均、クラス加重平均、調和平均(誤差ではなく精度)などを使用できます。それは、アプリケーションと誤分類に対する相対的なペナルティによって異なります。あなたの例は単純です.2クラスだけです.

(または例えば、評価者間合意のより複雑な尺度があります)

于 2015-06-08T22:09:44.253 に答える