소개
이 실험실에서는 비지도 학습, 특히 군집화 및 분해 개념을 탐구합니다. 비지도 학습은 학습에 레이블이 지정된 데이터가 없는 기계 학습의 한 유형입니다. 대신, 사전 지식 없이 데이터에서 패턴이나 구조를 찾으려고 합니다. 군집화는 유사한 관측치를 그룹으로 묶는 데 사용되는 일반적인 비지도 학습 기법입니다. 반면에 분해는 가장 중요한 특징이나 구성 요소를 추출하여 데이터의 저차원 표현을 찾는 데 사용됩니다.
VM 팁
VM 시작이 완료되면 왼쪽 상단 모서리를 클릭하여 연습을 위한 Jupyter Notebook에 접근할 수 있는 Notebook 탭으로 전환합니다.
때때로 Jupyter Notebook 이 완전히 로드되기까지 몇 초 정도 기다려야 할 수 있습니다. Jupyter Notebook 의 제한으로 인해 작업의 유효성 검사를 자동화할 수 없습니다.
학습 중 문제가 발생하면 Labby 에게 문의하십시오. 세션 후 피드백을 제공하면 문제를 신속하게 해결해 드리겠습니다.
K-평균을 이용한 군집화
탐색할 첫 번째 기법은 K-평균 알고리즘을 이용한 군집화입니다. K-평균은 관측치를 잘 분리된 그룹 (클러스터) 으로 나누는 것을 목표로 하는 인기 있는 군집화 알고리즘입니다. K-평균을 이용한 군집화를 보여주기 위해 아이리스 데이터셋을 예시로 사용해 보겠습니다.
from sklearn import cluster, datasets
## 아이리스 데이터셋 로드
X_iris, y_iris = datasets.load_iris(return_X_y=True)
## K-평균 군집화 수행
k_means = cluster.KMeans(n_clusters=3)
k_means.fit(X_iris)
## 클러스터 레이블 출력
print(k_means.labels_)
군집화 평가
군집화를 수행한 후에는 결과를 평가하는 것이 중요합니다. 하지만 비지도 학습에서는 실제 레이블 (ground truth) 에 접근할 수 없습니다. 따라서 군집화 결과를 해석할 때 주의해야 합니다. 군집화 결과를 평가하는 일반적인 방법으로는 실루엣 점수 (silhouette score) 와 클러스터 내 제곱합 (within-cluster sum of squares) 과 같은 지표를 사용합니다. 이러한 지표는 군집화의 질에 대한 통찰력을 제공할 수 있습니다.
벡터 양자화
군집화의 한 응용 분야는 벡터 양자화입니다. 벡터 양자화에서는 군집화를 사용하여 정보를 압축하기 위해 소수의 예시 (exemplars) 를 선택합니다. 예를 들어, 군집화를 사용하여 이미지를 포스터화할 수 있습니다.
import numpy as np
from sklearn import cluster, datasets
from sklearn.datasets import load_sample_image
import matplotlib.pyplot as plt
## 샘플 이미지 로드
image = load_sample_image("china.jpg")
## 그레이스케일로 변환
gray_image = image.mean(axis=2)
X = gray_image.reshape((-1, 1))
## K-평균 군집화 수행
k_means = cluster.KMeans(n_clusters=5, n_init=1)
k_means.fit(X)
## 클러스터 중심을 사용하여 이미지 압축
values = k_means.cluster_centers_.squeeze()
labels = k_means.labels_
face_compressed = np.choose(labels, values)
face_compressed.shape = gray_image.shape
## 원본 이미지와 압축된 이미지 표시
plt.figure(figsize=(12, 6))
plt.subplot(1, 2, 1)
plt.imshow(gray_image, cmap='gray')
plt.title('원본 이미지')
plt.subplot(1, 2, 2)
plt.imshow(face_compressed, cmap='gray')
plt.title('압축된 이미지')
plt.show()
요약
이 실험에서는 비지도 학습, 특히 군집화와 분해 개념을 탐구했습니다. K-평균 군집화, 계층적 응집 군집화, 특징 응집, 주성분 분석 (PCA), 독립 성분 분석 (ICA) 에 대해 배웠습니다. 이러한 기법들은 레이블이 없는 데이터에서 패턴과 구조를 발견하고 가장 중요한 정보를 포착하는 저차원 표현을 찾는 데 유용합니다.