新人エンジニアのための「距離」の考え方完全ガイド:ユークリッド距離、マンハッタン距離、マハラノビス距離とは?
こんにちは。ゆうせいです。
今回は、新人エンジニアの皆さんにぜひ知っておいてほしい「距離の考え方」についてお話しします。
機械学習やデータ分析、画像処理の分野では、あるデータと別のデータの「近さ」を測る場面がよく出てきます。この「近さ」のことを数学的には距離(distance)と呼びます。
でも、ちょっと待ってください。「距離って1つじゃないの?」と思いませんでしたか?
実は、距離にはいろんな種類があります。たとえば、人間が歩く道とカラスが空を飛ぶ道では、同じ場所に行くのにもかかる距離が違うように、データの距離も使い方によって使い分ける必要があります。
それでは順番に、代表的な距離の種類とその特徴についてわかりやすく見ていきましょう!
ユークリッド距離(Euclidean Distance)
ユークリッド距離って何?
ユークリッド距離は、最もなじみのある「直線距離」のことです。
2点間を「定規で測ったときの距離」と考えるとイメージしやすいです。
数式で表すと?
2点 A(x₁, y₁) と B(x₂, y₂) のユークリッド距離は以下のようになります:
- 数式:
√((x₂ - x₁)² + (y₂ - y₁)²) - 日本語で読むと:
「xの差の2乗 と yの差の2乗 を足してから平方根を取る」
どんなときに使う?
- 空間的な距離をそのまま測りたいとき
- 正規化(スケール調整)されたデータに対して有効
メリットとデメリット
メリット | デメリット |
---|---|
直感的でわかりやすい | 特徴量のスケールに敏感 |
幾何的に扱いやすい | 外れ値に影響を受けやすい |
マンハッタン距離(Manhattan Distance)
マンハッタン距離とは?
マンハッタン距離は、「縦・横方向だけで移動した距離」です。名前の由来はニューヨークのマンハッタン島の道路が碁盤の目状になっていることから来ています。日本でいえば、京都距離か札幌距離といったところでしょうか?
数式で表すと?
2点 A(x₁, y₁) と B(x₂, y₂) のマンハッタン距離は:
- 数式:
|x₂ - x₁| + |y₂ - y₁| - 日本語で読むと:
「xの差の絶対値 と yの差の絶対値 を足す」
どんなときに使う?
- 動きが縦横に限定される問題(都市移動、迷路など)
- 外れ値の影響を軽減したい場合
メリットとデメリット
メリット | デメリット |
---|---|
外れ値に比較的強い | 移動の方向性が限られる前提が必要 |
実装が簡単 | 高次元になると直感的でなくなる |
マハラノビス距離(Mahalanobis Distance)
マハラノビス距離とは?
マハラノビス距離は、特徴量間の相関(関係)を考慮した距離です。
簡単に言えば、「ただの距離」ではなく「そのデータがどれだけ“普通から外れているか”」を測るための指標です。
数式で表すと?
2点 x と μ(平均ベクトル)のマハラノビス距離:
- 数式:
√((x - μ)ᵀ Σ⁻¹ (x - μ)) - 日本語で読むと:
「xと平均μの差に、共分散行列Σの逆行列をかけて、内積をとって平方根を取る」
※ 共分散行列(Σ)とは、それぞれの特徴量の分布の広がりや、特徴量同士の関係性をまとめたものです。
どんなときに使う?
- 外れ値検出
- クラスタリングで変数間の相関を考慮したいとき
- 特徴量のスケールや関係性が複雑なとき
メリットとデメリット
メリット | デメリット |
---|---|
相関関係を考慮できる | 計算に共分散行列の逆行列が必要(計算コスト高い) |
スケール調整不要 | データの正規性が必要な場合あり |
その他の距離の種類
コサイン類似度(Cosine Similarity)
角度ベースの距離で、「どれだけ同じ方向を向いているか」を測ります。特に自然言語処理やレコメンドシステムで使われます。
コサイン類似度は、2つのベクトルの「向きの近さ」を測る指標です。ベクトルのなす角度に注目し、角度が小さいほど似ていると判断します。式は「ベクトルの内積 ÷(それぞれの長さの積)」で表され、結果は−1から1の間の値になります。特に文章や単語の意味の類似度を測る自然言語処理の分野でよく使われます。スケールの影響を受けにくいため、ベクトルの大きさよりも「方向」に着目したいときに有効です。
チェビシェフ距離(Chebyshev Distance)
最大の軸方向の差だけで距離を測る方法。将棋の王様が動ける範囲をイメージするとわかりやすいです。
チェビシェフ距離とは、2点間の座標ごとの差のうち、最大のものを距離とする方法です。数式では「max(|x₁ - x₂|, |y₁ - y₂|)」のように、各軸の差の絶対値の最大値を取ります。すべての方向に同じコストで移動できるような場面に適しています。格子状の移動やゲームAIなどで使われることがあり、ユークリッド距離やマンハッタン距離よりも単純で処理も速いのが特徴です。
距離の比較表
距離の種類 | 特徴 | 使用例 | スケールの影響 | 計算コスト |
---|---|---|---|---|
ユークリッド距離 | 直線距離 | 幾何的問題、KNN | 大きい | 低 |
マンハッタン距離 | 縦横移動 | 街路問題 | 大きい | 低 |
マハラノビス距離 | 相関考慮 | 外れ値検出 | 小さい | 高 |
コサイン類似度 | 方向比較 | NLP、推薦 | 小さい | 中 |
最後に:どの距離を選べばいいの?
どれを使えばいいのか迷ったときは、まずは次のように考えてみましょう。
- データのスケールや相関が重要? → マハラノビス距離
- 単純でわかりやすい方法がいい? → ユークリッド距離
- 方向だけ見たい? → コサイン類似度
- ノイズが多くて外れ値が気になる? → マンハッタン距離
今後の学習の指針
距離の理解は、機械学習アルゴリズムを深く理解する土台になります。
次は以下のテーマにも挑戦してみてください:
- K近傍法(KNN)における距離の選び方
- PCA(主成分分析)とマハラノビス距離の関係
- 正規化(Zスコア標準化、Min-Maxスケーリング)の重要性
- 高次元データにおける「次元の呪い」と距離の信頼性
わからないことがあれば、いつでも質問してくださいね!
セイ・コンサルティング・グループの新人エンジニア研修のメニューへのリンク
投稿者プロフィール

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