3

私は大規模なデータセットを扱っているので、余分な変数を削除し、ブランチごとに最適な m 変数を調整したいと考えています。R には、rfcv と tuneRF という 2 つのメソッドがあり、これら 2 つのタスクを支援します。それらを組み合わせてパラメータを最適化しようとしています。

rfcv は、おおよそ次のように機能します。

create random forest and extract each variable's importance;
while (nvar > 1) {
    remove the k (or k%) least important variables;
    run random forest with remaining variables, reporting cverror and predictions
}

現在、rfcv を次のように動作するように再コーディングしました。

create random forest and extract each variable's importance;
while (nvar > 1) {
    remove the k (or k%) least important variables;
    tune for the best m for reduced variable set;
    run random forest with remaining variables, reporting cverror and predictions;
}

もちろん、これにより実行時間が桁違いに増加します。私の質問は、これがどれほど必要か (おもちゃのデータセットを使用してアイデアを得るのが困難でした)、そして他の方法がはるかに短い時間で大まかに機能すると期待できるかどうかです。

4

1 に答える 1

11

いつものように、答えはそれがデータに依存するということです。一方では、無関係な機能がない場合は、機能の削除を完全にスキップできます。ランダムフォレストの実装におけるツリー構築プロセスは、すでに予測機能を選択しようとします。これにより、無関係な機能に対する保護が提供されます。

Leo Breimanは、入力ドメインからの実際の機能がほんの一握りしかなかったいくつかの医療予測タスクに、1000の無関係な機能を導入した講演を行いました。変数の重要度に単一のフィルターを使用して特徴の90%を削除したとき、ランダムフォレストの次の反復では、ツリー内の予測子として無関係な特徴を選択しませんでした。

于 2012-08-13T23:49:18.580 に答える