ユークリッド距離とマンハッタン距離について

機械学習などに出てくるマンハッタン距離とユークリッド距離について書いていこうと思います。

距離 = dと置きます。dとするのは距離の英語がdistanceだからです。

ユークリッド距離

    \[d = \sqrt{(b_1-a_1)^2+(b_2-a_2)^2}\]

マンハッタン処理

    \[d = |(b_1-a_1)|+|(b_2-a_2)|\]

のように定義されています。

青いところがユークリッド距離で、三平方の定理によって導出されます。

斜辺をSとおくと、

S^2=(b_1-a_1)^2+(b_2-a_2)^2 となり、S^2 のルートをとってやると

S= \sqrt{(b_1-a_1)^2+(b_2-a_2)^2}となり最初の式になります。

三平方の定理などは数学が得意な人は当たり前のように出てきて上のような式変形は逆に鬱陶しいかもしれませんが、本ブログではあくまでも数学がそこまで得意ではない私のような人に向けて、数式の行間を埋めるようにして解説していく予定です。

ユークリッド距離とマンハッタン距離について」への2件のフィードバック

  1. 定義はわかったんですけどどういう風に使い分けるんですか?マンハッタン距離を使う場面に出会ったことがないもので...

    1. 平行にしか移動できないという制約条件がある場合はマンハッタン距離を使うことが適切だと思います。
      また現在のライブラリはおそらくユークリッド空間で作られて計算していると思いますが、L1空間(マンハッタン距離)で定義した方がいい結果が出ることがあるかもしれません。
      実際はいい結果が出る方を選択すればいいのではないかと思います。あえてL1空間で計算してみるとか面白いかもしれないですね。

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください