2025-12-21 16:05:01 +01:00
2025-12-21 16:05:01 +01:00

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

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

Làm trơn Y

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)

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(XY) / 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.

Description
No description provided
Readme 101 KiB
Languages
Markdown 100%