본문 바로가기
■ 칼퇴를 위한 파이썬 : 사례

파이썬으로 머신러닝하기: 계층적 군집화 기법 소개

by 포탈메이커 2023. 7. 18.

파이썬으로 머신러닝하기: 계층적 군집화 기법 소개

1. 소개

계층적 군집화는 머신러닝의 중요한 기법 중 하나로, 데이터를 유사한 특성을 갖는 그룹으로 분류하는 방법이다. 이번 블로그 포스팅에서는 파이썬을 사용하여 계층적 군집화를 적용하는 방법에 대해 알아보겠다.

2. 계층적 군집화란?

계층적 군집화는 데이터를 분류할 때, 계층 구조를 이용하여 데이터 간의 유사도를 계산하고 클러스터를 형성하는 방법이다. 계층적 군집화는 병합 군집화와 분할 군집화로 나뉜다.

2.1. 병합 군집화

병합 군집화는 각 데이터 포인트를 개별적인 클러스터로 시작하여, 가장 유사한 클러스터를 병합해가며 계층적인 구조를 형성하는 방법이다. 먼저 전체 데이터는 개별적인 클러스터로 시작하며, 가장 유사한 클러스터를 병합하는 과정을 반복하여 계층적인 트리 구조를 형성한다.

2.2. 분할 군집화

분할 군집화는 전체 데이터를 하나의 클러스터에서 시작하여, 유사한 데이터를 점차 분리해가며 계층적인 구조를 형성하는 방법이다. 먼저 전체 데이터는 하나의 클러스터로 시작하며, 가장 유사하지 않은 데이터를 분리하는 과정을 반복하여 계층적인 트리 구조를 형성한다.

3. 파이썬을 활용한 계층적 군집화

파이썬은 다양한 머신러닝 라이브러리를 제공하고 있으며, 계층적 군집화를 구현하기 위한 다양한 패키지도 있다. 이 중에서도 scikit-learn은 가장 널리 사용되는 머신러닝 라이브러리 중 하나로, 계층적 군집화를 위한 'scipy' 패키지를 제공한다.

3.1. scikit-learn의 scipy 패키지

scipy는 파이썬에서 과학기술적인 계산을 위한 패키지로, 다양한 수학 함수와 알고리즘을 제공한다. 계층적 군집화를 위해서는 'scipy.cluster.hierarchy' 모듈의 함수들을 활용할 수 있다. 이 모듈은 병합 군집화를 구현하는 함수들을 제공한다.

3.2. 계층적 군집화의 예시 코드

아래는 파이썬을 이용하여 계층적 군집화를 수행하는 간단한 예시 코드이다.

```python from scipy.cluster.hierarchy import dendrogram, linkage import matplotlib.pyplot as plt

데이터셋 로드

X = [[1, 2], [3, 1], [2, 3], [9, 2], [10, 3], [11, 4]]

병합 군집화 수행

Z = linkage(X, 'single')

덴드로그램 시각화

fig = plt.figure(figsize=(10, 5)) dn = dendrogram(Z)

결과 출력

plt.show() ```

위 코드는 2차원 데이터를 병합 군집화를 통해 클러스터링하고, 그 결과를 덴드로그램으로 시각화하는 예시이다.

4. 결론

이번 포스팅에서는 파이썬을 사용하여 계층적 군집화 기법에 대해 알아보았다. 계층적 군집화는 데이터를 구조화된 형태로 분류하며, 데이터 간의 유사성을 파악할 수 있는 강력한 도구이다. 파이썬을 활용하여 계층적 군집화를 구현하기 위해서는 scipy 패키지의 cluster.hierarchy 모듈을 활용할 수 있다.