Files
dataminingexample/cheat-sheet.md
2025-12-22 05:09:30 +01:00

14 KiB
Raw Blame History

📋 CHEAT SHEET - Công Thức Khai Phá Dữ Liệu

📊 PHẦN 1: TIỀN XỬ LÝ DỮ LIỆU

1.1 Thống Kê Mô Tả

Mean (Trung bình)

x̄ = Σxi / n

Ví dụ: [4, 5, 6] → x̄ = 15/3 = 5

Median (Trung vị)

Sắp xếp → Lấy giá trị giữa (hoặc trung bình 2 giá trị giữa)

Ví dụ: [4, 5, 6] → Median = 5
Ví dụ: [4, 5, 6, 7] → Median = (5+6)/2 = 5.5

Mode (Yếu vị)

Giá trị xuất hiện nhiều nhất

Ví dụ: [4, 5, 5, 6] → Mode = 5


1.2 Boxplot

Quartiles (Tứ phân vị)

Q1 = Trung vị của nửa dưới
Q2 = Median
Q3 = Trung vị của nửa trên
IQR = Q3 - Q1

Ví dụ: [1, 2, 3, 4, 5, 6, 7, 8, 9]

  • Q1 = Median([1,2,3,4]) = (2+3)/2 = 2.5
  • Q2 = 5
  • Q3 = Median([6,7,8,9]) = (7+8)/2 = 7.5
  • IQR = 7.5 - 2.5 = 5

Outliers (Giá trị ngoại lai)

Lower fence = Q1 - 1.5 × IQR
Upper fence = Q3 + 1.5 × IQR
Outlier nếu: x < Lower fence hoặc x > Upper fence

1.3 Chuẩn Hóa (Normalization)

Decimal Scaling

x' = x / 10^j
(Chọn j sao cho Max(|x'|) < 1)

Ví dụ: [45, 67, 91] → j=2
91 → 91/100 = 0.91


Min-Max Normalization

x' = (x - min) / (max - min) × (new_max - new_min) + new_min

Trường hợp đặc biệt [0, 1]:

x' = (x - min) / (max - min)

Ví dụ: [4, 7, 10] về [0, 1]

  • Min=4, Max=10, Range=6
  • 7 → (7-4)/6 = 0.5

Ví dụ: [4, 7, 10] về [-1, 1]

x' = (x - min) / (max - min) × 2 - 1
7 → (7-4)/6 × 2 - 1 = 0.5 × 2 - 1 = 0

Z-Score Normalization

x' = (x - μ) / σ

Computational Formula cho σ:

σ = √[Σxi²/n - x̄²]

Ví dụ: [4, 7, 10]

  • x̄ = 21/3 = 7
  • Σxi² = 16 + 49 + 100 = 165
  • σ = √[165/3 - 7²] = √[55 - 49] = √6 = 2.45
  • 7 → (7-7)/2.45 = 0

Modified Z-Score (Robust, dùng MAD thay vì σ)

Phương pháp này kháng nhiễu tốt hơn khi có outliers.

x' = 0.6745 × (x - median) / MAD

Trong đó:
MAD = median(|xi - median|)

Quy trình tính:

Bước 1: Tính Median của dữ liệu

Sắp xếp → Lấy giá trị giữa

Bước 2: Tính độ lệch tuyệt đối

|xi - median| cho tất cả các điểm

Bước 3: Tính MAD

MAD = Median của các độ lệch tuyệt đối

Bước 4: Tính Modified Z-Score

x' = 0.6745 × (x - median) / MAD

Ví dụ: [1, 2, 3, 4, 100] (có outlier)

Bước 1: Median = 3

Bước 2: Độ lệch tuyệt đối

|1-3| = 2
|2-3| = 1
|3-3| = 0
|4-3| = 1
|100-3| = 97
→ [2, 1, 0, 1, 97]

Bước 3: MAD = Median([2, 1, 0, 1, 97])

Sắp xếp: [0, 1, 1, 2, 97]
MAD = 1

Bước 4: Tính Modified Z-Score

x=1:   0.6745 × (1-3)/1 = 0.6745 × (-2) = -1.349
x=2:   0.6745 × (2-3)/1 = 0.6745 × (-1) = -0.6745
x=3:   0.6745 × (3-3)/1 = 0
x=4:   0.6745 × (4-3)/1 = 0.6745 × 1 = 0.6745
x=100: 0.6745 × (100-3)/1 = 0.6745 × 97 = 65.43

So sánh Z-Score thường:

x̄ = (1+2+3+4+100)/5 = 22
σ = 43.36
x=100: (100-22)/43.36 = 1.8 ← Bị ảnh hưởng nặng bởi outlier!

Ưu điểm Modified Z-Score:

  • Không bị ảnh hưởng bởi outliers
  • Dùng Median thay vì Mean
  • Dùng MAD thay vì σ
  • Phát hiện outliers tốt hơn (thường dùng ngưỡng |z'| > 3.5)

1.4 Làm Trơn (Binning)

Equal-Width Binning

Bin width = (Max - Min) / số bins

Interval Notation:

Bin 1: [min, min+width)
Bin 2: [min+width, min+2×width)
...
Bin cuối: [..., max]

Ví dụ: [1,2,3,4,5,6,7,8,9] → 3 bins

  • Width = (9-1)/3 = 2.67
  • Bin 1: [1, 3.67) → 1,2,3
  • Bin 2: [3.67, 6.33) → 4,5,6
  • Bin 3: [6.33, 9] → 7,8,9

Smoothing Methods

1. Bin Means

Thay mỗi giá trị = Trung bình của bin

Ví dụ: Bin [1,2,3] → Mean = 2 → [2,2,2]

2. Bin Medians

Thay mỗi giá trị = Trung vị của bin

Ví dụ: Bin [1,2,3] → Median = 2 → [2,2,2]

3. Bin Boundaries

Thay mỗi giá trị = Min hoặc Max gần nhất

Ví dụ: Bin [1,2,3] → [1,1,3]


1.5 Correlation (Tương Quan)

Phương pháp 1: Definitional

r = Σ[(xi - x̄)(yi - ȳ)] / √[Σ(xi - x̄)² × Σ(yi - ȳ)²]

Phương pháp 2: Computational (Khuyến nghị)

Cov(X,Y) = Σ(xi·yi)/n - x̄·ȳ

σx = √[Σxi²/n - x̄²]

σy = √[Σyi²/n - ȳ²]

r = Cov(X,Y) / (σx × σy)

Ví dụ: X=[1,2,3], Y=[2,4,6]

Σxi = 6, Σyi = 12
Σxi² = 14, Σyi² = 56, Σ(xi·yi) = 28
x̄ = 2, ȳ = 4

Cov(X,Y) = 28/3 - 2×4 = 9.33 - 8 = 1.33
σx = √[14/3 - 4] = √[4.67 - 4] = 0.82
σy = √[56/3 - 16] = √[18.67 - 16] = 1.63
r = 1.33/(0.82 × 1.63) = 1.0

Giải thích r:

  • r = 1: Tương quan dương hoàn hảo
  • r = -1: Tương quan âm hoàn hảo
  • r = 0: Không tương quan
  • |r| > 0.7: Tương quan mạnh
  • 0.3 < |r| < 0.7: Tương quan trung bình
  • |r| < 0.3: Tương quan yếu

🔍 PHẦN 2: THUẬT TOÁN

2.1 Apriori Algorithm

Support (Độ hỗ trợ)

Support(X) = Số giao dịch chứa X / Tổng số giao dịch

Ví dụ:

  • 10 giao dịch, {A,B} xuất hiện 3 lần
  • Support({A,B}) = 3/10 = 30%

Confidence (Độ tin cậy)

Confidence(X → Y) = Support(X  Y) / Support(X)

Ví dụ:

  • Support({A,B}) = 30%
  • Support({A}) = 50%
  • Confidence(A → B) = 30%/50% = 60%

Lift

Lift(X → Y) = Confidence(X → Y) / Support(Y)

Ví dụ:

  • Confidence(A → B) = 60%
  • Support(B) = 40%
  • Lift(A → B) = 60%/40% = 1.5

Giải thích Lift:

  • Lift > 1: X và Y có quan hệ dương
  • Lift = 1: X và Y độc lập
  • Lift < 1: X và Y có quan hệ âm

Quy trình Apriori

Bước 1: Tìm L₁ (1-itemsets thường xuyên)

Đếm từng item → Lọc theo min_support

Bước 2: Tìm L₂ (2-itemsets thường xuyên)

Kết hợp các items từ L₁ → Đếm → Lọc theo min_support

Bước 3: Lặp lại cho L₃, L₄, ... cho đến khi không còn itemsets nào

Bước 4: Sinh luật kết hợp từ frequent itemsets

Với mỗi itemset thường xuyên → Sinh tất cả các luật → Lọc theo min_confidence

2.2 ID3 Algorithm (Decision Tree)

Entropy (Độ hỗn loạn)

Entropy(S) = -Σ pi × log₂(pi)

Ví dụ: S có 9 Yes, 5 No (tổng 14)

p_yes = 9/14 = 0.643
p_no = 5/14 = 0.357

Entropy(S) = -(0.643 × log₂(0.643) + 0.357 × log₂(0.357))
           = -(0.643 × (-0.637) + 0.357 × (-1.485))
           = -(-0.410 - 0.530)
           = 0.940

Information Gain (Lợi ích thông tin)

Gain(S, A) = Entropy(S) - Σ (|Sv|/|S|) × Entropy(Sv)

Ví dụ: Attribute "Weather" có 3 giá trị (Sunny=5, Rain=4, Cloudy=5)

Entropy(S) = 0.940

Sunny: 2 Yes, 3 No → Entropy = 0.971
Rain: 4 Yes, 0 No → Entropy = 0
Cloudy: 3 Yes, 2 No → Entropy = 0.971

Gain = 0.940 - [(5/14)×0.971 + (4/14)×0 + (5/14)×0.971]
     = 0.940 - [0.347 + 0 + 0.347]
     = 0.940 - 0.694
     = 0.246

Chọn attribute có Gain cao nhất làm root node


Quy trình ID3

Bước 1: Tính Entropy(S) của tập dữ liệu Bước 2: Tính Gain cho mỗi attribute Bước 3: Chọn attribute có Gain cao nhất → Root node Bước 4: Chia dữ liệu theo giá trị của attribute đã chọn Bước 5: Lặp lại cho mỗi nhánh cho đến khi:

  • Tất cả examples trong node có cùng class → Leaf node
  • Không còn attribute nào → Leaf node (chọn class phổ biến nhất)
  • Không còn example nào → Leaf node (chọn class phổ biến nhất từ parent)

2.3 K-means Clustering

Euclidean Distance (Khoảng cách Euclid)

d(p, q) = √[(x₁ - x₂)² + (y₁ - y₂)²]

Ví dụ: p(2,3), q(5,7)

d = √[(2-5)² + (3-7)²]
  = √[9 + 16]
  = √25
  = 5

Cho n chiều:

d(p, q) = √[Σ(pi - qi)²]

SSE (Sum of Squared Errors)

SSE = Σ distance²(điểm, tâm cluster)

Ví dụ: Cluster có tâm C(3,3), điểm A(2,3), B(4,5)

SSE = [(2-3)² + (3-3)²] + [(4-3)² + (5-3)²]
    = [1 + 0] + [1 + 4]
    = 1 + 5
    = 6

Cập nhật Centroid

Centroid mới = (Trung bình xi, Trung bình yi)

Ví dụ: Cluster có điểm (2,3), (4,5), (6,7)

Centroid = ((2+4+6)/3, (3+5+7)/3)
         = (4, 5)

Quy trình K-means

Bước 1: Chọn K centroids ban đầu

Bước 2: Gán mỗi điểm vào cluster gần nhất

Tính khoảng cách từ điểm đến tất cả centroids
→ Chọn centroid có khoảng cách nhỏ nhất

Bước 3: Cập nhật centroid mới

Tính trung bình tọa độ của tất cả điểm trong cluster

Bước 4: Lặp lại Bước 2-3 cho đến khi:

  • Centroids không thay đổi, HOẶC
  • Điểm không thay đổi cluster, HOẶC
  • Đạt số vòng lặp tối đa

Bước 5: Tính SSE cuối cùng


📐 CÔNG THỨC BỔ SUNG

Covariance (Hiệp phương sai)

Definitional

Cov(X,Y) = Σ(xi - x̄)(yi - ȳ) / n

Computational (Khuyến nghị)

Cov(X,Y) = Σ(xi·yi)/n - x̄·ȳ

Hoặc:
Cov(X,Y) = [Σ(xi·yi) - (Σxi)(Σyi)/n] / n

Standard Deviation (Độ lệch chuẩn)

Definitional

σ = √[Σ(xi - x̄)² / n]

Computational (Khuyến nghị)

σ = √[Σxi²/n - x̄²]

Hoặc:
σ = √{[Σxi² - (Σxi)²/n] / n}

Variance (Phương sai)

σ² = Σ(xi - x̄)² / n         (Definitional)
σ² = Σxi²/n - x̄²             (Computational)

🎯 BẢNG TÓM TẮT

Các phương pháp chuẩn hóa

Phương pháp Công thức Khi nào dùng
Decimal Scaling x' = x/10^j Nhanh, đơn giản
Min-Max x' = (x-min)/(max-min)×(b-a)+a Cần khoảng cụ thể [a,b]
Z-Score x' = (x-μ)/σ Dữ liệu phân phối chuẩn, ít outliers
Modified Z-Score x' = 0.6745×(x-median)/MAD Có outliers, cần robust

Lưu ý:

  • Z-Score thường: Nhạy cảm với outliers (dùng mean & σ)
  • Modified Z-Score: Kháng nhiễu (dùng median & MAD)
  • Phát hiện outliers: |Modified Z-Score| > 3.5

Khi nào dùng Definitional vs Computational?

Tình huống Công thức Lý do
Có bảng chi tiết (xi - x̄) Definitional Đã tính sẵn
Chỉ có dữ liệu gốc Computational Nhanh hơn
Dùng máy tính/Excel Computational Ít sai số
Học lý thuyết Definitional Dễ hiểu
Thi trắc nghiệm Computational Tiết kiệm thời gian

Mức độ tương quan

| |r| | Mức độ | |-----|--------| | < 0.3 | Yếu | | 0.3 - 0.7 | Trung bình | | > 0.7 | Mạnh |


Interval Notation

Ký hiệu Ý nghĩa Ví dụ
[a, b] Bao gồm a VÀ b [1, 5] → 1 ≤ x ≤ 5
[a, b) Bao gồm a, KHÔNG b [1, 5) → 1 ≤ x < 5
(a, b] KHÔNG a, bao gồm b (1, 5] → 1 < x ≤ 5

Binning:

  • Equal-Width: [a, b) cho bins 1 đến n-1, [a, b] cho bin cuối
  • Equal-Frequency: [a, b] cho tất cả bins

🔑 CÔNG THỨC QUAN TRỌNG NHẤT

Top 12 công thức cần nhớ:

  1. Mean: x̄ = Σxi / n
  2. Median: Giá trị giữa sau khi sắp xếp
  3. Min-Max: x' = (x - min)/(max - min)
  4. Z-Score: x' = (x - μ)/σ
  5. Modified Z-Score: x' = 0.6745×(x - median)/MAD
  6. σ (Computational): √[Σxi²/n - x̄²]
  7. Cov (Computational): Σ(xi·yi)/n - x̄·ȳ
  8. r (Correlation): Cov(X,Y)/(σx × σy)
  9. Support: Count(X)/Total
  10. Confidence: Support(XY)/Support(X)
  11. Entropy: -Σ pi × log₂(pi)
  12. Euclidean Distance: √[Σ(pi - qi)²]

💡 MẸO GHI NHỚ

Computational vs Definitional:

  • Definitional = Dễ hiểu, nhiều bước
  • Computational = Nhanh, ít sai số

Normalization:

  • Decimal Scaling = Chia cho 10^j
  • Min-Max = Đưa về khoảng [a, b]
  • Z-Score = Chuẩn hóa theo phân phối (mean & σ)
  • Modified Z-Score = Z-Score robust (median & MAD)

Z-Score vs Modified Z-Score:

  • Z-Score = Dùng Mean & σ → Nhạy outliers
  • Modified Z-Score = Dùng Median & MAD → Kháng outliers
  • MAD = Median của |xi - median|
  • 0.6745 = Hằng số để MAD tương đương σ khi phân phối chuẩn

Binning:

  • Equal-Width = Chiều rộng đều → Bins có thể rỗng/đông
  • Equal-Frequency = Số phần tử đều → Chiều rộng không đều

Apriori:

  • Support = Tần suất xuất hiện
  • Confidence = Khả năng Y xảy ra khi có X
  • Lift > 1 = X và Y liên quan

ID3:

  • Entropy cao = Hỗn loạn (nhiều class khác nhau)
  • Gain cao = Attribute tốt để phân chia
  • Chọn Gain cao nhất làm root

K-means:

  • Gán về cluster gần nhất
  • Cập nhật centroid = Trung bình điểm trong cluster
  • SSE giảm = Cluster tốt hơn

CHECKLIST ÔN TẬP

Trước khi thi, đảm bảo bạn biết:

Tiền xử lý:

  • Tính Mean, Median, Mode
  • Vẽ Boxplot, tìm outliers
  • 4 phương pháp chuẩn hóa (Decimal, Min-Max, Z-Score, Modified Z-Score)
  • Binning và smoothing
  • Tính correlation (cả 2 cách: Definitional & Computational)

Apriori:

  • Tính Support
  • Tính Confidence
  • Sinh luật kết hợp
  • Biết khi nào dừng

ID3:

  • Tính Entropy
  • Tính Information Gain
  • Chọn attribute tốt nhất
  • Vẽ cây quyết định

K-means:

  • Tính khoảng cách Euclid
  • Gán điểm vào cluster
  • Cập nhật centroid
  • Tính SSE