PCA
Termasuk bagian Pembelajaran Tanpa Pengawasan dalam perjalanan Machine Learning di Coddy. Pelajaran 26 dari 51.
PCA mencari arah dengan sebaran paling luas, lalu arah terbaik yang tegak lurus terhadapnya, dan seterusnya: komponen. Pada wine twins:
Bayangan setiap baris pada beberapa komponen pertama menjadi fitur barunya:
from sklearn.decomposition import PCA
scaled = StandardScaler().fit_transform(X)
points = PCA(n_components=2).fit_transform(scaled)
print(X.shape, points.shape)Untuk semua 13 pengukuran wine, ini mencetak (178, 13) (178, 2).
Skalakan terlebih dahulu. PCA mengejar sebaran, jadi fitur dengan satuan besar, seperti proline yang nilainya mencapai ratusan, unggul hanya karena ukurannya:
Tantangan
SedangSebuah laboratorium air menguji botol dari tiga mata air, masing-masing dengan 8 pengukuran. Bisakah peta 2D membedakan mata air tersebut? draw_springs(ax, points) memberi warna pada setiap titik 2D berdasarkan mata airnya.
- Skalakan
X, lalu kurangi dimensinya menjadi 2 komponen dengan PCA, dan simpan hasilnya kepoints. - Cetak jumlah fitur sebelum dan sesudahnya.
- Gambarkan titik-titik dengan
draw_springslalu tampilkan.
Untuk laboratorium lain, dengan 6 pengukuran:
From 6 features to 2Coddy menjelaskan petamu.
Coba sendiri
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA
# Laboratorium air: 8 pengukuran untuk setiap botol dari 120 botol yang berasal dari tiga mata air
waters = pd.read_csv("waters.csv")
X = waters.drop(columns="spring")
# Menampilkan titik-titik 2D dalam diagram sebar, satu kelompok per mata air, dengan legenda
def draw_springs(ax, points):
for spring in ["alpine", "volcanic", "coastal"]:
rows = (waters["spring"] == spring).to_numpy()
ax.scatter(points[rows, 0], points[rows, 1], s=16, label=spring)
ax.legend()
fig, ax = plt.subplots()
ax.set_title("Spring Waters in 2D")
ax.set_xlabel("First component")
ax.set_ylabel("Second component")
# Tulis kodemu di bawah ini
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Pembelajaran Tanpa Pengawasan
1Menemukan Kelompok
Belajar Tanpa LabelMengukur KemiripanK-Means secara ManualK-Means dengan scikit-learnRangkuman: Anggota Gym4Pengelompokan Hierarkis
Penggabungan Langkah demi LangkahModel AglomeratifDendrogramRingkasan: Ras Anjing7PCA dalam Praktik
Melihat 64 DimensiKomponen sebagai PolaKompres dan RekonstruksiPCA Sebelum ModelRangkuman: Pemindai Wajah10Proyek: Penjelajah Digit
Amati DigitnyaPerkecil dengan PCAKelompokkan DigitBeri Nama pada KelompokTemukan yang Tidak BiasaLatihan sendiri: Compiler Python online