Menu
CoddyTech

Bileşenleri Örüntü Olarak Görmek

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

PCA neye baktı? Her bileşen 64 ağırlıktan oluşur; her piksel için bir ağırlık vardır ve components_ her bileşen için bir satır içerir:

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

Bu, (4, 64) çıktısını verir. Bir satırı 8'e 8 olarak yeniden şekillendirin; bir resme dönüşür. cmap="gray_r", ters çevrilmiş gri tonlamadır: büyük ağırlıklar koyu, negatif olanlar açık renktir:

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

Rakamların ilk dört bileşeni, 8'e 8 resimler olarak; ağırlığın sıfıra yakın olduğu yerler gri, büyük olduğu yerler koyu, negatif olduğu yerler açık renktir

1. bileşen, 4'lerin ve 6'ların mürekkep izlerinin bulunduğu yerlerde koyudur; bu yüzden haritanın sağına düşerler. Mürekkep izleri koyu piksellere denk geldiğinde tarama yüksek puan alır.

challenge icon

Görev

Orta

Bir hat öğretmeni, insanların bir rakamı yazma biçimlerini görmek istiyor. Program rakamı okur ve başlangıç kodu taramaları X içinde tutar.

  1. X üzerinde 3 bileşenli PCA uydur.
  2. i bileşenini axs[i] üzerinde, cmap="gray_r" kullanarak 8'e 8'lik bir görüntü olarak çiz ve başlığını Component 1 ile Component 3 arasında ayarla.
  3. Grafiği göster.

2'ler için şu görüntüyü çizer. Coddy daha sonra panellerini açıklar:

El yazısıyla yazılmış 2'lerin üç adet 8'e 8 bileşen görüntüsü; başlıkları Component 1, Component 2 ve Component 3'tür ve her birinde koyu ve açık çizgiler bulunur

Kendin dene

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

# Girdiden okunan bir rakamın her taraması: satır başına 64 piksel
d = int(input())
digits = load_digits()
X = digits.data[digits.target == d]

# Aşağıdaki satırı değiştirmeyin
fig, axs = plt.subplots(1, 3)

# 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