Menu
CoddyTech

Varians yang Dijelaskan

Termasuk bagian Pembelajaran Tanpa Pengawasan dalam perjalanan Machine Learning di Coddy. Pelajaran 27 dari 51.

Berapa banyak yang dipertahankan oleh 2 komponen? Setiap komponen menyimpan sebagian dari total sebaran, yaitu rasio varians yang dijelaskan. Untuk semua 13 komponen wine:

Batang untuk 13 komponen wine yang menyusut dari 0.36 hingga hampir 0, dan garis oranye yang menjumlahkannya, naik dari 0.36 ke 1. Garis ini memotong garis 90% putus-putus pada komponen 8

PCA() tanpa n_components mempertahankan semuanya. np.cumsum memberikan total kumulatif:

pca = PCA().fit(scaled)
ratio = pca.explained_variance_ratio_
print(ratio[:3].round(3))
total = np.cumsum(ratio)
print((total < 0.9).sum() + 1)

Ini mencetak [0.362 0.192 0.111] dan 8: totalnya masih di bawah 0.9, ditambah satu yang melewati batas. Jadi, peta wine 2D mempertahankan 55%.

challenge icon

Tantangan

Sedang

Laboratorium cokelat mengukur 9 hal untuk setiap batang. Berapa banyak komponen yang mempertahankan 90% sebaran? scaled sudah siap.

  1. Fit PCA() lalu ambil bagian dari setiap komponen.
  2. Cetak jumlah komponen yang mencapai 90%.
  3. Gambar bagian-bagiannya sebagai batang pada 1, 2, 3..., dengan label each component; gambar total berjalan sebagai garis dengan marker="o", dengan label running total; gambar garis abu-abu putus-putus pada 0.9; tambahkan legenda. Tampilkan grafiknya.

Untuk laboratorium lain:

Components for 90%: 4

Grafik berjudul Sebaran yang Dipertahankan oleh Setiap Komponen untuk 7 komponen: batang yang menurun dari 0.42, total berjalan yang naik hingga 1 dan memotong garis putus-putus 0.9 pada komponen 4, serta legenda

Coba sendiri

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA

# Laboratorium pembuat cokelat: 9 pengukuran untuk setiap batang dari 150 batang cokelat
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")

# Tulis kodemu di bawah ini
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Pembelajaran Tanpa Pengawasan

Latihan sendiri: Compiler Python online