2.1.10
SVR
สรุป
- SVR ใช้ ε-insensitive zone ทำให้ความคลาดเคลื่อนเล็กๆ ถือว่าเป็นศูนย์ ลดผลกระทบของ noise และ outlier
- ด้วยเคอร์เนลสามารถเรียนรู้ความสัมพันธ์ไม่เชิงเส้นได้อย่างยืดหยุ่น โดยใช้จำนวน support vector เพียงไม่กี่ตัว
- ปรับ
C,epsilon,gammaเพื่อควบคุมความสามารถในการทั่วไปและความเรียบของฟังก์ชัน - การทำสเกลฟีเจอร์เป็นสิ่งจำเป็น ควรใช้ pipeline เพื่อผูกขั้นตอนการเตรียมข้อมูลกับการเรียนรู้เข้าด้วยกัน
สัญชาตญาณ #
การเข้าใจวิธีนี้ควรดูสมมติฐานของโมเดล ลักษณะข้อมูล และผลของการตั้งค่าพารามิเตอร์ต่อการทั่วไปของโมเดล
คำอธิบายโดยละเอียด #
สูตรสำคัญ #
ปัญหาการเพิ่มประสิทธิภาพมีรูป
$$ \min_{\mathbf{w}, b, \boldsymbol{\xi}, \boldsymbol{\xi}^*} \frac{1}{2} \|\mathbf{w}\|^2 + C \sum_{i=1}^{n} (\xi_i + \xi_i^*) $$พร้อมข้อจำกัด
$$ \begin{aligned} y_i - (\mathbf{w}^\top \phi(\mathbf{x}_i) + b) &\le \epsilon + \xi_i, \\ (\mathbf{w}^\top \phi(\mathbf{x}_i) + b) - y_i &\le \epsilon + \xi_i^*, \\ \xi_i, \xi_i^* &\ge 0 \end{aligned} $$\(\phi\) คือการแปลงฟีเจอร์ผ่านเคอร์เนล การแก้ปัญหาในรูปเชิงคู่จะได้ค่าสัมประสิทธิ์เฉพาะที่ support vector
ทดลองด้วย Python #
โค้ดด้านล่างสร้างข้อมูลไม่เชิงเส้น เทรน SVR ด้วย RBF kernel และวาดเส้นประมาณ
| |
วิเคราะห์ผลลัพธ์ #
- การใช้ pipeline ทำให้การสเกลด้วยค่าเฉลี่ยของชุดฝึกถูกนำไปใช้กับชุดทดสอบโดยอัตโนมัติ ป้องกัน data leakage
- การปรับ
epsilonและCช่วยกำหนดจำนวนจุดที่ถูกถือว่าเป็น outlier และระดับการลงโทษเมื่อออกนอกท่อ - พารามิเตอร์
gammaของ RBF ควบคุมความโค้ง: ค่ายิ่งสูงยิ่งจับรายละเอียดเฉพาะพื้นที่ ค่ายิ่งต่ำยิ่งเรียบ
เอกสารอ้างอิง #
- Smola, A. J., & Schölkopf, B. (2004). A Tutorial on Support Vector Regression. Statistics and Computing, 14(3), 199 E22.
- Vapnik, V. (1995). The Nature of Statistical Learning Theory. Springer.