[파이썬][Scipy] 행렬 간 거리 측정 예제

행렬 간 거리 측정은 두 개의 행렬 사이의 유사성 또는 차이를 측정하는 방법입니다. 이것은 다양한 응용 분야에서 사용되며, 데이터 비교, 클러스터링, 패턴 인식 등에 유용합니다. 아래에는 행렬 간 거리 측정을 수행하는 Scipy 예제를 제공합니다.

먼저, 두 개의 행렬을 생성합니다.

mport numpy as np

# 두 개의 행렬 생성
matrix1 = np.array([[1, 2, 3],
                    [4, 5, 6],
                    [7, 8, 9]])

matrix2 = np.array([[9, 8, 7],
                    [6, 5, 4],
                    [3, 2, 1]])

이제 Scipy를 사용하여 다양한 거리 측정 메트릭을 계산합니다.

from scipy.spatial.distance import euclidean, cityblock, cosine

# 유클리드 거리 (Euclidean Distance) 계산
euclidean_distance = euclidean(matrix1.flatten(), matrix2.flatten())
print("유클리드 거리:", euclidean_distance)

# 맨해튼 거리 (Manhattan Distance, L1 거리) 계산
manhattan_distance = cityblock(matrix1.flatten(), matrix2.flatten())
print("맨해튼 거리:", manhattan_distance)

# 코사인 거리 (Cosine Distance) 계산
cosine_distance = cosine(matrix1.flatten(), matrix2.flatten())
print("코사인 거리:", cosine_distance)

위의 예제에서는 다음을 수행합니다:

  1. scipy.spatial.distance 모듈을 사용하여 유클리드 거리, 맨해튼 거리(시티 블록 거리), 코사인 거리를 계산합니다.
  2. 각 거리 메트릭을 사용하여 두 개의 행렬 matrix1matrix2 사이의 거리를 측정합니다.

이러한 거리 메트릭을 사용하면 데이터의 유사성 또는 차이를 정량적으로 측정할 수 있으며, 다양한 응용 분야에서 활용됩니다.