Machine Learning Algorithms (Ep.2/2)
อ่าน Ep.1 ที่นี่ -> https://www.nerd-data.com/ml_ep1/
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 ได้อย่างมีประสิทธิภาพ
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 - การทำนายโดยใช้ค่าเฉลี่ยถ่วงน้ำหนักของข้อมูลในอดีต .. ง่ายในการดำเนินการ และ สามารถใช้กับข้อมูลได้หลากหลาย แต่บางกรณีอาจต้องใช้วิธีที่ซับซ้อนกว่า
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