숫자 군집화하기
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개의 픽셀로 다시 만듭니다:
value_counts()는 가장 큰 클러스터부터 나열하므로, 중심점 갤러리는 스캔의 인구 조사처럼 읽힙니다.
챌린지
중급스타터에는 스캔 데이터와 X_small, 즉 13개 숫자로 표현한 버전이 들어 있습니다.
X_small에서 k-means를 사용해 클러스터 10개를 찾으세요.- 각 중심의 64개 픽셀을 복원하세요.
- 가장 큰 클러스터부터 2행 5열 갤러리를 그리세요. 각 중심을
gray_r로 8×8 이미지로 표시하고,120 scans와 같이 크기를 제목으로 붙이세요. 레이아웃을 정돈한 다음 표시하세요.
클러스터가 5개라면 다음과 같이 표시됩니다.
여러분은 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)
# 아래에 코드를 작성하세요
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
비지도 학습의 모든 레슨
직접 연습해 보세요: 온라인 Python 컴파일러