14 KiB
📋 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ớ:
- Mean: x̄ = Σxi / n
- Median: Giá trị giữa sau khi sắp xếp
- Min-Max: x' = (x - min)/(max - min)
- Z-Score: x' = (x - μ)/σ
- Modified Z-Score: x' = 0.6745×(x - median)/MAD
- σ (Computational): √[Σxi²/n - x̄²]
- Cov (Computational): Σ(xi·yi)/n - x̄·ȳ
- r (Correlation): Cov(X,Y)/(σx × σy)
- Support: Count(X)/Total
- Confidence: Support(X∪Y)/Support(X)
- Entropy: -Σ pi × log₂(pi)
- 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