WWwarin.me

POSTGRESQL · APACHE MADLIB · TEACHING LAB

ย้ายการคำนวณ
ไปหาข้อมูล

โมเดลสามารถเรียนรู้ในที่ที่ข้อมูลอยู่ เลือก configuration ที่ปลอดภัย ตรวจ SQL ก่อนรัน แล้วให้ PostgreSQL ประมวลผล MADlib ภายในฐานข้อมูล

Connecting…

TRADITIONAL ML

Database↓ exportNetwork↓ transferPython / pandas↓ fitModel

ข้อมูลต้องข้าม process และ network ก่อนเริ่ม train

VS

IN-DATABASE ML

PostgreSQL↓ SQL callApache MADlib↓ in placeModel

การคำนวณอยู่ใกล้ storage และส่งกลับเฉพาะผลลัพธ์ขนาดเล็ก

01 · DATASET EXPLORER

สามคำถาม สามลักษณะข้อมูล

ดูก่อนว่า type, target, feature และตัวอย่างสิบแถวเป็นอย่างไร แล้วค่อยเลือก

02 · SAFE MODEL BUILDER

เลือกเจตนา แล้วให้ระบบประกอบ SQL ที่ปลอดภัย

หน้านี้ไม่ใช่ SQL console ชื่อตาราง คอลัมน์ ฟังก์ชัน และโมเดลทุกชื่อมาจาก whitelist ฝั่ง server

ตัวแปรเป้าหมาย
Features
GENERATED SQLเห็นก่อน execute
-- Select a dataset, features and algorithm.

This SQL runs the machine learning algorithm inside PostgreSQL.

03 · MODEL EVIDENCE

อ่านผลให้มากกว่าคะแนนเดียว

Coefficient ต้องอ่านพร้อมความไม่แน่นอนและบริบท ส่วน cluster ต้องอ่านทั้ง center และ scale

Train a model to see coefficients, diagnostics, iterations, rows and execution time.

04 · PREDICTION DEMO

เปลี่ยนข้อมูลใหม่ให้เป็น SQL prediction

Train regression model ก่อน

-- Prediction SQL appears here.

05 · K-MEANS EXAMPLE

Cluster คือพิกัด ไม่ใช่คำตัดสินว่าใครเป็นคนแบบไหน

Cluster 1

อายุน้อย เข้าบ่อย spending score สูง

Cluster 2

วัยทำงาน รายได้และ engagement สมดุล

Cluster 3

รายได้สูงกว่า แต่เข้าชมน้อยและ spending score ต่ำกว่า

เพื่อความเสถียร PostgreSQL ควบคุมรอบการวนที่มีขอบเขต ส่วน MADlib คำนวณระยะกำลังสองระหว่างทุกจุดกับ centroid การตีความนี้ใช้เพื่อการสอน งานจริงต้องตรวจ scale ระยะห่าง และบริบทก่อนตั้งชื่อ segment

06 · WHY IN-DATABASE ML?

จำนวนแถวเพิ่ม แต่ข้อมูลที่ส่งกลับยังเล็ก

Rows processed
Execution time
Browser transfer
Estimated raw export

Traditional approach

SELECT *
FROM madlib_lab.student_performance;

Database → network → application → ML library

ข้อมูลทั้ง relation ออกจากขอบเขตฐานข้อมูล

In-database approach

SELECT madlib.logregr_train(...);

PostgreSQL → MADlib → model evidence

ส่งคำสั่งขนาดเล็กเข้าไป และรับผลโมเดลขนาดเล็กกลับมา