Menu
CoddyTech

숫자 군집화하기

Coddy Machine Learning 여정의 비지도 학습 섹션에 포함된 레슨. 51개 중 45번째.

이제 발견해 봅시다. k-means에 13개의 숫자로 된 스캔에서 10개의 그룹을 요청하세요. 찾기를 바라는 각 숫자마다 하나씩입니다. k-means는 레이블을 전혀 보지 않습니다:

km = KMeans(n_clusters=10, n_init=10, random_state=0).fit(X_small)

중심점은 k-means가 작동한 PCA 공간에 있습니다. 숫자 13개로 이루어져 있으며 그림은 없습니다. pca.inverse_transform는 이 중심점을 64개의 픽셀로 다시 만듭니다:

왼쪽에는 k-means 중심점 하나의 숫자 13개를 나타낸 막대 그래프가 있으며, 처음 두 막대는 높고 나머지는 작습니다. 오른쪽에는 같은 중심점을 흐릿한 8×8 그림으로 다시 만든 모습이 있으며, 0처럼 보입니다

value_counts()는 가장 큰 클러스터부터 나열하므로, 중심점 갤러리는 스캔의 인구 조사처럼 읽힙니다.

challenge icon

챌린지

중급

스타터에는 스캔 데이터와 X_small, 즉 13개 숫자로 표현한 버전이 들어 있습니다.

  1. X_small에서 k-means를 사용해 클러스터 10개를 찾으세요.
  2. 각 중심의 64개 픽셀을 복원하세요.
  3. 가장 큰 클러스터부터 2행 5열 갤러리를 그리세요. 각 중심을 gray_r로 8×8 이미지로 표시하고, 120 scans와 같이 크기를 제목으로 붙이세요. 레이아웃을 정돈한 다음 표시하세요.

클러스터가 5개라면 다음과 같이 표시됩니다.

흐릿한 숫자 중심 5개가 한 줄로 있으며, 제목은 차례로 531, 367, 363, 359, 177 scans입니다

여러분은 10개를 만듭니다. Coddy가 각 차트를 설명합니다. k-means가 스스로 찾아낸 숫자는 무엇인가요?

직접 해보기

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.datasets import load_digits
from sklearn.decomposition import PCA
from sklearn.cluster import KMeans

# Look at the Digits에서: 64픽셀로 된 스캔 1,797개, 잉크 값은 0부터 16까지
digits = load_digits()
X = digits.data
y = digits.target

# Shrink with PCA에서: 스캔당 13개의 숫자로 분산의 80%를 설명
pca = PCA(n_components=0.8)
X_small = pca.fit_transform(X)

# 아래에 코드를 작성하세요
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

비지도 학습의 모든 레슨

직접 연습해 보세요: 온라인 Python 컴파일러