Menu
CoddyTech

PCA ile Küçült

Coddy'nin Machine Learning Journey'sinin Denetimsiz Öğrenme bölümünün bir parçası. Ders 44 / 51.

64 piksel, rakamların ihtiyaç duyduğundan fazladır. PCA, bileşen sayısı yerine varyansın belirli bir oranını hedefleyebilir:

İlk n bileşen tarafından korunan rakamların' varyans oranının yükselen eğrisi; başlangıçta dik, sonra düz; %90’daki kesikli çizgi eğriyle 21 bileşende kesişiyor

n_components=0.9, %90'ını koruyan en az sayıda bileşeni tutar:

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

Bu, 21 (1797, 21) çıktısını verir: sayıların üçte biri, resmin büyük kısmı.

Burada ölçekleyici yok: her piksel aynı birimi paylaşır; mürekkep değeri 0 ile 16 arasındadır. Ölçekleme, neredeyse boş kenar piksellerini tam özelliklere dönüştürerek büyütürdü.

challenge icon

Görev

Orta

Tarama verilerini küçültme zamanı. Program, korunacak varyans oranını, örneğin 0.8, okur.

  1. Önce ham piksellerde, ardından ölçeklendirilmiş piksellerde bu oran için PCA’nın kaç bileşene ihtiyaç duyduğunu yazdır.
  2. Daha az bileşene ihtiyaç duyan sürümü tut: adını ve indirgenmiş verisinin şeklini yazdır.

0.6 için:

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

Buradan itibaren proje varyansın %80’ini korur.

Kendin dene

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

# Look at the Digits kaynağından: 64 piksellik 1,797 tarama, 0 ile 16 arasında mürekkep değerleri
digits = load_digits()
X = digits.data
y = digits.target

# Korunacak varyansın oranı, örneğin 0.8
share = float(input())

# Kodunuzu aşağıya yazın
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Denetimsiz Öğrenme bölümündeki tüm dersler

Kendi başına pratik yap: Online Python derleyicisi