패턴으로서의 성분
Coddy Machine Learning 여정의 비지도 학습 섹션에 포함된 레슨. 51개 중 30번째.
PCA는 무엇을 살펴봤을까요? 각 성분은 픽셀당 하나씩 총 64개의 가중치로 이루어져 있으며, components_에는 성분마다 한 행씩 들어 있습니다.
pca = PCA(n_components=4).fit(X)
print(pca.components_.shape)이 코드는 (4, 64)를 출력합니다. 한 행을 8×8로 재구성하면 그림이 됩니다. cmap="gray_r"는 회색을 반전한 것으로, 큰 가중치는 어둡게, 음수 가중치는 밝게 표시합니다:
ax.imshow(pca.components_[0].reshape(8, 8), cmap="gray_r")구성 요소 1은 4와 6의 잉크가 있는 곳에서 어둡기 때문에, 지도에서 오른쪽에 위치합니다. 스캔의 잉크가 어두운 픽셀에 놓이면 높은 점수를 받습니다.
챌린지
중급서예 선생님은 사람들이 숫자 하나를 쓰는 다양한 방식을 보고 싶어 합니다. 프로그램은 숫자를 읽고, 시작 코드는 각 숫자의 스캔 데이터를 X에 저장합니다.
X에 3개의 구성 요소로 PCA를 맞춥니다.- 구성 요소
i를axs[i]에cmap="gray_r"를 사용해 8×8 그림으로 그리고, 제목을Component 1부터Component 3까지 지정합니다. - 차트를 표시합니다.
숫자 2에 대해서는 다음과 같이 그립니다. 그런 다음 Coddy가 패널을 설명합니다.
직접 해보기
import matplotlib.pyplot as plt
from sklearn.datasets import load_digits
from sklearn.decomposition import PCA
# 입력에서 읽어 온 한 숫자의 각 스캔: 행마다 64픽셀
d = int(input())
digits = load_digits()
X = digits.data[digits.target == d]
# 아래 줄을 변경하지 마세요
fig, axs = plt.subplots(1, 3)
# 아래에 코드를 작성하세요
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
비지도 학습의 모든 레슨
직접 연습해 보세요: 온라인 Python 컴파일러