2017-11-06 7 views
1

RのrandomForestパッケージを使用して不均衡なデータをモデル化しています。結果は、(2249(88%)、318(12%))の相対頻度を有する結果(no、yes)を有するバイナリ変数である。randomForestSRCサンプリング方式

不均衡のために、RFはOOBエラー率0%でyes、OOBエラー率100%でyesと予測しました。私は、次のコードを使用して、可能な2249から無作為に抽出された318の結果と318の結果を強制的に使用して、RFのサンプリング設計を変更しました。 OOBのエラー率は、「いいえ」の場合は44%、「はい」の場合は12%になりました。

誰もこのサンプリングデザインを繰り返す方法を知っていますか?randomForestSRC?

私は

rfsrc.1 <- rfsrc(binary.outcome ~ ., data = data, 
       bootstrap = "by.user", samptype = "swor", 
       samp = c(318,318), replace = TRUE, importance = "permute", 
       proximity = TRUE, mtry = 8, ntree = 2000) 

が、私はエラーメッセージが表示されますCRANのPDFの仕様からそれをワークアウトトラブルを抱えています "の適用(SAMP、2、合計):(x)は正の長さを持っている必要があり薄暗い"

私が望むものを得るためにsampとbootstrapを操作する方法を考えることができません。

は、

ドン

答えて

1

をいただき、ありがとうございます私たちのドキュメントは、おそらく明確である可能性があります。 rfsrc()呼び出しでは、case.wtオプションを使用する必要があります。ブートストラップ、samptype、sampはデフォルト値のままにしておきます。 case.wtは次元nのベクトルでなければなりません。ここで、nは処理されたデータセット内のケースの数です。あなたの状況ではn = 2567のデータがないと仮定します。少数派クラスのすべてのケースは1/318の重みを持ち、大半のクラスのケースは1/2249の重みを持つ必要があります。ベクタは内部的に正規化され、すべてのブートストラップは各クラスの同量を持ちます(これが意図の場合)。

私たちは少数派2クラスの問題に関連するg平均と呼ばれる新しいパフォーマンス尺度に取り組んでいることに注意してください。それはまた

https://github.com/kogalur/randomForestSRC

上に構築今後のベータ版でリリースされるノードで、そのクラスの割合がより大きい場合、我々は、勝つために少数のクラスを可能にするオプションを閾値処理を実装します現在の勝利を決定するデフォルトの50%のしきい値ではなく、データセット内の全体的な割合です。状況に応じて、この機能が利用可能になったときに通知させていただきます。

+0

ありがとうございました。私の質問に答えます。また、特定のサブグループが存在する他の状況にも一般化されます。 – user2888990

関連する問題