[python] SciPy를 사용하여 계층적 군집 분석 수행하기

계층적 군집 분석(Hierarchical Clustering)은 비지도 학습 기법으로, 유사한 특성을 가진 데이터들을 클러스터로 그룹화하는 방법입니다. SciPy는 파이썬의 과학 및 수치 계산용 라이브러리로, 계층적 군집 분석을 수행하기 위한 여러 함수들을 제공합니다.

SciPy 설치

먼저, SciPy를 설치해야 합니다. 아래 명령어를 사용하여 SciPy를 설치할 수 있습니다.

pip install scipy

계층적 군집 분석 수행하기

다음은 SciPy를 사용하여 계층적 군집 분석을 수행하는 예제 코드입니다.

import numpy as np
from scipy.cluster.hierarchy import dendrogram, linkage
import matplotlib.pyplot as plt

# 데이터 생성
X = np.array([[1, 2], [3, 1], [4, 3], [6, 5], [7, 7]])

# 거리 행렬 계산
Z = linkage(X, 'single')

# 덴드로그램 그리기
dendrogram(Z)

plt.title('Hierarchical Clustering Dendrogram')
plt.xlabel('Data points')
plt.ylabel('Distance')
plt.show()

위 코드에서는 numpy를 사용하여 데이터를 생성한 후, scipy.cluster.hierarchy 모듈의 linkage 함수를 사용하여 거리 행렬을 계산합니다. 거리 행렬을 계산한 후, dendrogram 함수를 사용하여 덴드로그램을 그립니다. 마지막으로, 그래프의 제목과 축에 대한 레이블을 설정하고, plt.show()를 호출하여 그래프를 표시합니다.

추가 자료