Files
dataminingexample/README_reconciled.md
2025-12-22 03:33:03 +01:00

507 lines
12 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Bài Tập Khai Phá Dữ Liệu - Đề Thi Mẫu 2025 (Phiên bản Rút gọn)
## Câu 1: Phân Tích Dữ Liệu X và Y
### Dữ liệu ban đầu
```
X: 7.0, 8.5, 8.6, 6.7, 6.5, 7.0, 6.0, 5.5, 7.0, 9.1, 4.5, 5.3
Y: 7.2, 8.0, 8.5, 7.5, 8.5, 6.0, 6.5, 6.8, 9.0, 8.5, 5.5, 6.0
```
---
### a. Giá trị trung bình, trung vị, mode
**X (sau khi sắp xếp: 4.5, 5.3, 5.5, 6.0, 6.5, 6.7, 7.0, 7.0, 7.0, 8.5, 8.6, 9.1):**
- Trung bình: (4.5 + 5.3 + ... + 9.1) / 12 = 81.7 / 12 = **6.81**
- Trung vị: (6.7 + 7.0) / 2 = **6.85**
- Mode: **7.0** (xuất hiện 3 lần)
**Y (sau khi sắp xếp: 5.5, 6.0, 6.0, 6.5, 6.8, 7.2, 7.5, 8.0, 8.5, 8.5, 8.5, 9.0):**
- Trung bình: 88.0 / 12 = **7.33**
- Trung vị: (7.2 + 7.5) / 2 = **7.35**
- Mode: **8.5** (xuất hiện 3 lần)
---
### b. Boxplot của X và Y
**X:**
- Min = 4.5, Q1 = 5.75, Median = 6.85, Q3 = 7.75, Max = 9.1, IQR = 2.0
**Y:**
- Min = 5.5, Q1 = 6.25, Median = 7.35, Q3 = 8.5, Max = 9.0, IQR = 2.25
---
### c. Chuẩn hóa dữ liệu
#### **Phương pháp 1: Decimal Scaling**
**Công thức:** x' = x / 10^j (chọn j sao cho Max(|x'|) < 1)
**X:** Max = 9.1 → j = 1
```
X chuẩn hóa: 0.70, 0.85, 0.86, 0.67, 0.65, 0.70, 0.60, 0.55, 0.70, 0.91, 0.45, 0.53
```
**Y:** Max = 9.0 → j = 1
```
Y chuẩn hóa: 0.72, 0.80, 0.85, 0.75, 0.85, 0.60, 0.65, 0.68, 0.90, 0.85, 0.55, 0.60
```
---
#### **Phương pháp 2: Min-Max Normalization**
**Công thức tổng quát:**
```
x' = (x - min) / (max - min) × (new_max - new_min) + new_min
```
Khi chuẩn hóa về [0, 1]: new_min = 0, new_max = 1
```
x' = (x - min) / (max - min)
```
##### **Ví dụ 1: Chuẩn hóa X về [0, 1]**
Min = 4.5, Max = 9.1, Range = 4.6
```
7.0 → (7.0 - 4.5) / 4.6 = 0.543
Kết quả: 0.543, 0.870, 0.891, 0.478, 0.435, 0.543, 0.326, 0.217, 0.543, 1.000, 0.000, 0.174
```
##### **Ví dụ 2: Chuẩn hóa X về [-1, 1]**
```
x' = (x - 4.5) / 4.6 × 2 - 1
7.0 → 0.543 × 2 - 1 = 0.087
Kết quả: 0.087, 0.739, 0.783, -0.043, -0.130, 0.087, -0.348, -0.565, 0.087, 1.000, -1.000, -0.652
```
**Y về [0, 1]:** Min = 5.5, Max = 9.0
```
Kết quả: 0.486, 0.714, 0.857, 0.571, 0.857, 0.143, 0.286, 0.371, 1.000, 0.857, 0.000, 0.143
```
---
#### **Phương pháp 3: Z-Score Normalization**
**Công thức:** x' = (x - μ) / σ
**X:** μ = 6.81, σ = 1.339
```
Ví dụ: 7.0 → (7.0 - 6.81) / 1.339 = 0.142
Kết quả: 0.142, 1.262, 1.337, -0.082, -0.231, 0.142, -0.605, -0.978, 0.142, 1.710, -1.725, -1.128
```
**Y:** μ = 7.33, σ = 1.127
```
Kết quả: -0.115, 0.595, 1.038, 0.151, 1.038, -1.180, -0.737, -0.470, 1.482, 1.038, -1.624, -1.180
```
---
### d. Làm trơn dữ liệu (Binning với 4 bins)
#### **Phương pháp 1: Equal-Width + Bin Means**
**X:** Range = 4.6, Bin width = 1.15
| Bin | Khoảng | Giá trị | Mean |
|-----|--------|---------|------|
| 1 | [4.5, 5.65) | 4.5, 5.3, 5.5 | 5.10 |
| 2 | [5.65, 6.8) | 6.0, 6.5, 6.7 | 6.40 |
| 3 | [6.8, 7.95) | 7.0, 7.0, 7.0 | 7.00 |
| 4 | [7.95, 9.1] | 8.5, 8.6, 9.1 | 8.73 |
```
X sau làm trơn: 7.0, 8.73, 8.73, 6.4, 6.4, 7.0, 6.4, 5.1, 7.0, 8.73, 5.1, 5.1
```
**Y:** Range = 3.5, Bin width = 0.875
| Bin | Khoảng | Giá trị | Mean |
|-----|--------|---------|------|
| 1 | [5.5, 6.375) | 5.5, 6.0, 6.0 | 5.83 |
| 2 | [6.375, 7.25) | 6.5, 6.8, 7.2 | 6.83 |
| 3 | [7.25, 8.125) | 7.5, 8.0 | 7.75 |
| 4 | [8.125, 9.0] | 8.5, 8.5, 8.5, 9.0 | 8.625 |
```
Y sau làm trơn: 6.83, 7.75, 8.625, 7.75, 8.625, 5.83, 6.83, 6.83, 8.625, 8.625, 5.83, 5.83
```
---
#### **Phương pháp 2: Bin Boundaries**
Thay mỗi giá trị bằng biên (min/max) gần nhất trong bin.
**X:**
```
Kết quả: 7.0, 8.5, 8.5, 6.7, 6.7, 7.0, 6.0, 5.5, 7.0, 9.1, 4.5, 5.5
```
---
#### **Phương pháp 3: Bin Medians**
Thay mỗi giá trị bằng trung vị của bin.
**X:** Medians = [5.3, 6.5, 7.0, 8.6]
```
Kết quả: 7.0, 8.6, 8.6, 6.5, 6.5, 7.0, 6.5, 5.3, 7.0, 8.6, 5.3, 5.3
```
---
#### **Phương pháp 4: Equal-Frequency**
Mỗi bin có 3 phần tử.
**X (sorted):** 4.5, 5.3, 5.5 | 6.0, 6.5, 6.7 | 7.0, 7.0, 7.0 | 8.5, 8.6, 9.1
| Bin | Phần tử | Mean |
|-----|---------|------|
| 1 | 4.5, 5.3, 5.5 | 5.10 |
| 2 | 6.0, 6.5, 6.7 | 6.40 |
| 3 | 7.0, 7.0, 7.0 | 7.00 |
| 4 | 8.5, 8.6, 9.1 | 8.73 |
```
Kết quả: 5.1, 5.1, 5.1, 6.4, 6.4, 6.4, 7.0, 7.0, 7.0, 8.73, 8.73, 8.73
```
---
### e. Hệ số tương quan
#### **Bảng tính toán**
| i | xi | yi | xi-x̄ | yi-ȳ | (xi-x̄)(yi-ȳ) | (xi-x̄)² | (yi-ȳ)² |
|---|----|----|------|------|---------------|---------|---------|
| 1 | 7.0 | 7.2 | 0.19 | -0.13 | -0.025 | 0.036 | 0.017 |
| 2 | 8.5 | 8.0 | 1.69 | 0.67 | 1.133 | 2.856 | 0.449 |
| 3 | 8.6 | 8.5 | 1.79 | 1.17 | 2.094 | 3.204 | 1.369 |
| 4 | 6.7 | 7.5 | -0.11 | 0.17 | -0.019 | 0.012 | 0.029 |
| 5 | 6.5 | 8.5 | -0.31 | 1.17 | -0.363 | 0.096 | 1.369 |
| 6 | 7.0 | 6.0 | 0.19 | -1.33 | -0.253 | 0.036 | 1.769 |
| 7 | 6.0 | 6.5 | -0.81 | -0.83 | 0.672 | 0.656 | 0.689 |
| 8 | 5.5 | 6.8 | -1.31 | -0.53 | 0.694 | 1.716 | 0.281 |
| 9 | 7.0 | 9.0 | 0.19 | 1.67 | 0.317 | 0.036 | 2.789 |
| 10 | 9.1 | 8.5 | 2.29 | 1.17 | 2.679 | 5.244 | 1.369 |
| 11 | 4.5 | 5.5 | -2.31 | -1.83 | 4.227 | 5.336 | 3.349 |
| 12 | 5.3 | 6.0 | -1.51 | -1.33 | 2.008 | 2.280 | 1.769 |
| **Σ** | | | | | **12.164** | **21.508** | **15.248** |
---
#### **Phương pháp 1: Công thức trực tiếp**
```
r = Σ[(xi - x̄)(yi - ȳ)] / √[Σ(xi - x̄)² × Σ(yi - ȳ)²]
r = 12.164 / √(21.508 × 15.248) = 12.164 / 18.110 = 0.672
```
---
#### **Phương pháp 2: Qua Covariance và Standard Deviation**
**Công thức (theo sách giáo khoa):**
```
Cov(A,B) = Σ(ai - Ā)(bi - B̄) / n
σ = √[Σ(ai - Ā)² / n]
r = Cov(A,B) / (σA × σB)
```
**Tính toán:**
```
Cov(X,Y) = 12.164 / 12 = 1.014
σx = √(21.508 / 12) = √1.792 = 1.339
σy = √(15.248 / 12) = √1.271 = 1.127
r = 1.014 / (1.339 × 1.127) = 1.014 / 1.509 = 0.672
```
**Kết luận:** r ≈ **0.67** → Tương quan dương khá mạnh
---
## Câu 2 - Dạng 1: Thuật Toán Apriori
### Dữ liệu giao dịch
| ID | Items |
|----|-------|
| T1 | B, E, F, M |
| T2 | E, F, O |
| T3 | A, H, O, S |
| T4 | B, D, E, F |
| T5 | A, D, H, S |
| T6 | E, M, O |
| T7 | A, D, H, O, S |
**Tham số:** min_support = 40%, min_confidence = 70%
**Ngưỡng:** 7 × 0.4 = 2.8 ≈ 3 lần
---
### a. Tìm tập thường xuyên
**L₁ (tập 1 phần tử):**
| Item | Xuất hiện | Support | Thường xuyên? |
|------|-----------|---------|---------------|
| A | 3 | 42.9% | ✓ |
| D | 3 | 42.9% | ✓ |
| E | 4 | 57.1% | ✓ |
| F | 3 | 42.9% | ✓ |
| H | 3 | 42.9% | ✓ |
| O | 4 | 57.1% | ✓ |
| S | 3 | 42.9% | ✓ |
(B: 2, M: 2 bị loại)
---
**L₂ (tập 2 phần tử):**
| Tập | Xuất hiện | Support | Thường xuyên? |
|-----|-----------|---------|---------------|
| {A, H} | 3 | 42.9% | ✓ |
| {A, S} | 3 | 42.9% | ✓ |
| {E, F} | 3 | 42.9% | ✓ |
| {H, S} | 3 | 42.9% | ✓ |
(Các tập khác < 3 lần)
---
**L₃ (tập 3 phần tử):**
| Tập | Xuất hiện | Support | Thường xuyên? |
|-----|-----------|---------|---------------|
| {A, H, S} | 3 | 42.9% | ✓ |
**Tổng cộng:** 12 tập thường xuyên
---
### b. Luật kết hợp mạnh
**Công thức:** confidence(X → Y) = support(X Y) / support(X)
**Từ {A, H}:**
- A → H: 3/3 = 100% ✓
- H → A: 3/3 = 100% ✓
**Từ {A, S}:**
- A → S: 100% ✓
- S → A: 100% ✓
**Từ {E, F}:**
- E → F: 3/4 = 75% ✓
- F → E: 3/3 = 100% ✓
**Từ {H, S}:**
- H → S: 100% ✓
- S → H: 100% ✓
**Từ {A, H, S}:**
- A → {H, S}: 100% ✓
- H → {A, S}: 100% ✓
- S → {A, H}: 100% ✓
- {A, H} → S: 100% ✓
- {A, S} → H: 100% ✓
- {H, S} → A: 100% ✓
**Tổng:** 14 luật kết hợp mạnh
---
## Câu 2 - Dạng 2: Thuật Toán ID3
### Dữ liệu
| Outlook | Temperature | Humidity | Wind | Play |
|---------|-------------|----------|------|------|
| Sunny | Hot | High | Weak | No |
| Sunny | Hot | High | Strong | No |
| Overcast | Hot | High | Weak | Yes |
| Rain | Mild | High | Weak | Yes |
| Rain | Cool | Normal | Weak | Yes |
| Rain | Cool | Normal | Strong | No |
| Overcast | Cool | Normal | Strong | Yes |
| Sunny | Mild | High | Weak | No |
| Sunny | Cool | Normal | Weak | Yes |
| Rain | Mild | Normal | Weak | Yes |
| Sunny | Mild | Normal | Strong | Yes |
| Overcast | Mild | High | Strong | Yes |
| Overcast | Hot | Normal | Weak | Yes |
| Rain | Mild | High | Strong | No |
**Tổng:** 14 mẫu (9 Yes, 5 No)
---
### a. Xây dựng cây quyết định
**Bước 1: Entropy gốc**
```
Entropy(S) = -(9/14)log₂(9/14) - (5/14)log₂(5/14)
= -0.643×(-0.637) - 0.357×(-1.485) = 0.940
```
---
**Bước 2: Information Gain**
**Outlook:**
- Sunny (5): 2 Yes, 3 No → Entropy = 0.971
- Overcast (4): 4 Yes, 0 No → Entropy = 0
- Rain (5): 3 Yes, 2 No → Entropy = 0.971
```
Entropy_weighted = (5/14)×0.971 + (4/14)×0 + (5/14)×0.971 = 0.694
Gain(Outlook) = 0.940 - 0.694 = 0.246 ⭐
```
**Temperature:** Gain = 0.029
**Humidity:** Gain = 0.151
**Wind:** Gain = 0.048
**→ Chọn Outlook (Gain cao nhất)**
---
**Cây quyết định:**
```
Outlook
/ | \
Sunny Overcast Rain
/ | \
Humidity Yes Wind
/ \ / \
High Normal Weak Strong
| | | |
No Yes Yes No
```
---
### c. Dự đoán
**Mẫu:** Outlook=Sunny, Humidity=High, Wind=Weak
**Quyết định:**
1. Outlook = Sunny → nhánh Sunny
2. Humidity = High → nhánh High
3. **Kết quả: No**
---
## Câu 2 - Dạng 3: Thuật Toán K-means
### Dữ liệu
| Điểm | X | Y |
|------|---|---|
| A | 2 | 10 |
| B | 2 | 5 |
| C | 8 | 4 |
| D | 5 | 8 |
| E | 7 | 5 |
| F | 6 | 4 |
| G | 1 | 2 |
| H | 4 | 9 |
**Tham số:** K=3, Tâm ban đầu: C1(2,10), C2(5,8), C3(1,2)
**Công thức khoảng cách:** d = √[(x₁-x₂)² + (y₁-y₂)²]
---
### VÒNG 1
**Gán điểm (ví dụ A):**
```
d(A, C1) = √[(2-2)² + (10-10)²] = 0
d(A, C2) = √[(2-5)² + (10-8)²] = 3.61
d(A, C3) = √[(2-1)² + (10-2)²] = 8.06
→ A ∈ Cluster 1
```
**Kết quả gán:**
- Cluster 1: A
- Cluster 2: C, D, E, F, H
- Cluster 3: B, G
**Tâm mới:**
- C1 = (2.0, 10.0)
- C2 = ((8+5+7+6+4)/5, (4+8+5+4+9)/5) = (6.0, 6.0)
- C3 = ((2+1)/2, (5+2)/2) = (1.5, 3.5)
**SSE:** 0 + 56.99 + 9.99 = **66.98**
---
### VÒNG 2
**Gán điểm với tâm mới:**
| Điểm | d(C1) | d(C2) | d(C3) | Cụm |
|------|-------|-------|-------|-----|
| A | 0 | 5.66 | 6.52 | C1 |
| B | 5 | 4.12 | 1.58 | C3 |
| C | 8.49 | 2.83 | 6.52 | C2 |
| D | 3.61 | 2.24 | 5.15 | C2 |
| E | 7.07 | 1.41 | 5.59 | C2 |
| F | 7.21 | 2 | 4.61 | C2 |
| G | 8.06 | 6.40 | 1.58 | C3 |
| H | 2.24 | 3.61 | 5.70 | C1 |
**Kết quả:**
- Cluster 1: A, H
- Cluster 2: C, D, E, F
- Cluster 3: B, G
**Tâm mới:**
- C1 = (3.0, 9.5)
- C2 = (6.5, 5.25)
- C3 = (1.5, 3.5)
**SSE:** 2.5 + 15.74 + 5.0 = **23.24** (giảm 65.3%)
---
## Tổng Kết
### Câu 1: Kỹ thuật tiền xử lý
| Kỹ thuật | Phương pháp | Khi nào dùng |
|----------|-------------|--------------|
| **Chuẩn hóa** | Decimal Scaling | Nhanh, đơn giản |
| | Min-Max [a,b] | Neural networks, cần khoảng cụ thể (vd: [0,1], [-1,1]) |
| | Z-Score | So sánh nhiều biến, phát hiện outliers |
| **Binning** | Equal-Width + Means | Dữ liệu phân phối đều |
| | Equal-Frequency | Dữ liệu lệch, có outliers |
| | Boundaries/Medians | Giữ giá trị gốc, kháng nhiễu |
### Câu 2: Thuật toán
| Thuật toán | Mục đích | Tham số | Kết quả |
|------------|----------|---------|---------|
| **Apriori** | Tìm luật kết hợp | min_support, min_confidence | Frequent itemsets, Rules |
| **ID3** | Phân loại | - | Cây quyết định |
| **K-means** | Phân cụm | K, tâm ban đầu | Các cụm + SSE |
**Công thức quan trọng:**
- **Entropy:** -Σ p_i log₂(p_i)
- **Gain:** Entropy(S) - Σ (|Sv|/|S|) × Entropy(Sv)
- **Confidence:** Support(XY) / Support(X)
- **SSE:** Σ distance²(điểm, tâm)