Scikit-Learn 을 이용한 양분할 군집화

Beginner

This tutorial is from open-source community. Access the source code

소개

양분할 군집화 (Biclustering) 는 데이터 행렬의 행과 열을 동시에 군집화하는 방법입니다. 이를 통해 데이터 행렬 내 특정 속성을 가진 하위 행렬을 식별할 수 있습니다. 양분할 군집화는 데이터 분석, 이미지 처리 및 생물정보학과 같은 다양한 분야에서 유용합니다.

이 실습에서는 scikit-learn 의 sklearn.cluster.bicluster 모듈을 사용하여 양분할 군집화를 수행하는 방법을 배울 것입니다. 우리는 두 가지 일반적인 양분할 군집화 알고리즘, 스펙트럼 공동 군집화 (Spectral Co-Clustering) 와 스펙트럼 양분할 군집화 (Spectral Biclustering) 를 탐색할 것입니다. 이러한 알고리즘은 행과 열을 양분할 군집에 정의하고 할당하는 방식이 다릅니다.

VM 팁

VM 시작이 완료되면 왼쪽 상단 모서리를 클릭하여 Notebook 탭으로 전환하여 연습을 위한 Jupyter Notebook에 접근하십시오.

때때로 Jupyter Notebook 이 완전히 로드되기까지 몇 초 정도 기다려야 할 수 있습니다. Jupyter Notebook 의 제한으로 인해 작업의 유효성 검사는 자동화될 수 없습니다.

학습 중 문제가 발생하면 Labby 에게 문의하십시오. 세션 후 피드백을 제공하면 문제를 신속하게 해결해 드리겠습니다.

필요한 라이브러리 및 데이터셋 가져오기

먼저, 양분할 군집화 (biclustering) 에 사용할 필요한 라이브러리를 가져오고 샘플 데이터셋을 로드합니다.

import numpy as np
from sklearn.cluster import SpectralCoclustering, SpectralBiclustering

## 샘플 데이터 로드
data = np.arange(100).reshape(10, 10)

스펙트럼 공동 군집화 수행

이제 스펙트럼 공동 군집화 (Spectral Co-Clustering) 알고리즘을 사용하여 양분할 군집화를 수행합니다. 이 알고리즘은 다른 행과 열에 비해 값이 높은 양분할 군집을 찾습니다.

## 스펙트럼 공동 군집화 모델 초기화 및 적합
model_co = SpectralCoclustering(n_clusters=3, random_state=0)
model_co.fit(data)

## 행 및 열 군집 멤버십 가져오기
row_clusters_co = model_co.row_labels_
column_clusters_co = model_co.column_labels_

스펙트럼 양분할 군집화 수행

다음으로, 스펙트럼 양분할 군집화 (Spectral Biclustering) 알고리즘을 사용하여 양분할 군집화를 수행합니다. 이 알고리즘은 데이터 행렬에 숨겨진 체커보드 구조가 있다고 가정합니다.

## 스펙트럼 양분할 군집화 모델 초기화 및 적합
model_bi = SpectralBiclustering(n_clusters=(2, 3), random_state=0)
model_bi.fit(data)

## 행 및 열 군집 멤버십 가져오기
row_clusters_bi = model_bi.row_labels_
column_clusters_bi = model_bi.column_labels_

결과 시각화

마지막으로, 스펙트럼 공동 군집화 및 스펙트럼 양분할 군집화 알고리즘으로 얻은 양분할 군집 구조를 시각화해 보겠습니다.

## 스펙트럼 공동 군집화 시각화
print("스펙트럼 공동 군집화:")
print("행 군집:")
print(row_clusters_co)
print("열 군집:")
print(column_clusters_co)

## 스펙트럼 양분할 군집화 시각화
print("\n스펙트럼 양분할 군집화:")
print("행 군집:")
print(row_clusters_bi)
print("열 군집:")
print(column_clusters_bi)

요약

이 실습에서는 scikit-learn 의 스펙트럼 공동 군집화 (Spectral Co-Clustering) 및 스펙트럼 양분할 군집화 (Spectral Biclustering) 알고리즘을 사용하여 양분할 군집화를 수행하는 방법을 배웠습니다. 양분할 군집화는 데이터 행렬의 행과 열을 동시에 군집화하여 특정 속성을 가진 하위 행렬을 식별하는 데 사용됩니다. 양분할 군집화는 유전자 발현 데이터의 패턴 식별이나 이미지 데이터셋의 구조 찾기와 같은 다양한 데이터 분석 작업에 유용할 수 있습니다.