リニアクラシファイアのすべての機能を同じ範囲に設定する必要があります(ニューラルネットの場合も同様です)。あなたがスケールする必要がある理由は、前進する前にあなたに非常に明確でなければなりません。この件に関するAndrew Ng's lectureを見て、何が起こっているのかを直感的に説明してください。
これが解消したら、各機能を個別に正規化してください。あなたが3行を持つテーブルがある場合たとえば、:
row | F1 | F2
1 | 1 | 1000
2 | 2 | 2000
3 | 3 | 3000
をあなたは(1)その最大値(3)と、その分の値を取ることによって、F1をスケールします。あなたは最大と最小それぞれ3000と1000を持つF2のために同じを行うつもりです。
これは、MinMaxスケーリングと呼ばれます。また、平均と分散に基づいてスケーリングを行うことも、コンピューティングリソースの点で通常「予算」があり、それを最大化したいと考えることによって、別のアプローチに完全に従うこともできます。その場合、Histogram Equalizationのようなものが良い選択かもしれません。
最終的なメモ:デシジョンツリーをスタンドアロンクラシファイア、デシジョンフォレスト、または追加のアンサンブルで使用している場合、正規化を邪魔しないでください。変更されません。
出典
2016-09-25 20:15:31
Tex
私はトレーニングデータの機能を正規化することを理解していますが、予測を開始するときに使用した入力データはどうですか?たとえば、入力データの配列が{F1:12、F2:19、F3:8}の場合、トレーニングデータや配列の他の値からminX/maxX値で各値を正規化する必要がありますか? –
もちろん。あなたが訓練した分類器は関数f(V)です。ここでVはあなたの特徴ベクトルです。 Vが他の関数g(V)によって正規化されていれば、まったく同じ関数を予測データに適用する必要があります。たとえば、minmaxの正規化を使用する場合は、予測データにまったく同じ正規化を適用できるように、最小値と最大値をどこかに格納する必要があります。注:予測データの最小値または最小値より小さいフィーチャがある場合は、単純にMINまたはMAXに設定します。 – Tex