설명된 분산
Coddy Machine Learning 여정의 비지도 학습 섹션에 포함된 레슨. 51개 중 27번째.
두 개의 구성 요소가 얼마나 보존했을까요? 각 구성 요소는 전체 분산에서 차지하는 비율인 설명된 분산 비율을 나타냅니다. 13개의 와인 구성 요소 전체를 살펴보면 다음과 같습니다.
PCA()는 n_components를 지정하지 않으면 모든 성분을 유지합니다. np.cumsum은 누적 합계를 구합니다:
pca = PCA().fit(scaled)
ratio = pca.explained_variance_ratio_
print(ratio[:3].round(3))
total = np.cumsum(ratio)
print((total < 0.9).sum() + 1)이 코드는 [0.362 0.192 0.111]과 8을 출력합니다. 누적 합계는 여전히 0.9 미만이고, 이를 넘는 항목이 하나 더 있습니다. 따라서 2D 와인 맵은 55%를 유지했습니다.
챌린지
중급초콜릿 연구실에서는 막대 하나당 9가지 항목을 측정합니다. 산포의 90%를 유지하는 데 필요한 성분은 몇 개일까요? scaled가 준비되어 있습니다.
PCA()를 학습시키고 각 성분이 차지하는 비율을 구하세요.- 90%에 도달하는 성분의 개수를 출력하세요.
- 비율은 1, 2, 3... 위치에 막대로 그리고
each component라고 표시하세요. 누적 합계는marker="o"가 있는 선으로 그리고running total이라고 표시하세요. 0.9 위치에 회색 점선을 추가하고 범례를 표시하세요. 그래프를 보여 주세요.
다른 연구실의 경우:
Components for 90%: 4직접 해보기
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA
# 초콜릿 제조사의 실험실: 초콜릿 바 150개 각각에 대한 측정값 9개
bars = pd.read_csv("chocolate.csv")
scaled = StandardScaler().fit_transform(bars)
fig, ax = plt.subplots()
ax.set_title("Spread Kept by Each Component")
ax.set_xlabel("Component")
ax.set_ylabel("Share of spread")
# 아래에 코드를 작성하세요
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
비지도 학습의 모든 레슨
직접 연습해 보세요: 온라인 Python 컴파일러