2017-01-31 19 views
-1

は、私は以下のような値のカップルを持っていると仮定します。列yが出力され正規化の軸は、SVMの予測に違いがありますか?

x1  x2   x3   y 
1  0.5  0.9   1 
0.9  1   0.5   1 
0.6  0.7  0.6   0 
0.4  0.8  0.7   0 

:値を作る

x1  x2   x3   y 
1  40   0.9   1 
0.9  80   0.5   1 
0.6  50   0.6   0 
0.4  30   0.7   0 

は次のようになり。行(軸= 1)に沿ってではなく、列x2(軸= 0)に沿って正規化すると、違いがありますか?

予測はさまざまですか?

誰でもその背後にある数学を説明できますか?

+2

2番目の値は何を表しますか? (以下のように「値を次のようにする」)x1、x2、x3などはフィーチャを示します。特徴は、さまざまな次元(メートル、cm、秒などの単位)とスケールにすることができます。それで、行に沿って正規化すれば意味がありません。彼らは何らかの意味を持たせるために列方向に正規化されるべきです。 –

+0

@ JibinはいVivek Kumarは、行間の正規化は意味をなさないと言っているのは正しいです。列(またはフィーチャ)間の正規化は、すべてのフィーチャが同じ範囲になるように行われます。これは、SVM内に存在する距離計算が適切であり、特徴の重み推定が適切に行われるように行われる。行間の正規化はあいまいな結果をもたらすでしょう。 – prashanth

答えて

1

予測はさまざまです。さらに、より良い予測のためにデータをスケールすることをお勧めします。 SVMは、特徴ベクトル間の距離関数(ユークリッド距離など)を使用します。あるフィーチャが異なる値の範囲を持つ場合、それは望ましくない高い効果を持つことがあります。

次の例を考えてみましょう:A =(0、80,0)、B =(1,40,0.9)、C =(0.1,50,0)の3つのインスタンスがあります。すべての機能が同等に扱われることを期待するならば、AとCの間の距離はBとCより小さくなりますが、距離関数はBとCの間の距離が小さくなります。

documentation

サポートベクターマシンアルゴリズムはスケール不変ではないため、データを拡大するには を強くお勧めします。たとえば、入力ベクトルXの各 属性を[0,1]または[-1、+ 1]にスケーリングするか、 を平均0と分散1に標準化します。同じスケーリングは、 に適用する必要があります。意味のある結果を得るためにテストベクトルを使用します。スケーリングと正規化の詳細については、 前処理データを参照してください。

関連する問題