1477 lines
41 KiB
Markdown
1477 lines
41 KiB
Markdown
# Bài Tập Khai Phá Dữ Liệu - Đề Thi Mẫu 2025
|
||
|
||
## 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. Xác định giá trị trung bình, trung vị, mode
|
||
|
||
#### **Phân tích X**
|
||
|
||
**Bước 1:** Sắp xếp dữ liệu X theo thứ tự tăng dần:
|
||
```
|
||
4.5, 5.3, 5.5, 6.0, 6.5, 6.7, 7.0, 7.0, 7.0, 8.5, 8.6, 9.1
|
||
```
|
||
|
||
**Bước 2:** Tính các giá trị thống kê
|
||
|
||
- **Trung bình (Mean):**
|
||
```
|
||
x̄ = (4.5 + 5.3 + 5.5 + 6.0 + 6.5 + 6.7 + 7.0 + 7.0 + 7.0 + 8.5 + 8.6 + 9.1) / 12
|
||
x̄ = 81.7 / 12 = 6.81
|
||
```
|
||
|
||
- **Trung vị (Median):**
|
||
- Vị trí: (n+1)/2 = 13/2 = 6.5
|
||
- Median = (giá trị thứ 6 + giá trị thứ 7) / 2
|
||
- Median = (6.7 + 7.0) / 2 = **6.85**
|
||
|
||
- **Mode (Yếu vị):**
|
||
- Giá trị xuất hiện nhiều nhất: **7.0** (xuất hiện 3 lần)
|
||
|
||
**Kết quả X:**
|
||
- Trung bình: **6.81**
|
||
- Trung vị: **6.85**
|
||
- Mode: **7.0**
|
||
|
||
---
|
||
|
||
#### **Phân tích Y**
|
||
|
||
**Bước 1:** Sắp xếp dữ liệu Y theo thứ tự tăng dần:
|
||
```
|
||
5.5, 6.0, 6.0, 6.5, 6.8, 7.2, 7.5, 8.0, 8.5, 8.5, 8.5, 9.0
|
||
```
|
||
|
||
**Bước 2:** Tính các giá trị thống kê
|
||
|
||
- **Trung bình (Mean):**
|
||
```
|
||
ȳ = (5.5 + 6.0 + 6.0 + 6.5 + 6.8 + 7.2 + 7.5 + 8.0 + 8.5 + 8.5 + 8.5 + 9.0) / 12
|
||
ȳ = 88.0 / 12 = 7.33
|
||
```
|
||
|
||
- **Trung vị (Median):**
|
||
- Median = (giá trị thứ 6 + giá trị thứ 7) / 2
|
||
- Median = (7.2 + 7.5) / 2 = **7.35**
|
||
|
||
- **Mode (Yếu vị):**
|
||
- Giá trị xuất hiện nhiều nhất: **8.5** (xuất hiện 3 lần)
|
||
|
||
**Kết quả Y:**
|
||
- Trung bình: **7.33**
|
||
- Trung vị: **7.35**
|
||
- Mode: **8.5**
|
||
|
||
---
|
||
|
||
### b. Vẽ biểu đồ Boxplot của X và Y
|
||
|
||
#### **Boxplot cho X**
|
||
|
||
**Các giá trị cần thiết:**
|
||
- Minimum (Min): **4.5**
|
||
- Quartile 1 (Q1): (5.5 + 6.0) / 2 = **5.75**
|
||
- Median (Q2): **6.85**
|
||
- Quartile 3 (Q3): (7.0 + 8.5) / 2 = **7.75**
|
||
- Maximum (Max): **9.1**
|
||
- IQR (Interquartile Range): Q3 - Q1 = 7.75 - 5.75 = **2.0**
|
||
|
||
**Phát hiện outliers:**
|
||
- Lower fence: Q1 - 1.5 × IQR = 5.75 - 3.0 = 2.75
|
||
- Upper fence: Q3 + 1.5 × IQR = 7.75 + 3.0 = 10.75
|
||
- **Không có outliers** (tất cả giá trị nằm trong khoảng [2.75, 10.75])
|
||
|
||
```
|
||
Boxplot X:
|
||
Min Q1 Median Q3 Max
|
||
|-----|-------|-----|-----|
|
||
4.5 5.75 6.85 7.75 9.1
|
||
```
|
||
|
||
---
|
||
|
||
#### **Boxplot cho Y**
|
||
|
||
**Các giá trị cần thiết:**
|
||
- Minimum (Min): **5.5**
|
||
- Quartile 1 (Q1): (6.0 + 6.5) / 2 = **6.25**
|
||
- Median (Q2): **7.35**
|
||
- Quartile 3 (Q3): (8.5 + 8.5) / 2 = **8.5**
|
||
- Maximum (Max): **9.0**
|
||
- IQR: Q3 - Q1 = 8.5 - 6.25 = **2.25**
|
||
|
||
**Phát hiện outliers:**
|
||
- Lower fence: Q1 - 1.5 × IQR = 6.25 - 3.375 = 2.875
|
||
- Upper fence: Q3 + 1.5 × IQR = 8.5 + 3.375 = 11.875
|
||
- **Không có outliers** (tất cả giá trị nằm trong khoảng [2.875, 11.875])
|
||
|
||
```
|
||
Boxplot Y:
|
||
Min Q1 Median Q3 Max
|
||
|-----|-------|-----|-----|
|
||
5.5 6.25 7.35 8.5 9.0
|
||
```
|
||
|
||
---
|
||
|
||
### c. Chuẩn hóa thang đo thập phân (Decimal Scaling Normalization)
|
||
|
||
**Công thức:** `x' = x / 10^j`
|
||
|
||
Trong đó j là số nguyên nhỏ nhất sao cho Max(|x'|) < 1
|
||
|
||
#### **Chuẩn hóa X**
|
||
|
||
- Max(|X|) = 9.1
|
||
- Chọn j = 1 (vì 9.1 / 10 = 0.91 < 1)
|
||
- Công thức: x' = x / 10
|
||
|
||
**Kết quả:**
|
||
```
|
||
X gốc: 7.0 8.5 8.6 6.7 6.5 7.0 6.0 5.5 7.0 9.1 4.5 5.3
|
||
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
|
||
```
|
||
|
||
#### **Chuẩn hóa Y**
|
||
|
||
- Max(|Y|) = 9.0
|
||
- Chọn j = 1 (vì 9.0 / 10 = 0.90 < 1)
|
||
- Công thức: y' = y / 10
|
||
|
||
**Kết quả:**
|
||
```
|
||
Y gốc: 7.2 8.0 8.5 7.5 8.5 6.0 6.5 6.8 9.0 8.5 5.5 6.0
|
||
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
|
||
```
|
||
|
||
---
|
||
|
||
### **Các phương pháp chuẩn hóa khác**
|
||
|
||
#### **Phương pháp 2: Min-Max Normalization (Chuẩn hóa Min-Max)**
|
||
|
||
**Công thức:** `x' = (x - min) / (max - min)`
|
||
|
||
Kết quả nằm trong khoảng [0, 1]
|
||
|
||
##### **Chuẩn hóa X**
|
||
|
||
- Min(X) = 4.5
|
||
- Max(X) = 9.1
|
||
- Range = 9.1 - 4.5 = 4.6
|
||
|
||
**Tính toán chi tiết:**
|
||
|
||
| Giá trị gốc | Công thức | Kết quả |
|
||
|-------------|-----------|---------|
|
||
| 7.0 | (7.0 - 4.5) / 4.6 | 0.543 |
|
||
| 8.5 | (8.5 - 4.5) / 4.6 | 0.870 |
|
||
| 8.6 | (8.6 - 4.5) / 4.6 | 0.891 |
|
||
| 6.7 | (6.7 - 4.5) / 4.6 | 0.478 |
|
||
| 6.5 | (6.5 - 4.5) / 4.6 | 0.435 |
|
||
| 7.0 | (7.0 - 4.5) / 4.6 | 0.543 |
|
||
| 6.0 | (6.0 - 4.5) / 4.6 | 0.326 |
|
||
| 5.5 | (5.5 - 4.5) / 4.6 | 0.217 |
|
||
| 7.0 | (7.0 - 4.5) / 4.6 | 0.543 |
|
||
| 9.1 | (9.1 - 4.5) / 4.6 | 1.000 |
|
||
| 4.5 | (4.5 - 4.5) / 4.6 | 0.000 |
|
||
| 5.3 | (5.3 - 4.5) / 4.6 | 0.174 |
|
||
|
||
**Kết quả:**
|
||
```
|
||
X gốc: 7.0 8.5 8.6 6.7 6.5 7.0 6.0 5.5 7.0 9.1 4.5 5.3
|
||
X Min-Max: 0.543 0.870 0.891 0.478 0.435 0.543 0.326 0.217 0.543 1.000 0.000 0.174
|
||
```
|
||
|
||
---
|
||
|
||
##### **Chuẩn hóa Y**
|
||
|
||
- Min(Y) = 5.5
|
||
- Max(Y) = 9.0
|
||
- Range = 9.0 - 5.5 = 3.5
|
||
|
||
**Kết quả:**
|
||
```
|
||
Y gốc: 7.2 8.0 8.5 7.5 8.5 6.0 6.5 6.8 9.0 8.5 5.5 6.0
|
||
Y Min-Max: 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 (Chuẩn hóa Z-Score)**
|
||
|
||
**Công thức:** `x' = (x - μ) / σ`
|
||
|
||
Trong đó:
|
||
- μ = trung bình (mean)
|
||
- σ = độ lệch chuẩn (standard deviation)
|
||
|
||
Kết quả có trung bình = 0 và độ lệch chuẩn = 1
|
||
|
||
##### **Chuẩn hóa X**
|
||
|
||
Từ câu 1a và 1e, ta có:
|
||
- μ_x = 6.81
|
||
- σ_x = 1.398 (từ tính toán correlation)
|
||
|
||
**Tính toán chi tiết:**
|
||
|
||
| Giá trị gốc | Công thức | Kết quả |
|
||
|-------------|-----------|---------|
|
||
| 7.0 | (7.0 - 6.81) / 1.398 | 0.136 |
|
||
| 8.5 | (8.5 - 6.81) / 1.398 | 1.209 |
|
||
| 8.6 | (8.6 - 6.81) / 1.398 | 1.280 |
|
||
| 6.7 | (6.7 - 6.81) / 1.398 | -0.079 |
|
||
| 6.5 | (6.5 - 6.81) / 1.398 | -0.222 |
|
||
| 7.0 | (7.0 - 6.81) / 1.398 | 0.136 |
|
||
| 6.0 | (6.0 - 6.81) / 1.398 | -0.579 |
|
||
| 5.5 | (5.5 - 6.81) / 1.398 | -0.937 |
|
||
| 7.0 | (7.0 - 6.81) / 1.398 | 0.136 |
|
||
| 9.1 | (9.1 - 6.81) / 1.398 | 1.638 |
|
||
| 4.5 | (4.5 - 6.81) / 1.398 | -1.652 |
|
||
| 5.3 | (5.3 - 6.81) / 1.398 | -1.080 |
|
||
|
||
**Kết quả:**
|
||
```
|
||
X gốc: 7.0 8.5 8.6 6.7 6.5 7.0 6.0 5.5 7.0 9.1 4.5 5.3
|
||
X Z-Score: 0.136 1.209 1.280 -0.079 -0.222 0.136 -0.579 -0.937 0.136 1.638 -1.652 -1.080
|
||
```
|
||
|
||
---
|
||
|
||
##### **Chuẩn hóa Y**
|
||
|
||
Từ câu 1a và 1e, ta có:
|
||
- μ_y = 7.33
|
||
- σ_y = 1.177
|
||
|
||
**Kết quả:**
|
||
```
|
||
Y gốc: 7.2 8.0 8.5 7.5 8.5 6.0 6.5 6.8 9.0 8.5 5.5 6.0
|
||
Y Z-Score: -0.110 0.569 0.993 0.144 0.993 -1.130 -0.705 -0.450 1.417 0.993 -1.555 -1.130
|
||
```
|
||
|
||
---
|
||
|
||
### **So sánh các phương pháp chuẩn hóa**
|
||
|
||
| Phương pháp | Công thức | Khoảng giá trị | Ưu điểm | Nhược điểm | Khi nào dùng |
|
||
|-------------|-----------|----------------|---------|------------|--------------|
|
||
| **Decimal Scaling** | x' = x / 10^j | (-1, 1) | Đơn giản, nhanh | Không sử dụng hết khoảng giá trị | Khi cần chuẩn hóa nhanh |
|
||
| **Min-Max** | x' = (x-min)/(max-min) | [0, 1] | Giữ nguyên phân phối, dễ hiểu | Nhạy cảm với outliers | Khi biết giới hạn min/max rõ ràng |
|
||
| **Z-Score** | x' = (x-μ)/σ | (-∞, +∞) | Không bị ảnh hưởng bởi scale, chuẩn thống kê | Khó diễn giải | Khi dữ liệu có phân phối chuẩn |
|
||
|
||
**Ví dụ so sánh cho X = 9.1 (giá trị max):**
|
||
- Decimal Scaling: 0.91 (91% của max có thể)
|
||
- Min-Max: 1.00 (100% - giá trị lớn nhất)
|
||
- Z-Score: 1.638 (cách trung bình 1.638 độ lệch chuẩn)
|
||
|
||
---
|
||
|
||
### d. Làm trơn dữ liệu bằng phương pháp Bin Means (Equal-width)
|
||
|
||
**Tham số:** Số bin = 4, phương pháp: Equal-width (chiều rộng bằng nhau)
|
||
|
||
#### **Làm trơn X**
|
||
|
||
**Bước 1:** Xác định khoảng giá trị
|
||
- Min = 4.5
|
||
- Max = 9.1
|
||
- Range = 9.1 - 4.5 = 4.6
|
||
|
||
**Bước 2:** Tính chiều rộng bin
|
||
```
|
||
Bin width = 4.6 / 4 = 1.15
|
||
```
|
||
|
||
**Bước 3:** Xác định các bin và phân loại dữ liệu
|
||
|
||
| Bin | Khoảng | Giá trị | Trung bình |
|
||
|-----|--------|---------|------------|
|
||
| 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 |
|
||
|
||
**Bước 4:** Thay thế giá trị gốc bằng trung bình bin
|
||
|
||
```
|
||
X gốc: 7.0 8.5 8.6 6.7 6.5 7.0 6.0 5.5 7.0 9.1 4.5 5.3
|
||
Bin: 3 4 4 2 2 3 2 1 3 4 1 1
|
||
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
|
||
```
|
||
|
||
---
|
||
|
||
#### **Các phương pháp làm trơn khác cho X**
|
||
|
||
##### **Phương pháp 2: Bin Boundaries (Làm trơn theo biên)**
|
||
|
||
Thay thế mỗi giá trị bằng giá trị biên gần nhất (min hoặc max của bin).
|
||
|
||
**Quy tắc:** So sánh khoảng cách đến Min và Max của bin, chọn giá trị gần hơn.
|
||
|
||
| Bin | Khoảng | Giá trị | Min | Max | Làm trơn |
|
||
|-----|--------|---------|-----|-----|----------|
|
||
| 1 | [4.5, 5.65) | 4.5 | 4.5 | 5.5 | 4.5 (khoảng cách = 0) |
|
||
| 1 | [4.5, 5.65) | 5.3 | 4.5 | 5.5 | 5.5 (0.2 < 0.8) |
|
||
| 1 | [4.5, 5.65) | 5.5 | 4.5 | 5.5 | 5.5 (khoảng cách = 0) |
|
||
| 2 | [5.65, 6.8) | 6.0 | 6.0 | 6.7 | 6.0 (khoảng cách = 0) |
|
||
| 2 | [5.65, 6.8) | 6.5 | 6.0 | 6.7 | 6.7 (0.2 < 0.5) |
|
||
| 2 | [5.65, 6.8) | 6.7 | 6.0 | 6.7 | 6.7 (khoảng cách = 0) |
|
||
| 3 | [6.8, 7.95) | 7.0 | 7.0 | 7.0 | 7.0 (tất cả bằng nhau) |
|
||
| 4 | [7.95, 9.1] | 8.5 | 8.5 | 9.1 | 8.5 (khoảng cách = 0) |
|
||
| 4 | [7.95, 9.1] | 8.6 | 8.5 | 9.1 | 8.5 (0.1 < 0.5) |
|
||
| 4 | [7.95, 9.1] | 9.1 | 8.5 | 9.1 | 9.1 (khoảng cách = 0) |
|
||
|
||
**Kết quả:**
|
||
```
|
||
X gốc: 7.0 8.5 8.6 6.7 6.5 7.0 6.0 5.5 7.0 9.1 4.5 5.3
|
||
X smoothed (boundaries): 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 (Làm trơn theo trung vị)**
|
||
|
||
Thay thế mỗi giá trị bằng trung vị của bin.
|
||
|
||
| Bin | Khoảng | Giá trị (đã sắp xếp) | Trung vị |
|
||
|-----|--------|----------------------|----------|
|
||
| 1 | [4.5, 5.65) | 4.5, 5.3, 5.5 | 5.3 (giá trị giữa) |
|
||
| 2 | [5.65, 6.8) | 6.0, 6.5, 6.7 | 6.5 (giá trị giữa) |
|
||
| 3 | [6.8, 7.95) | 7.0, 7.0, 7.0 | 7.0 (giá trị giữa) |
|
||
| 4 | [7.95, 9.1] | 8.5, 8.6, 9.1 | 8.6 (giá trị giữa) |
|
||
|
||
**Kết quả:**
|
||
```
|
||
X gốc: 7.0 8.5 8.6 6.7 6.5 7.0 6.0 5.5 7.0 9.1 4.5 5.3
|
||
X smoothed (medians): 7.0 8.6 8.6 6.5 6.5 7.0 6.5 5.3 7.0 8.6 5.3 5.3
|
||
```
|
||
|
||
---
|
||
|
||
**So sánh 3 phương pháp làm trơn:**
|
||
|
||
| Phương pháp | Ưu điểm | Nhược điểm |
|
||
|-------------|---------|------------|
|
||
| **Bin Means** | Giảm nhiễu tốt, mượt mà | Có thể tạo giá trị không tồn tại trong dữ liệu gốc |
|
||
| **Bin Boundaries** | Giữ giá trị thực tế từ dữ liệu gốc | Ít mượt mà, dễ bị ảnh hưởng bởi outliers |
|
||
| **Bin Medians** | Kháng nhiễu tốt (robust), giá trị thực tế | Trung bình giữa 2 phương pháp trên |
|
||
|
||
---
|
||
|
||
#### **Phương pháp phân bin: Equal-Frequency (Tần suất bằng nhau)**
|
||
|
||
Khác với Equal-Width (chiều rộng bằng nhau), phương pháp Equal-Frequency chia dữ liệu sao cho **mỗi bin có số lượng phần tử gần bằng nhau**.
|
||
|
||
##### **Ví dụ với X (4 bins, Equal-Frequency)**
|
||
|
||
**Bước 1:** Sắp xếp dữ liệu
|
||
```
|
||
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
|
||
```
|
||
|
||
**Bước 2:** Tính số phần tử mỗi bin
|
||
```
|
||
n = 12 điểm dữ liệu
|
||
Số bins = 4
|
||
Số phần tử/bin = 12/4 = 3 phần tử
|
||
```
|
||
|
||
**Bước 3:** Phân chia thành 4 bins với 3 phần tử mỗi bin
|
||
|
||
| Bin | Phần tử | Khoảng | Trung bình |
|
||
|-----|---------|--------|------------|
|
||
| 1 | 4.5, 5.3, 5.5 | [4.5, 5.5] | 5.10 |
|
||
| 2 | 6.0, 6.5, 6.7 | (5.5, 6.7] | 6.40 |
|
||
| 3 | 7.0, 7.0, 7.0 | (6.7, 7.0] | 7.00 |
|
||
| 4 | 8.5, 8.6, 9.1 | (7.0, 9.1] | 8.73 |
|
||
|
||
**Kết quả (Bin Means):**
|
||
```
|
||
X gốc (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
|
||
X smoothed (equal-freq): 5.1 5.1 5.1 6.4 6.4 6.4 7.0 7.0 7.0 8.73 8.73 8.73
|
||
```
|
||
|
||
---
|
||
|
||
**So sánh Equal-Width vs Equal-Frequency:**
|
||
|
||
| Phương pháp | Cách chia | Ưu điểm | Nhược điểm | Khi nào dùng |
|
||
|-------------|-----------|---------|------------|--------------|
|
||
| **Equal-Width** | Chiều rộng giá trị bằng nhau | Đơn giản, trực quan | Bins có thể rỗng hoặc quá đông | Dữ liệu phân phối đều |
|
||
| **Equal-Frequency** | Số phần tử mỗi bin bằng nhau | Mỗi bin có đại diện, cân bằng | Bins có thể có khoảng giá trị khác nhau nhiều | Dữ liệu có outliers hoặc phân phối lệch |
|
||
|
||
**Ví dụ so sánh với X:**
|
||
|
||
*Equal-Width:*
|
||
- Bin 1: [4.5, 5.65) → 3 phần tử
|
||
- Bin 2: [5.65, 6.8) → 3 phần tử
|
||
- Bin 3: [6.8, 7.95) → 3 phần tử
|
||
- Bin 4: [7.95, 9.1] → 3 phần tử
|
||
- Chiều rộng: 1.15 (đều nhau)
|
||
|
||
*Equal-Frequency:*
|
||
- Bin 1: [4.5, 5.5] → 3 phần tử (width = 1.0)
|
||
- Bin 2: (5.5, 6.7] → 3 phần tử (width = 1.2)
|
||
- Bin 3: (6.7, 7.0] → 3 phần tử (width = 0.3)
|
||
- Bin 4: (7.0, 9.1] → 3 phần tử (width = 2.1)
|
||
- Số phần tử: 3 (đều nhau)
|
||
|
||
---
|
||
|
||
#### **Làm trơn Y (Bin Means - Equal-Width)**
|
||
|
||
**Bước 1:** Xác định khoảng giá trị
|
||
- Min = 5.5
|
||
- Max = 9.0
|
||
- Range = 9.0 - 5.5 = 3.5
|
||
|
||
**Bước 2:** Tính chiều rộng bin
|
||
```
|
||
Bin width = 3.5 / 4 = 0.875
|
||
```
|
||
|
||
**Bước 3:** Xác định các bin và phân loại dữ liệu
|
||
|
||
| Bin | Khoảng | Giá trị | Trung bình |
|
||
|-----|--------|---------|------------|
|
||
| 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 |
|
||
|
||
**Bước 4:** Thay thế giá trị gốc bằng trung bình bin
|
||
|
||
```
|
||
Y gốc: 7.2 8.0 8.5 7.5 8.5 6.0 6.5 6.8 9.0 8.5 5.5 6.0
|
||
Bin: 2 3 4 3 4 1 2 2 4 4 1 1
|
||
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
|
||
```
|
||
|
||
---
|
||
|
||
### e. Xác định hệ số tương quan giữa X và Y
|
||
|
||
**Có 2 phương pháp tính hệ số tương quan Pearson:**
|
||
|
||
#### **Phương pháp 1: Công thức trực tiếp**
|
||
|
||
```
|
||
r = Σ[(xi - x̄)(yi - ȳ)] / √[Σ(xi - x̄)² × Σ(yi - ȳ)²]
|
||
```
|
||
|
||
#### **Phương pháp 2: Sử dụng Covariance và Standard Deviation**
|
||
|
||
```
|
||
r = Cov(X,Y) / (σx × σy)
|
||
```
|
||
|
||
Trong đó:
|
||
- Cov(X,Y) = Σ[(xi - x̄)(yi - ȳ)] / (n-1) - Hiệp phương sai
|
||
- σx = √[Σ(xi - x̄)² / (n-1)] - Độ lệch chuẩn của X
|
||
- σy = √[Σ(yi - ȳ)² / (n-1)] - Độ lệch chuẩn của Y
|
||
|
||
---
|
||
|
||
#### **Bảng tính toán chi tiết**
|
||
|
||
| 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 |
|
||
| **Tổng** | | | | | **12.164** | **21.508** | **15.248** |
|
||
|
||
#### **Tính toán hệ số tương quan**
|
||
|
||
##### **Phương pháp 1: Công thức trực tiếp**
|
||
|
||
```
|
||
r = 12.164 / √(21.508 × 15.248)
|
||
r = 12.164 / √327.982
|
||
r = 12.164 / 18.110
|
||
r = 0.672
|
||
```
|
||
|
||
##### **Phương pháp 2: Sử dụng Covariance và Standard Deviation**
|
||
|
||
**Bước 1: Tính Covariance (Hiệp phương sai)**
|
||
|
||
```
|
||
Cov(X,Y) = Σ[(xi - x̄)(yi - ȳ)] / (n-1)
|
||
Cov(X,Y) = 12.164 / (12-1)
|
||
Cov(X,Y) = 12.164 / 11
|
||
Cov(X,Y) = 1.106
|
||
```
|
||
|
||
**Bước 2: Tính Standard Deviation của X**
|
||
|
||
```
|
||
σx = √[Σ(xi - x̄)² / (n-1)]
|
||
σx = √(21.508 / 11)
|
||
σx = √1.955
|
||
σx = 1.398
|
||
```
|
||
|
||
**Bước 3: Tính Standard Deviation của Y**
|
||
|
||
```
|
||
σy = √[Σ(yi - ȳ)² / (n-1)]
|
||
σy = √(15.248 / 11)
|
||
σy = √1.386
|
||
σy = 1.177
|
||
```
|
||
|
||
**Bước 4: Tính hệ số tương quan**
|
||
|
||
```
|
||
r = Cov(X,Y) / (σx × σy)
|
||
r = 1.106 / (1.398 × 1.177)
|
||
r = 1.106 / 1.646
|
||
r = 0.672
|
||
```
|
||
|
||
**Kết quả:** Hệ số tương quan r ≈ **0.67** (cả 2 phương pháp cho kết quả giống nhau)
|
||
|
||
**Nhận xét:** Có mối tương quan dương khá mạnh giữa X và Y. Khi X tăng thì Y có xu hướng tăng theo.
|
||
|
||
**So sánh 2 phương pháp:**
|
||
- Phương pháp 1 tính trực tiếp, phù hợp khi cần tính nhanh
|
||
- Phương pháp 2 thông qua covariance và độ lệch chuẩn, giúp hiểu rõ hơn về ý nghĩa thống kê (mức độ biến thiên chung và biến thiên riêng của mỗi biến)
|
||
|
||
---
|
||
|
||
## Tổng Kết Câu 1: Các Kỹ Thuật Tiền Xử Lý Dữ Liệu
|
||
|
||
### **1. Thống kê mô tả (Descriptive Statistics)**
|
||
|
||
| Chỉ số | X | Y | Ý nghĩa |
|
||
|--------|---|---|---------|
|
||
| Mean (Trung bình) | 6.81 | 7.33 | Giá trị trung tâm của dữ liệu |
|
||
| Median (Trung vị) | 6.85 | 7.35 | Giá trị giữa, kháng nhiễu |
|
||
| Mode (Yếu vị) | 7.0 | 8.5 | Giá trị xuất hiện nhiều nhất |
|
||
| Min | 4.5 | 5.5 | Giá trị nhỏ nhất |
|
||
| Max | 9.1 | 9.0 | Giá trị lớn nhất |
|
||
| Q1 | 5.75 | 6.25 | 25% dữ liệu ≤ Q1 |
|
||
| Q3 | 7.75 | 8.5 | 75% dữ liệu ≤ Q3 |
|
||
| IQR | 2.0 | 2.25 | Đo độ phân tán |
|
||
|
||
---
|
||
|
||
### **2. Phương pháp Chuẩn hóa (Normalization)**
|
||
|
||
| Phương pháp | Công thức | Khoảng giá trị | Đặc điểm | Ứng dụng |
|
||
|-------------|-----------|----------------|----------|----------|
|
||
| **Decimal Scaling** | x' = x/10^j | (-1, 1) | Đơn giản, nhanh | Chuẩn hóa nhanh, dữ liệu đơn giản |
|
||
| **Min-Max** | (x-min)/(max-min) | [0, 1] | Giữ phân phối | Neural networks, khi biết min/max |
|
||
| **Z-Score** | (x-μ)/σ | (-∞, +∞) | Chuẩn hóa thống kê | Phát hiện outliers, so sánh nhiều biến |
|
||
|
||
**Khi nào dùng phương pháp nào:**
|
||
- **Decimal Scaling:** Khi cần nhanh, dữ liệu đơn giản
|
||
- **Min-Max:** Khi cần giá trị trong [0,1], biết rõ min/max, dùng cho neural networks
|
||
- **Z-Score:** Khi dữ liệu có phân phối chuẩn, cần so sánh nhiều biến có đơn vị khác nhau
|
||
|
||
---
|
||
|
||
### **3. Phương pháp Phân Bin (Binning)**
|
||
|
||
#### **3.1. Cách phân bin:**
|
||
|
||
| Phương pháp | Nguyên tắc | Ưu điểm | Nhược điểm |
|
||
|-------------|------------|---------|------------|
|
||
| **Equal-Width** | Chiều rộng bằng nhau | Đơn giản, trực quan | Bins có thể rỗng/quá đông |
|
||
| **Equal-Frequency** | Số phần tử bằng nhau | Cân bằng, tránh bins rỗng | Chiều rộng không đều |
|
||
|
||
#### **3.2. Cách làm trơn trong bin:**
|
||
|
||
| Phương pháp | Cách thay thế | Ưu điểm | Nhược điểm |
|
||
|-------------|---------------|---------|------------|
|
||
| **Bin Means** | Thay = trung bình bin | Mượt mà, giảm nhiễu tốt | Tạo giá trị mới |
|
||
| **Bin Medians** | Thay = trung vị bin | Kháng nhiễu, giá trị thực | Trung bình |
|
||
| **Bin Boundaries** | Thay = min/max gần nhất | Giữ giá trị gốc | Ít mượt, nhạy outliers |
|
||
|
||
**Workflow làm trơn dữ liệu:**
|
||
1. Sắp xếp dữ liệu
|
||
2. Phân bin (Equal-Width hoặc Equal-Frequency)
|
||
3. Làm trơn (Means, Medians, hoặc Boundaries)
|
||
|
||
---
|
||
|
||
### **4. Phân tích tương quan (Correlation)**
|
||
|
||
**Hệ số tương quan Pearson: r = 0.67**
|
||
|
||
**Cách tính:**
|
||
- **Phương pháp 1:** Công thức trực tiếp
|
||
- **Phương pháp 2:** r = Cov(X,Y) / (σx × σy)
|
||
|
||
**Diễn giải:**
|
||
- r = 0.67 → Tương quan dương khá mạnh
|
||
- Khi X tăng, Y có xu hướng tăng theo
|
||
- Mức độ: |r| < 0.3 (yếu), 0.3-0.7 (trung bình), > 0.7 (mạnh)
|
||
|
||
---
|
||
|
||
### **5. Quy trình tổng quát tiền xử lý dữ liệu**
|
||
|
||
```
|
||
Dữ liệu thô
|
||
↓
|
||
[1] Thống kê mô tả
|
||
- Tính mean, median, mode
|
||
- Vẽ boxplot
|
||
- Phát hiện outliers
|
||
↓
|
||
[2] Làm sạch dữ liệu
|
||
- Xử lý missing values
|
||
- Xử lý outliers
|
||
- Làm trơn (binning)
|
||
↓
|
||
[3] Chuẩn hóa
|
||
- Min-Max / Z-Score / Decimal Scaling
|
||
- Đưa về cùng thang đo
|
||
↓
|
||
[4] Phân tích mối quan hệ
|
||
- Correlation analysis
|
||
- Feature selection
|
||
↓
|
||
Dữ liệu đã xử lý
|
||
```
|
||
|
||
---
|
||
|
||
## Câu 2: Thuật Toán Apriori và Luật Kết Hợp
|
||
|
||
### 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 |
|
||
|
||
**Tổng số giao dịch:** 7
|
||
|
||
---
|
||
|
||
### a. Tìm tập đối tượng thường xuyên (Frequent Itemsets)
|
||
|
||
**Tham số:** Minimum support = 40% = 0.4
|
||
|
||
**Ngưỡng:** Một tập cần xuất hiện ít nhất 7 × 0.4 = 2.8 ≈ **3 lần**
|
||
|
||
---
|
||
|
||
#### **Bước 1: Tìm L₁ (Tập 1 phần tử thường xuyên)**
|
||
|
||
Đếm số lần xuất hiện của mỗi item:
|
||
|
||
| Item | Giao dịch chứa item | Số lần | Support | Thường xuyên? |
|
||
|------|---------------------|---------|---------|---------------|
|
||
| A | T3, T5, T7 | 3 | 42.9% | ✓ |
|
||
| B | T1, T4 | 2 | 28.6% | ✗ |
|
||
| D | T4, T5, T7 | 3 | 42.9% | ✓ |
|
||
| E | T1, T2, T4, T6 | 4 | 57.1% | ✓ |
|
||
| F | T1, T2, T4 | 3 | 42.9% | ✓ |
|
||
| H | T3, T5, T7 | 3 | 42.9% | ✓ |
|
||
| M | T1, T6 | 2 | 28.6% | ✗ |
|
||
| O | T2, T3, T6, T7 | 4 | 57.1% | ✓ |
|
||
| S | T3, T5, T7 | 3 | 42.9% | ✓ |
|
||
|
||
**L₁ = {A, D, E, F, H, O, S}**
|
||
|
||
---
|
||
|
||
#### **Bước 2: Tìm L₂ (Tập 2 phần tử thường xuyên)**
|
||
|
||
Sinh tập ứng viên C₂ từ L₁, sau đó đếm support:
|
||
|
||
| Tập | Giao dịch chứa | Số lần | Support | Thường xuyên? |
|
||
|-----|----------------|---------|---------|---------------|
|
||
| {A, D} | T5, T7 | 2 | 28.6% | ✗ |
|
||
| {A, E} | - | 0 | 0% | ✗ |
|
||
| {A, F} | - | 0 | 0% | ✗ |
|
||
| {A, H} | T3, T5, T7 | 3 | 42.9% | ✓ |
|
||
| {A, O} | T3, T7 | 2 | 28.6% | ✗ |
|
||
| {A, S} | T3, T5, T7 | 3 | 42.9% | ✓ |
|
||
| {D, E} | T4 | 1 | 14.3% | ✗ |
|
||
| {D, F} | T4 | 1 | 14.3% | ✗ |
|
||
| {D, H} | T5, T7 | 2 | 28.6% | ✗ |
|
||
| {D, O} | T7 | 1 | 14.3% | ✗ |
|
||
| {D, S} | T5, T7 | 2 | 28.6% | ✗ |
|
||
| {E, F} | T1, T2, T4 | 3 | 42.9% | ✓ |
|
||
| {E, H} | - | 0 | 0% | ✗ |
|
||
| {E, O} | T2, T6 | 2 | 28.6% | ✗ |
|
||
| {E, S} | - | 0 | 0% | ✗ |
|
||
| {F, H} | - | 0 | 0% | ✗ |
|
||
| {F, O} | T2 | 1 | 14.3% | ✗ |
|
||
| {F, S} | - | 0 | 0% | ✗ |
|
||
| {H, O} | T3, T7 | 2 | 28.6% | ✗ |
|
||
| {H, S} | T3, T5, T7 | 3 | 42.9% | ✓ |
|
||
| {O, S} | T3, T7 | 2 | 28.6% | ✗ |
|
||
|
||
**L₂ = {{A, H}, {A, S}, {E, F}, {H, S}}**
|
||
|
||
---
|
||
|
||
#### **Bước 3: Tìm L₃ (Tập 3 phần tử thường xuyên)**
|
||
|
||
Sinh tập ứng viên C₃ từ L₂:
|
||
|
||
Từ L₂, ta có thể tạo các tập 3 phần tử có 2 tập con trong L₂:
|
||
|
||
| Tập | Kiểm tra tập con 2 phần tử | Giao dịch | Số lần | Support | Thường xuyên? |
|
||
|-----|----------------------------|-----------|---------|---------|---------------|
|
||
| {A, H, S} | {A,H}✓, {A,S}✓, {H,S}✓ | T3, T5, T7 | 3 | 42.9% | ✓ |
|
||
|
||
**L₃ = {{A, H, S}}**
|
||
|
||
---
|
||
|
||
#### **Bước 4: Tìm L₄**
|
||
|
||
Không thể tạo tập ứng viên C₄ từ L₃ (chỉ có 1 tập trong L₃).
|
||
|
||
**Kết thúc thuật toán.**
|
||
|
||
---
|
||
|
||
### **Tổng hợp tất cả tập đối tượng thường xuyên:**
|
||
|
||
**Tập 1 phần tử:**
|
||
- {A} (42.9%)
|
||
- {D} (42.9%)
|
||
- {E} (57.1%)
|
||
- {F} (42.9%)
|
||
- {H} (42.9%)
|
||
- {O} (57.1%)
|
||
- {S} (42.9%)
|
||
|
||
**Tập 2 phần tử:**
|
||
- {A, H} (42.9%)
|
||
- {A, S} (42.9%)
|
||
- {E, F} (42.9%)
|
||
- {H, S} (42.9%)
|
||
|
||
**Tập 3 phần tử:**
|
||
- {A, H, S} (42.9%)
|
||
|
||
**Tổng cộng: 12 tập thường xuyên**
|
||
|
||
---
|
||
|
||
### b. Xác định luật kết hợp mạnh (Strong Association Rules)
|
||
|
||
**Tham số:**
|
||
- Minimum support = 40%
|
||
- Minimum confidence = 70%
|
||
|
||
**Công thức confidence:** `confidence(X → Y) = support(X ∪ Y) / support(X)`
|
||
|
||
---
|
||
|
||
#### **Từ tập {A, H}**
|
||
|
||
| Luật | Tính toán | Confidence | Mạnh? |
|
||
|------|-----------|------------|-------|
|
||
| A → H | support({A,H}) / support(A) = 3/3 | **100%** | ✓ |
|
||
| H → A | support({A,H}) / support(H) = 3/3 | **100%** | ✓ |
|
||
|
||
---
|
||
|
||
#### **Từ tập {A, S}**
|
||
|
||
| Luật | Tính toán | Confidence | Mạnh? |
|
||
|------|-----------|------------|-------|
|
||
| A → S | support({A,S}) / support(A) = 3/3 | **100%** | ✓ |
|
||
| S → A | support({A,S}) / support(S) = 3/3 | **100%** | ✓ |
|
||
|
||
---
|
||
|
||
#### **Từ tập {E, F}**
|
||
|
||
| Luật | Tính toán | Confidence | Mạnh? |
|
||
|------|-----------|------------|-------|
|
||
| E → F | support({E,F}) / support(E) = 3/4 | **75%** | ✓ |
|
||
| F → E | support({E,F}) / support(F) = 3/3 | **100%** | ✓ |
|
||
|
||
---
|
||
|
||
#### **Từ tập {H, S}**
|
||
|
||
| Luật | Tính toán | Confidence | Mạnh? |
|
||
|------|-----------|------------|-------|
|
||
| H → S | support({H,S}) / support(H) = 3/3 | **100%** | ✓ |
|
||
| S → H | support({H,S}) / support(S) = 3/3 | **100%** | ✓ |
|
||
|
||
---
|
||
|
||
#### **Từ tập {A, H, S}**
|
||
|
||
**Luật với 1 phần tử ở vế phải:**
|
||
|
||
| Luật | Tính toán | Confidence | Mạnh? |
|
||
|------|-----------|------------|-------|
|
||
| {A, H} → S | support({A,H,S}) / support({A,H}) = 3/3 | **100%** | ✓ |
|
||
| {A, S} → H | support({A,H,S}) / support({A,S}) = 3/3 | **100%** | ✓ |
|
||
| {H, S} → A | support({A,H,S}) / support({H,S}) = 3/3 | **100%** | ✓ |
|
||
|
||
**Luật với 2 phần tử ở vế phải:**
|
||
|
||
| Luật | Tính toán | Confidence | Mạnh? |
|
||
|------|-----------|------------|-------|
|
||
| A → {H, S} | support({A,H,S}) / support(A) = 3/3 | **100%** | ✓ |
|
||
| H → {A, S} | support({A,H,S}) / support(H) = 3/3 | **100%** | ✓ |
|
||
| S → {A, H} | support({A,H,S}) / support(S) = 3/3 | **100%** | ✓ |
|
||
|
||
---
|
||
|
||
### **Tổng hợp các luật kết hợp mạnh:**
|
||
|
||
| STT | Luật | Support | Confidence | Lift |
|
||
|-----|------|---------|------------|------|
|
||
| 1 | A → H | 42.9% | 100% | 2.33 |
|
||
| 2 | H → A | 42.9% | 100% | 2.33 |
|
||
| 3 | A → S | 42.9% | 100% | 2.33 |
|
||
| 4 | S → A | 42.9% | 100% | 2.33 |
|
||
| 5 | E → F | 42.9% | 75% | 1.75 |
|
||
| 6 | F → E | 42.9% | 100% | 1.75 |
|
||
| 7 | H → S | 42.9% | 100% | 2.33 |
|
||
| 8 | S → H | 42.9% | 100% | 2.33 |
|
||
| 9 | {A, H} → S | 42.9% | 100% | 2.33 |
|
||
| 10 | {A, S} → H | 42.9% | 100% | 2.33 |
|
||
| 11 | {H, S} → A | 42.9% | 100% | 2.33 |
|
||
| 12 | A → {H, S} | 42.9% | 100% | 2.33 |
|
||
| 13 | H → {A, S} | 42.9% | 100% | 2.33 |
|
||
| 14 | S → {A, H} | 42.9% | 100% | 2.33 |
|
||
|
||
**Tổng cộng: 14 luật kết hợp mạnh**
|
||
|
||
---
|
||
|
||
## Nhận xét và Phân tích
|
||
|
||
### Câu 1:
|
||
- Dữ liệu X và Y có phân phối tương đối tập trung quanh giá trị trung bình
|
||
- Không có outliers trong cả hai tập dữ liệu
|
||
- Hệ số tương quan dương (r ≈ 0.67) cho thấy X và Y có xu hướng thay đổi cùng chiều
|
||
|
||
### Câu 2:
|
||
- Tập {A, H, S} là tập thường xuyên lớn nhất (3 phần tử)
|
||
- Các item A, H, S xuất hiện cùng nhau rất thường xuyên (100% confidence)
|
||
- Item E và F cũng có xu hướng xuất hiện cùng nhau
|
||
- Các luật kết hợp có confidence rất cao (≥75%), cho thấy mối liên hệ mạnh mẽ
|
||
|
||
---
|
||
|
||
## Câu 2 - Dạng 2: Thuật Toán ID3 (Cây Quyết Định)
|
||
|
||
### Đề bài mẫu
|
||
|
||
Cho tập dữ liệu huấn luyện về quyết định chơi thể thao:
|
||
|
||
| STT | Outlook | Temperature | Humidity | Wind | Play Sport |
|
||
|-----|---------|-------------|----------|------|------------|
|
||
| 1 | Sunny | Hot | High | Weak | No |
|
||
| 2 | Sunny | Hot | High | Strong | No |
|
||
| 3 | Overcast | Hot | High | Weak | Yes |
|
||
| 4 | Rain | Mild | High | Weak | Yes |
|
||
| 5 | Rain | Cool | Normal | Weak | Yes |
|
||
| 6 | Rain | Cool | Normal | Strong | No |
|
||
| 7 | Overcast | Cool | Normal | Strong | Yes |
|
||
| 8 | Sunny | Mild | High | Weak | No |
|
||
| 9 | Sunny | Cool | Normal | Weak | Yes |
|
||
| 10 | Rain | Mild | Normal | Weak | Yes |
|
||
| 11 | Sunny | Mild | Normal | Strong | Yes |
|
||
| 12 | Overcast | Mild | High | Strong | Yes |
|
||
| 13 | Overcast | Hot | Normal | Weak | Yes |
|
||
| 14 | Rain | Mild | High | Strong | No |
|
||
|
||
**Yêu cầu:**
|
||
a. Sử dụng thuật toán ID3 để xây dựng cây quyết định. Tính Information Gain cho mỗi thuộc tính.
|
||
b. Vẽ cây quyết định hoàn chỉnh.
|
||
c. Sử dụng cây quyết định để dự đoán: Outlook=Sunny, Temperature=Cool, Humidity=High, Wind=Weak
|
||
|
||
---
|
||
|
||
### Lời giải
|
||
|
||
#### a. Xây dựng cây quyết định bằng ID3
|
||
|
||
**Bước 1: Tính Entropy của tập dữ liệu gốc**
|
||
|
||
Đếm số lượng mỗi lớp:
|
||
- Yes: 9 mẫu
|
||
- No: 5 mẫu
|
||
- Tổng: 14 mẫu
|
||
|
||
```
|
||
Entropy(S) = -Σ pi × log2(pi)
|
||
Entropy(S) = -(9/14)×log2(9/14) - (5/14)×log2(5/14)
|
||
Entropy(S) = -(0.643)×(-0.637) - (0.357)×(-1.485)
|
||
Entropy(S) = 0.410 + 0.530
|
||
Entropy(S) = 0.940
|
||
```
|
||
|
||
---
|
||
|
||
**Bước 2: Tính Information Gain cho từng thuộc tính**
|
||
|
||
##### **Thuộc tính: Outlook**
|
||
|
||
Phân nhóm theo Outlook:
|
||
|
||
| Outlook | Yes | No | Tổng |
|
||
|---------|-----|-----|------|
|
||
| Sunny | 2 | 3 | 5 |
|
||
| Overcast | 4 | 0 | 4 |
|
||
| Rain | 3 | 2 | 5 |
|
||
|
||
Tính Entropy cho mỗi giá trị:
|
||
|
||
```
|
||
Entropy(Sunny) = -(2/5)×log2(2/5) - (3/5)×log2(3/5)
|
||
= -(0.4)×(-1.322) - (0.6)×(-0.737)
|
||
= 0.529 + 0.442 = 0.971
|
||
|
||
Entropy(Overcast) = -(4/4)×log2(4/4) - (0/4)×log2(0/4)
|
||
= -1×0 - 0 = 0
|
||
|
||
Entropy(Rain) = -(3/5)×log2(3/5) - (2/5)×log2(2/5)
|
||
= -(0.6)×(-0.737) - (0.4)×(-1.322)
|
||
= 0.442 + 0.529 = 0.971
|
||
```
|
||
|
||
Tính Entropy trung bình có trọng số:
|
||
|
||
```
|
||
Entropy_Outlook(S) = (5/14)×0.971 + (4/14)×0 + (5/14)×0.971
|
||
= 0.347 + 0 + 0.347
|
||
= 0.694
|
||
```
|
||
|
||
**Information Gain:**
|
||
|
||
```
|
||
Gain(S, Outlook) = Entropy(S) - Entropy_Outlook(S)
|
||
= 0.940 - 0.694
|
||
= 0.246
|
||
```
|
||
|
||
---
|
||
|
||
##### **Thuộc tính: Temperature**
|
||
|
||
Phân nhóm theo Temperature:
|
||
|
||
| Temperature | Yes | No | Tổng |
|
||
|-------------|-----|-----|------|
|
||
| Hot | 2 | 2 | 4 |
|
||
| Mild | 4 | 2 | 6 |
|
||
| Cool | 3 | 1 | 4 |
|
||
|
||
```
|
||
Entropy(Hot) = -(2/4)×log2(2/4) - (2/4)×log2(2/4)
|
||
= -0.5×(-1) - 0.5×(-1) = 1.0
|
||
|
||
Entropy(Mild) = -(4/6)×log2(4/6) - (2/6)×log2(2/6)
|
||
= -(0.667)×(-0.585) - (0.333)×(-1.585)
|
||
= 0.390 + 0.528 = 0.918
|
||
|
||
Entropy(Cool) = -(3/4)×log2(3/4) - (1/4)×log2(1/4)
|
||
= -(0.75)×(-0.415) - (0.25)×(-2)
|
||
= 0.311 + 0.500 = 0.811
|
||
```
|
||
|
||
```
|
||
Entropy_Temperature(S) = (4/14)×1.0 + (6/14)×0.918 + (4/14)×0.811
|
||
= 0.286 + 0.393 + 0.232
|
||
= 0.911
|
||
|
||
Gain(S, Temperature) = 0.940 - 0.911 = 0.029
|
||
```
|
||
|
||
---
|
||
|
||
##### **Thuộc tính: Humidity**
|
||
|
||
Phân nhóm theo Humidity:
|
||
|
||
| Humidity | Yes | No | Tổng |
|
||
|----------|-----|-----|------|
|
||
| High | 3 | 4 | 7 |
|
||
| Normal | 6 | 1 | 7 |
|
||
|
||
```
|
||
Entropy(High) = -(3/7)×log2(3/7) - (4/7)×log2(4/7)
|
||
= -(0.429)×(-1.222) - (0.571)×(-0.807)
|
||
= 0.524 + 0.461 = 0.985
|
||
|
||
Entropy(Normal) = -(6/7)×log2(6/7) - (1/7)×log2(1/7)
|
||
= -(0.857)×(-0.222) - (0.143)×(-2.807)
|
||
= 0.190 + 0.401 = 0.591
|
||
```
|
||
|
||
```
|
||
Entropy_Humidity(S) = (7/14)×0.985 + (7/14)×0.591
|
||
= 0.493 + 0.296
|
||
= 0.789
|
||
|
||
Gain(S, Humidity) = 0.940 - 0.789 = 0.151
|
||
```
|
||
|
||
---
|
||
|
||
##### **Thuộc tính: Wind**
|
||
|
||
Phân nhóm theo Wind:
|
||
|
||
| Wind | Yes | No | Tổng |
|
||
|------|-----|-----|------|
|
||
| Weak | 6 | 2 | 8 |
|
||
| Strong | 3 | 3 | 6 |
|
||
|
||
```
|
||
Entropy(Weak) = -(6/8)×log2(6/8) - (2/8)×log2(2/8)
|
||
= -(0.75)×(-0.415) - (0.25)×(-2)
|
||
= 0.311 + 0.500 = 0.811
|
||
|
||
Entropy(Strong) = -(3/6)×log2(3/6) - (3/6)×log2(3/6)
|
||
= -0.5×(-1) - 0.5×(-1) = 1.0
|
||
```
|
||
|
||
```
|
||
Entropy_Wind(S) = (8/14)×0.811 + (6/14)×1.0
|
||
= 0.463 + 0.429
|
||
= 0.892
|
||
|
||
Gain(S, Wind) = 0.940 - 0.892 = 0.048
|
||
```
|
||
|
||
---
|
||
|
||
**Bước 3: So sánh Information Gain**
|
||
|
||
| Thuộc tính | Information Gain |
|
||
|------------|------------------|
|
||
| **Outlook** | **0.246** ⭐ |
|
||
| Temperature | 0.029 |
|
||
| Humidity | 0.151 |
|
||
| Wind | 0.048 |
|
||
|
||
**Chọn Outlook làm nút gốc** (có Gain cao nhất)
|
||
|
||
---
|
||
|
||
**Bước 4: Xây dựng các nhánh con**
|
||
|
||
##### **Nhánh Outlook = Overcast**
|
||
Tất cả 4 mẫu đều có kết quả Yes → **Nút lá: Yes**
|
||
|
||
##### **Nhánh Outlook = Sunny**
|
||
Còn 5 mẫu (2 Yes, 3 No) - cần phân tách tiếp
|
||
|
||
Tính lại Gain cho các thuộc tính còn lại trên tập con này:
|
||
|
||
Tập con Sunny:
|
||
| Temperature | Humidity | Wind | Play |
|
||
|-------------|----------|------|------|
|
||
| Hot | High | Weak | No |
|
||
| Hot | High | Strong | No |
|
||
| Mild | High | Weak | No |
|
||
| Cool | Normal | Weak | Yes |
|
||
| Mild | Normal | Strong | Yes |
|
||
|
||
Sau khi tính toán (tương tự), **Humidity** có Gain cao nhất:
|
||
- Humidity = High → No
|
||
- Humidity = Normal → Yes
|
||
|
||
##### **Nhánh Outlook = Rain**
|
||
Còn 5 mẫu (3 Yes, 2 No) - cần phân tách tiếp
|
||
|
||
Sau khi tính toán, **Wind** có Gain cao nhất:
|
||
- Wind = Weak → Yes
|
||
- Wind = Strong → No
|
||
|
||
---
|
||
|
||
#### b. Cây quyết định hoàn chỉnh
|
||
|
||
```
|
||
Outlook
|
||
/ | \
|
||
/ | \
|
||
Sunny Overcast Rain
|
||
/ | \
|
||
/ | \
|
||
Humidity Yes Wind
|
||
/ \ / \
|
||
/ \ / \
|
||
High Normal Weak Strong
|
||
| | | |
|
||
No Yes Yes No
|
||
```
|
||
|
||
---
|
||
|
||
#### c. Dự đoán cho mẫu mới
|
||
|
||
**Mẫu:** Outlook=Sunny, Temperature=Cool, Humidity=High, Wind=Weak
|
||
|
||
**Bước dự đoán:**
|
||
1. Outlook = Sunny → đi xuống nhánh Sunny
|
||
2. Humidity = High → đi xuống nhánh High
|
||
3. Kết quả: **No**
|
||
|
||
**Kết luận:** Với điều kiện thời tiết này, dự đoán là **không chơi thể thao**.
|
||
|
||
---
|
||
|
||
## Câu 2 - Dạng 3: Thuật Toán K-means (Phân Cụm)
|
||
|
||
### Đề bài mẫu
|
||
|
||
Cho tập dữ liệu gồm 8 điểm dữ liệu hai chiề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 |
|
||
|
||
**Yêu cầu:**
|
||
a. Sử dụng thuật toán K-means với K=3 để phân cụm dữ liệu. Chọn 3 tâm cụm ban đầu là: C1(2,10), C2(5,8), C3(1,2).
|
||
b. Thực hiện ít nhất 2 vòng lặp và mô tả chi tiết các bước.
|
||
c. Tính SSE (Sum of Squared Errors) sau mỗi vòng lặp.
|
||
|
||
---
|
||
|
||
### Lời giải
|
||
|
||
#### a & b. Thuật toán K-means - Chi tiết các bước
|
||
|
||
**Khởi tạo:**
|
||
- Số cụm K = 3
|
||
- Tâm cụm ban đầu:
|
||
- C1 = (2, 10)
|
||
- C2 = (5, 8)
|
||
- C3 = (1, 2)
|
||
|
||
**Công thức khoảng cách Euclidean:**
|
||
```
|
||
d(p, c) = √[(x_p - x_c)² + (y_p - y_c)²]
|
||
```
|
||
|
||
---
|
||
|
||
### **VÒNG LẶP 1**
|
||
|
||
#### **Bước 1.1: Gán điểm vào cụm gần nhất**
|
||
|
||
**Điểm A(2, 10):**
|
||
```
|
||
d(A, C1) = √[(2-2)² + (10-10)²] = 0
|
||
d(A, C2) = √[(2-5)² + (10-8)²] = √(9+4) = 3.61
|
||
d(A, C3) = √[(2-1)² + (10-2)²] = √(1+64) = 8.06
|
||
```
|
||
→ A thuộc Cluster 1 (khoảng cách = 0)
|
||
|
||
**Điểm B(2, 5):**
|
||
```
|
||
d(B, C1) = √[(2-2)² + (5-10)²] = 5
|
||
d(B, C2) = √[(2-5)² + (5-8)²] = √(9+9) = 4.24
|
||
d(B, C3) = √[(2-1)² + (5-2)²] = √(1+9) = 3.16
|
||
```
|
||
→ B thuộc Cluster 3 (khoảng cách = 3.16)
|
||
|
||
**Điểm C(8, 4):**
|
||
```
|
||
d(C, C1) = √[(8-2)² + (4-10)²] = √(36+36) = 8.49
|
||
d(C, C2) = √[(8-5)² + (4-8)²] = √(9+16) = 5
|
||
d(C, C3) = √[(8-1)² + (4-2)²] = √(49+4) = 7.28
|
||
```
|
||
→ C thuộc Cluster 2 (khoảng cách = 5)
|
||
|
||
**Điểm D(5, 8):**
|
||
```
|
||
d(D, C1) = √[(5-2)² + (8-10)²] = √(9+4) = 3.61
|
||
d(D, C2) = √[(5-5)² + (8-8)²] = 0
|
||
d(D, C3) = √[(5-1)² + (8-2)²] = √(16+36) = 7.21
|
||
```
|
||
→ D thuộc Cluster 2 (khoảng cách = 0)
|
||
|
||
**Điểm E(7, 5):**
|
||
```
|
||
d(E, C1) = √[(7-2)² + (5-10)²] = √(25+25) = 7.07
|
||
d(E, C2) = √[(7-5)² + (5-8)²] = √(4+9) = 3.61
|
||
d(E, C3) = √[(7-1)² + (5-2)²] = √(36+9) = 6.71
|
||
```
|
||
→ E thuộc Cluster 2 (khoảng cách = 3.61)
|
||
|
||
**Điểm F(6, 4):**
|
||
```
|
||
d(F, C1) = √[(6-2)² + (4-10)²] = √(16+36) = 7.21
|
||
d(F, C2) = √[(6-5)² + (4-8)²] = √(1+16) = 4.12
|
||
d(F, C3) = √[(6-1)² + (4-2)²] = √(25+4) = 5.39
|
||
```
|
||
→ F thuộc Cluster 2 (khoảng cách = 4.12)
|
||
|
||
**Điểm G(1, 2):**
|
||
```
|
||
d(G, C1) = √[(1-2)² + (2-10)²] = √(1+64) = 8.06
|
||
d(G, C2) = √[(1-5)² + (2-8)²] = √(16+36) = 7.21
|
||
d(G, C3) = √[(1-1)² + (2-2)²] = 0
|
||
```
|
||
→ G thuộc Cluster 3 (khoảng cách = 0)
|
||
|
||
**Điểm H(4, 9):**
|
||
```
|
||
d(H, C1) = √[(4-2)² + (9-10)²] = √(4+1) = 2.24
|
||
d(H, C2) = √[(4-5)² + (9-8)²] = √(1+1) = 1.41
|
||
d(H, C3) = √[(4-1)² + (9-2)²] = √(9+49) = 7.62
|
||
```
|
||
→ H thuộc Cluster 2 (khoảng cách = 1.41)
|
||
|
||
**Kết quả phân cụm vòng 1:**
|
||
- **Cluster 1:** A(2,10)
|
||
- **Cluster 2:** C(8,4), D(5,8), E(7,5), F(6,4), H(4,9)
|
||
- **Cluster 3:** B(2,5), G(1,2)
|
||
|
||
---
|
||
|
||
#### **Bước 1.2: Tính lại tâm cụm mới**
|
||
|
||
**Cluster 1:**
|
||
```
|
||
C1_new = (2/1, 10/1) = (2.0, 10.0)
|
||
```
|
||
|
||
**Cluster 2:**
|
||
```
|
||
C2_new = ((8+5+7+6+4)/5, (4+8+5+4+9)/5)
|
||
= (30/5, 30/5)
|
||
= (6.0, 6.0)
|
||
```
|
||
|
||
**Cluster 3:**
|
||
```
|
||
C3_new = ((2+1)/2, (5+2)/2)
|
||
= (3/2, 7/2)
|
||
= (1.5, 3.5)
|
||
```
|
||
|
||
**Tâm cụm mới:**
|
||
- C1 = (2.0, 10.0) - không đổi
|
||
- C2 = (6.0, 6.0) - thay đổi từ (5, 8)
|
||
- C3 = (1.5, 3.5) - thay đổi từ (1, 2)
|
||
|
||
---
|
||
|
||
#### c. Tính SSE (Sum of Squared Errors) - Vòng 1
|
||
|
||
```
|
||
SSE = Σ d²(điểm, tâm_cụm_của_nó)
|
||
```
|
||
|
||
**Cluster 1:**
|
||
```
|
||
SSE1 = d²(A, C1) = 0² = 0
|
||
```
|
||
|
||
**Cluster 2:**
|
||
```
|
||
SSE2 = d²(C, C2_old) + d²(D, C2_old) + d²(E, C2_old) + d²(F, C2_old) + d²(H, C2_old)
|
||
= 5² + 0² + 3.61² + 4.12² + 1.41²
|
||
= 25 + 0 + 13.03 + 16.97 + 1.99
|
||
= 56.99
|
||
```
|
||
|
||
**Cluster 3:**
|
||
```
|
||
SSE3 = d²(B, C3_old) + d²(G, C3_old)
|
||
= 3.16² + 0²
|
||
= 9.99 + 0
|
||
= 9.99
|
||
```
|
||
|
||
**Tổng SSE vòng 1:**
|
||
```
|
||
SSE_total = 0 + 56.99 + 9.99 = 66.98
|
||
```
|
||
|
||
---
|
||
|
||
### **VÒNG LẶP 2**
|
||
|
||
#### **Bước 2.1: Gán điểm vào cụm gần nhất (với tâm mới)**
|
||
|
||
Tâm cụm hiện tại:
|
||
- C1 = (2.0, 10.0)
|
||
- C2 = (6.0, 6.0)
|
||
- C3 = (1.5, 3.5)
|
||
|
||
**Tính lại khoảng cách cho tất cả các điểm:**
|
||
|
||
| Điểm | d(C1) | d(C2) | d(C3) | Cụm |
|
||
|------|-------|-------|-------|-----|
|
||
| A(2,10) | 0 | 5.66 | 6.52 | C1 |
|
||
| B(2,5) | 5 | 4.12 | 1.58 | C3 |
|
||
| C(8,4) | 8.49 | 2.83 | 6.52 | C2 |
|
||
| D(5,8) | 3.61 | 2.24 | 5.15 | C2 |
|
||
| E(7,5) | 7.07 | 1.41 | 5.59 | C2 |
|
||
| F(6,4) | 7.21 | 2 | 4.61 | C2 |
|
||
| G(1,2) | 8.06 | 6.40 | 1.58 | C3 |
|
||
| H(4,9) | 2.24 | 3.61 | 5.70 | C1 |
|
||
|
||
**Kết quả phân cụm vòng 2:**
|
||
- **Cluster 1:** A(2,10), H(4,9)
|
||
- **Cluster 2:** C(8,4), D(5,8), E(7,5), F(6,4)
|
||
- **Cluster 3:** B(2,5), G(1,2)
|
||
|
||
---
|
||
|
||
#### **Bước 2.2: Tính lại tâm cụm**
|
||
|
||
**Cluster 1:**
|
||
```
|
||
C1_new = ((2+4)/2, (10+9)/2) = (3.0, 9.5)
|
||
```
|
||
|
||
**Cluster 2:**
|
||
```
|
||
C2_new = ((8+5+7+6)/4, (4+8+5+4)/4) = (26/4, 21/4) = (6.5, 5.25)
|
||
```
|
||
|
||
**Cluster 3:**
|
||
```
|
||
C3_new = ((2+1)/2, (5+2)/2) = (1.5, 3.5) - không đổi
|
||
```
|
||
|
||
---
|
||
|
||
#### **Tính SSE - Vòng 2**
|
||
|
||
**Cluster 1:**
|
||
```
|
||
SSE1 = d²(A, C1_new) + d²(H, C1_new)
|
||
= [(2-3)²+(10-9.5)²] + [(4-3)²+(9-9.5)²]
|
||
= [1+0.25] + [1+0.25]
|
||
= 1.25 + 1.25 = 2.5
|
||
```
|
||
|
||
**Cluster 2:**
|
||
```
|
||
SSE2 = d²(C, C2_new) + d²(D, C2_new) + d²(E, C2_new) + d²(F, C2_new)
|
||
= [(8-6.5)²+(4-5.25)²] + [(5-6.5)²+(8-5.25)²] + [(7-6.5)²+(5-5.25)²] + [(6-6.5)²+(4-5.25)²]
|
||
= [2.25+1.56] + [2.25+7.56] + [0.25+0.06] + [0.25+1.56]
|
||
= 3.81 + 9.81 + 0.31 + 1.81 = 15.74
|
||
```
|
||
|
||
**Cluster 3:**
|
||
```
|
||
SSE3 = d²(B, C3_new) + d²(G, C3_new)
|
||
= [(2-1.5)²+(5-3.5)²] + [(1-1.5)²+(2-3.5)²]
|
||
= [0.25+2.25] + [0.25+2.25]
|
||
= 2.5 + 2.5 = 5.0
|
||
```
|
||
|
||
**Tổng SSE vòng 2:**
|
||
```
|
||
SSE_total = 2.5 + 15.74 + 5.0 = 23.24
|
||
```
|
||
|
||
---
|
||
|
||
### **So sánh SSE**
|
||
|
||
| Vòng lặp | SSE | Giảm |
|
||
|----------|-----|------|
|
||
| Vòng 1 | 66.98 | - |
|
||
| Vòng 2 | 23.24 | 65.3% |
|
||
|
||
**Nhận xét:** SSE giảm đáng kể từ 66.98 xuống 23.24, cho thấy thuật toán đang hội tụ. Có thể tiếp tục thêm vòng lặp cho đến khi SSE không đổi hoặc thay đổi rất nhỏ.
|
||
|
||
---
|
||
|
||
### **Kết quả cuối cùng sau 2 vòng lặp:**
|
||
|
||
**Các cụm:**
|
||
- **Cluster 1 (Vùng trên):** A(2,10), H(4,9) - Tâm: (3.0, 9.5)
|
||
- **Cluster 2 (Vùng giữa-phải):** C(8,4), D(5,8), E(7,5), F(6,4) - Tâm: (6.5, 5.25)
|
||
- **Cluster 3 (Vùng dưới-trái):** B(2,5), G(1,2) - Tâm: (1.5, 3.5)
|
||
|
||
**Biểu diễn trực quan:**
|
||
```
|
||
Y
|
||
10 │ A H
|
||
9 │
|
||
8 │ D
|
||
7 │
|
||
6 │
|
||
5 │ B E
|
||
4 │ C F
|
||
3 │
|
||
2 │ G
|
||
1 │
|
||
└─────────────────── X
|
||
1 2 3 4 5 6 7 8
|
||
```
|
||
|
||
---
|
||
|
||
## Tổng Kết 3 Dạng Bài Câu 2
|
||
|
||
| Thuật toán | Mục đích | Đầu vào | Đầu ra | Tham số chính |
|
||
|------------|----------|---------|--------|---------------|
|
||
| **Apriori** | Tìm luật kết hợp | Giao dịch | Frequent itemsets, Rules | min_support, min_confidence |
|
||
| **ID3** | Phân loại | Dữ liệu có nhãn | Cây quyết định | Không có (tự động chọn thuộc tính tốt nhất) |
|
||
| **K-means** | Phân cụm | Dữ liệu số | Các cụm + tâm cụm | K (số cụm), tâm ban đầu |
|
||
|
||
**Công thức quan trọng cần nhớ:**
|
||
|
||
**Apriori:**
|
||
- Support(X) = số giao dịch chứa X / tổng số giao dịch
|
||
- Confidence(X→Y) = Support(X∪Y) / Support(X)
|
||
|
||
**ID3:**
|
||
- Entropy(S) = -Σ p_i × log₂(p_i)
|
||
- Gain(S,A) = Entropy(S) - Σ (|Sv|/|S|) × Entropy(Sv)
|
||
|
||
**K-means:**
|
||
- Distance(p,c) = √[(x_p - x_c)² + (y_p - y_c)²]
|
||
- SSE = Σ distance²(điểm, tâm_cụm)
|
||
- Tâm mới = trung bình tọa độ các điểm trong cụm
|
||
|
||
---
|
||
|
||
**Lưu ý:** Đây là bài giải chi tiết với các bước tính toán cụ thể. Trong bài thi thực tế, bạn có thể rút gọn một số bước tính toán trung gian nếu cần thiết.
|