แผนการเรียนรู้
/

โมดูลสำคัญใน
วิทยาการข้อมูล

Scikit-learn • PyCaret • Statsmodels • TensorFlow • PyTorch

ผลลัพธ์การเรียนรู้

1
อธิบายบทบาทของแต่ละโมดูลในงานวิทยาการข้อมูลได้
2
ติดตั้งและใช้งาน Scikit-learn สำหรับโมเดลพื้นฐานได้
3
เปรียบเทียบโมดูลต่าง ๆ ที่ใช้ในการสร้างโมเดลได้
4
ใช้ Agent AI เพื่อช่วยประเมินและเลือกโมเดลที่เหมาะสมได้
สัปดาห์ที่ 8

Agenda: Data Science Modules & Workflows

  • Data Science Toolbox: Scikit-Learn, Statsmodels, TF, & PyTorch
  • Low-Code Development: พัฒนา Workflow ด้วย PyCaret
  • Agent AI & ADK: การสร้าง Agent ประเมินโมเดลอัตโนมัติ
  • MCP Integration: การจัดการ Context ของโมเดล
  • Personalized Learning: การใช้ AI ช่วยพัฒนาโครงงาน

ชุดเครื่องมือสำหรับวิทยาการข้อมูล

หลักสูตร 1145100 เน้นการใช้ภาษา Python และโมดูลที่เกี่ยวข้องเพื่อพัฒนาโครงงาน

Traditional ML

Scikit-Learn & Statsmodels

Deep Learning

TensorFlow & PyTorch

Automation

PyCaret & Agent AI

Frameworks

MCP & ADK

Statistical Analysis & Classic ML

Key Differences

  • Statsmodels: ออกแบบมาเพื่อการวิเคราะห์ความสัมพันธ์เชิงสถิติ (Inference) ให้ค่า p-value และ Summary Report ที่ละเอียด
  • Scikit-Learn: ออกแบบมาเพื่อเน้นประสิทธิภาพการทำนาย (Prediction) และการสร้าง Workflow ที่เป็นระบบ

# --- Statsmodels: Statistical Inference ---

import statsmodels.api as sm

# ต้องเพิ่ม constant (intercept) ด้วยตัวเอง

X_stat = sm.add_constant(X)

model_stat = sm.Logit(y, X_stat).fit()

# แสดงผลการทดสอบทางสถิติอย่างละเอียด

print(model_stat.summary())


# --- Scikit-Learn: Prediction Pipeline ---

from sklearn.pipeline import make_pipeline

from sklearn.preprocessing import StandardScaler

from sklearn.linear_model import LogisticRegression

model = make_pipeline(StandardScaler(), LogisticRegression())

model.fit(X, y)

Advanced Modules: TensorFlow & PyTorch

TensorFlow / Keras

เน้นการใช้งานในระดับ Production และมีความสามารถในระบบนิเวศขนาดใหญ่ (TFX, TF Lite)

PyTorch

เป็นที่นิยมในงานวิจัยด้วยระบบ Dynamic Computation Graph ที่ยืดหยุ่นและเขียนโค้ดได้แบบ Pythonic

การเลือกใช้ขึ้นอยู่กับความต้องการของโครงงาน (Research vs Production)

PyCaret: Automating the ML Workflow

PyCaret ช่วยให้การพัฒนา Workflow รวดเร็วขึ้นโดยการทำ Low-code automation

Compare Models
Auto Tuning
Model Analysis

# PyCaret 3 บรรทัดเพื่อหาโมเดลที่ดีที่สุด

from pycaret.classification import *

s = setup(data, target = 'label', session_id = 123)

best = compare_models()

ML Workflow Strategy

ในสัปดาห์นี้เราจะเปลี่ยนจากการเขียนสคริปต์แยกส่วน เป็นการสร้าง **Workflow** ที่สมบูรณ์

1️⃣

Preprocessing: ใช้ Scikit-Learn จัดการ Data Pipeline

2️⃣

Prototyping: ใช้ PyCaret ทดสอบหลายโมเดลพร้อมกันอย่างรวดเร็ว

3️⃣

Evaluation: ใช้ Agent AI ประเมินผลลัพธ์อัตโนมัติ

Scikit-Learn: Standardizing the Pipeline

ทำไมต้องใช้ Pipeline?

  • ป้องกัน Data Leakage ระหว่างการ Train/Test
  • สร้าง Workflow ที่เป็นมาตรฐานสำหรับระบบอัตโนมัติ
  • เชื่อมต่อกับ Docker เพื่อการทำซ้ำงาน (Reproducibility)

# Example: Standard Pipeline

from sklearn.pipeline import Pipeline

from sklearn.impute import SimpleImputer


workflow = Pipeline([

  ('imputer', SimpleImputer(strategy='mean')),

  ('scaler', StandardScaler()),

  ('model', RandomForestClassifier())

])

PyCaret: Fast-Track Data Science

PyCaret ทำหน้าที่เป็นเครื่องมือ Low-code เพื่อเร่งกระบวนการทดลอง

  • Compare Models: เปรียบเทียบประสิทธิภาพของอัลกอริทึมกว่า 20 แบบในคำสั่งเดียว
  • Auto-tuning: ปรับแต่ง Hyperparameters โดยอัตโนมัติ

# ค้นหาโมเดลที่ดีที่สุดเพื่อส่งต่อให้ Agent AI

best_model = compare_models()

evaluate_model(best_model)

Agent AI for Automated Evaluation

การใช้ Agent Development Kit (ADK) สร้าง Agent เพื่อประเมินโมเดล

Input

Confusion Matrix, F1-Score, และ Metrics อื่นๆ

Agent Task

วิเคราะห์หา Bias หรือ Overfitting และสรุปผล

*เป็นการนำเทคโนโลยี AI มาเพิ่มประสิทธิภาพในกระบวนการทำงานด้านข้อมูล

Connecting Everything via MCP

Model Context Protocol (MCP)

ใช้ MCP เพื่อสร้าง Context Layers สำหรับโมเดล AI

  • Metadata เก็บประวัติการ Train และที่มาของ Dataset ใน Docker image
  • Context ช่วยให้ Agent AI เข้าใจข้อจำกัดของข้อมูลก่อนทำการประเมิน

"Workflow = Scikit-Learn + PyCaret + MCP + Agent AI"

Metrics for Automated Evaluation

ก่อนที่ Agent จะประเมินผลได้ เราต้องกำหนดตัวชี้วัดที่เป็นมาตรฐานจากโมดูลวิทยาการข้อมูล

Classification

  • Accuracy, Precision, Recall
  • F1-Score (Balance)
  • Confusion Matrix

Regression

  • MAE (Mean Absolute Error)
  • RMSE (Root Mean Squared Error)
  • R-Squared

Agent จะใช้ข้อมูลเหล่านี้ในการตัดสินใจว่าโมดูลใดมีประสิทธิภาพสูงสุด

Designing Agents with ADK

ใช้ **ADK** ในการสร้าง Command-based Data Agent

  • Role Definition: กำหนดบทบาทเป็น "Model Evaluator"
  • Task Logic: เขียน Logic ให้ Agent ตรวจสอบค่า Overfitting อัตโนมัติ
  • Querying: Agent สามารถดึงข้อมูลจากโมเดลมาวิเคราะห์ได้โดยตรง

# ADK Conceptual Structure

from adk import Agent


evaluator = Agent(role="Evaluator")

@evaluator.command("analyze")

def analyze_metrics(data):

  if data.accuracy < 0.8:

    return "Model needs tuning"

  return "Model passed"

Contextual Awareness via MCP

Agent ต้องการ **Context Layers** เพื่อการประเมินที่แม่นยำ

Metadata Integration

ใช้ MCP จัดเก็บข้อมูลโครงการ เช่น วัตถุประสงค์ของโมเดล และลักษณะของชุดข้อมูล

Prompting Context

สร้าง Context Prompt เพื่อให้ Agent รู้ว่า "Accuracy 70%" อาจจะดีเพียงพอแล้วสำหรับข้อมูลที่มีความซับซ้อนสูง

The Integrated Workflow

Develop

Scikit-Learn / PyCaret

Context

MCP Metadata

Evaluate

Agent AI (ADK)

"เทคโนโลยี AI ช่วยเพิ่มประสิทธิภาพในกระบวนการทำงานด้านข้อมูลอย่างเป็นระบบ"

Week 8 Assessment: การบ้าน

ภารกิจ: พัฒนา Workflow และระบบประเมินอัตโนมัติ

  • สร้าง ML Pipeline ด้วย Scikit-Learn หรือ PyCaret
  • ใช้ MCP เพื่อฝัง Metadata เกี่ยวกับประสิทธิภาพเบื้องต้น
  • ออกแบบ Agent AI อย่างง่ายเพื่อสรุปผลการประเมินโมเดล

สัปดาห์หน้า: Docker และการทำซ้ำงาน (Reproducibility)

Personalized AI Learning in the Lab

ในคาบปฏิบัติการ 2 ชั่วโมง เราจะใช้ **AI as a Co-Developer**

  • Debugging: ใช้ ChatGPT หรือ Copilot ในการแก้ปัญหา Error ของโมดูล Scikit-Learn
  • Optimization: ให้ AI ช่วยปรับปรุง Hyperparameters หลังจากใช้ PyCaret
  • Code Explanation: ใช้ AI อธิบายการทำงานของ Pipeline ที่ซับซ้อนเพื่อความเข้าใจรายบุคคล

Lab Part 1: Standardizing the ML Workflow

เป้าหมาย: สร้างกระบวนการทำงานที่ทำซ้ำได้ (Reproducible Workflow) โดยใช้ Scikit-Learn

  • Data Setup: โหลดข้อมูลและแบ่งชุดข้อมูลสำหรับทดสอบ
  • Preprocessing: จัดการค่าว่างและปรับสเกลข้อมูล
  • Pipeline Construction: ประกอบขั้นตอนทั้งหมดเข้าด้วยกัน
  • Evaluation: วัดผลประสิทธิภาพด้วย RMSE

Step 1: Data Setup

# 1. โหลดข้อมูลโดยใช้ Pandas

import pandas as pd

from sklearn.model_selection import train_test_split


housing = pd.read_csv("housing.csv")


# 2. แบ่งชุดข้อมูล Train (80%) และ Test (20%)

train_set, test_set = train_test_split(housing, test_size=0.2, random_state=42)


# 3. แยก Features และ Labels

X_train = train_set.drop("median_house_value", axis=1)

y_train = train_set["median_house_value"].copy()

Step 2: Automated Preprocessing

เราจะสร้าง Numerical Pipeline เพื่อจัดการข้อมูลตัวเลข:

from sklearn.pipeline import Pipeline

from sklearn.impute import SimpleImputer

from sklearn.preprocessing import StandardScaler


num_pipeline = Pipeline([

  ('imputer', SimpleImputer(strategy="median")), # เติมค่าว่างด้วยค่ากลาง [5]

  ('std_scaler', StandardScaler()), # ปรับสเกลข้อมูล [6]

])

Step 3: Integrated Pipeline Construction

from sklearn.compose import ColumnTransformer

from sklearn.preprocessing import OneHotEncoder

from sklearn.ensemble import RandomForestRegressor


num_attribs = list(X_train.select_dtypes(include=['float64', 'int64']))

cat_attribs = ["ocean_proximity"]


# รวม Preprocessing สำหรับทุกประเภทข้อมูล [7]

full_pipeline = ColumnTransformer([

  ("num", num_pipeline, num_attribs),

  ("cat", OneHotEncoder(), cat_attribs),

])


# เชื่อมต่อ Preprocessing เข้ากับ Model (Estimator)

final_pipeline = Pipeline([

  ("prep", full_pipeline),

  ("algo", RandomForestRegressor())

])


final_pipeline.fit(X_train, y_train) # สั่งรันทั้ง Pipeline ในคำสั่งเดียว!

Step 4: Scoring & Debugging

from sklearn.metrics import mean_squared_error

import numpy as np


predictions = final_pipeline.predict(X_train)

mse = mean_squared_error(y_train, predictions)

rmse = np.sqrt(mse)

print(f"RMSE: {rmse}") # วัดระยะห่างระหว่างผลทำนายกับความจริง

Personalized AI Learning Tip:

หากรันโค้ดแล้วเกิด ValueError หรือ KeyError

  • Copy Error Message ไปถาม ChatGPT หรือ Copilot [11]
  • ถาม AI: "How can I check if my ColumnTransformer column names match my DataFrame?"
  • ใช้ AI ช่วยอธิบายว่าทำไม OneHotEncoder ถึงเปลี่ยนข้อมูลเป็น Sparse Matrix

Lab Part 2: Rapid Prototyping & AI Critique

เป้าหมาย: ใช้ PyCaret เพื่อเปรียบเทียบโมเดลอย่างรวดเร็ว และใช้ Agent AI วิเคราะห์ผลลัพธ์

  • Environment Setup: เตรียมข้อมูลและกำหนดเป้าหมาย (Target)
  • Model Comparison: สั่งรันอัลกอริทึมหลายตัวพร้อมกันเพื่อหาตัวที่ "ดีที่สุด"
  • Model Analysis: ดูผลลัพธ์ผ่าน Visualization
  • Agent Evaluation: ใช้ AI ช่วยวิเคราะห์ว่าโมเดลไหนเหมาะสมกับงานจริง

Step 1: Setup the Experiment

คำสั่ง setup() จะจัดการ Preprocessing (Imputation, Scaling, Encoding) ให้อัตโนมัติ

# 1. ติดตั้งและโหลด Library

from pycaret.classification import *


# 2. เริ่มต้นระบบ (สมมติใช้ชุดข้อมูล Diabetes [4])

s = setup(data=df, target='Outcome', session_id=123, train_size=0.7)


# PyCaret จะแสดงตารางสรุปการจัดการข้อมูล เช่น ข้อมูลว่างหรือประเภทตัวแปร

Step 2: Model Ranking

# รันและเปรียบเทียบโมเดลทั้งหมด

best_model = compare_models()


# ตารางผลลัพธ์จะปรากฏขึ้นพร้อมค่า

- Accuracy

- AUC (Area Under Curve) [7]

- Recall / Precision [8]

- F1-Score [8]

จุดสังเกต:

มองหาโมเดลที่มีค่า F1-Score และ AUC สูงพร้อมๆ กัน เพื่อความสมดุลในการทำนาย

*Tip: สังเกตว่า Gradient Boosting มักทำคะแนนได้ดีในข้อมูล Tabular

Step 3: Analyze & Tune

# ดู Confusion Matrix

plot_model(best_model, plot='confusion_matrix')


# ดู Feature Importance

plot_model(best_model, plot='feature')


# ปรับแต่งค่า Hyperparameters ให้ดีขึ้น

tuned_model = tune_model(best_model)

ใช้รูปภาพเหล่านี้เป็น Context เพื่อส่งให้ Agent AI ในขั้นตอนถัดไป

Step 4: AI Model Critique

ภารกิจของนักศึกษา:

ส่งค่า Metrics จาก PyCaret เข้าไปยัง AI Agent (ChatGPT/Copilot) พร้อมใช้ Prompt ดังนี้

"ในฐานะ Data Science Analyst, จงวิเคราะห์ผลลัพธ์: Accuracy 0.85, F1 0.72 และ Confusion Matrix ที่มี False Negative สูง โมเดลนี้เสี่ยงต่อการเกิด Overfitting หรือไม่? และควรนำไป Deploy ในระบบจริงหรือไม่?"

ผลลัพธ์: นักศึกษาต้องบันทึกคำวิจารณ์ของ Agent AI ลงในรายงาน Lab

Roadmap: From Pipeline to Agent AI

สิ่งที่เรียนในสัปดาห์นี้จะเป็นฐานสำคัญสำหรับ

Week 10-11: ADK Mastery

การสร้าง Command-based Data Agent เพื่อ Query ข้อมูลและจัดการโครงงานอัตโนมัติโดยใช้ ADK Documentation

Final Project Integration

การบูรณาการ MCP + Agent AI เพื่อนำเสนอผลงานปลายภาค

Summary & Next Steps

  • Workflow: เข้าใจความสำคัญของ Pipeline ใน Scikit-Learn และ PyCaret
  • Automation: เริ่มใช้ AI Agent ในการประเมินประสิทธิภาพเบื้องต้น
  • Homework: ส่งรายงานการสร้าง Pipeline และผลวิเคราะห์จาก Agent AI

Next Week: Docker & Reproducibility (การฝัง MCP Metadata ใน Build Image)