PURE SQL MACHINE LEARNING · NO PYTHON

Query ไม่ได้มีไว้ดึงข้อมูลอย่างเดียว มันเป็น Model ได้

Machine Learning เริ่มจาก Representation, Distance, Probability, Optimization และ Aggregation ซึ่ง SQL มี Building Block เหล่านี้อยู่แล้ว Lab นี้เปิดกล่องดำด้วยการสร้าง ML หกตระกูลจาก Relational Operation โดยตรง

01 · REPRESENTCASE · one-hot · scale
02 · COMPAREdistance · likelihood
03 · LEARNaggregate · iterate
04 · DECIDErank · vote · threshold

SIX LIVE FAMILIES

ต่าง Algorithm แต่ใช้คำศัพท์เชิงสัมพันธ์ชุดเดียวกัน

กด Run SQL เพื่อรัน Model Pipeline แต่ละแบบบน Server ระบบส่งกลับผลและ SQL ที่ใช้ ขณะที่ Source Row อยู่ภายใน Engine

k-Nearest Neighbors

DISTANCE · TOP-K · VOTE

One-hot และ Normalize แถวข้อมูล คำนวณ Euclidean Distance จัดอันดับเพื่อนบ้านห้ารายการ แล้วรวมคะแนนเสียงด้วย GROUP BY

10,000-row bounded runtime
EXECUTED SQL
Select Run pure SQL.

Naive Bayes

PRIOR · LIKELIHOOD · LOG SCORE

นับ Class Prior และ Conditional Likelihood ด้วย Aggregate ใช้ Laplace Smoothing และรวม Log Probability เพื่อป้องกัน Underflow

10,000-row bounded runtime
EXECUTED SQL
Select Run pure SQL.

Linear Regression

COVARIANCE · SLOPE · INTERCEPT

สร้าง Model จาก Aggregate Statistics ด้วย regr_slope, regr_intercept และ regr_r2 แล้วทำนายใน Statement เดียว

10,000-row bounded runtime
EXECUTED SQL
Select Run pure SQL.

k-means

ASSIGN · CENTROID · REPEAT

ใช้ CROSS JOIN วัดระยะทุก Point–Centroid, Window Function เลือก Cluster และ GROUP BY คำนวณ Centroid รอบถัดไป

10,000-row bounded runtime
EXECUTED SQL
Select Run pure SQL.

Association Rules

SUPPORT · CONFIDENCE · LIFT

Self-join รายการใน Basket เดียวกัน แล้วนับความถี่คู่สินค้าเพื่อคำนวณ Support, Confidence และ Lift

10,000-row bounded runtime
EXECUTED SQL
Select Run pure SQL.

Statistical Anomaly

MEAN · STANDARD DEVIATION · Z-SCORE

ให้ SQL เรียนค่าเฉลี่ยและส่วนเบี่ยงเบนมาตรฐานจากข้อมูล แล้ว Score และจัดอันดับ Observation ที่ผิดปกติ

10,000-row bounded runtime
EXECUTED SQL
Select Run pure SQL.

EMBEDDED EXCEL WORKSHEET

Worksheet ต้นฉบับ ในรูปแบบที่อ่านบนเว็บได้

Workbook ปี 2022 สอน Dataset เดียวกันผ่านมุม Probability และ Distance แท็บด้านล่างรักษาลำดับการเรียนรู้เดิม ดาวน์โหลด Excel เพื่อเปิดดูและแก้สูตรได้

Play Golf · 14 training examples

No.OutlookTemperatureHumidityWindyPlay
1sunnyhothighfalseno
2sunnyhothightrueno
3overcasthothighfalseyes
4rainymildhighfalseyes
5rainycoolnormalfalseyes
6rainycoolnormaltrueno
7overcastcoolnormaltrueyes
8sunnymildhighfalseno
9sunnymildnormalfalseyes
10rainymildnormalfalseyes
11sunnymildnormaltrueyes
12overcastmildhightrueyes
13overcasthotnormalfalseyes
14rainymildhightrueno

Naive Bayes · rainy, cool, high, true

ClassPriorP(rainy|class)P(cool|class)P(high|class)P(windy=true|class)Original product
yes9/143/92/93/93/90.00823
no5/142/51/54/53/50.03840
มุมมองใน Workbook

การคูณที่มองเห็นช่วยให้ตาม Conditional Evidence ได้ง่าย

สิ่งที่ปรับใน Web SQL

เพิ่ม Class Prior, Laplace Smoothing และ Log Score เพื่อรองรับค่าที่ไม่เคยพบและ Underflow

kNN · sunny, 0.82, 0.83, not windy · k=5

NeighborDistanceClass
10.0361no
80.1562no
90.1838yes
21.0026no
111.0108yes

Vote: no = 3, yes = 2 → prediction = no

HOW SQL BECOMES ML

Model คือ Logic ที่เก็บไว้ Learned State หรือทั้งสองอย่าง

Pure SQL ไม่ได้หมายความว่า Algorithm ทุกชนิดจะเขียนได้สวยหรือ Scale เท่ากัน แต่หมายถึง Transformation ตั้งแต่ Training Row ไปถึง Decision ถูกแสดงและรันภายใน Data Engine

TABLEtraining rows
CTE / VIEWfeature contract
AGGREGATElearned statistics
WINDOW / JOINcompare and rank
RELATIONprediction + evidence

Pure SQL แข็งแรงตรงไหน และต้องตรงไปตรงมาตรงไหน

  • เหมาะกับ Transparent Baseline, Tabular Problem ขนาดเล็กถึงกลาง, Governed Data และการสอนกลไก Algorithm
  • kNN แพงตอน Score เพราะแบบตรงไปตรงมาต้องเทียบ Query Row กับ Training Row ทุกแถว
  • Iterative Method ต้องใช้ Bounded Recursion, Procedure หรือ Unrolled Step และต้องวัด Convergence
  • Deep Neural Network, GPU Training และ Automatic Differentiation ซับซ้อนไม่ใช่เป้าหมายที่เหมาะกับ Hand-written SQL

RELATED LESSONS

ใช้ Pure SQL เพื่อเข้าใจ แล้วใช้ Platform เพื่อดำเนินงานจริง

ต่อด้วย Declarative ML เพื่อเห็น Ecosystem, MADlib เพื่อใช้ In-database Algorithm ที่มีวุฒิภาวะ และ DuckDB × ClickHouse เพื่อเปรียบเทียบ Execution Boundary

NEXT PURE SQL LAB

เปลี่ยนความสัมพันธ์ให้เป็น Recommendation ที่จัดอันดับแล้ว

ต่อด้วยระบบแนะนำเจ็ดวิธีผ่าน SQL ล้วน ตั้งแต่ Popularity, Graph Co-occurrence, Collaborative Filtering ไปถึง Content, Time-decay และ Hybrid Ranking