Support Vector Machine ( SVM ) เป็น Algorithm แบบ Supervised Learning ที่ใช้สำหรับแก้ปัญหาการจัดกลุ่มข้อมูล Classification และการวิเคราะห์การถดถอย Regression ซึ่งจะมีความคล้ายคลึงกับ Logistic Regression ( LR )
Support Vector Machine
Support Vector Machine จะเป็นการจัดกลุ่มข้อมูล Classification โดยการแบ่ง Class ของข้อมูลออกจากกัน ซึ่งสามารถใช้การแบ่งด้วยสมการเชิงเส้นได้ทั้ง Linear และ Non Linear
การจัดกลุ่มข้อมูล Classification ไม่ใช่เรื่องยาก สามารถแบ่งข้อมูลได้หลาย Model โดยใช้สมการเส้นตรง Linear แต่ปัญหาคือแล้ว Model ไหนที่ดีที่สุด ซึ่ง Support Vector Machine จะใช้ในการหา Hyperplan ซึ่งก็คือ Model ที่ดีที่สุด จากระยะห่างสูงสุดของแต่ละ Class ข้อมูล Maximum Margin ในแต่ละมิติ N – Dimension โดย N เป็นจำนวนของ Feature ( 2 มิติ หรือ 3 มิติ ก็ว่ากันไป )
Hyperplane จะเกิดจากการลากเส้นผ่าน Support Vector ซึ่งก็คือ Data Point ที่มีระยะห่างของ Maximum Margin มากที่สุดของแต่ละ Class ข้อมูล ซึ่งจะถูกเรียกว่า Dicision Line กรณีที่ข้อมูลเป็นแบบ 2 มิติ แต่ในทางคณิตศาสตร์จะถูกเรียกว่า Hyperplane เนื่องจากใน Dimension ที่มากกว่า 2 มิติ จะไม่เป็นเส้นนั่นเอง
Linear Kernel
โดยปกติเราสามารถนำ Support Vector Machine มา Implement ด้วย sklearn ใน Python แต่ข้อมูลที่เป็น Non Linear จะไม่สามารถหา Linear Hyperplane ได้ จึงมีการใช้ Kernel กับข้อมูลที่เป็น Non Linear ในการหา Pattern and Relation เพื่อให้ได้ผลลัพธ์ที่มีความถูกต้องแม่นยำสูง
การทำงานจะมีการเรียกใช้งาน Kernel Function ซึ่งจะมีการ Map ระหว่าง Input Space บน Non Linear กับ Feature Space บน Dimension ที่สูงกว่า ทำให้ Support Vector Machine ทำ Linear Separable ระหว่าง Feature Space บน Dimension ที่สูงกว่าได้อย่างปกติ
อ่านเพิ่มเติม : https://bit.ly/2BdlyTB, https://bit.ly/2rqKUrr
Leave a Reply