Menu
CoddyTech

Perkecil dengan PCA

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

64 piksel lebih banyak daripada yang dibutuhkan digit. PCA dapat menargetkan proporsi varians alih-alih jumlah komponen:

Kurva meningkat yang menunjukkan proporsi varians digit' yang dipertahankan oleh n komponen pertama, curam pada awalnya lalu mendatar; garis putus-putus pada 90% bertemu kurva di 21 komponen

n_components=0.9 mempertahankan jumlah komponen paling sedikit yang mencakup 90%:

pca = PCA(n_components=0.9)
X_small = pca.fit_transform(X)
print(pca.n_components_, X_small.shape)

Ini mencetak 21 (1797, 21): sepertiga dari jumlah angka, sebagian besar gambar.

Tidak ada penskalaan di sini: setiap piksel memiliki satu unit yang sama, dengan intensitas dari 0 hingga 16. Penskalaan akan memperbesar piksel tepi yang hampir kosong hingga menjadi fitur penuh.

challenge icon

Tantangan

Sedang

Saatnya mengecilkan hasil pemindaian. Program membaca porsi varians yang akan dipertahankan, seperti 0.8.

  1. Cetak jumlah komponen yang dibutuhkan PCA untuk mempertahankan porsi tersebut pada piksel mentah, lalu pada piksel yang diskalakan.
  2. Pertahankan versi yang membutuhkan lebih sedikit komponen: cetak namanya dan bentuk data yang telah direduksi.

Untuk 0.6:

Raw pixels: 7 components
Scaled pixels: 11 components
Keep: raw pixels, shape (1797, 7)

Mulai dari sini, proyek mempertahankan 80% varians.

Coba sendiri

from sklearn.datasets import load_digits
from sklearn.decomposition import PCA
from sklearn.preprocessing import StandardScaler

# Dari Look at the Digits: 1,797 hasil pemindaian dengan 64 piksel, nilai tinta dari 0 hingga 16
digits = load_digits()
X = digits.data
y = digits.target

# Proporsi varians yang dipertahankan, misalnya 0.8
share = float(input())

# 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