マンハッタン距離とは?意味・計算方法・活用例をわかりやすく解説

AIの初心者
「マンハッタン距離」って何ですか? AIや機械学習の記事で見かけますが、普通の距離とは違うのでしょうか?

AI専門家
マンハッタン距離は、碁盤の目のような道を縦方向と横方向だけに進むと考えて測る距離だよ。直線ではなく、横に何マス、縦に何マス進むかを足し合わせるんだ。

AIの初心者
なぜわざわざそんな測り方をするのですか? 直線距離だけでは足りない場面があるのでしょうか?

AI専門家
都市の道路や表形式のデータのように、各方向の差を別々に扱いたい場面では便利なんだ。機械学習でも、データ同士の近さを測る方法の一つとして使われるよ。
マンハッタン距離とは。
マンハッタン距離は、数学、統計、AI・機械学習で使われる距離の測り方です。この記事では、意味、計算方法、ユークリッド距離との違い、機械学習での活用例、使うときの注意点を順番に整理します。

マンハッタン距離とは何か
マンハッタン距離とは、各方向の移動量の絶対値を足し合わせて求める距離です。名前は、ニューヨークのマンハッタンのように、道路が碁盤の目状に並んだ街を移動するイメージに由来します。
たとえば、目的地まで東に3区画、北に4区画進む必要があるなら、マンハッタン距離は 3 + 4 = 7 区画です。空を飛ぶように直線で進むのではなく、道路に沿って曲がりながら進む距離を考えるのが特徴です。
この考え方は、地図上の移動だけに限りません。データ分析では、1つのデータを複数の特徴量で表すことがよくあります。年齢、購入回数、利用金額のような項目ごとの差をそれぞれ見て、その差を足し合わせれば、データ同士の違いを距離として扱えます。
| 観点 | 説明 |
|---|---|
| 基本の考え方 | 横方向、縦方向など、各方向の差を足し合わせる |
| 日常のイメージ | 碁盤の目状の道路を、建物を避けながら進む距離 |
| AIでの意味 | 特徴量ごとの差を合計し、データ同士の近さを測る方法 |

マンハッタン距離の計算方法
2次元の点 \((x_1, y_1)\) と \((x_2, y_2)\) のマンハッタン距離は、次の式で表せます。
\(d = |x_1 – x_2| + |y_1 – y_2|\)ここで使う縦棒 \(|\cdot|\) は絶対値を表します。絶対値は、符号を取り除いた大きさのことです。たとえば \(|-3|\) も \(|3|\) も 3 です。距離では「右に3」でも「左に3」でも移動量は3なので、絶対値を使います。
点(1, 2)と点(4, 6)で計算してみましょう。横方向の差は \(|1 – 4| = 3\)、縦方向の差は \(|2 – 6| = 4\) です。これを足すと \(3 + 4 = 7\) となり、マンハッタン距離は7です。
多次元のデータでも、各次元の差の絶対値をすべて足すだけです。3次元なら \(|x_1-x_2| + |y_1-y_2| + |z_1-z_2|\)、100個の特徴量を持つデータなら100個分の差を足します。計算手順が単純なため、大量のデータを扱う処理でも使いやすい距離です。
| 手順 | 内容 |
|---|---|
| 1 | 比較する2点、または2つのデータを決める |
| 2 | 各座標・各特徴量の差を計算する |
| 3 | 差を絶対値にする |
| 4 | すべての絶対値を足し合わせる |

ユークリッド距離との違い
マンハッタン距離とよく比較されるのが、ユークリッド距離です。ユークリッド距離は、2点を直線で結んだときの長さです。平面上ではピタゴラスの定理を使い、次のように計算します。
\(d = \sqrt{(x_1 – x_2)^2 + (y_1 – y_2)^2}\)同じ点(1, 2)と点(4, 6)で見ると、ユークリッド距離は \(\sqrt{3^2 + 4^2} = 5\) です。一方、マンハッタン距離は7でした。直線で進めるなら5、縦横にしか進めないなら7、という違いです。
どちらが常に正しいというより、問題設定に合う距離を選ぶことが重要です。空間上の物理的な距離を測るならユークリッド距離が自然です。道路、盤面、表形式データのように、各方向・各項目の差を積み上げて考えたい場合はマンハッタン距離が合うことがあります。
| 比較項目 | マンハッタン距離 | ユークリッド距離 |
|---|---|---|
| 距離の考え方 | 縦横など各方向の差を足す | 2点を結ぶ直線の長さを見る |
| 計算の特徴 | 絶対値の和 | 二乗和の平方根 |
| 向いている例 | 格子状の移動、特徴量ごとの差の合計 | 物理的な直線距離、幾何的な近さ |
| 注意点 | 特徴量の尺度差に影響される | 大きな差や外れ値の影響が強く出やすい |
関連する距離として、各方向の差のうち最大値だけを見るチェビシェフ距離もあります。たとえば将棋やチェスの一部の駒のように、斜め方向を含めて一手で進める範囲を考えるときに使われます。距離の種類は、対象の動き方やデータの性質に合わせて選びます。

機械学習で使われる場面
機械学習では、データ同士がどれくらい似ているかを測る場面が多くあります。たとえば、ある顧客と似た購買パターンの顧客を探す、症状が近い過去の診断例を参照する、画像や文書を特徴量に変換して近いものを探す、といった処理です。
マンハッタン距離は、k近傍法のように「近いデータ」を探す手法や、クラスタリングでデータをグループに分ける場面で距離尺度の候補になります。各特徴量の差をそのまま足すため、どの項目がどれだけ違うのかを比較的追いやすいのも利点です。
また、回帰分析や予測モデルの評価では、絶対誤差の合計や平均を使うことがあります。これはマンハッタン距離と同じく、差の絶対値を扱う考え方です。二乗誤差に比べると、極端に大きな誤差の影響が相対的に抑えられるため、外れ値が含まれるデータで検討されることがあります。
ただし、高次元データでは常にマンハッタン距離が最適というわけではありません。データの分布、特徴量の意味、外れ値の有無、使うアルゴリズムによって結果は変わります。実務では、ユークリッド距離など他の距離と比較し、検証データで性能を確認して選びます。

使うときの注意点
マンハッタン距離を使うときにまず注意したいのは、特徴量の尺度です。たとえば、年齢が20から80の範囲、年収が数百万円から数千万円の範囲で表されている場合、そのまま距離を計算すると年収の差が強く効きすぎます。
このような偏りを避けるため、標準化や正規化で特徴量のスケールをそろえることがあります。距離計算は単純に見えますが、入力する特徴量の前処理によって結果が大きく変わります。
もう一つの注意点は、特徴量同士の関係をどこまで考慮するかです。マンハッタン距離は各次元の差を独立に足し合わせます。そのため、特徴量同士の相関や、斜め方向の近さを重視したい問題では、別の距離やモデルの方が合う場合があります。
距離尺度は、データの意味とアルゴリズムの目的に合わせて選ぶものです。マンハッタン距離は計算しやすく解釈もしやすい一方で、前処理や比較検証を省くと、期待した近さを表せないことがあります。
まとめ
マンハッタン距離は、縦方向と横方向のように、各方向の移動量を足し合わせて求める距離です。2次元では \(|x_1 – x_2| + |y_1 – y_2|\) で計算でき、多次元データでも各特徴量の差の絶対値を合計すれば同じ考え方で扱えます。
ユークリッド距離が直線距離を表すのに対し、マンハッタン距離は格子状の移動や特徴量ごとの差の積み上げに向いています。機械学習では、類似データの探索、クラスタリング、絶対誤差に基づく評価などと関係します。
一方で、特徴量の尺度がそろっていないと距離が偏ります。実際に使うときは、標準化や正規化を行い、ユークリッド距離など他の距離尺度とも比較しながら、目的に合う方法を選ぶことが大切です。
更新履歴
| 日付 | 内容 |
|---|---|
| 2025年2月1日 | 初回公開 |
| 2026年5月30日 | 式の読み方、距離比較、前処理の注意点を追記 |
