[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()
를 호출하여 그래프를 표시합니다.