2つのデータポイント(3次元の例)

目次
2つのデータポイント(3次元の例)
2つのデータポイント(3次元の例)
@ creator • Click to Play Video Inline
🎵 2つのデータポイント(3次元の例)
ユークリッド距離の計算を完全解説!公式やPython実装まで網羅

データ分析やAIアルゴリズムを扱う上で、避けて通れない数学の基礎概念が「距離」の定義です。その代表格であるユークリッド距離は、私たちが普段生活の中で目にする「2点間を結ぶ直線距離」を数式化したもの。しかし、いざ3次元や多次元の高次元データに直面したり、プログラミングや表計算ソフトで実装しようとしたりすると、計算の手順や適切なライブラリの選定に迷う場面も少なくありません。

本稿では、中学校で学ぶ「三平方の定理」から多次元空間における公式への展開はもちろん、PythonやExcelを用いた現場直結の計算手法を詳しく解説します。さらに、実務で頻繁に比較されるマンハッタン距離やコサイン類似度との決定的な違いまで、分かりやすく紐解いていきます。

📌 【この記事の重要ポイントまとめ】
  • 要点1:ユークリッド距離は「三平方の定理」を多次元へと拡張したもので、空間上の最短直線距離を導き出す基本指標
  • 要点2:PythonのNumPyやSciPy、Excelの専用関数を使えば、多次元データでも瞬時に高速計算が可能
  • 要点3:マンハッタン距離やコサイン類似度、マハラノビス距離との性質の違いを把握し、データの特性に応じて使い分けることが分析精度の鍵

【超基本】ユークリッド距離の計算公式|三平方の定理から多次元への拡張

ユークリッド距離(Euclidean distance)の基本原理は、中学校の数学で習う三平方の定理(ピタゴラスの定理)そのものです。直角三角形の斜辺の長さを求める考え方を、そのまま座標空間に適用しています。

平面(2次元空間)における2点 $A(x_1, y_1)$ と $B(x_2, y_2)$ の距離 $d$ を求めるユークリッド距離公式は、次の通りです。

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

例えば、点A$(1, 2)$と点B$(4, 6)$の距離を計算する場合、X座標の差 $(4 - 1 = 3)$ の二乗である $9$ と、Y座標の差 $(6 - 2 = 4)$ の二乗である $16$ を足し合わせると $25$ になります。その平方根をとることで、距離は $5$ と求められます。

この考え方は3次元空間、さらには4次元以上の多次元ユークリッド距離へも全く同じルールで拡張できます。$n$次元ベクトル $P = (p_1, p_2, \dots, p_n)$ と $Q = (q_1, q_2, \dots, q_n)$ における計算式は以下のようになります。

$$d(P, Q) = \sqrt{\sum_{i=1}^{n} (p_i - q_i)^2}$$

各次元の差を二乗してすべて足し上げ、最後に全体のルート(平方根)を取るという極めてシンプルな構造です。数学的には「L2ノルム」とも呼ばれ、物理空間の最短距離を測る標準的な尺度として機能しています。

【実践】Python(NumPy/SciPy)でユークリッド距離を高速計算する方法

機械学習やデータサイエンスの現場では、手計算ではなくプログラムを用いたバッチ処理が基本です。Pythonユークリッド距離の算出には、標準ライブラリの計算機能だけでなく、高速な数値計算を可能にするNumPyやSciPyが多用されます。

最も手軽かつ高速なのが、NumPy距離計算です。`np.linalg.norm` 関数を利用すれば、ベクトルの差を取るだけで一行で計算が完了します。

import numpy as np p = np.array([1, 2, 3]) q = np.array([4, 6, 8]) # NumPyによるユークリッド距離計算 distance_np = np.linalg.norm(p - q) print(f"NumPy計算結果: {distance_np}") 

また、科学計算ライブラリのSciPyユークリッド距離モジュールを使う方法も標準的です。`scipy.spatial.distance.euclidean` を使うと、コードの可読性がさらに高まります。

from scipy.spatial import distance # SciPyによるユークリッド距離計算 distance_scipy = distance.euclidean(p, q) print(f"SciPy計算結果: {distance_scipy}") 

データセット全体(多数の行同士)の総当たり距離を一度に計算したい場合は、`scipy.spatial.distance.cdist` を用いると行列演算によって圧倒的な処理速度が得られます。

【手軽に試す】Excelでユークリッド距離を計算する2つの関数テクニック

エンジニア以外のビジネスパーソンや小規模なデータ検証では、表計算ソフトが活躍します。Excelユークリッド距離計算を行う場合、初歩的な数式を組み立てる方法と、専用関数を組み合わせる2通りのアプローチが存在します。

1つ目は、基本に忠実に各差分の二乗和をルート化する方法です。セル `A2:B2` に点1 $(x_1, y_1)$、セル `A3:B3` に点2 $(x_2, y_2)$ が入っている場合、以下の数式を入力します。

=SQRT((A2-A3)^2 + (B2-B3)^2)

2つ目は、配列の差の二乗和を求める SUMXMY2関数 を利用したスマートな記法です。次元数が増えてもセル範囲を指定するだけで対応できるため、多次元データの処理に向いています。

=SQRT(SUMXMY2(A2:C2, A3:C3))

この記述であれば、3次元データ(X, Y, Z)はもちろん、10次元以上のパラメータであっても範囲を広げるだけで正確にユークリッド距離を算出可能です。

【違いを徹底比較】マンハッタン距離・コサイン類似度・マハラノビス距離

データ分析において、どの距離尺度を採用するかは結果を左右する重大な選択です。ユークリッド距離とよく比較される代表的な指標との違いを整理します。

第一に、マンハッタン距離との違いです。ユークリッド距離が「障害物のない2点間をまっすぐ結ぶ鳥の飛行距離(直線)」であるのに対し、マンハッタン距離(L1ノルム)は「格子状に区画整理された道路を右折・左折しながら進むタクシーの移動距離」を表します。各座標の差の絶対値を単純に足し合わせるため、外れ値の影響をやや受けにくい特性を持ちます。

第二に、コサイン類似度との違いが挙げられます。ユークリッド距離が「位置の近さ(データの大きさ)」を測定するのに対して、コサイン類似度は「ベクトルの向き(類似性)」を評価します。例えば、テキストデータの類似度判定では、文章の長さ(単語数)による影響を排除して内容の方向性を一致させたいため、ユークリッド距離よりもコサイン類似度が選ばれる傾向があります。

第三に、マハラノビス距離比較も欠かせません。ユークリッド距離はすべての変数が独立かつ同じ分散を持つことを前提としていますが、実際のデータには相関関係(例:身長と体重の正の相関)が存在します。マハラノビス距離は、データの分散や共分散を考慮して「統計的なばらつきを標準化した距離」を計算するため、多変量解析における異常検知などで圧倒的な威力を発揮します。

【AI・機械学習での活用】クラスタリングとk近傍法における距離計算の役割

ユークリッド距離は、多くの機械学習アルゴリズムの土台として機能しています。代表的な適用例が、教師なし学習の機械学習クラスタリング(k-means法)と、教師あり学習のk近傍法距離計算(k-NN)です。

k-meansクラスタリングでは、各データポイントとクラスタ重心とのユークリッド距離を繰り返し計算し、最も近い重心のグループへとデータを割り振っていきます。また、k近傍法では、未知のデータが入力された際に、既存データの中からユークリッド距離が近い上位 $k$ 個のサンプルを参照してクラス判別や回帰予測を行います。

ただし、機械学習でユークリッド距離を適用する際には、特徴量のスケーリング(標準化・正規化)が不可欠です。例えば「年齢(0〜100)」と「年収(200万〜2000万円)」をそのまま計算にかけると、数値のスケールが大きい年収の差だけで距離が決まってしまいます。事前に各次元の尺度を揃えておく前処理が必須です。

さらに、次元数が数百〜数千に達するテキストデータや画像データでは、すべての点同士の距離が均一化してしまう「次元の呪い」が発生するため、主成分分析(PCA)などによる次元削減を施してから距離計算を行うのが定石です。

【ユークリッド 距離 計算】に関するよくある質問(FAQ)

Q1:ユークリッド距離とマンハッタン距離はどのように使い分けるべきですか?
A1:物理的な直線距離を求めたい場合や、連続的な空間での誤差を評価したい場合はユークリッド距離が適しています。一方、都市の道路網のようなグリッド状の移動を扱う場合や、高次元データで外れ値の影響を極力抑えたい場合はマンハッタン距離を選択するのが有効です。

Q2:単位や尺度がバラバラなデータでユークリッド距離を正しく計算するコツは?
A2:計算前にデータの「標準化(平均0、分散1に変換)」または「正規化(0〜1の範囲に変換)」を実施してください。単位の違いによる影響を排除し、各項目を公平に評価できるようになります。

Q3:ユークリッド距離が0になるのはどのようなケースですか?
A3:比較している2つのデータポイントのすべての次元(各成分)の値が完全に一致している場合のみ、距離は0になります。ユークリッド距離は常に0以上の値を取り、負の数になることはありません。

まとめ:データ特性に合わせた距離計算の選択が分析の精度を決める

ユークリッド距離は、直感的で分かりやすい数式構造を持ち、PythonやExcelなど多様なツールで容易に扱える非常に優れた指標です。データ間の近さを定量化する最初の一歩として、あらゆるデータ分析の根幹を支えています。

しかし万能ではなく、データの次元数、相関関係の有無、スケールの違いによって最適な計算アプローチは変化します。マンハッタン距離やコサイン類似度といった他の指標との違いを正しく理解し、分析対象の特性に合わせて使い分けることこそが、精度の高いモデル構築と的確なインサイト導出への確実な道筋となります。 (出典: ユークリッド 距離 計算(Yahoo!ニュース))

ユークリッド 距離 計算
ユークリッド 距離 計算
ユークリッド 距離 計算