数学/統計学/機械学習におけるマンハッタン距離(Taxicab geometry:タクシー幾何学、Taxicab metric、Manhattan distance)とは、2点間の距離を計測する際に、n次元の次元ごとに距離(=2点間の差)の絶対値を求めて、最後に全次元の値を合計する方法である。もっと直感的に説明すると、碁盤の目のような格子状の道を(Taxicabという名称通りに)タクシーが、例えば左下にあるx地点から右上にあるy地点に向けて、まず上に進み(=1つ目の次元)、次に右に進む(=2つ目の次元)、……という複数の動き(=差)の大きさ(=絶対値)を全部足し合わせることで、最終的な距離を計算する方法である(図1)。
それに対し、ユークリッド距離(Euclidean distance、Euclidean metric)とは、2点間の距離を計測する際に、ピタゴラスの定理の公式を適用して直線的な最短距離を求める方法である。なお、ピタゴラスの定理(=三平方の定理)とは、直角三角形をなす3辺の関係を表す、
という公式のことである。これはaとbという2次元に対する公式だが、
という3次元にするなど、多次元(n次元)に拡張してもピタゴラスの定理は成立する。よって先ほどと同様に説明すると、碁盤の目の道で例えば左下にあるx地点から右上にあるy地点に向けて、1つ目の次元、2つ目の次元、3つ目の次元、……という複数の辺(=2点間の差)をそれぞれ二乗して全部足し合わせ、最後にその平方根を取ることで(つまりピタゴラスの定理を適用することで)、最終的な距離を計算するのが、ユークリッド距離の計算方法となる(図1)。
点xから点yのマンハッタン距離を求める数式は、以下のように定義できる。
||……||という数学記号は、ベクトル空間における「長さ/距離」を表現する概念であるノルム(norm)を意味する。マンハッタン距離は、L1ノルムとも呼ばれる。ちなみにL1ノルムは、NumPyのnp.linalg.norm(<x-y点間距離の配列データ>, ord=1)関数で計算できる。
xを予測値ŷ、yを正解値yとするなら、この式は平均(1/n)していないだけで平均絶対誤差(MAE)やL1損失と同じ式であることに気付くだろう。つまり、MAE/L1損失は予測値と正解値の誤差(=距離)をマンハッタン距離の手法で計算したものといえる。
点xから点yのユークリッド距離を求める数式は、以下のように定義できる。
ノルムを意味する||……||で表現した通り、ユークリッド距離は、L2ノルムとも呼ばれる。ちなみにL2ノルムは、NumPyのnp.linalg.norm(<x-y点間距離の配列データ>, ord=2)関数で計算できる。
本稿では、距離を表現するシンプルな手法であるマンハッタン距離とユークリッド距離を紹介した。他にはマハラノビス距離/ミンコフスキー距離/ハミング距離/チェビシェフ距離などがあるが本稿では説明を割愛する。
Copyright© Digital Advantage Corp. All Rights Reserved.