2.4.4
Kernel PCA
สรุป
- Kernel PCA ใช้เคอร์เนลเพื่อฉายข้อมูลไปยัง space ที่มีมิติสูง แล้วหาองค์ประกอบหลักใน space นั้น
- จัดการรูปแบบไม่เชิงเส้นที่ PCA ธรรมดาทำไม่ได้ เช่น รูปโดนัทหรือวงกลมซ้อน
- ต้องเลือก kernel และพารามิเตอร์ (เช่น RBF
gamma) ให้เหมาะ ขึ้นกับรูปแบบข้อมูล - การคำนวณใช้เฉพาะเมทริกซ์เคอร์เนล จึงได้จากการแก้ปัญหา eigen decomposition ขนาด N×N
สัญชาตญาณ #
Kernel PCA ควรเข้าใจผ่านสมมติฐาน กลไกการปรับปรุงโมเดล และรูปแบบความผิดพลาดบนข้อมูลจริง เพื่อให้เลือกโมเดลและปรับพารามิเตอร์ได้อย่างเหมาะสม.
คำอธิบายโดยละเอียด #
ภาพรวม #
PCA ทำงานเชิงเส้น Kernel PCA ใช้เคอร์เนล \(K(x_i, x_j) = \phi(x_i)^\top \phi(x_j)\) เพื่อทำให้ dot product อยู่ใน space ที่มีมิติสูง แล้วทำ PCA ใน space นั้น (implicit)
ขั้นตอน #
- คำนวณเมทริกซ์เคอร์เนล \(K\)
- ทำให้ศูนย์กลาง: \(K’ = K - \mathbf{1}K/N - K\mathbf{1}/N + \mathbf{1}K\mathbf{1}/N^2\)
- แก้ \(K’ \alpha = \lambda \alpha\) และ normalize
- พิกัดองค์ประกอบหลักได้จาก \(\alpha\)
ตัวอย่าง Python #
| |
เคล็ดลับ #
kernel:rbf,poly,sigmoid- ปรับ
gamma,degree,coef0ให้เข้ากับสเกลข้อมูล - ใช้ร่วมกับ SVM หรือ k-means หลังลดมิติ
เอกสารอ้างอิง #
- Schölkopf, B., Smola, A., & Müller, K.-R. (1998). Nonlinear Component Analysis as a Kernel Eigenvalue Problem. Neural Computation.
- scikit-learn developers. (2024). Kernel PCA. https://scikit-learn.org/stable/modules/generated/sklearn.decomposition.KernelPCA.html