データの距離尺度 -ユークリッド距離の紹介-

2点間のデータの距離を測る尺度として、最も著名と思われるものにユークリッド距離があります。

以下にユークリッド距離の計算方法を紹介し、ユークリッド距離を計算するMATLABのコードを紹介します。

ユークリッド距離の計算方法

ユークリッド距離は多次元空間における距離尺度の一つです。$N$次元ベクトル$\mathbf{x}=\{x_i\}$と$\mathbf{y}=\{y_i\}$のユークリッド距離$D_e$は以下の式で表されます。

$$D_e(\mathbf{x},\mathbf{y})=\sqrt{\sum_{i=1}^{N}(x_i-y_i)^2}$$

式だけだと想像がつきにくいかもしれませんが、ユークリッド距離は中学で習うピタゴラスの定理に基づいて計算される2点の直感的な距離です。

例えば2次元の2点$A(1,2)$と$B(4,6)$のユークリッド距離は、$\sqrt{(4-1)^2+(6-2)^2}=\sqrt{25}=5$です。

図で表記すれば、以下の水色の線の長さがユークリッド距離です。

ユークリッド距離は3次元以上でも計算ができて、例えば3次元の2点$C(1,2,3)$と$D(4,6,8)$のユークリッド距離は、$\sqrt{(4-1)^2+(6-2)^2+(8-3)^2}=\sqrt{50}=5\sqrt{2}$です。

このようにユークリッド距離は、距離計算を行う対象の2サンプルのみの情報から計算されます。

ユークリッド距離を計算するソースコード(MATLAB)

例えば以下のMATLABのコードで、上記の点Aと点B及び点Cと点Dのユークリッド距離を計算することができます。

また、上で掲載した点Aと点Bに関する図を表示することができます。

A = [1,2]; B = [4,6];
C = [1,2,3]; D = [4,6,8];
Dist1 = pdist2(A,B,'euclidean');
Dist2 = pdist2(C,D,'euclidean');
plot([A(1) B(1)],[A(2) B(2)],'-o','MarkerSize',10, 'MarkerFaceColor','red')
xlim([0 10])
ylim([0 10])

上記のDist1とDist2の値を参照すると、点Aと点Bの間のユークリッド距離が5、点Cと点Dの間のユークリッド距離が$ 7.0711(=5\sqrt{2})$となることが確認できます。

スポンサーリンク

シェアする

フォローする