Machine Learning Algorithms (Ep.2/2)

Machine Learning Algorithms (Ep.2/2)
Photo by Arseny Togulev on Unsplash

อ่าน Ep.1 ที่นี่ -> https://www.nerd-data.com/ml_ep1/

Photo by Kier in Sight on Unsplash

4. Clustering Algorithms

  • เป็น Unsupervised Learning ใช้เพื่อจัดกลุ่มข้อมูล ไปเป็น Clusters แตกต่างกับ Supervised Learning คือ Unsupervised Learning ไม่จำเป็นต้องรู้ Target
  • เทคนิคนี้มีประโยชน์ ในการค้นหา Patterns และ Trends ของข้อมูล มักใช้ในระหว่างขั้นตอนการทำ EDA (Exploratory Data Analysis) เพื่อทำความเข้าใจเพิ่มเติมเกี่ยวกับข้อมูล
  • นอกจากนี้ ยังสามารถใช้การจัดกลุ่มเพื่อแบ่งชุดข้อมูลออกเป็นส่วน ๆ เช่น ใช้ในการแบ่งกลุ่มลูกค้า
Algorithms
  • K-mode Clustering - เป็น Clustering Algorithm ที่ออกแบบมาสำหรับข้อมูล Category สามารถจัดการข้อมูลที่มีมิติสูงได้ดี และ ใช้งานได้ค่อนข้างง่าย
  • DBSCAN - เป็น Clustering บนพื้นฐานของ Density สามารถจัดการกับกลุ่มที่มีรูปร่างใด ๆ ได้ ทนทานต่อ Noise และ Outliers
  • Spectral Clustering - Clustering Algorithm ที่ใช้ Eigen Vectors ของเมทริกซ์ความคล้ายคลึงกันเพื่อจัดกลุ่มจุดข้อมูลเป็น Cluster สามารถจัดการกับข้อมูลที่แยกจากกันแบบ Non-linear ได้อย่างมีประสิทธิภาพ
Photo by Alexander Grey on Unsplash

5. Time Series Algorithms

  • เป็นเทคนิคที่ใช้ในการวิเคราะห์ข้อมูลที่ขึ้นกับเวลา โดยจะคำนึงถึง Temporal Redundancy ระหว่าง Data Points ต่าง ในชุดข้อมูล ซึ่งมีความสำคัญอย่างยิ่ง เมื่อพยายามทำนายค่าในอนาคต
  • ถูกใช้ใน Applications เช่น การทำนายความต้องการ Products การทำนายยอดขาย หรือ การวิเคราะห์พฤติกรรมของลูกค้าเมื่อเวลาผ่านไป นอกจากนี้ยังสามารถใช้เพื่อตรวจจับความผิดปกติ (Anomalies) หรือ การเปลี่ยนแปลงของ Trends ในข้อมูล
Algorithms
  • K-Prophet Time Series Modeling - ถูกพัฒนาโดย Facebook (Meta) ออกแบบมาให้ใช้งานง่าย จุดแข็ง ได้แก่ การจัดการข้อมูลที่ขาดหายไป และ การเปลี่ยนแปลงของแนวโน้ม, ทนทานต่อค่า Outliers, ความรวดเร็วในการ Fit
  • Autoregressive Integrated Moving Average (ARIMA) - วิธีการทางสถิติที่จำลองความสัมพันธ์ระหว่างข้อมูลกับค่า Lagged สามารถจัดการกับ Time Series ได้หลากหลายรูปแบบ แต่การ Implement อาจยากกว่าวิธีอื่นๆ
  • Exponential Smoothing - การทำนายโดยใช้ค่าเฉลี่ยถ่วงน้ำหนักของข้อมูลในอดีต .. ง่ายในการดำเนินการ และ สามารถใช้กับข้อมูลได้หลากหลาย แต่บางกรณีอาจต้องใช้วิธีที่ซับซ้อนกว่า
Photo by Alexander Grey on Unsplash

6. Similarity Algorithms

  • ใช้เพื่อวัดความคล้ายคลึงกันระหว่างคู่ของจุดข้อมูล (Pairs of Data Points) หรือ ข้อความ (Text)
  • Algorithms เหล่านี้ จะวัดระยะห่างระหว่างจุดข้อมูล 2 จุด (เช่น Euclidean Distance) หรือ ความคล้ายคลึงกันของข้อความ (เช่น Levenshtein)
  • มีการใช้งานที่หลากหลาย แต่มีประโยชน์อย่างยิ่งในเรื่อง Recommendations สามารถใช้เพื่อระบุรายการ (Items) ที่คล้ายกัน หรือ เนื้อหา (Contents) ที่เกี่ยวข้องกับผู้ใช้
Algorithms
  • Euclidean Distance - เป็นการวัดระยะของเส้นตรงระหว่าง 2 Data Points
  • Cosine Similarity - เป็นการวัดความคล้ายระหว่าง 2 Vectors บนพื้นฐานของมุม (Angle)
  • Levenshtein Algorithm - วัดความเหมือนระหว่าง 2 Strings โดยดูจากจำนวนต่ำสุดของ Single-Character ที่มีการแก้ไข .. มักใช้ในการตรวจสอบตัวสะกด และ การจับคู่ string
  • Jaro-Winkler Algorithm - วัดความเหมือนระหว่าง 2 Strings โดยดูจาก จำนวน Characters ที่ Match และ จำนวน Transpositions .. เหมือนกับ Levenshtein Algorithm .. ใช้สำหรับงาน Record Linkage และ Entity Resolution
  • Singular Value Decomposition (SVD) - วิธีการแยกตัวประกอบของเมทริกซ์ให้เป็นผลคูณของเมทริกซ์ 3 ตัว ซึ่งเป็นส่วนประกอบสำคัญ ของ Recommendation Systems

******

ข้อมูลอ้างอิง - https://terenceshin.medium.com/all-machine-learning-algorithms-you-should-know-for-2023-843dba11419c