비지도 학습: 데이터의 표현 찾기

Beginner

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

소개

이 실험실에서는 비지도 학습, 특히 군집화 및 분해 개념을 탐구합니다. 비지도 학습은 학습에 레이블이 지정된 데이터가 없는 기계 학습의 한 유형입니다. 대신, 사전 지식 없이 데이터에서 패턴이나 구조를 찾으려고 합니다. 군집화는 유사한 관측치를 그룹으로 묶는 데 사용되는 일반적인 비지도 학습 기법입니다. 반면에 분해는 가장 중요한 특징이나 구성 요소를 추출하여 데이터의 저차원 표현을 찾는 데 사용됩니다.

VM 팁

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

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

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

이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 초급 레벨의 실험이며 완료율은 91%입니다.학습자들로부터 100%의 긍정적인 리뷰율을 받았습니다.

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) 에 대해 배웠습니다. 이러한 기법들은 레이블이 없는 데이터에서 패턴과 구조를 발견하고 가장 중요한 정보를 포착하는 저차원 표현을 찾는 데 유용합니다.