距離と距離空間を詳しく


機械学習やデータ分析のときに、データ間の距離を算出することが多くあります。マハラノビス距離、ユークリッド距離、マンハッタン距離など学習を進めていくと〇〇距離といったキーワードがよくでてきますが、同じデータでもデータ間の距離の測り方が違います。

距離の例

(例1)1次元数直線上に点$5$と点$-1$があるとき、その2点間の距離は$5-(-1)=6$になります。一般的には点$b$と点$a$の距離$d$は、$d(a,b)=|b-a|$です。

(例2)2次元平面座標上で原点$(0,0)$から点$(3,4)$までの距離は、$\sqrt{3^2+4^2}=5$となります。これは三平方の定理により、距離を求めました。一般的には座標$a=(a_1,a_2)$と座標$b=(b_1,b_2)$の距離$d$は、$d(a,b)=\sqrt{(a_1-b_1)^2+(a_2-b_2)^2}$です。

(例3)3次元空間座標$a=(a_1,a_2,a_3)$と座標$b=(b_1,b_2,b_3)$間の距離$d$は、三平方の定理を2回使い、$d(a,b)=\sqrt{(a_1-b_1)^2+(a_2-b_2)^2+(a_3-b_3)^2}$と求められます。

距離の定義を考える1

(例1)、(例2)、(例3)の測り方は全てユークリッド距離といいます。ユークリッド距離は特に意識せず使っているはずです。3次元までは実際に図を書くことで距離を求めることができました。しかし、4次元以上の$n$次元空間だったらどうでしょうか。図が書けないのでそこから距離を求めることができません。そこで逆に、$n$次元座標での2点間$a=(a_1,・・・,a_n),b=(b_1,・・・,b_2)$の距離を、下記のように定義します。
$$d(a,b)=\sqrt{(a_1-b_1)^2+(a_2-b_2)^2+・・・+(a_n-b_n)^2}$$
こうすれば、1次元~3次元のときの距離は上記と一致して、$n$次元空間へ一般化することができます。この距離$d$を$n$次元ユークリッド距離といいます。

距離の定義を考える2

ユークリッド距離を定義しましたが、データ間の距離は全てユークリッド距離で測らないといけない決まりはなく、その都度距離をアレンジしてもいいのです。ただし、距離というからには距離として機能するものでないとだめです。例えば、距離なのにマイナスになったりするとおかしいわけです。

ここで一般的な距離の定義を紹介します。

定義(距離・距離空間)
データの集合を$X$として、データ間の関数$d:X*X→R$に対して下記が成立するときに、$d$を$X$の距離といい、$(X,d)$の組を距離空間という。

  $a,b,c$を$X$内の任意のデータとする。
  1.$d(a,b)\geqq0$
  2.$d(a,b)=0⇔a=b$
  3.$d(a,b)=d(b,a)$
  4.$d(a,b)\leq(a,c)+d(c,b)$

意味:1.距離はマイナスになってはいけない 2.距離が0になるのは同じ点のときだけ 3.$a$から$b$を測るのと$b$から$a$を測るのは同じになるべき、距離空間とは2点間の距離にだけ興味があるので、測り方までは考えないと言う意味 4.$a$から$b$の距離は、まっすぐ行くより$c$を経由した方が遠くなるという意味、もしこの条件がないと第3のデータを経由した方が近いということになる。

どんな距離が考えられるか

(例1)$n$次元ユークリッド距離
これは上記の距離の定義を満たします。定義の1・2・3は明らかに満たして、(4)についても証明は省略しますが、コーシー・シュワルツの不等式から成立します。これにより、ユークリッド距離は距離になる、といえます。

(例2)マンハッタン距離
これは$d(a,b)=|a_1-b_1|+・・・+|a_n-b_n|$で定義されます。これも上記の距離の定義1・2・3は明らかに満たします。(4)もコーシー・シュワルツの不等式から成立します。よって、マンハッタン距離も距離の定義を満たします。