Introduction to Machine Learning
1. ความหมายของ Machine Learning
Machine Learning (ML) หรือ การเรียนรู้ของเครื่อง คือสาขาหนึ่งของปัญญาประดิษฐ์ (Artificial Intelligence) ที่เน้นการพัฒนาอัลกอริทึมและโมเดลทางสถิติที่ช่วยให้คอมพิวเตอร์สามารถ "เรียนรู้" จากข้อมูลและปรับปรุงประสิทธิภาพในการทำงานโดยอัตโนมัติ โดยไม่ต้องถูกโปรแกรมอย่างชัดเจนสำหรับทุกสถานการณ์
1.1 คำนิยาม
ตามคำนิยามของ Tom Mitchell (1997):
"A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E."
แปลความว่า: โปรแกรมคอมพิวเตอร์จะถือว่า "เรียนรู้" ได้ เมื่อประสิทธิภาพในการทำงาน (P) สำหรับงาน (T) นั้นๆ ดีขึ้นตามประสบการณ์ (E) ที่ได้รับ
1.2 ตัวอย่างการประยุกต์ใช้
- การจดจำใบหน้า (Face Recognition) - ระบบสามารถเรียนรู้จากภาพใบหน้าหลายพันภาพเพื่อระบุตัวตนของบุคคล
- ระบบแนะนำสินค้า (Recommendation Systems) - Netflix, Amazon ใช้ ML เพื่อแนะนำเนื้อหาหรือสินค้าที่เหมาะสมกับผู้ใช้แต่ละคน
- การตรวจจับสแปม (Spam Detection) - ระบบอีเมลเรียนรู้รูปแบบของอีเมลสแปมเพื่อกรองข้อความที่ไม่ต้องการ
- รถยนต์ขับขี่อัตโนมัติ (Autonomous Vehicles) - รถเรียนรู้จากสภาพแวดล้อมเพื่อตัดสินใจขับขี่อย่างปลอดภัย
- การวินิจฉัยโรค (Medical Diagnosis) - ช่วยแพทย์วิเคราะห์ภาพเอกซเรย์หรือผลตรวจเพื่อวินิจฉัยโรค
1.3 ความแตกต่างระหว่าง Traditional Programming และ Machine Learning
%%{init: {'theme':'base', 'themeVariables': { 'primaryColor':'#cc241d','primaryTextColor':'#ebdbb2','primaryBorderColor':'#d65d0e','lineColor':'#98971a','secondaryColor':'#458588','tertiaryColor':'#ebdbb2','background':'#282828','mainBkg':'#3c3836','secondBkg':'#504945','textColor':'#ebdbb2','fontSize':'16px'}}}%%
flowchart TB
subgraph Traditional["Traditional Programming"]
direction TB
A1[Input Data] --> B1[Rules/Logic]
B1 --> C1[Output]
end
subgraph ML["Machine Learning"]
direction TB
A2[Input Data] --> B2[Learning Algorithm]
D2[Output/Labels] --> B2
B2 --> C2[Model/Rules]
end
style Traditional fill:#3c3836,stroke:#d65d0e,stroke-width:2px
style ML fill:#3c3836,stroke:#98971a,stroke-width:2px
Traditional Programming:
- เราเขียนกฎ (Rules) และโลจิกที่ชัดเจน
- ใส่ข้อมูล (Input) เข้าไปในกฎเหล่านั้น
- ได้ผลลัพธ์ (Output) ออกมา
Machine Learning:
- เราให้ข้อมูล (Input) และคำตอบที่ต้องการ (Output/Labels)
- ให้อัลกอริทึมเรียนรู้รูปแบบและสร้างกฎ (Model) ขึ้นมาเอง
- นำโมเดลไปใช้ทำนายข้อมูลใหม่
2. ประเภทของ Machine Learning
Machine Learning แบ่งออกเป็น 4 ประเภทหลักตามลักษณะการเรียนรู้และข้อมูลที่ใช้
%%{init: {'theme':'base', 'themeVariables': { 'primaryColor':'#cc241d','primaryTextColor':'#ebdbb2','primaryBorderColor':'#d65d0e','lineColor':'#98971a','secondaryColor':'#458588','tertiaryColor':'#ebdbb2','background':'#282828','mainBkg':'#3c3836','secondBkg':'#504945','textColor':'#ebdbb2','fontSize':'16px'}}}%%
mindmap
root((Machine Learning))
Supervised Learning
Classification
Regression
Unsupervised Learning
Clustering
Dimensionality Reduction
Semi-Supervised Learning
Combination Approach
Reinforcement Learning
Agent-Environment
Reward-Based
2.1 Supervised Learning (การเรียนรู้แบบมีผู้สอน)
คำนิยาม: เป็นการเรียนรู้จากข้อมูลที่มี Labels หรือคำตอบที่ถูกต้องกำกับไว้แล้ว โดยโมเดลจะเรียนรู้ความสัมพันธ์ระหว่าง Input (X) และ Output (y)
สมการพื้นฐาน:
โดยที่:
- y = ตัวแปรเป้าหมาย (Target variable) หรือ Label ที่ต้องการทำนาย
- f = ฟังก์ชันที่โมเดลพยายามเรียนรู้
- X = ตัวแปรอิสระ (Features) หรือข้อมูลนำเข้า
- ε = ค่า Error หรือ Noise ในข้อมูล
แบ่งเป็น 2 ประเภทย่อย คือ Classification (การจำแนกประเภท) และ Regression (การถดถอย)
2.1.1 Classification (การจำแนกประเภท)
เป็นการทำนายค่าที่เป็นกลุ่มหรือประเภทที่แยกจากกันชัดเจน (Discrete/Categorical)
ตัวอย่าง:
- การวินิจฉัยว่าผู้ป่วยเป็นโรคหรือไม่ (มี 2 คลาส: Positive, Negative)
- การจำแนกอีเมลว่าเป็นสแปมหรือไม่ (Spam, Not Spam)
- การจดจำตัวเลขจากภาพ (0-9 = 10 คลาส)
อัลกอริทึมที่นิยม:
- Logistic Regression
- Decision Trees
- Random Forest
- Support Vector Machines (SVM)
- Neural Networks
- K-Nearest Neighbors (KNN)
2.1.2 Regression (การถดถอย)
เป็นการทำนายค่าที่เป็นตัวเลขต่อเนื่อง (Continuous)
ตัวอย่าง:
- ทำนายราคาบ้านจากขนาด, ทำเล, จำนวนห้อง
- ทำนายอุณหภูมิในอนาคต
- ทำนายยอดขายสินค้า
อัลกอริทึมที่นิยม:
- Linear Regression
- Polynomial Regression
- Ridge Regression / Lasso Regression
- Support Vector Regression (SVR)
- Decision Trees / Random Forest
- Gradient Boosting (XGBoost, LightGBM)
2.2 Unsupervised Learning (การเรียนรู้แบบไม่มีผู้สอน)
คำนิยาม: เป็นการเรียนรู้จากข้อมูลที่ไม่มี Labels กำกับ โมเดลจะพยายามค้นหารูปแบบ (Patterns) หรือโครงสร้าง (Structure) ที่ซ่อนอยู่ในข้อมูลเองโดยอัตโนมัติ
วัตถุประสงค์หลัก:
- ค้นหากลุ่มข้อมูลที่มีความคล้ายคลึงกัน
- ลดมิติของข้อมูล (Dimensionality Reduction)
- ค้นหาข้อมูลผิดปกติ (Anomaly Detection)
ประเภทย่อยที่สำคัญ คือ Clustering (การจัดกลุ่ม) และ Dimensionality Reduction (การลดมิติข้อมูล)
2.2.1 Clustering (การจัดกลุ่ม)
เป็นการแบ่งข้อมูลออกเป็นกลุ่มๆ โดยที่ข้อมูลในกลุ่มเดียวกันมีความคล้ายคลึงกันสูง
ตัวอย่างการใช้งาน:
- การแบ่งกลุ่มลูกค้าตามพฤติกรรมการซื้อ (Customer Segmentation)
- การจัดกลุ่มบทความข่าวตามหัวข้อ
- การแบ่งกลุ่มภาพที่คล้ายกัน
อัลกอริทึมที่นิยม:
- K-Means Clustering
- Hierarchical Clustering
- DBSCAN (Density-Based Spatial Clustering)
- Gaussian Mixture Models (GMM)
2.2.2 Dimensionality Reduction (การลดมิติข้อมูล)
เป็นการลดจำนวน Features ของข้อมูลโดยพยายามรักษาข้อมูลสำคัญไว้ให้มากที่สุด
ประโยชน์:
- ลดความซับซ้อนของข้อมูล
- ลดเวลาในการประมวลผล
- ช่วยในการ Visualize ข้อมูลหลายมิติ
- ลดปัญหา Curse of Dimensionality
อัลกอริทึมที่นิยม:
- Principal Component Analysis (PCA)
- t-SNE (t-Distributed Stochastic Neighbor Embedding)
- UMAP (Uniform Manifold Approximation and Projection)
- Autoencoders
2.3 Semi-Supervised Learning (การเรียนรู้แบบกึ่งมีผู้สอน)
คำนิยาม: เป็นการเรียนรู้ที่ใช้ข้อมูลทั้งที่มี Labels และไม่มี Labels ร่วมกัน โดยทั่วไปข้อมูลที่มี Labels จะมีจำนวนน้อย ในขณะที่ข้อมูลที่ไม่มี Labels มีจำนวนมาก
เหตุผลที่ใช้:
- การติด Labels ข้อมูลมีต้นทุนสูง (เวลา, ค่าแรง, ความเชี่ยวชาญ)
- ข้อมูลที่ไม่มี Labels หาได้ง่ายและมีจำนวนมาก
- ข้อมูลที่ไม่มี Labels ช่วยให้โมเดลเข้าใจโครงสร้างของข้อมูลได้ดีขึ้น
สถานการณ์ที่เหมาะสม:
- การจำแนกภาพทางการแพทย์ (ภาพมีมาก แต่การวินิจฉัยต้องใช้แพทย์ผู้เชี่ยวชาญ)
- การจำแนกข้อความ (ข้อความมีมาก แต่การติด Labels ต้องใช้เวลา)
- Speech Recognition (เสียงมีมาก แต่ Transcription ใช้เวลา)
เทคนิคที่นิยม:
- Self-Training
- Co-Training
- Graph-Based Methods
2.4 Reinforcement Learning (การเรียนรู้เชิงเสริมแรง)
คำนิยาม: เป็นการเรียนรู้ผ่านการทดลองและผิดพลาด (Trial and Error) โดย Agent (ตัวกระทำ) จะเรียนรู้จากการโต้ตอบกับ Environment (สภาพแวดล้อม) และได้รับ Reward (รางวัล) หรือ Penalty (โทษ) จากการกระทำ
องค์ประกอบหลัก:
%%{init: {'theme':'base', 'themeVariables': { 'primaryColor':'#cc241d','primaryTextColor':'#ebdbb2','primaryBorderColor':'#d65d0e','lineColor':'#98971a','secondaryColor':'#458588','tertiaryColor':'#ebdbb2','background':'#282828','mainBkg':'#3c3836','secondBkg':'#504945','textColor':'#ebdbb2','fontSize':'16px'}}}%%
graph LR
A[Agent] -->|Action| B[Environment]
B -->|State| A
B -->|Reward| A
style A fill:#3c3836,stroke:#458588,stroke-width:3px
style B fill:#3c3836,stroke:#98971a,stroke-width:3px
- Agent - ตัวกระทำที่เรียนรู้และตัดสินใจ
- Environment - สภาพแวดล้อมที่ Agent โต้ตอบด้วย
- State (s) - สถานะปัจจุบันของสภาพแวดล้อม
- Action (a) - การกระทำที่ Agent สามารถทำได้
- Reward (r) - ค่าตอบแทนที่ได้รับจากการกระทำ
- Policy (π) - กลยุทธ์ในการเลือกกระทำในแต่ละสถานะ
ตัวอย่างการใช้งาน:
- เกม (Chess, Go, Video Games)
- รถยนต์ขับขี่อัตโนมัติ
- หุ่นยนต์ (Robot Navigation, Manipulation)
- การจัดการพอร์ตการลงทุน
- ระบบแนะนำที่ปรับตัวตามผู้ใช้
อัลกอริทึมที่นิยม:
- Q-Learning
- Deep Q-Network (DQN)
- Policy Gradient Methods
- Actor-Critic Methods
- Proximal Policy Optimization (PPO)
3. Pipeline ของ ML Project
การพัฒนาโปรเจคท์ Machine Learning มีขั้นตอนหลัก 6 ขั้นตอน ดังแผนภาพ:
%%{init: {'theme':'base', 'themeVariables': { 'primaryColor':'#cc241d','primaryTextColor':'#ebdbb2','primaryBorderColor':'#d65d0e','lineColor':'#98971a','secondaryColor':'#458588','tertiaryColor':'#ebdbb2','background':'#282828','mainBkg':'#3c3836','secondBkg':'#504945','textColor':'#ebdbb2','fontSize':'16px'}}}%%
flowchart TD
A[1. Problem Definition] --> B[2. Data Collection]
B --> C[3. Data Preprocessing]
C --> D[4. Feature Engineering]
D --> E[5. Model Training]
E --> F[6. Model Evaluation]
F --> G{Good enough?}
G -->|No| H[Iterate]
H --> C
H --> D
H --> E
G -->|Yes| I[Deployment]
style A fill:#3c3836,stroke:#cc241d,stroke-width:3px
style B fill:#3c3836,stroke:#d65d0e,stroke-width:3px
style C fill:#3c3836,stroke:#d79921,stroke-width:3px
style D fill:#3c3836,stroke:#98971a,stroke-width:3px
style E fill:#3c3836,stroke:#458588,stroke-width:3px
style F fill:#3c3836,stroke:#b16286,stroke-width:3px
style I fill:#3c3836,stroke:#689d6a,stroke-width:3px
3.1 Problem Definition (การกำหนดปัญหา)
วัตถุประสงค์: กำหนดปัญหาและเป้าหมายของโปรเจคท์ให้ชัดเจน
คำถามสำคัญ:
- เราต้องการแก้ปัญหาอะไร?
- ปัญหานี้เป็น Classification, Regression หรือประเภทอื่น?
- Success Metrics คืออะไร? (เช่น Accuracy > 90%)
- ข้อจำกัดมีอะไรบ้าง? (เวลา, งบประมาณ, ทรัพยากร)
ตัวอย่าง:
- ปัญหา: ต้องการทำนายว่าลูกค้าจะยกเลิกบริการหรือไม่
- ประเภท: Binary Classification
- Metrics: Recall > 85% (เพราะต้องการจับลูกค้าที่จะยกเลิกให้ได้มากที่สุด)
- ข้อจำกัด: ต้องมีโมเดลที่ทำงานได้ภายใน 3 เดือน
3.2 Data Collection (การรวบรวมข้อมูล)
วัตถุประสงค์: รวบรวมข้อมูลที่มีคุณภาพและเพียงพอสำหรับการเทรนโมเดล
แหล่งข้อมูล:
- Database ภายในองค์กร
- Web Scraping
- API (Twitter, Google Maps, Weather API)
- Public Datasets (Kaggle, UCI Machine Learning Repository)
- Sensors และ IoT devices
- Surveys และ Forms
ข้อควรพิจารณา:
- ปริมาณข้อมูล: มีข้อมูลเพียงพอหรือไม่? (ยิ่งมากยิ่งดี)
- คุณภาพข้อมูล: ข้อมูลถูกต้อง ครบถ้วน ทันสมัยหรือไม่?
- ความสมดุล: ข้อมูลแต่ละคลาสมีสัดส่วนที่เหมาะสมหรือไม่? (Imbalanced data)
- Privacy & Ethics: การเก็บข้อมูลถูกกฎหมายและจริยธรรมหรือไม่?
3.3 Data Preprocessing (การเตรียมข้อมูล)
วัตถุประสงค์: ทำความสะอาดและเตรียมข้อมูลให้พร้อมสำหรับการวิเคราะห์
ขั้นตอนสำคัญ:
-
Handling Missing Values (จัดการค่าที่หายไป)
- ลบแถวหรือคอลัมน์ที่มี Missing values มาก
- Imputation: เติมค่าด้วย Mean, Median, Mode
- ใช้อัลกอริทึมทำนายค่าที่หายไป (KNN Imputer)
-
Handling Outliers (จัดการค่าผิดปกติ)
- ตรวจจับด้วย IQR (Interquartile Range), Z-score
- ลบ, แปลง (Transform) หรือเก็บไว้ (ขึ้นกับบริบท)
-
Data Transformation (การแปลงข้อมูล)
- Normalization: ปรับค่าให้อยู่ในช่วง [0,1]
- Standardization: ปรับให้มี Mean = 0, Std = 1
- Log/Square Root Transformation: จัดการ Skewed distribution
-
Encoding Categorical Variables (แปลงตัวแปรเชิงหมวดหมู่)
- Label Encoding: แปลงเป็นตัวเลข 0, 1, 2, ...
- One-Hot Encoding: สร้าง Binary columns สำหรับแต่ละค่า
- Target Encoding: ใช้ค่าเฉลี่ยของ Target
-
Feature Scaling (ปรับสเกลของ Features)
- จำเป็นสำหรับอัลกอริทึมที่ sensitive ต่อระยะทาง (KNN, SVM, Neural Networks)
3.4 Feature Engineering (การสร้าง Features)
วัตถุประสงค์: สร้าง Features ใหม่ที่มีประโยชน์และเลือก Features ที่เหมาะสม
เทคนิคการสร้าง Features:
- Feature Extraction: ดึงข้อมูลจาก raw data (เช่น ดึงวัน/เดือน/ปีจาก datetime)
- Feature Combination: รวม Features เดิมเป็น Features ใหม่ (เช่น BMI = Weight / Height²)
- Polynomial Features: สร้าง Features กำลังสอง, กำลังสาม
- Domain-Specific Features: ใช้ความรู้เฉพาะทางสร้าง Features (เช่น ในการวิเคราะห์หุ้น ใช้ Technical Indicators)
Feature Selection (การเลือก Features):
- Filter Methods: ใช้ค่าสถิติเลือก (Correlation, Chi-Square)
- Wrapper Methods: ใช้โมเดลทดสอบ (Recursive Feature Elimination)
- Embedded Methods: เลือก Features ในขณะเทรน (Lasso, Tree-based Importance)
ประโยชน์:
- เพิ่มประสิทธิภาพโมเดล
- ลดเวลาในการเทรน
- ลดปัญหา Overfitting
- ทำให้โมเดลเข้าใจง่ายขึ้น
3.5 Model Training (การเทรนโมเดล)
วัตถุประสงค์: เลือกอัลกอริทึมที่เหมาะสมและเทรนโมเดล
ขั้นตอน:
-
แบ่งข้อมูล (Data Splitting)
- Training Set (70-80%): ใช้เทรนโมเดล
- Validation Set (10-15%): ใช้ปรับ Hyperparameters
- Test Set (10-15%): ใช้ประเมินโมเดลขั้นสุดท้าย
-
เลือกอัลกอริทึม
- พิจารณาจากประเภทปัญหา (Classification/Regression)
- ขนาดข้อมูล
- ความซับซ้อนของปัญหา
- ข้อจำกัดด้านเวลาและทรัพยากร
-
เทรนโมเดล
- ใช้ Training set เทรนโมเดล
- ปรับ Hyperparameters ด้วย Validation set
Hyperparameter Tuning:
- Grid Search: ทดลองทุกค่าที่กำหนด
- Random Search: สุ่มค่าทดลอง
- Bayesian Optimization: ใช้อัลกอริทึมเลือกค่าที่น่าจะดีที่สุด
Cross-Validation:
- K-Fold Cross-Validation: แบ่งข้อมูลเป็น K ส่วน หมุนเวียนใช้แต่ละส่วนเป็น Validation
- ช่วยให้การประเมินน่าเชื่อถือมากขึ้น
3.6 Model Evaluation (การประเมินโมเดล)
วัตถุประสงค์: ประเมินประสิทธิภาพโมเดลด้วย Test Set และตรวจสอบปัญหาต่างๆ
การประเมินผล:
- ใช้ Metrics ที่เหมาะสมกับปัญหา (Accuracy, Precision, Recall, F1, MAE, MSE, R²)
- ทดสอบกับ Test Set ที่โมเดลไม่เคยเห็น
ตรวจสอบปัญหา:
- Overfitting: โมเดลทำนาย Training set ได้ดี แต่ Test set ได้แย่
- Underfitting: โมเดลทำนายทั้งสองชุดข้อมูลได้แย่
- Bias-Variance Tradeoff: สมดุลระหว่าง Bias (ความเอนเอียง) และ Variance (ความผันแปร)
การปรับปรุง:
- เพิ่มข้อมูล
- เปลี่ยน Features
- เปลี่ยนอัลกอริทึม
- ปรับ Hyperparameters
- ใช้ Regularization
4. การประเมินผลโมเดล
การประเมินผลโมเดล Machine Learning ต้องใช้ Metrics ที่เหมาะสมกับประเภทของปัญหา
4.1 Metrics สำหรับ Classification
4.1.1 Confusion Matrix
Confusion Matrix เป็นตารางแสดงผลการทำนายเทียบกับค่าจริง
%%{init: {'theme':'base', 'themeVariables': { 'primaryColor':'#cc241d','primaryTextColor':'#ebdbb2','primaryBorderColor':'#d65d0e','lineColor':'#98971a','secondaryColor':'#458588','tertiaryColor':'#ebdbb2','background':'#282828','mainBkg':'#3c3836','secondBkg':'#504945','textColor':'#ebdbb2','fontSize':'14px'}}}%%
graph TD
A[Confusion Matrix] --> B[True Positive TP]
A --> C[True Negative TN]
A --> D[False Positive FP]
A --> E[False Negative FN]
B --> F[ทำนาย Positive ถูกต้อง]
C --> G[ทำนาย Negative ถูกต้อง]
D --> H[ทำนาย Positive ผิด
Type I Error]
E --> I[ทำนาย Negative ผิด
Type II Error]
style A fill:#3c3836,stroke:#cc241d,stroke-width:3px
style B fill:#3c3836,stroke:#689d6a,stroke-width:2px
style C fill:#3c3836,stroke:#689d6a,stroke-width:2px
style D fill:#3c3836,stroke:#d65d0e,stroke-width:2px
style E fill:#3c3836,stroke:#d65d0e,stroke-width:2px
องค์ประกอบ:
- True Positive (TP): ทำนาย Positive ถูกต้อง
- True Negative (TN): ทำนาย Negative ถูกต้อง
- False Positive (FP): ทำนาย Positive แต่จริงๆ เป็น Negative (Type I Error)
- False Negative (FN): ทำนาย Negative แต่จริงๆ เป็น Positive (Type II Error)
4.1.2 Accuracy (ความแม่นยำ)
ความหมาย: สัดส่วนของการทำนายที่ถูกต้องทั้งหมด
เมื่อไหร่ควรใช้:
- ข้อมูลมีความสมดุล (Balanced dataset)
- ต้นทุนของ False Positive และ False Negative เท่ากัน
ข้อจำกัด:
- ไม่เหมาะกับข้อมูลไม่สมดุล (Imbalanced data)
- ตัวอย่าง: มีมะเร็ง 1%, ไม่มี 99% → โมเดลที่ทำนายว่า "ไม่มี" ทุกคน ก็ได้ Accuracy 99%!
4.1.3 Precision (ความแม่นยำของการทำนาย Positive)
ความหมาย: จากที่ทำนายว่า Positive มีกี่เปอร์เซ็นต์ที่ถูกต้อง
เมื่อไหร่ควรใช้:
- ต้องการลด False Positive
- ตัวอย่าง: ระบบกรอง Spam (ไม่อยากให้อีเมลสำคัญถูกกรองเป็น Spam)
4.1.4 Recall / Sensitivity (ความครบถ้วนของการจับ Positive)
ความหมาย: จากที่เป็น Positive จริง โมเดลจับได้กี่เปอร์เซ็นต์
เมื่อไหร่ควรใช้:
- ต้องการลด False Negative
- ตัวอย่าง: การวินิจฉัยโรคร้ายแรง (ไม่อยากพลาดผู้ป่วยจริง)
4.1.5 F1-Score (ค่าสมดุลระหว่าง Precision และ Recall)
ความหมาย: Harmonic Mean ของ Precision และ Recall
เมื่อไหร่ควรใช้:
- ต้องการสมดุลระหว่าง Precision และ Recall
- ข้อมูลไม่สมดุล (Imbalanced data)
4.1.6 ROC Curve และ AUC
ROC (Receiver Operating Characteristic) Curve:
- แกน X: False Positive Rate (FPR)
- แกน Y: True Positive Rate (TPR หรือ Recall)
- แสดงประสิทธิภาพโมเดลในทุกระดับ Threshold
AUC (Area Under the Curve):
- พื้นที่ใต้กราฟ ROC Curve
- ค่า: 0 ถึง 1
- AUC = 1.0: โมเดลสมบูรณ์แบบ
- AUC = 0.5: โมเดลสุ่มทาย
- AUC < 0.5: โมเดลแย่กว่าการสุ่ม
เมื่อไหร่ควรใช้:
- ต้องการประเมินโมเดลโดยรวมในทุก Threshold
- เปรียบเทียบหลายโมเดล
4.2 Metrics สำหรับ Regression
4.2.1 Mean Absolute Error (MAE)
ความหมาย: ค่าเฉลี่ยของความผิดพลาดสัมบูรณ์
4.2.2 Mean Squared Error (MSE)
ความหมาย: ค่าเฉลี่ยของความผิดพลาดกำลังสอง
4.2.3 Root Mean Squared Error (RMSE)
ความหมาย: รากที่สองของ MSE
4.2.4 R² Score (Coefficient of Determination)
โดยที่:
- SSres = Sum of Squared Residuals
- SStot = Total Sum of Squares
ความหมาย: สัดส่วนของ Variance ใน Target ที่โมเดลอธิบายได้
- R² = 1: โมเดลทำนายได้สมบูรณ์แบบ
- R² = 0: โมเดลไม่ดีกว่าการทำนายด้วยค่าเฉลี่ย
- R² < 0: โมเดลแย่กว่าการทำนายด้วยค่าเฉลี่ย
5. สรุป
Machine Learning เป็นเครื่องมือที่ทรงพลังในการแก้ปัญหาที่ซับซ้อนโดยการเรียนรู้รูปแบบจากข้อมูล
5.1 สรุปสั้น
1. ความหมายของ Machine Learning
- การเรียนรู้ของเครื่องคือการพัฒนาอัลกอริทึมที่ปรับปรุงประสิทธิภาพจากประสบการณ์
- ต่างจาก Traditional Programming ที่ต้องเขียนกฎชัดเจน
- มีการประยุกต์ใช้กว้างขวางในชีวิตประจำวัน
2. ประเภทของ Machine Learning
%%{init: {'theme':'base', 'themeVariables': { 'primaryColor':'#cc241d','primaryTextColor':'#ebdbb2','primaryBorderColor':'#d65d0e','lineColor':'#98971a','secondaryColor':'#458588','tertiaryColor':'#ebdbb2','background':'#282828','mainBkg':'#3c3836','secondBkg':'#504945','textColor':'#ebdbb2','fontSize':'14px'}}}%%
mindmap
root((ML Types))
Supervised
มีข้อมูล Labels
Classification
Regression
Unsupervised
ไม่มี Labels
Clustering
Dimensionality Reduction
Semi-Supervised
Labels บางส่วน
Self-Training
Co-Training
Reinforcement
เรียนรู้จาก Reward
Agent-Environment
Q-Learning
3. Pipeline ของ ML Project
การพัฒนาโปรเจคท์ ML มีขั้นตอนหลัก:
- Problem Definition - กำหนดปัญหาและเป้าหมายให้ชัดเจน
- Data Collection - รวบรวมข้อมูลที่มีคุณภาพและเพียงพอ
- Data Preprocessing - ทำความสะอาดและเตรียมข้อมูล
- Feature Engineering - สร้างและเลือก Features ที่เหมาะสม
- Model Training - เลือกและเทรนอัลกอริทึมที่เหมาะสม
- Model Evaluation - ประเมินผลและปรับปรุงโมเดล
4. การประเมินผล
สำหรับ Classification:
- Accuracy - เหมาะกับข้อมูลสมดุล
- Precision - สำคัญเมื่อต้องการลด False Positive
- Recall - สำคัญเมื่อต้องการลด False Negative
- F1-Score - สมดุลระหว่าง Precision และ Recall
- ROC-AUC - ประเมินโมเดลโดยรวมทุก Threshold
สำหรับ Regression:
- MAE - ง่ายต่อการตีความ
- MSE - Penalize ความผิดพลาดขนาดใหญ่
- RMSE - มีหน่วยเดียวกับ Target
- R² - วัดความสามารถในการอธิบาย Variance
5.2 ข้อควรระวัง
Overfitting:
- โมเดลเรียนรู้ Training data มากเกินไป
- ทำนาย Training data ได้ดี แต่ Test data ได้แย่
- แก้ไขด้วย: More data, Regularization, Simpler model
Underfitting:
- โมเดลเรียนรู้ไม่เพียงพอ
- ทำนายทั้ง Training และ Test data ได้แย่
- แก้ไขด้วย: More complex model, More features
Data Quality:
- "Garbage In, Garbage Out" - ข้อมูลคุณภาพต่ำทำให้โมเดลคุณภาพต่ำ
- ต้องใส่ใจกับ Missing values, Outliers, Imbalanced data
- Data Preprocessing และ Feature Engineering มีความสำคัญมาก
5.3 แนวทางการพัฒนาต่อ
เมื่อเข้าใจพื้นฐานแล้ว สามารถศึกษาต่อในหัวข้อ:
- Deep Learning - Neural Networks ขนาดใหญ่สำหรับข้อมูลที่ซับซ้อน
- Ensemble Methods - รวมหลายโมเดลเพื่อประสิทธิภาพที่ดีขึ้น
- Advanced Feature Engineering - เทคนิคการสร้าง Features ขั้นสูง
- Model Interpretability - การเข้าใจว่าโมเดลตัดสินใจอย่างไร
- Production ML - การนำโมเดลไปใช้งานจริง (MLOps)
5.4 ข้อคิดสำคัญ
"Machine Learning is not magic. It's statistics and optimization algorithms that learn patterns from data."
ความสำเร็จของโปรเจคท์ ML ไม่ได้ขึ้นอยู่กับอัลกอริทึมที่ซับซ้อนเพียงอย่างเดียว แต่ขึ้นอยู่กับ:
- Data Quality - ข้อมูลที่ดีสำคัญกว่าอัลกอริทึมที่ดี
- Problem Understanding - เข้าใจปัญหาและเป้าหมายอย่างลึกซึ้ง
- Appropriate Metrics - เลือก Metrics ที่สอดคล้องกับเป้าหมาย
- Iterative Process - ปรับปรุงโมเดลอย่างต่อเนื่อง
- Domain Knowledge - ความเข้าใจในโดเมนที่ทำงาน
5.5 เอกสารอ้างอิง
สำหรับการศึกษาเพิ่มเติม:
Books:
- "Hands-On Machine Learning" โดย Aurélien Géron
- "Pattern Recognition and Machine Learning" โดย Christopher Bishop
- "The Elements of Statistical Learning" โดย Hastie, Tibshirani, Friedman
Online Courses:
- Coursera: Machine Learning โดย Andrew Ng
- Fast.ai: Practical Deep Learning for Coders
- MIT OpenCourseWare: Introduction to Machine Learning
Documentation:
- Scikit-learn Documentation
- TensorFlow Documentation
- PyTorch Documentation
จุดเริ่มต้นของการเรียนรู้ Machine Learning
การเรียนรู้ Machine Learning เป็นการเดินทางที่ยาวนาน แต่เต็มไปด้วยความน่าสนใจ เริ่มต้นด้วยการทำความเข้าใจพื้นฐาน ฝึกฝนด้วยโปรเจคท์จริง และพัฒนาทักษะอย่างต่อเนื่อง ความรู้ที่ได้จากเนื้อหานี้จะเป็นรากฐานที่มั่นคงสำหรับการก้าวไปสู่หัวข้อที่ซับซ้อนยิ่งขึ้นในอนาคต
Happy Learning! 🚀