【機械学習】「距離」の測り方は一つじゃない!ユークリッド、マンハッタン、マハラノビスの違いを直感解説
こんにちは。ゆうせいです。
エンジニアのみなさん、突然ですが「ここからあそこまでの距離を測ってください」と言われたら、どうやって測りますか。
きっと多くの人が、定規やメジャーを持ってきて、2つの点を結ぶ「直線」の長さを測ろうとするでしょう。日常生活ではそれが正解です。しかし、データ分析や機械学習の世界では、必ずしも「直線距離」が正しいとは限らないのです。
実は、データの種類や状況に合わせて、いろいろな「距離の測り方」を使い分ける必要があります。
今回は、基本となる「ユークリッド距離」「マンハッタン距離」、そして名前が必殺技みたいでカッコいい「マハラノビス距離」の3つについて、その違いと使い所を高校生でもわかるように解説していきます。
ユークリッド距離:空を飛ぶカラスの距離
まずは、一番馴染みのある ユークリッド距離(Euclidean Distance) から始めましょう。
これは、みなさんが中学校の数学で習った「2点間の距離」そのものです。地図の上で、出発地から目的地まで定規でピッと線を引いたときの長さですね。
どんな時に使うの?
障害物を無視して、最短ルートで移動できる場合に使います。たとえば、空を飛ぶカラスやドローンにとっては、ビルの立ち並ぶ街中でも直線移動が可能です。
この距離は、ピタゴラスの定理(三平方の定理) を使って計算します。
数式で見るとこうなります。
難しそうに見えますが、直角三角形の斜めの長さを求めているだけです。「定規で測った普通の距離」と覚えておけば間違いありません。
マンハッタン距離:街角を曲がるタクシーの距離
次に、マンハッタン距離(Manhattan Distance) です。ニューヨークのマンハッタンのように、道路が碁盤の目状になっている街を想像してみてください。
ここでタクシーに乗って移動する場合、建物を突き破って直線で進むことはできませんよね。必ず交差点をカクカクと曲がりながら進む必要があります。
この「南北に何ブロック、東西に何ブロック移動したか」を足し合わせた合計が、マンハッタン距離です。
計算はとてもシンプル
計算式は、引き算をして絶対値(プラスの値)にするだけなので、とても単純です。
どんな時に使うの?
主に、グリッド(格子)状のデータを扱う時に威力を発揮します。また、計算が単純で速いため、コンピュータへの負荷を減らしたい時や、とてつもなく次元が高い(データの項目が多い)場合にも好まれることがあります。
機械学習では、L1ノルム(ラッソ回帰など)という用語と一緒に登場することが多いので、頭の片隅に置いておいてください。
マハラノビス距離:データの「個性」を読む賢い距離
さて、最後がボスの登場です。マハラノビス距離(Mahalanobis Distance) です。
これまでの2つは、単に「場所」だけを見て距離を測っていました。しかし、マハラノビス距離は、そのデータが属している集団の 「分布(ばらつき具合)」 や 「相関(関係性)」 を考慮して距離を測ります。
これだけだと難しいので、健康診断の例で考えてみましょう。
「体重+10kg」の意味は人によって違う?
ここにAさんとBさんがいます。2人とも、去年の健康診断より体重が kg 増えてしまいました。
- Aさん:もともと体重の変化が激しく、毎年
kg くらい増減している人(ばらつきが大きい)。
- Bさん:ここ10年、体重が
kg も変わらなかった人(ばらつきが小さい)。
「体重が kg 増えた」という事実は同じです(ユークリッド距離は同じ)。しかし、その意味合いはどうでしょうか。
Aさんにとっては「いつものこと(近い出来事)」ですが、Bさんにとっては「緊急事態(遠い出来事、異常事態)」ですよね。
このように、「みんなの普段の散らばり具合(分散)」を考慮して、「どれくらい異常なのか」を測る のがマハラノビス距離です。
どんな時に使うの?
マハラノビス距離は、異常検知(外れ値の検出) で大活躍します。
単に中心から離れているだけでなく、「普段のデータの傾向からして、こいつは明らかにおかしいぞ」というデータを見つけ出すのが得意なのです。データの相関関係(身長が高い人は体重も重い、など)も考慮して、本当の意味での「浮いているデータ」を見抜くことができます。
3つの距離の違いまとめ
それぞれの違いを表にまとめてみましょう。
| 距離の名前 | イメージ | キーワード | 主な用途 |
| ユークリッド距離 | カラス(直線) | 最短距離、幾何学 | 一般的な距離計算、クラスタリング |
| マンハッタン距離 | タクシー(直角) | 格子状、L1ノルム | 経路探索、スパースな学習 |
| マハラノビス距離 | 統計的な距離 | 分散、相関、分布 | 異常検知、パターン認識 |
まとめと今後の学習
いかがでしたか。
- 定規で測る直線の ユークリッド距離
- カクカク進む マンハッタン距離
- データの空気を読む マハラノビス距離
名前は難しそうでも、それぞれの「性格」を知ると、使い分ける理由が見えてきたのではないでしょうか。
特にマハラノビス距離は、データの「相関」や「分散」という統計学の知識と深く結びついています。一見複雑ですが、これを理解すると「データ分析の解像度」が一気に上がりますよ。
今後の学習の指針として、まずは Python の SciPy や NumPy というライブラリを使って、実際にこれらの距離を計算してみることをおすすめします。自分の手で数字を出してみると、「なるほど!」という実感が湧いてくるはずです。
セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク
投稿者プロフィール
- 代表取締役
-
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。
学生時代は趣味と実益を兼ねてリゾートバイトにいそしむ。長野県白馬村に始まり、志賀高原でのスキーインストラクター、沖縄石垣島、北海道トマム。高じてオーストラリアのゴールドコーストでツアーガイドなど。現在は野菜作りにはまっている。