# Introduction to Machine Learning **ผู้จัดทำ:** อรรถพล คงหวาน --- # Outline 1. ความหมายของ Machine Learning 2. ประเภทของ Machine Learning 3. Pipeline ของ ML Project 4. การประเมินผล Model 5. สรุป --- # 1. ความหมายของ Machine Learning --- ## Machine Learning คืออะไร? **Machine Learning (ML)** หรือ **การเรียนรู้ของเครื่อง** คือสาขาหนึ่งของปัญญาประดิษฐ์ (Artificial Intelligence) ที่เน้นการพัฒนาอัลกอริทึมและโมเดลทางสถิติที่ช่วยให้คอมพิวเตอร์สามารถ "เรียนรู้" จากข้อมูลและปรับปรุงประสิทธิภาพในการทำงานโดยอัตโนมัติ โดยไม่ต้องถูกโปรแกรมอย่างชัดเจนสำหรับทุกสถานการณ์ --- ## คำนิยามของ 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) ที่ได้รับ --- ## ตัวอย่างการประยุกต์ใช้ - **การจดจำใบหน้า (Face Recognition)** - ระบบสามารถเรียนรู้จากภาพใบหน้าหลายพันภาพเพื่อระบุตัวตนของบุคคล - **ระบบแนะนำสินค้า (Recommendation Systems)** - Netflix, Amazon ใช้ ML เพื่อแนะนำเนื้อหาหรือสินค้าที่เหมาะสมกับผู้ใช้แต่ละคน - **การตรวจจับสแปม (Spam Detection)** - ระบบอีเมลเรียนรู้รูปแบบของอีเมลสแปมเพื่อกรองข้อความที่ไม่ต้องการ - **รถยนต์ขับขี่อัตโนมัติ (Autonomous Vehicles)** - รถเรียนรู้จากสภาพแวดล้อมเพื่อตัดสินใจขับขี่อย่างปลอดภัย - **การวินิจฉัยโรค (Medical Diagnosis)** - ช่วยแพทย์วิเคราะห์ภาพเอกซเรย์หรือผลตรวจเพื่อวินิจฉัยโรค --- ## ความแตกต่างระหว่าง Traditional Programming และ ML ```mermaid %%{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 vs Machine Learning **Traditional Programming:** - เราเขียนกฎ (Rules) และโลจิกที่ชัดเจน - ใส่ข้อมูล (Input) เข้าไปในกฎเหล่านั้น - ได้ผลลัพธ์ (Output) ออกมา **Machine Learning:** - เราให้ข้อมูล (Input) และคำตอบที่ต้องการ (Output/Labels) - ให้อัลกอริทึมเรียนรู้รูปแบบและสร้างกฎ (Model) ขึ้นมาเอง - นำโมเดลไปใช้ทำนายข้อมูลใหม่ --- # 2. ประเภทของ Machine Learning --- ## ภาพรวมประเภท Machine Learning Machine Learning แบ่งออกเป็น 4 ประเภทหลักตามลักษณะการเรียนรู้และข้อมูลที่ใช้ ```mermaid %%{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 ``` --- ## Supervised Learning (การเรียนรู้แบบมีผู้สอน) **คำนิยาม:** เป็นการเรียนรู้จากข้อมูลที่มี Labels หรือคำตอบที่ถูกต้องกำกับไว้แล้ว โดยโมเดลจะเรียนรู้ความสัมพันธ์ระหว่าง Input (X) และ Output (y) **สมการพื้นฐาน:**
y
=
f
(
X
)
+
ε
--- ## สมการ Supervised Learning: องค์ประกอบ **โดยที่:** - **y** = ตัวแปรเป้าหมาย (Target variable) หรือ Label ที่ต้องการทำนาย - **f** = ฟังก์ชันที่โมเดลพยายามเรียนรู้ - **X** = ตัวแปรอิสระ (Features) หรือข้อมูลนำเข้า - **ε** = ค่า Error หรือ Noise ในข้อมูล แบ่งเป็น 2 ประเภทย่อย คือ **Classification** (การจำแนกประเภท) และ **Regression** (การถดถอย) --- ## Classification (การจำแนกประเภท) เป็นการทำนายค่าที่เป็นกลุ่มหรือประเภทที่แยกจากกันชัดเจน (Discrete/Categorical) **ตัวอย่าง:** - การวินิจฉัยว่าผู้ป่วยเป็นโรคหรือไม่ (มี 2 คลาส: Positive, Negative) - การจำแนกอีเมลว่าเป็นสแปมหรือไม่ (Spam, Not Spam) - การจดจำตัวเลขจากภาพ (0-9 = 10 คลาส) --- ## อัลกอริทึม Classification ที่นิยม - Logistic Regression - Decision Trees - Random Forest - Support Vector Machines (SVM) - Neural Networks - K-Nearest Neighbors (KNN) --- ## Regression (การถดถอย) เป็นการทำนายค่าที่เป็นตัวเลขต่อเนื่อง (Continuous) **ตัวอย่าง:** - ทำนายราคาบ้านจากขนาด, ทำเล, จำนวนห้อง - ทำนายอุณหภูมิในอนาคต - ทำนายยอดขายสินค้า --- ## อัลกอริทึม Regression ที่นิยม - Linear Regression - Polynomial Regression - Ridge Regression / Lasso Regression - Support Vector Regression (SVR) - Decision Trees / Random Forest - Gradient Boosting (XGBoost, LightGBM) --- ## Unsupervised Learning (การเรียนรู้แบบไม่มีผู้สอน) **คำนิยาม:** เป็นการเรียนรู้จากข้อมูลที่ไม่มี Labels กำกับ โมเดลจะพยายามค้นหารูปแบบ (Patterns) หรือโครงสร้าง (Structure) ที่ซ่อนอยู่ในข้อมูลเองโดยอัตโนมัติ **วัตถุประสงค์หลัก:** - ค้นหากลุ่มข้อมูลที่มีความคล้ายคลึงกัน - ลดมิติของข้อมูล (Dimensionality Reduction) - ค้นหาข้อมูลผิดปกติ (Anomaly Detection) ประเภทย่อยที่สำคัญ คือ **Clustering** และ **Dimensionality Reduction** --- ## Clustering (การจัดกลุ่ม) เป็นการแบ่งข้อมูลออกเป็นกลุ่มๆ โดยที่ข้อมูลในกลุ่มเดียวกันมีความคล้ายคลึงกันสูง **ตัวอย่างการใช้งาน:** - การแบ่งกลุ่มลูกค้าตามพฤติกรรมการซื้อ (Customer Segmentation) - การจัดกลุ่มบทความข่าวตามหัวข้อ - การแบ่งกลุ่มภาพที่คล้ายกัน **อัลกอริทึมที่นิยม:** - K-Means Clustering - Hierarchical Clustering - DBSCAN (Density-Based Spatial Clustering) - Gaussian Mixture Models (GMM) --- ## 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 --- ## Semi-Supervised Learning (การเรียนรู้แบบกึ่งมีผู้สอน) **คำนิยาม:** เป็นการเรียนรู้ที่ใช้ข้อมูลทั้งที่มี Labels และไม่มี Labels ร่วมกัน โดยทั่วไปข้อมูลที่มี Labels จะมีจำนวนน้อย ในขณะที่ข้อมูลที่ไม่มี Labels มีจำนวนมาก **เหตุผลที่ใช้:** - การติด Labels ข้อมูลมีต้นทุนสูง (เวลา, ค่าแรง, ความเชี่ยวชาญ) - ข้อมูลที่ไม่มี Labels หาได้ง่ายและมีจำนวนมาก - ข้อมูลที่ไม่มี Labels ช่วยให้โมเดลเข้าใจโครงสร้างของข้อมูลได้ดีขึ้น --- ## Semi-Supervised Learning: สถานการณ์ที่เหมาะสม **สถานการณ์ที่เหมาะสม:** - การจำแนกภาพทางการแพทย์ (ภาพมีมาก แต่การวินิจฉัยต้องใช้แพทย์ผู้เชี่ยวชาญ) - การจำแนกข้อความ (ข้อความมีมาก แต่การติด Labels ต้องใช้เวลา) - Speech Recognition (เสียงมีมาก แต่ Transcription ใช้เวลา) **เทคนิคที่นิยม:** - Self-Training - Co-Training - Graph-Based Methods --- ## Reinforcement Learning (การเรียนรู้เชิงเสริมแรง) **คำนิยาม:** เป็นการเรียนรู้ผ่านการทดลองและผิดพลาด (Trial and Error) โดย Agent (ตัวกระทำ) จะเรียนรู้จากการโต้ตอบกับ Environment (สภาพแวดล้อม) และได้รับ Reward (รางวัล) หรือ Penalty (โทษ) จากการกระทำ --- ## Reinforcement Learning: องค์ประกอบหลัก ```mermaid %%{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 ``` 1. **Agent** - ตัวกระทำที่เรียนรู้และตัดสินใจ 2. **Environment** - สภาพแวดล้อมที่ Agent โต้ตอบด้วย 3. **State (s)** - สถานะปัจจุบันของสภาพแวดล้อม --- ## Reinforcement Learning: องค์ประกอบและตัวอย่าง **องค์ประกอบ (ต่อ):** 4. **Action (a)** - การกระทำที่ Agent สามารถทำได้ 5. **Reward (r)** - ค่าตอบแทนที่ได้รับจากการกระทำ 6. **Policy (π)** - กลยุทธ์ในการเลือกกระทำในแต่ละสถานะ **ตัวอย่างการใช้งาน:** - เกม (Chess, Go, Video Games) - รถยนต์ขับขี่อัตโนมัติ - หุ่นยนต์ (Robot Navigation, Manipulation) --- ## Reinforcement Learning: อัลกอริทึมที่นิยม **อัลกอริทึมที่นิยม:** - Q-Learning - Deep Q-Network (DQN) - Policy Gradient Methods - Actor-Critic Methods - Proximal Policy Optimization (PPO) --- # 3. Pipeline ของ ML Project --- ## ML Project Pipeline การพัฒนาโปรเจคท์ Machine Learning มีขั้นตอนหลัก 6 ขั้นตอน ดังแผนภาพ: ```mermaid %%{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 LR 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 ``` --- ## 1. Problem Definition (การกำหนดปัญหา) ขั้นตอนแรกและสำคัญที่สุด คือการกำหนดปัญหาและเป้าหมายให้ชัดเจน **คำถามสำคัญ:** - เราต้องการแก้ปัญหาอะไร? - ปัญหานี้เหมาะกับ ML หรือไม่? - ประเภทของ ML ที่ใช้คืออะไร? (Supervised, Unsupervised, etc.) - Target variable คืออะไร? - Success metrics คืออะไร? - มีข้อจำกัดอะไรบ้าง? (เวลา, งบประมาณ, ทรัพยากร) --- ## 2. Data Collection (การรวบรวมข้อมูล) รวบรวมข้อมูลที่เกี่ยวข้องกับปัญหา โดยข้อมูลต้องมีคุณภาพและปริมาณเพียงพอ **แหล่งข้อมูล:** - ฐานข้อมูลภายในองค์กร - Public Datasets (Kaggle, UCI ML Repository, Government Open Data) - Web Scraping - APIs - Sensors / IoT Devices - Surveys / Manual Collection --- ## 3. Data Preprocessing (การเตรียมข้อมูล) ทำความสะอาดและเตรียมข้อมูลให้พร้อมสำหรับการเทรนโมเดล **ขั้นตอนหลัก:** - **จัดการค่าที่หายไป (Missing Values):** ลบ, แทนที่ด้วยค่าเฉลี่ย/median, Imputation - **จัดการ Outliers:** ลบหรือปรับค่าที่ผิดปกติมากเกินไป - **Data Transformation:** Normalization, Standardization - **Encoding Categorical Variables:** Label Encoding, One-Hot Encoding - **Handling Imbalanced Data:** Oversampling, Undersampling, SMOTE --- ## 4. Feature Engineering (การสร้าง Features) สร้างและเลือก Features ที่มีประโยชน์เพื่อปรับปรุงประสิทธิภาพของโมเดล **เทคนิค:** - **Feature Selection:** เลือกเฉพาะ Features ที่สำคัญ - **Feature Creation:** สร้าง Features ใหม่จากข้อมูลเดิม - **Feature Transformation:** แปลง Features เป็นรูปแบบที่เหมาะสมกว่า - **Polynomial Features:** สร้างความสัมพันธ์แบบพหุนาม - **Interaction Features:** รวม Features เพื่อดูความสัมพันธ์ --- ## 5. Model Training (การเทรนโมเดล) เลือกและเทรนอัลกอริทึม ML ที่เหมาะสมกับปัญหา **ขั้นตอน:** - เลือกอัลกอริทึมที่เหมาะสม - แบ่งข้อมูลเป็น Training, Validation, Test sets - เทรนโมเดลด้วย Training data - ปรับ Hyperparameters - ใช้ Cross-Validation เพื่อความแม่นยำ --- ## 6. Model Evaluation (การประเมินผลโมเดล) ประเมินประสิทธิภาพของโมเดลด้วย Metrics ที่เหมาะสม **สำหรับ Classification:** - Accuracy, Precision, Recall, F1-Score - ROC Curve, AUC - Confusion Matrix **สำหรับ Regression:** - MAE, MSE, RMSE - R² Score **การปรับปรุง:** หากผลลัพธ์ไม่ดีพอ ให้กลับไปปรับปรุงใน Step 3-5 --- # 4. การประเมินผล Model --- ## การประเมินผลโมเดล การประเมินผลเป็นขั้นตอนสำคัญในการวัดว่าโมเดลทำงานได้ดีเพียงใด **แบ่งตามประเภทของ Task:** 1. **Classification Metrics** - สำหรับการจำแนกประเภท 2. **Regression Metrics** - สำหรับการถดถอย --- ## Classification: Confusion Matrix Confusion Matrix เป็นตารางที่แสดงผลการทำนายเปรียบเทียบกับค่าจริง ```mermaid %%{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 LR subgraph CM["Confusion Matrix"] TP["True Positive
TP"] FP["False Positive
FP"] FN["False Negative
FN"] TN["True Negative
TN"] end style TP fill:#3c3836,stroke:#98971a,stroke-width:3px style FP fill:#3c3836,stroke:#d65d0e,stroke-width:3px style FN fill:#3c3836,stroke:#d65d0e,stroke-width:3px style TN fill:#3c3836,stroke:#98971a,stroke-width:3px ``` --- ## Classification: องค์ประกอบ Confusion Matrix **องค์ประกอบ:** - **True Positive (TP):** ทำนาย Positive ถูกต้อง - **True Negative (TN):** ทำนาย Negative ถูกต้อง - **False Positive (FP):** ทำนาย Positive ผิด (Type I Error) - **False Negative (FN):** ทำนาย Negative ผิด (Type II Error) --- ## Classification: Accuracy
Accuracy
=
TP
+
TN
TP
+
TN
+
FP
+
FN
**ความหมาย:** สัดส่วนของการทำนายที่ถูกต้องทั้งหมด **ข้อจำกัด:** ไม่เหมาะกับข้อมูลที่ไม่สมดุล (Imbalanced Data) --- ## Classification: Precision
Precision
=
TP
TP
+
FP
**ความหมาย:** เมื่อโมเดลทำนายว่า Positive จะถูกต้องกี่เปอร์เซ็นต์ **ใช้เมื่อ:** ต้องการลด False Positive (เช่น Spam Detection - ไม่อยากให้อีเมลปกติถูกจับเป็น Spam) --- ## Classification: Recall (Sensitivity)
Recall
=
TP
TP
+
FN
**ความหมาย:** สามารถตรวจจับ Positive ที่แท้จริงได้กี่เปอร์เซ็นต์ **ใช้เมื่อ:** ต้องการลด False Negative (เช่น โรคร้ายแรง - ต้องตรวจพบทุกกรณี) --- ## Classification: F1-Score
F1
=
2
×
Precision
×
Recall
Precision
+
Recall
**ความหมาย:** ค่าเฉลี่ยฮาร์มอนิกของ Precision และ Recall **ใช้เมื่อ:** ต้องการสมดุลระหว่าง Precision และ Recall --- ## Classification: ROC และ AUC **ROC Curve (Receiver Operating Characteristic):** - กราฟแสดงความสัมพันธ์ระหว่าง True Positive Rate (TPR) และ False Positive Rate (FPR) ที่ Threshold ต่างๆ **AUC (Area Under the Curve):** - พื้นที่ใต้กราฟ ROC - ค่าอยู่ระหว่าง 0-1 (ยิ่งใกล้ 1 ยิ่งดี) - AUC = 0.5 หมายถึงโมเดลทำนายแบบสุ่ม - AUC = 1.0 หมายถึงโมเดลทำนายได้สมบูรณ์แบบ --- ## Regression: Mean Absolute Error (MAE)
MAE
=
1
n
∑
i
=
1
n
|
y
i
−
y
^
i
|
**ความหมาย:** ค่าเฉลี่ยของความผิดพลาดสัมบูรณ์ --- ## Regression: Mean Squared Error (MSE)
MSE
=
1
n
∑
i
=
1
n
(
y
i
−
y
^
i
)
2
**ความหมาย:** ค่าเฉลี่ยของความผิดพลาดกำลังสอง --- ## Regression: Root Mean Squared Error (RMSE)
RMSE
=
1
n
∑
i
=
1
n
(
y
i
−
y
^
i
)
2
**ความหมาย:** รากที่สองของ MSE --- ## Regression: R² Score
R
2
=
1
−
SS
res
SS
tot
**โดยที่:** - **SSres** = Sum of Squared Residuals - **SStot** = Total Sum of Squares --- ## Regression: R² Score - ความหมาย **ความหมาย:** สัดส่วนของ Variance ใน Target ที่โมเดลอธิบายได้ - **R² = 1:** โมเดลทำนายได้สมบูรณ์แบบ - **R² = 0:** โมเดลไม่ดีกว่าการทำนายด้วยค่าเฉลี่ย - **R² < 0:** โมเดลแย่กว่าการทำนายด้วยค่าเฉลี่ย --- # 5. สรุป --- ## สรุป: ความหมายของ Machine Learning **1. ความหมายของ Machine Learning** - การเรียนรู้ของเครื่องคือการพัฒนาอัลกอริทึมที่ปรับปรุงประสิทธิภาพจากประสบการณ์ - ต่างจาก Traditional Programming ที่ต้องเขียนกฎชัดเจน - มีการประยุกต์ใช้กว้างขวางในชีวิตประจำวัน --- ## สรุป: ประเภทของ Machine Learning ```mermaid %%{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 ``` --- ## สรุป: Pipeline ของ ML Project **การพัฒนาโปรเจคท์ ML มีขั้นตอนหลัก:** 1. **Problem Definition** - กำหนดปัญหาและเป้าหมายให้ชัดเจน 2. **Data Collection** - รวบรวมข้อมูลที่มีคุณภาพและเพียงพอ 3. **Data Preprocessing** - ทำความสะอาดและเตรียมข้อมูล 4. **Feature Engineering** - สร้างและเลือก Features ที่เหมาะสม 5. **Model Training** - เลือกและเทรนอัลกอริทึมที่เหมาะสม 6. **Model Evaluation** - ประเมินผลและปรับปรุงโมเดล --- ## สรุป: การประเมินผล **สำหรับ Classification:** - **Accuracy** - เหมาะกับข้อมูลสมดุล - **Precision** - สำคัญเมื่อต้องการลด False Positive - **Recall** - สำคัญเมื่อต้องการลด False Negative - **F1-Score** - สมดุลระหว่าง Precision และ Recall - **ROC-AUC** - ประเมินโมเดลโดยรวมทุก Threshold --- ## สรุป: การประเมินผล (ต่อ) **สำหรับ Regression:** - **MAE** - ง่ายต่อการตีความ - **MSE** - Penalize ความผิดพลาดขนาดใหญ่ - **RMSE** - มีหน่วยเดียวกับ Target - **R²** - วัดความสามารถในการอธิบาย Variance --- ## ข้อควรระวัง: Overfitting **Overfitting:** - โมเดลเรียนรู้ Training data มากเกินไป - ทำนาย Training data ได้ดี แต่ Test data ได้แย่ - แก้ไขด้วย: More data, Regularization, Simpler model **Underfitting:** - โมเดลเรียนรู้ไม่เพียงพอ - ทำนายทั้ง Training และ Test data ได้แย่ - แก้ไขด้วย: More complex model, More features --- ## ข้อควรระวัง: Data Quality **Data Quality:** - "Garbage In, Garbage Out" - ข้อมูลคุณภาพต่ำทำให้โมเดลคุณภาพต่ำ - ต้องใส่ใจกับ Missing values, Outliers, Imbalanced data - Data Preprocessing และ Feature Engineering มีความสำคัญมาก --- ## แนวทางการพัฒนาต่อ เมื่อเข้าใจพื้นฐานแล้ว สามารถศึกษาต่อในหัวข้อ: 1. **Deep Learning** - Neural Networks ขนาดใหญ่สำหรับข้อมูลที่ซับซ้อน 2. **Ensemble Methods** - รวมหลายโมเดลเพื่อประสิทธิภาพที่ดีขึ้น 3. **Advanced Feature Engineering** - เทคนิคการสร้าง Features ขั้นสูง 4. **Model Interpretability** - การเข้าใจว่าโมเดลตัดสินใจอย่างไร 5. **Production ML** - การนำโมเดลไปใช้งานจริง (MLOps) --- ## ข้อคิดสำคัญ > "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** - ความเข้าใจในโดเมนที่ทำงาน --- ## เอกสารอ้างอิง **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 --- ## จุดเริ่มต้นของการเรียนรู้ **การเรียนรู้ Machine Learning เป็นการเดินทางที่ยาวนาน แต่เต็มไปด้วยความน่าสนใจ** เริ่มต้นด้วยการทำความเข้าใจพื้นฐาน ฝึกฝนด้วยโปรเจคท์จริง และพัฒนาทักษะอย่างต่อเนื่อง ความรู้ที่ได้จากเนื้อหานี้จะเป็นรากฐานที่มั่นคงสำหรับการก้าวไปสู่หัวข้อที่ซับซ้อนยิ่งขึ้นในอนาคต **Happy Learning! 🚀** --- # คำถาม - ข้อสงสัย