Rを使用して意思決定ツリーを構築する場合、データを正規化する必要がありますか?


10

したがって、今週のデータセットには14の属性があり、各列には非常に異なる値があります。1つの列には1未満の値があり、別の列には3〜4桁の値があります。

先週、正規化について学習しましたが、値が大きく異なる場合は、データを正規化する必要があるようです。ディシジョンツリーの場合、ケースは同じですか?

これについてはよくわかりませんが、正規化は同じデータセットから得られる決定木に影響しますか?どうやらそうじゃないけど...

回答:


13

遭遇する最も一般的なタイプの決定木は、単調な変換の影響を受けません。したがって、ordeを保持している限り、決定木は同じです(明らかに、ここでの同じ木によって、私は同じ決定構造を理解します。ツリーの各ノードの各テストの同じ値ではありません)。

それが起こる理由は、通常の不純物関数がどのように機能するかです。最適なスプリットを見つけるために、各ディメンション(属性)でスプリットポイントを検索します。スプリットポイントは、基本的に、テスト値がスプリット値よりも小さいインスタンスに対応するターゲット値をグループ化するif句であり、右側は等しい値よりも大きい値です。これは、数値属性で発生します(これは、名義属性を正規化する方法がわからないため、あなたのケースだと思います)。今、あなたは基準がより少ないか、またはより大きいことに気付くかもしれません。つまり、分割(およびツリー全体)を見つけるための属性からの実際の情報は、値の順序のみです。つまり、元の順序が予約されるように属性を変換する限り、同じツリーが得られます。

すべてのモデルがこのような種類の変換の影響を受けないわけではありません。たとえば、線形回帰モデルは、属性にゼロ以外の値を掛けても同じ結果になります。異なる回帰係数が得られますが、予測値は同じになります。これは、その変換のログを取る場合には当てはまりません。したがって、たとえば線形回帰の場合、同じ結果が得られるため、正規化は役に立ちません。

ただし、リッジ回帰のようなペナルティ付き線形回帰の場合はそうではありません。ペナルティ付き線形回帰では、係数に制約が適用されます。この考え方は、係数の関数の合計に制約が適用されるというものです。これで、属性を膨らませると、係数が収縮します。つまり、最終的には、その係数のペナルティが人為的に変更されます。このような状況では、各係数が「公平に」制約されるように、属性を正​​規化します。

それが役に立てば幸い

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