ベクトル間の距離を計算する方法


  1. ユークリッド距離: ユークリッド距離は、2つの点間の直線距離を表します。ユークリッド距離は、ベクトルの各要素の差を2乗し、それらの値を足し合わせた後、平方根を取ることで計算されます。

    import numpy as np
    def euclidean_distance(vector1, vector2):
       squared_diff = np.power(vector1 - vector2, 2)
       sum_squared_diff = np.sum(squared_diff)
       distance = np.sqrt(sum_squared_diff)
       return distance
    vector1 = np.array([1, 2, 3])
    vector2 = np.array([4, 5, 6])
    distance = euclidean_distance(vector1, vector2)
    print(distance)
  2. マンハッタン距離: マンハッタン距離は、2つの点間の直角距離を表します。マンハッタン距離は、ベクトルの各要素の差の絶対値を足し合わせることで計算されます。

    import numpy as np
    def manhattan_distance(vector1, vector2):
       abs_diff = np.abs(vector1 - vector2)
       distance = np.sum(abs_diff)
       return distance
    vector1 = np.array([1, 2, 3])
    vector2 = np.array([4, 5, 6])
    distance = manhattan_distance(vector1, vector2)
    print(distance)
  3. コサイン類似度: コサイン類似度は、2つのベクトルの方向の類似性を測る方法です。ベクトルの内積をベクトルの大きさの積で割ることで計算されます。

    import numpy as np
    def cosine_similarity(vector1, vector2):
       dot_product = np.dot(vector1, vector2)
       norm1 = np.linalg.norm(vector1)
       norm2 = np.linalg.norm(vector2)
       similarity = dot_product / (norm1 * norm2)
       return similarity
    vector1 = np.array([1, 2, 3])
    vector2 = np.array([4, 5, 6])
    similarity = cosine_similarity(vector1, vector2)
    distance = 1 - similarity
    print(distance)