9

私の特徴ベクトルには、連続(または広範囲)コンポーネントとバイナリコンポーネントの両方があります。単にユークリッド距離を使用すると、連続成分の影響がはるかに大きくなります。

対称と非対称を0と1として表し、0から100の範囲の重要性の低い比率を表す場合、対称から非対称に変更すると、比率を25変更する場合と比較して、距離への影響はわずかです。

対称性に重みを追加することはできますが(たとえば、0または100にすることで)、これを行うためのより良い方法はありますか?

4

3 に答える 3

10

たとえば、ここの最初のセクションの最後に記載されている、正規化されたユークリッド距離を使用してみることができます。

標準偏差によってすべての特徴(連続または離散)を単純にスケーリングします。max-minこれは、たとえば、別のポスターで提案されている範囲()によるスケーリングよりも堅牢です。

于 2010-11-30T16:22:25.433 に答える
1

私があなたの質問を正しく理解している場合、データセット内の各ディメンションまたは列を正規化(別名'再スケーリング)することは、オーバーウェイトディメンションを処理するための従来の手法です。

ev_scaled = (ev_raw - ev_min) / (ev_max - ev_min)

たとえば、Rでは、次の関数を記述できます。

ev_scaled = function(x) {
    (x - min(x)) / (max(x) - min(x))
}  

これは次のように機能します:

# generate some data: 
# v1, v2 are two expectation variables in the same dataset 
# but have very different 'scale':
> v1 = seq(100, 550, 50)
> v1
  [1] 100 150 200 250 300 350 400 450 500 550
> v2 = sort(sample(seq(.1, 20, .1), 10))
> v2
  [1]  0.2  3.5  5.1  5.6  8.0  8.3  9.9 11.3 15.5 19.4
> mean(v1)
  [1] 325
> mean(v2)
  [1] 8.68

# now normalize v1 & v2 using the function above:
> v1_scaled = ev_scaled(v1)
> v1_scaled
  [1] 0.000 0.111 0.222 0.333 0.444 0.556 0.667 0.778 0.889 1.000
> v2_scaled = ev_scaled(v2)
> v2_scaled
  [1] 0.000 0.172 0.255 0.281 0.406 0.422 0.505 0.578 0.797 1.000
> mean(v1_scaled)
  [1] 0.5
> mean(v2_scaled)
  [1] 0.442
> range(v1_scaled)
  [1] 0 1
> range(v2_scaled)
  [1] 0 1
于 2010-11-30T19:14:13.017 に答える
1

ユークリッドの代わりに マハラノビス距離を試すこともできます。

于 2010-12-02T21:29:00.430 に答える