A little theory.
A lot of possibility.
เข้าใจไอเดีย ลองปรับโค้ด แล้วนำไปใช้จริง
คลัง Machine Learning ที่เริ่มจากความเข้าใจ ไม่ใช่แค่ copy & paste
เริ่มจากพื้นฐาน
แล้วต่อยอดตาม prerequisite
Linear Regression
ลากเส้นตรงให้ใกล้ข้อมูลมากที่สุด
โมเดลพื้นฐานสำหรับทำนายค่าตัวเลขและอธิบายว่าตัวแปรแต่ละตัวสัมพันธ์กับผลลัพธ์อย่างไร
ควรรู้มาก่อน สมการเส้นตรง ค่าเฉลี่ย และ error
k-Nearest Neighbors
ถามเพื่อนบ้านที่อยู่ใกล้ที่สุด
ไม่สร้างสมการล่วงหน้า แต่เก็บข้อมูลฝึกไว้และทำนายจากตัวอย่างใกล้เคียง
ควรรู้มาก่อน ระยะห่างและการปรับสเกลข้อมูล
Decision Tree
เปลี่ยนข้อมูลให้เป็นชุดคำถาม
เรียนรู้เงื่อนไขแล้วแยกทางไปสู่คำตอบ เหมาะกับงานที่ต้องอธิบายเหตุผลได้
ควรรู้มาก่อน เงื่อนไขแบบ if–else
Naive Bayes
รวมหลักฐานด้วยกฎของเบย์
คำนวณโอกาสของแต่ละคลาสโดยสมมติว่า feature เป็นอิสระกันเมื่อรู้คลาสแล้ว
ควรรู้มาก่อน ความน่าจะเป็นพื้นฐาน
K-Means Clustering
หากลุ่มที่ซ่อนอยู่ในข้อมูล
จับข้อมูลที่คล้ายกันมาอยู่ด้วยกัน โดยไม่ต้องบอกคำตอบล่วงหน้า เหมาะกับการแบ่งกลุ่มลูกค้าและค้นหาแพตเทิร์น
ควรรู้มาก่อน ระยะห่าง ค่าเฉลี่ย และ centroid
Polynomial Regression
ให้เส้นโค้งตามแพตเทิร์นของข้อมูล
ขยาย Linear Regression ด้วยกำลังของ feature เพื่อจับความสัมพันธ์ที่โค้ง โดยยังคงฝึกแบบเส้นตรงใน feature ใหม่
ควรรู้มาก่อน Linear Regression
Ridge Regression
คุมค่าน้ำหนักไม่ให้สุดโต่ง
Linear Regression ที่เพิ่มโทษ L2 เพื่อให้โมเดลนิ่งขึ้นเมื่อ feature จำนวนมากหรือสัมพันธ์กันเอง
ควรรู้มาก่อน Linear Regression และ L2 regularization
Lasso Regression
บีบน้ำหนักบางตัวให้เป็นศูนย์
Regression ที่ใช้โทษ L1 จึงช่วยเลือก feature ไปพร้อมกับการทำนาย
ควรรู้มาก่อน Linear Regression และ L1 regularization
Quantile Regression
ทำนายขอบล่าง กลาง หรือขอบบน
ประมาณ quantile ของผลลัพธ์แทนค่าเฉลี่ย จึงเห็นภาพการกระจายและรับมือ outlier ได้ดีขึ้น
ควรรู้มาก่อน Linear Regression และ loss function
Logistic Regression
เปลี่ยนคะแนนให้เป็นความน่าจะเป็น
ตัวจำแนกพื้นฐานที่สร้างเส้นแบ่งเชิงเส้นและส่งออก probability ผ่านฟังก์ชัน logistic
ควรรู้มาก่อน Linear Regression และความน่าจะเป็น
Linear Discriminant Analysis
หาแนวฉายที่แยกคลาสได้ชัดที่สุด
ใช้ค่าเฉลี่ยของคลาสและ covariance ร่วม เพื่อสร้างขอบเขตเส้นตรงที่แยกกลุ่ม
ควรรู้มาก่อน Naive Bayes, distribution และ covariance
Bagging
ฝึกหลายโมเดลจากข้อมูลคนละชุดแล้วโหวต
ลด variance ด้วย bootstrap samples และรวมคำตอบจากโมเดลฐานหลายตัว
ควรรู้มาก่อน Decision Tree และ bootstrap sampling
Weighted k-Nearest Neighbors
ให้เพื่อนบ้านที่ใกล้กว่า มีเสียงมากกว่า
ต่อยอด KNN ด้วยการถ่วงน้ำหนักตามระยะห่าง เพื่อให้ตัวอย่างที่คล้ายกันมากมีอิทธิพลมากขึ้น
ควรรู้มาก่อน k-Nearest Neighbors
Radius Neighbors
ถามเฉพาะเพื่อนบ้านที่อยู่ในรัศมีที่กำหนด
ไม่บังคับจำนวนเพื่อนบ้าน ใช้ทุกจุดในระยะ radius จึงปรับจำนวนผู้โหวตตามความหนาแน่นของข้อมูล
ควรรู้มาก่อน k-Nearest Neighbors
Regression Tree
ถามทีละข้อ แล้วตอบด้วยตัวเลขเฉลี่ยของกลุ่ม
ใช้โครงสร้างต้นไม้แบ่งข้อมูลเป็นบริเวณ แต่แต่ละใบให้ค่าต่อเนื่องแทนชื่อคลาส
ควรรู้มาก่อน Decision Tree และ Linear Regression
Multinomial Naive Bayes
นับคำแล้วดูว่าข้อความน่าจะอยู่หมวดไหน
ใช้ความถี่ของ feature ที่ไม่ติดลบเป็นหลักฐานจำแนกคลาส เหมาะกับตารางจำนวนคำ
ควรรู้มาก่อน Gaussian Naive Bayes และข้อมูลแบบ count
Bernoulli Naive Bayes
ดูทั้งคำที่มี และคำที่ไม่มี
แทน feature ด้วย 0/1 แล้วใช้การปรากฏและไม่ปรากฏเป็นหลักฐานของแต่ละคลาส
ควรรู้มาก่อน Gaussian Naive Bayes และข้อมูล binary
Complement Naive Bayes
เรียนรู้หมวดหนึ่งจากเอกสารที่อยู่นอกหมวดนั้น
ใช้สถิติของคลาสอื่นรวมกันเพื่อสร้างน้ำหนักคำ ช่วยเป็นทางเลือกเมื่อจำนวนเอกสารแต่ละหมวดไม่สมดุล
ควรรู้มาก่อน Gaussian Naive Bayes ข้อมูลแบบ count และ class imbalance
Mini Batch K-Means
ขยับศูนย์กลางทีละชุดเล็ก เพื่อทำงานกับข้อมูลจำนวนมาก
ประมาณคำตอบแบบ K-Means โดยใช้ mini batch ในการอัปเดต ลดงานต่อรอบแลกกับความคลาดเคลื่อนจากการสุ่ม
ควรรู้มาก่อน K-Means Clustering และ mini batch optimization
k-Medoids
เลือกสมาชิกจริงมาเป็นตัวแทนแต่ละกลุ่ม
ใช้ medoid ซึ่งเป็นจุดข้อมูลจริงแทนค่าเฉลี่ย และลดผลรวมระยะห่างถึงตัวแทน
ควรรู้มาก่อน K-Means Clustering และแนวคิด medoid
Multilayer Perceptron
ประกอบฟังก์ชันเล็ก ๆ ให้เรียนรู้รูปทรงซับซ้อน
โครงข่ายประสาทแบบ feed-forward ที่มี hidden layers และเรียนรู้น้ำหนักด้วย backpropagation
ควรรู้มาก่อน Perceptron, Linear Regression และ gradient descent
Elastic Net
ผสมข้อดีของ Ridge และ Lasso
ใช้ทั้ง L1 และ L2 เพื่อเลือก feature พร้อมรักษาเสถียรภาพเมื่อ feature คล้ายกัน
ควรรู้มาก่อน Ridge Regression และ Lasso Regression
Bayesian Regression
ทำนายพร้อมบอกความไม่แน่นอน
มองค่าน้ำหนักเป็นการกระจายความน่าจะเป็น แล้วอัปเดตความเชื่อเมื่อเห็นข้อมูล
ควรรู้มาก่อน Linear Regression, Naive Bayes และ Bayes theorem
Generalized Additive Model
รวมเส้นโค้งเล็ก ๆ ที่ยังอธิบายได้
สร้างผลลัพธ์จากผลรวมฟังก์ชันเรียบของแต่ละ feature จับ nonlinear pattern โดยยังดูผลของแต่ละตัวแปรได้
ควรรู้มาก่อน Polynomial Regression และ Ridge Regression
Quadratic Discriminant Analysis
ให้แต่ละคลาสมีรูปทรงของตัวเอง
คล้าย LDA แต่ประมาณ covariance แยกต่อคลาส จึงสร้างขอบเขตโค้งได้
ควรรู้มาก่อน Linear Discriminant Analysis
Support Vector Machine
หาเส้นแบ่งที่มีพื้นที่ปลอดภัยกว้างที่สุด
เน้นตัวอย่างที่อยู่ใกล้ขอบเขตและสร้าง margin ระหว่างคลาส สามารถใช้ kernel เพื่อสร้างขอบเขตโค้ง
ควรรู้มาก่อน Logistic Regression, vector และระยะห่าง
Random Forest
รวมต้นไม้ที่เห็นข้อมูลและ feature ต่างกัน
Bagging ของ Decision Trees ที่สุ่มทั้งแถวข้อมูลและ feature เพื่อลดความเหมือนกันของต้นไม้
ควรรู้มาก่อน Decision Tree และ Bagging
Extra Trees
เพิ่มความสุ่มให้ต้นไม้แตกต่างกันยิ่งขึ้น
Extremely Randomized Trees สุ่ม threshold เพิ่มเติม แล้วรวมต้นไม้จำนวนมากเพื่อลด variance
ควรรู้มาก่อน Decision Tree และ Bagging
Gaussian Process
สร้างเส้นทำนายพร้อมช่วงความมั่นใจ
โมเดลแบบความน่าจะเป็นที่นิยามความคล้ายของจุดด้วย kernel และให้ distribution ของฟังก์ชันที่เป็นไปได้
ควรรู้มาก่อน Bayesian Regression, kernel และ covariance