web-dev-qa-db-ja.com

randomForest(Rパッケージ)のデータを正規化(またはスケーリング)する必要がありますか?

回帰タスクを行っています-randomForest(Rパッケージ)のデータを正規化(またはスケーリング)する必要がありますか?また、ターゲット値もスケーリングする必要がありますか?そして、もし-キャレットパッケージからスケール機能を使用したいが、データを取り戻す方法を見つけられませんでした(スケール解除、非正規化)。正規化/非正規化に役立つ他の関数(パッケージ内)について知りませんか?ありがとう、ミラノ

53
gutompf

いいえ、ランダムフォレストではスケーリングは不要です。

  • RFの性質により、ロジスティック回帰および線形回帰で使用されるアルゴリズムや、ニューラルネットワークを時々トリップさせる収束および数値精度の問題はそれほど重要ではありません。これにより、NNの場合のように変数を共通のスケールに変換する必要がありません。

  • 各予測変数と応答の間の関係を測定する回帰係数の類似物は得られません。このため、このような係数を解釈する方法を考慮する必要もありません。これは、変数の測定スケールによって影響を受けるものです。

66
Hong Ooi

特定の機能に優先順位が与えられないように、データを正規化するためにスケーリングが行われます。スケーリングの役割は、距離ベースでユークリッド距離を必要とするアルゴリズムで最も重要です。

ランダムフォレストはツリーベースのモデルであるため、必要ありません機能スケーリングです。

このアルゴリズムは、正規化を適用した場合でもパーティション分割が必要です>結果も同じになります。

4
shaurya uppal

ヘルプページまたはVignetteには、randomForestの回帰変数にスケーリングが必要であることを示唆する提案はありません。 このStats Exchangeの例 はスケーリングも使用しません。

コメントのコピー:scale関数はpkg:caretに属していません。これは「ベース」Rパッケージの一部です。パッケージにunscale関数があります grt および DMwR 変換を逆にするか、単にscale属性を乗算してからcenter属性を追加することができます値。

「正規化」を行う必要がある理由についての概念には、批判的な検討が必要な場合があります。非正規性のテストは、回帰が行われた後にのみ必要であり、適合度の方法論に正規性の仮定がない場合はまったく必要ない場合があります。だから:なぜあなたは尋ねていますか? SOおよびStats.Exchangeで検索すると便利な場合があります: citation#1 ; citation#2 ; citation#

boxcox関数は、分布がどのようなものであるかについての予備知識がなく、実際に変換を行う必要がある場合によく使用される変換です。変換の適用には多くの落とし穴があります。そのため、質問をする必要があるという事実は、さらなる協議や自習が必要になるかもしれないという懸念を生じさせます。

2
42-

データセットに相互作用を追加しようとする場合、つまり、新しい変数が他の変数の関数である場合(通常は単純な乗算)、その新しい変数が何を表しているのかを感じない(解釈できない)場合は、この変数を使用して計算する必要がありますスケーリングされた変数。

1
Qbik

次の例ではどうなるでしょうか? 20の予測機能があり、そのうち18が[0; 10]の範囲にあり、残りの2つが[0; 1,000,000]の範囲にあると想像してください(実際の例から取られます)。質問1:ランダムフォレストが割り当てる機能の重要性。質問2:2つの大規模なフィーチャをスケーリングした後、フィーチャの重要性はどうなりますか?

スケーリングは重要です。ランダムフォレストは、他のアルゴリズムよりもスケーリングの影響を受けにくく、「大まかに」スケーリングされた機能を使用できます。

1

ランダムフォレストはinformation gain / gini coefficient本質的に、他の多くの機械学習モデル(k-meansクラスタリング、PCAなど)とは異なり、スケーリングの影響を受けません。ただし、他の回答で示唆されているように、「ほぼ間違いなく」収束を固定する可能性があります

0
Vaibhav