ランダムフォレストの誤分類のコストを制御する方法は?


21

RパッケージrandomForestで誤分類のコストを制御することは可能ですか?

私自身の研究では、偽陰性(例えば、人が病気にかかっている可能性があるというミス)は、偽陽性よりもはるかに費用がかかります。パッケージrpartを使用すると、損失マトリックスを指定して誤分類に異なる重みを付けることにより、誤分類コストを制御できます。同様の何かが存在しrandomForestますか?たとえば、classwtGini基準を制御するオプションを使用する必要がありますか?

回答:


8

そうではありませんが、手動でrpartモデルのバギングを行うRFクローンを作成することによって。

いくつかのオプションは、RFの出力が実際には鮮明な決定ではなく、連続スコアであるという事実、つまり、あるクラスに投票したツリーの一部であるという事実に由来しています。predict(rf_model,type="prob")たとえば、ROC曲線を使用して抽出し、0.5よりも優れたしきい値を明らかにするために使用できます(後でcutoffパラメーターを使用してRFトレーニングに組み込むことができます)。

classwt アプローチも有効に見えますが、実際にはうまく機能しません-属性に関係なく、同じクラスのバランスのとれた予測と些細なキャストとの間の移行は、使用するにはシャープすぎる傾向があります。


MBQ。どうもありがとう。(i)ROC曲線:この例では、ROC曲線は必要ありません。これは、コストの重み付けがどうあるべきかについての独自の事前知識があるためです。(ii)classwt:はい、実際には、他のユーザーと一致して、結果が予想どおりではないことがわかりました。(iii)cutoffcutoffこの場合の利用方法については明確ではありませんが、さらなるアドバイスを歓迎します。
user5944

3

コストを含める方法はいくつかあります。
(1)各バギングされたツリーのオーバー/アンダーサンプリング(層化サンプリング)は、コストを導入する最も一般的な方法です。データセットを意図的に不均衡にします。
(2)重み付け。決して機能しません。これはドキュメントで強調されていると思います。Giniの分割や最終投票など、すべての段階で重み付けする必要があると主張する人もいます。うまくいくとすれば、それはトリッキーな実装になるでしょう。
(3)Wekaのメタコスト関数。
(4)ランダムフォレストを確率的分類子として扱い、しきい値を変更する。私はこのオプションが最も好きではありません。私の知識不足が原因の可能性がありますが、アルゴリズムが確率を出力できるとしても、確率モデルであるかのように扱うことは意味がありません。

しかし、追加のアプローチがあると確信しています。


3

あなたが予測しようとしている変数は50%でない場合にすることをお勧めしますclass 1のために、50% class 2(ほとんどの場合のように)、あなたは調整cutoff本物を表しためのパラメータOOBの要約です。

例えば、

randomForest(data=my_data, formula, ntree = 501, cutoff=c(.96,.04))

この場合、1の値を有する確率は、class 1ある.96値を有するながらclass 2です.04

それ以外の場合、ランダムフォレストはのしきい値を使用します0.5


1

パラメーターを介しcostMatrixrandomForest明示的に組み込むことができparmsます。

library(randomForest)
costMatrix <- matrix(c(0,10,1,0), nrow=2)
mod_rf <- randomForest(outcome ~ ., data = train, ntree = 1000, parms = list(loss=costMatrix))

0

パッケージのsampsize機能を使用して、コストに敏感に組み込むことができrandomForestます。

model1=randomForest(DependentVariable~., data=my_data, sampsize=c(100,20))

(100,20)所有しているデータと、使用している仮定/ビジネスルールに基づいて数値を変更します。

分類エラーのコストを反映する混同マトリックスを取得するには、試行錯誤のアプローチが少し必要です。リチャード・バークの犯罪犯罪予測:機械学習のアプローチをご覧ください。82。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.