classification คือ

classification

หลังจากที่เราได้เรียนว่า Regression มีการเรียนรู้แบบไหนกันไปแล้วบ้าง ในบทความนี้เราจะมาพูดถึงการวิเคราะห์ข้อมูลแบบ Classification โดยหัวข้อในบทนี้ที่เราจะกล่าว ประกอบไปด้วย

  • Classification คือ อะไร 
  • Algorithm ของ Classification มีอะไรบ้าง

classification คือ อะไร

classification คือ การแบ่งข้อมูลออกเป็นหมวดหมู่ (categories) โดยกระบวนการของ classification แบบคร่าวๆคือ การที่มันพยายามที่จะประมาณการข้อมูล x ใน training set ของเราและแสดงผล Y ออกมาในรูปแบบของหมวดหมู่ที่แบ่งแยกกันโดยชัดเจน (discrete) ซึ่งสิ่งที่สำคัญอีกอย่างของการประมาณการแบบนี้คือ เราต้องมีการกำหนด target หรือเป้าหมายว่าเราต้องการอะไร(ต้องเป็นแบบ discrete ด้วยนะ) เช่น เราต้องการทราบว่า นักเรียนห้อง A สอบผ่านหรือสอบตก เมื่อเรานำข้อมูลของนักเรียนห้อง A มาผ่านการวิเคราะห์แบบ classification ผลที่ออกมาก็จะเป็น 2 แบบ สอบผ่านและสอบตก หรือการอนุมัติสินเชื่อ เราก็อาจจะตั้ง target ว่า ผ่านสินเชื่อหรือไม่ผ่านสินเชื่อ เป็นต้น แต่ทั้งนี้ target ของเราไม่ได้แบ่งออกเป็นแค่ 2 แบบ คือผ่านไม่ผ่าน แต่เราสามารถกำหนด target มากกว่า 2 ก็ได้ เช่น แบ่งกลุ่มดอกไม้ออกเป็น 4 กลุ่ม ตามตัวแปร(features)ต่อไปนี้คือ สี ขนาดดอก แหล่งที่เกิด บลาๆ เป็นต้น

Algorithm ของ Classification มีอะไรบ้าง

Algorithm ของ classification นั้นมีเยอะมาก ในที่นี้เราจะยกตัวอย่างที่เราใช้กันบ่อยๆก่อนนะคะ นั่นคือ 

  1. Linear Classification
    • Logistic regression
    • Linear discriminant analysis (LDA)
    • Naive Bayes classifier
  2. decision tree
  3. Artificial Nueral Networks
  4. K-nearest Neighbor(KNN)
  5. Support vector Machine(SVM) 

linear Classification

linear classification เป็นการแบ่งข้อมูลออกเป็นกลุ่มๆ โดยใช้เส้นตรงเป็นตัวแบ่ง ซึ่งเส้นตรงที่ใช้แบ่งนี้เราเรียกว่า Decistion boundary ซึ่ง decision boundary นี้ ก็แบ่งออกเป็นหลายประเภท แบบแรกคือ

  • line เป็นเส้นตรงที่แบ่งข้อมูลเมื่อเรามี features 2 features
  • plane เป็นเส้นตรงที่แบ่งข้อมูลเมื่อเรามี features 3 features
  • hyperplane เป็นเส้นตรงที่แบ่งข้อมูลเมื่อเรามี features มากกว่า 3 features

ทีนี้ algorithm ที่ใช้แบ่งข้อมูลก็จะแตกต่างกันออกไป ในที่เราได้ลองศึกษามา(อาาจะมีมากกว่านี้) เราขอแบ่งออกเป็น 3 แบบคือ

  • Logistic regression เป็นการแบ่งข้อมูลออกเป็น 2 กลุ่ม หรือมากกว่า 2 กลุ่ม โดยกำหนดให้กลุ่มที่ต้องการเท่ากับ 1 และกลุ่มที่ไม่ต้องการเท่ากับ 0 ดังนั้นค่าที่ออกมาจะอยู่ระหว่าง 0-1 เป็นสมการที่ใช้เรื่อง probability เข้ามาแบ่งข้อมูล โดยมีจุด threshold (p=0.5) เป็นจุดแบ่งข้อมูล สมการหลักที่ใช้คือ สมการ sigmoid function หรือ logistic function (มันคืออันเดียวกัน) ซึ่งรูปแบบสมการและลักษณะกราฟจะเป็นเหมือนรูปด้านล่าง
  • Linear discriminant analysis (LDA) เป็นการแบ่งข้อมูล โดยใช้เทคนิคการลดมิติ (reduce dimensional) จุดประสงค์ของวิธีนี้คือการลดมิติของรูปเพื่อให้ได้ตัวแบ่งข้อมูลที่ดีและยังลดการเกิด overfitting ด้วย ซึ่งวิธีการจะคล้ายๆกับ Principle component analysis (แต่ PCA จะจัดอยู่ในหมวด unsupervised learning ซึ่งเราจะยังไม่พูดถึงในบทนี้) ซึ่งวิธีการของมันคือทำการ maximize the distance between means และ การ minimize the variation เพื่อสร้างแกนในการแบ่งอันใหม่ ซึ่งมันมีประโยชน์กับข้อมูลที่มีหลาย features เนื่องจากเราไม่สามารถที่จะพล็อตกราฟหลายมิติได้ (10-features = 10 dimension) เราจึงใช้ LDA ในการพล็อตกราฟกลุ่มของข้อมูลที่มีหลาย features ให้อยู่ในภาพ 2 มิติ ดังภาพด้านล่าง
linear Discrimination
  • Naive Bayes classifier เป็น algorithm ที่มาจาก Bayes’ Theorem ซึ่งเป็นการแบ่งกลุ่มข้อมูลโดยอาศัยความน่าจะเป็น (Probability) โดยมีเงื่อนไข 2 ข้อคือ
    • แต่ละละเหตุการณ์ที่เกิดขึ้นไม่มีความสัมพันธ์กัน(independence) พูดง่ายๆคือ แต่ละ features ไม่ส่งผลต่อกัน
    • ให้ความสำคัญหรือน้ำหนักของแต่ละ features เท่าๆกันซึ่งสมการที่ใช้ทั่วไปคือ

Decision tree

ต้นไม้ตัดสินใจ เป็นการจำแนกข้อมูลที่นิยมมาก เนื่องจากไม่ต้องอาศัยความรู้มากและไม่จำเป็นที่จะต้องกำหนดค่า parameters ข้อมูลสามารถเก็บได้หลากหลายมิติ รูปแบบเข้าใจง่าย สร้างง่าย เร็ว และผลการจำแนกมักให้ความแม่นยำสูง ซึ่งต้นไม้การตัดสินใจจะประกอบไปด้วย

  • Root Node – เงื่อนไขหรือลักษณะ(attribute or feature)ของข้อมูล
  • Branch – เป็นกิ่งก้านที่เชื่อมไปยังแต่ละ internal node หรือ Leaf Node อันต่อไป
  • Internal node – เป็น feature ที่เราใช้ตัดสินใจต่อจาก root node หรือต่อจาก internal node อันก่อนหน้า 
  • Leaf Node – เป็นผลสุดท้ายที่เราทำนายออกมา
decision tree

ซึ่ง decision tree แบ่งออกเป็น 2 ประเภทหลัก คือ

  1. Classification tree – เป็นการแบ่งกลุ่ม เมื่อข้อมูลของเราเป็น discrete value 
  2. Regression tree – เป็นการแบ่งกลุ่ม เมื่อข้อมูลของเราเป็นแบบต่อเนื่อง (continuous value)

Artificial Neural Network

เป็นการแบ่งกลุ่มข้อมูล โดยลักษณะการทำงานจะเลียนแบบการทำงานของระบบประสาท ซึ่งการทำงานจะแบ่งออกเป็น 3 layers ด้วยกันคือ

  1. input layer – ในส่วนที่ 1 จะเป็นการที่เราใส่ข้อมูล features ต่าง ๆของเราลงไป
  2. hidden layer – เป็นส่วนที่คอมพิวเตอร์จะทำการคำนวณความสำพันธ์ของข้อมูล โดยอาศัยหลักการถ่วงน้ำหนักในคณิตศาสตร์ ถ่วงน้ำหนักแต่ละ features ของเรา hidden layer จะมีกี่อันก็ได้ อยู่ที่เราจะเลือกระดับความยาก
  3. output layer – เป็นระดับสุดท้ายที่จะแสดงผล y ออกมา

ซึ่ง Artificial Neural Network มีการนำไปปรับใช้หลากหลายมาก ไม่ว่าจะเป็น การทำ face detection หรือ การ shopping online ที่ระบบคอมพิวเตอร์มีการแนะนำสินค้าที่ใกล้เคียงหรือสินค้าที่ต้องซื้อไปใช้ร่วมกันให้คุณ

K-nearest Neighbor (KNN)

K-nearest Neighbor มาจาก concept ที่ว่า อะไรที่เหมือนๆกัน ก็ควรที่จะอยู่ใกล้กัน และยังเป็น algorithm ที่ง่ายเพราะไม่ต้องหาค่า parameter ที่ใช้ในการแบ่งข้อมูลแบบ logistic regression เป็น algorithm ที่เหมาะกับการทำ credit rating, การให้กู้ยืม, การจัดประเภทหนัง เป็นต้น
ซึ่งวิธีการทำงานคร่าวๆ ตามภาพด้านล่างเลย

K-nearest Neighbor

เรามีข้อมูล training set ที่เป็นกลุ่มข้อมูล 2 แบบ คือ สีเขียวและสีส้ม ต่อมา เรามีข้อมูลอันใหม่มา 1 อัน คือ X และเราอยากรู้ว่าจุด X นี้จะอยู่กลุ่มไหน เราก็เลยลองกำหนด K = 5 คือ จำนวนกลุ่มข้อมูลที่อยู่ใกล้ X 5 จำนวน จากรูป จะเห็นได้ว่า X ถูกจัดอยู่ในกลุ่มของสีส้ม เพราะมีสีส้มอยู่ใกล้ 4 อัน

Support vector machine (SVM)

เป็น algorithm ที่ควรจะมีพื้นฐานของ linear regression และ logistic regression เพราะจุดประสงค์ของ เพราะหลักการจะคล้ายๆกัน แต่ต่างกันที่ SVM คือเป็นวิธีหาเส้นแบ่งกลุ่มข้อมูลกรณีที่มี N-มิติ (hyperplane) โดยใช้วิธี maximize margin (maximize margin คือหาค่าสูงสุดของระยะทางระหว่าง support vector ทั้ง 2 กลุ่ม)

support vector machine

ทั้งหมดนี้ถือเป็น algorithm ในหมวด classification ซึ่งเราจะเลือกใช้อันไหนนั้นก็ขึ้นอยู่กับจุดประสงค์และรูปแบบข้อมูลของเราด้วย ในบทต่อไปเราจะเจาะลึกลงไปในเรื่อง logistic regression