การจำแนกประเภทด้วย KNN

วันนี้จะมาแนะนำอัลกอริธึมการจำแนกประเภทที่เรียกว่า K-nearest neighbours (KNN) หรือขั้นตอนวิธีการค้นหาเพื่อนบ้านใกล้สุด K ตัว ข้อมูลที่นำมาจำแนกเพื่อเป็น demo คือ Iris data set เป็นข้อมูลดอกไม้ 3 ประเภท

บทความอยู่ที่ http://nbviewer.ipython.org/url/wittawat.com/upload/iris-knn-analysis.ipynb

หากต้องการรายละเอียดตรงไหน เชิญ comment ด้านล่างครับ

Posted by

July 22, 2015

การลดจำนวน feature สำหรับการเรียนรู้แบบมีผู้สอน

ในการเรียนรู้แบบมีผู้สอน (supervised learning) การใช้ feature (ลักษณะเด่น) หรือตัวแปรทั้งหมดที่มีอยู่สำหรับฝึกสอนระบบถือเป็นเรื่องปกติ แต่มีบางกรณีที่จำนวน feature ที่มีอยู่มีมากเกินไปจนทำให้ยากต่อการฝึกสอนระบบให้ได้ดี ในกรณีนี้ควรทำอย่างไร? บทความนี้จะพูดถึงภาพรวมกว้างๆของการลดจำนวน feature เพื่อสอนระบบให้ได้อย่างมีประสิทธิภาพ

ตัวอย่างของปัญหาที่มีตัวแปรมากคือ งานด้านการจำแนกเอกสาร (text classification) การสร้าง feature ที่นิยมใช้กันมากในงานด้านนี้คือ bag of words กล่าวคือให้หนึ่งคำเป็นหนึ่ง feature แล้วค่าของ feature นั้นๆคือจำนวนครั้งของคำนั้นที่เกิดขึ้นในเอกสาร การใช้ bag of words แบบนี้จะทำให้จำนวน feature เท่ากับจำนวนคำทั้งหมดในคลังข้อความ ซึ่งโดยทั่วไปจะมีมากกว่า 20000 คำ นั่นแปลว่าระบบต้องเรียนรู้ในปริภูมิที่ใหญ่มากกว่า 20000 มิติ

การฝึกสอนระบบโดยใช้จำนวน feature มากๆ อาจเกิดปัญหาดังต่อไปนี้ได้

  • noise ใน feature อาจกระทบกับการเรียนรู้ ถ้ามี feature จำนวนมาก noise ก็เยอะตาม
  • สิ้นเปลืองเนื้อที่ในการเก็บข้อมูล
  • การฝึกสอนกินเวลามาก
  • โมเดลที่ได้มาไม่สามารถตีความได้ง่ายเนื่องจากขึ้นอยู่กับตัวแปรจำนวนมาก

ด้วยเหตุนี้จึงมีงานวิจัยด้าน dimensionality reduction เกิดขึ้นมาเพื่อแก้ปัญหาดังกล่าว งานวิจัยด้านนี้สามารถแบ่งได้เป็น 2 หมวดกว้างๆคือ feature extraction และ feature selection

อ่านต่อ

Posted by

July 12, 2015