【機械学習】「距離」の測り方は一つじゃない!ユークリッド、マンハッタン、マハラノビスの違いを直感解説

こんにちは。ゆうせいです。

エンジニアのみなさん、突然ですが「ここからあそこまでの距離を測ってください」と言われたら、どうやって測りますか。

きっと多くの人が、定規やメジャーを持ってきて、2つの点を結ぶ「直線」の長さを測ろうとするでしょう。日常生活ではそれが正解です。しかし、データ分析や機械学習の世界では、必ずしも「直線距離」が正しいとは限らないのです。

実は、データの種類や状況に合わせて、いろいろな「距離の測り方」を使い分ける必要があります。

今回は、基本となる「ユークリッド距離」「マンハッタン距離」、そして名前が必殺技みたいでカッコいい「マハラノビス距離」の3つについて、その違いと使い所を高校生でもわかるように解説していきます。

ユークリッド距離:空を飛ぶカラスの距離

まずは、一番馴染みのある ユークリッド距離(Euclidean Distance) から始めましょう。

これは、みなさんが中学校の数学で習った「2点間の距離」そのものです。地図の上で、出発地から目的地まで定規でピッと線を引いたときの長さですね。

どんな時に使うの?

障害物を無視して、最短ルートで移動できる場合に使います。たとえば、空を飛ぶカラスやドローンにとっては、ビルの立ち並ぶ街中でも直線移動が可能です。

この距離は、ピタゴラスの定理(三平方の定理) を使って計算します。

数式で見るとこうなります。

\sqrt{(x_1 - x_2)^2 + (y_1 - y_2)^2}

難しそうに見えますが、直角三角形の斜めの長さを求めているだけです。「定規で測った普通の距離」と覚えておけば間違いありません。

マンハッタン距離:街角を曲がるタクシーの距離

次に、マンハッタン距離(Manhattan Distance) です。ニューヨークのマンハッタンのように、道路が碁盤の目状になっている街を想像してみてください。

ここでタクシーに乗って移動する場合、建物を突き破って直線で進むことはできませんよね。必ず交差点をカクカクと曲がりながら進む必要があります。

この「南北に何ブロック、東西に何ブロック移動したか」を足し合わせた合計が、マンハッタン距離です。

計算はとてもシンプル

計算式は、引き算をして絶対値(プラスの値)にするだけなので、とても単純です。

|x_1 - x_2| + |y_1 - y_2|

どんな時に使うの?

主に、グリッド(格子)状のデータを扱う時に威力を発揮します。また、計算が単純で速いため、コンピュータへの負荷を減らしたい時や、とてつもなく次元が高い(データの項目が多い)場合にも好まれることがあります。

機械学習では、L1ノルム(ラッソ回帰など)という用語と一緒に登場することが多いので、頭の片隅に置いておいてください。

マハラノビス距離:データの「個性」を読む賢い距離

さて、最後がボスの登場です。マハラノビス距離(Mahalanobis Distance) です。

これまでの2つは、単に「場所」だけを見て距離を測っていました。しかし、マハラノビス距離は、そのデータが属している集団の 「分布(ばらつき具合)」「相関(関係性)」 を考慮して距離を測ります。

これだけだと難しいので、健康診断の例で考えてみましょう。

「体重+10kg」の意味は人によって違う?

ここにAさんとBさんがいます。2人とも、去年の健康診断より体重が 10 kg 増えてしまいました。

  • Aさん:もともと体重の変化が激しく、毎年 10 kg くらい増減している人(ばらつきが大きい)。
  • Bさん:ここ10年、体重が 1 kg も変わらなかった人(ばらつきが小さい)。

「体重が 10 kg 増えた」という事実は同じです(ユークリッド距離は同じ)。しかし、その意味合いはどうでしょうか。

Aさんにとっては「いつものこと(近い出来事)」ですが、Bさんにとっては「緊急事態(遠い出来事、異常事態)」ですよね。

このように、「みんなの普段の散らばり具合(分散)」を考慮して、「どれくらい異常なのか」を測る のがマハラノビス距離です。

どんな時に使うの?

マハラノビス距離は、異常検知(外れ値の検出) で大活躍します。

単に中心から離れているだけでなく、「普段のデータの傾向からして、こいつは明らかにおかしいぞ」というデータを見つけ出すのが得意なのです。データの相関関係(身長が高い人は体重も重い、など)も考慮して、本当の意味での「浮いているデータ」を見抜くことができます。

3つの距離の違いまとめ

それぞれの違いを表にまとめてみましょう。

距離の名前イメージキーワード主な用途
ユークリッド距離カラス(直線)最短距離、幾何学一般的な距離計算、クラスタリング
マンハッタン距離タクシー(直角)格子状、L1ノルム経路探索、スパースな学習
マハラノビス距離統計的な距離分散、相関、分布異常検知、パターン認識

まとめと今後の学習

いかがでしたか。

  • 定規で測る直線の ユークリッド距離
  • カクカク進む マンハッタン距離
  • データの空気を読む マハラノビス距離

名前は難しそうでも、それぞれの「性格」を知ると、使い分ける理由が見えてきたのではないでしょうか。

特にマハラノビス距離は、データの「相関」や「分散」という統計学の知識と深く結びついています。一見複雑ですが、これを理解すると「データ分析の解像度」が一気に上がりますよ。

今後の学習の指針として、まずは Python の SciPyNumPy というライブラリを使って、実際にこれらの距離を計算してみることをおすすめします。自分の手で数字を出してみると、「なるほど!」という実感が湧いてくるはずです。

セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。

学生時代は趣味と実益を兼ねてリゾートバイトにいそしむ。長野県白馬村に始まり、志賀高原でのスキーインストラクター、沖縄石垣島、北海道トマム。高じてオーストラリアのゴールドコーストでツアーガイドなど。現在は野菜作りにはまっている。