Memvisualisasikan transformasi PCA

Unsupervised Learning in Python

Benjamin Wilson

Director of Research at lateral.io

Reduksi dimensi

  • Penyimpanan dan komputasi lebih efisien
  • Menghapus fitur "noise" yang kurang informatif
  • ... yang mengganggu tugas prediksi, mis. klasifikasi, regresi
Unsupervised Learning in Python

Principal Component Analysis

  • PCA = "Principal Component Analysis"
  • Teknik dasar untuk reduksi dimensi
  • Langkah pertama: "dekorrelasi" (dibahas di sini)
  • Langkah kedua: mengurangi dimensi (dibahas nanti)
Unsupervised Learning in Python

PCA menyelaraskan data dengan sumbu

  • Memutar sampel data agar selaras dengan sumbu
  • Menggeser sampel sehingga memiliki mean 0
  • Tidak ada informasi yang hilang

plot sebar data wine dengan sumbu diputar

Unsupervised Learning in Python

PCA mengikuti pola fit/transform

  • PCA adalah komponen scikit-learn seperti KMeans atau StandardScaler
  • fit() mempelajari transformasi dari data yang diberikan
  • transform() menerapkan transformasi yang dipelajari
  • transform() juga bisa diterapkan ke data baru
Unsupervised Learning in Python

Menggunakan PCA scikit-learn

  • samples = array dua fitur (total_phenols & od280)
[[ 2.8   3.92]
 ...
 [ 2.05  1.6 ]]
from sklearn.decomposition import PCA

model = PCA() model.fit(samples)
PCA()
transformed = model.transform(samples)
Unsupervised Learning in Python

Fitur PCA

  • Baris pada transformed = sampel
  • Kolom pada transformed = "fitur PCA"
  • Tiap baris berisi nilai fitur PCA untuk sampel terkait
print(transformed)
[[  1.32771994e+00   4.51396070e-01]
 [  8.32496068e-01   2.33099664e-01]
 ...
 [ -9.33526935e-01  -4.60559297e-01]]
Unsupervised Learning in Python

Fitur PCA tidak berkorelasi

  • Fitur dalam dataset sering berkorelasi, mis. total_phenols dan od280
  • PCA meluruskan data dengan sumbu
  • Fitur PCA hasilnya tidak berkorelasi linier ("dekorrelasi")

plot sebar data wine dengan sumbu diputar

Unsupervised Learning in Python

Korelasi Pearson

  • Mengukur korelasi linier antar fitur
  • Nilai antara -1 dan 1
  • Nilai 0 berarti tidak ada korelasi linier

3 plot sebar dengan korelasi 0.7, 0, dan -0.7

Unsupervised Learning in Python

Komponen utama

  • "Komponen utama" = arah varians
  • PCA menyelaraskan komponen utama dengan sumbu

plot sebar data wine dengan 2 panah merah menunjukkan arah komponen utama (sumbu diputar)

Unsupervised Learning in Python

Komponen utama

  • Tersedia sebagai atribut components_ pada objek PCA
  • Tiap baris mendefinisikan perpindahan dari mean
print(model.components_)
[[ 0.64116665  0.76740167]
 [-0.76740167  0.64116665]]
Unsupervised Learning in Python

Ayo berlatih!

Unsupervised Learning in Python

Preparing Video For Download...