Menu
CoddyTech

Komponen sebagai Pola

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

Apa yang dilihat PCA? Setiap komponen terdiri dari 64 bobot, satu untuk setiap piksel, dan components_ menyimpan satu baris untuk setiap komponen:

pca = PCA(n_components=4).fit(X)
print(pca.components_.shape)

Ini mencetak (4, 64). Ubah bentuk satu baris menjadi 8 kali 8, lalu hasilnya menjadi gambar. cmap="gray_r" berarti abu-abu terbalik: bobot besar berwarna gelap, bobot negatif berwarna terang:

ax.imshow(pca.components_[0].reshape(8, 8), cmap="gray_r")

Empat komponen pertama dari digit sebagai gambar berukuran 8 kali 8, berwarna abu-abu saat bobot mendekati nol, gelap saat bobotnya besar, terang saat bobotnya negatif

Komponen 1 berwarna gelap di tempat angka 4 dan 6 memiliki tinta, jadi angka-angka itu berada di sisi kanan peta. Hasil pemindaian mendapat skor tinggi saat tintanya jatuh pada piksel gelap.

challenge icon

Tantangan

Sedang

Seorang guru kaligrafi ingin melihat berbagai cara orang menulis satu digit. Program membaca digit tersebut, lalu kode awal menyimpan hasil pemindaiannya di X.

  1. Fit PCA dengan 3 komponen pada X.
  2. Gambar komponen i pada axs[i] sebagai gambar berukuran 8 x 8 dengan cmap="gray_r", beri judul dari Component 1 hingga Component 3.
  3. Tampilkan grafiknya.

Untuk angka 2, program menggambar seperti ini. Coddy kemudian menjelaskan panel-panelmu:

Tiga gambar komponen berukuran 8 x 8 dari angka 2 tulisan tangan, berjudul Component 1, Component 2, dan Component 3, masing-masing dengan guratan gelap dan terang

Coba sendiri

import matplotlib.pyplot as plt
from sklearn.datasets import load_digits
from sklearn.decomposition import PCA

# Setiap hasil pemindaian satu angka yang dibaca dari input: 64 piksel per baris
d = int(input())
digits = load_digits()
X = digits.data[digits.target == d]

# Jangan ubah baris di bawah ini
fig, axs = plt.subplots(1, 3)

# 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