MỘT SỐ GIẢI THUẬT PHÂN LỚP DỰA TRÊN LUẬT KẾT HỢP DỰ

Một phần của tài liệu Ứng dụng thuật toán phân lớp dựa trên luật kết hợp dự báo vào giải bài toán dự báo tình hình nghỉ bỏ học của học sinh trung học trên địa bàn thành phố hồ chí minh (Trang 105 - 109)

- Sử dụng luật kết hợp để phát hiện lỗi vòng bi [4] là công trình của nhóm tác giả

3. MỘT SỐ GIẢI THUẬT PHÂN LỚP DỰA TRÊN LUẬT KẾT HỢP DỰ

DỰA TRÊN LUẬT KẾT HỢP DỰ BÁO

3.1. Giải thuật PRM

Giải thuật PRM (Predictive Rule Mining) [5] là giải thuật cải tiến từ giải thuật FOIL. Trong PRM, sau khi một mẫu được bao phủ một cách chính xác theo luật, thay vì xóa nó, trọng số của nó bị giảm bằng cách nhân với factor. Phiên bản "có trọng số" này của FOIL tạo ra nhiều luật hơn và mỗi mẫu dương tính thường được dùng nhiều lần.

3.1.1. Nội dung giải thuật.

Đầu vào: Tập huấn luyện D, được chia thành 2 phần là P tập dương tính và N tập âm tính.

Đầu ra: tập luật R cho từng lớp.

Phương thức:

Procedure Predictive Rule Mining Đặt trọng số cho các mẫu là 1

while TotalWeight(P) > δ * totalWeight N’ ← N, P’ ← P, A’ ← A

r ← Φ

while true

Tìm mẫu p tốt nhất trong A’

if gain(p) < min_gain then thoát thêm p vào r

for t trong P’ ∪ N’ không thỏa r Xóa t khỏi P’ và N’

Tính lại A’ theo các mẫu t đã xóa

end end

R ← R ∪ {r}

For Mỗi mẫu t trong P thỏa luật r t.weight ← α * t.weight

Giảm trọng số các tập chứa t trong A

end end return R

3.1.2. Ưu điểm của giải thuật PRM.

Là giải thuật đơn giản thuận lợi cho việc cài đặt trên nhiều ngôn ngữ lập trình khác nhau.

Giải thuật tận dụng triệt để các thuộc tính để sinh ra luật chất lượng nhất dựa vào việc giảm trọng số của các mẫu thay vì xóa bỏ sau khi thuộc tính tham gia vào luật.

3.1.3.Nhược điểm của giải thuật PRM.

Giải thuật mới chỉ sử dụng một thuộc tính có mức gain cao nhất chưa đảm bảo tính khách quan toàn diện khi tạo luật.

Việc tính toán khá tốn thời gian và tài nguyên do số lần thực hiện lặp lại là rất lớn.

3.2. Giải thuật CPAR.

Giải thuật CPAR (Classification based on Predictive Association Rules) [5] là giải thuật được phát triển dựa trên ý tưởng của thuật toán PRM được Xiaoxin Yin và Jiawei Han công bố năm 2003. Nội dung cải tiến chính của giải

không bỏ sót thuộc tính đem lại một bộ luật có chất lượng cao.

3.2.1. Nội dung giải thuậtProcedure PROPOSED_CPAR Procedure PROPOSED_CPAR

ruleSet 

for each class do

P  tập dương tính N  tập âm tính Loop pData tập dương tính nData tập âm tính R ; []; ge[] While true do maxGain maximum ge[] l  mẫu đạt maxGain

if maxGain < T then thoát

R R l

xóa các mẫu không chứa nội dung luật trong pData, nData

cập nhật []; cập nhật ge[] End while ruleSet ruleSet R end loop end for return ruleSet

3.2.2. Ưu điểm của giải thuật:

Giải thuật sử dụng ngưỡng gain T để làm căn cứ xét các mẫu có gain đạt ngưỡng để xem xét tham gia luật điều này tránh được việc bỏ sót các thuộc tính quan trọng làm nên chất lượng của bộ luật.

3.2.3. Nhược điểm của giải thuật.

Giải thuật vẫn còn sử dụng cách tính gain truyền thống (FOIL Gain) để tính gain cho các thuộc tính điều này làm cho các thuộc tính quan trọng vẫn có gain không cao và không có khả năng tham gia luật, cản trở hiệu quả dự báo của luật sinh ra.

ý tưởng của giải thuật CPAR được cải tiến 2 nội dung là sử dụng Gain-Ratio thay cho Gain để xác định các tập mục phổ biến, đảm bảo các thuộc tính có Gain-Ratio chính xác đạt ngưỡng Gain sẽ đem lại tập luật chất lượng cao. Thứ hai giải thuật sử dụng phương pháp tiền xử lý T-Test để thu giảm số chiều của tập dữ liệu đầu vào nhằm giảm bớt số lần tính toán làm tăng hiệu suất của giải thuật.

3.3.1. Nội dung giải thuật tạo luật kết hợp. Đầu vào: Đầu vào:

D[n]- là tập dữ liệu nhị phân cần phân lớp gồm n thuộc tính.

P- là các tuple dương tính trong D.

N- là các tuple âm tính trong D

∑W(P)- tổng trọng số của tất cả các tuples dương tính. (khởi tạo ban đầu mỗi tuple có trọng số là 1)

MGV- do người dùng chỉ định giá trị gain tối thiểu (0.7).

TWT- ngưỡng trọng số tối thiểu.

LGT- ngưỡng Gain của mỗi thuộc tính.

CT- ngưỡng bao phủ của tuple (0.05).

Decay_Factor – do người dùng chỉ định dùng để giảm trọng số của tuple (2/3).

GSR – Hệ số lấy khoảng giá trị Gain_ratio (0.99)

Đầu ra:

Danh sách luật kết hợp (CAR)

Phương thức:

1. RA[ ]  // khởi tạo tập luật dự tuyển. 2. R[ ]  // khởi tạo tập luật.

3. P  D[n](class=1) // đưa các tuple có class=1 vào P.

4. N  D[n](class  1) // đưa các tuple có class 1 vào N.

5. Best_Gain = 0

6. W(P) //tổng trọng số tuple trong tập P. 7. W(N) // tổng trọng số tuple trong tập N. 8. A[n] = danh mục các thuộc tính trong D. 9. Tính InfoD

13. W(P1) = tổng trọng số tuple trong P1 14. W(N1) = tổng trọng số tuple trong N1 15. For i=1 to n do //Tính gain_ratio

16. WP[i] = tổng trọng số các tuple

chứa thuộc tính thứ i trong P1.

17. WN[i] = tổng trọng số các tuple

chứa thuộc tính thứ i trong N1. 18. I[i] =

− WP[i]

WP[i]+WN[i]log2 WP[i] WP[i]+WN[i] − WN[i]

WP[i]+WN[i]log2 WN[i] WP[i]+WN[i] 19. E[i] = − WP[i]+WN[i]

W(P1)+W(N1)∗ 𝐼[𝑖] 20. Gain[i] = InfoD – E[i]. 20. Gain[i] = InfoD – E[i].

21. SplitInfo[i] = −WP[i]+WN[i] −WP[i]+WN[i] W(P1)+W(N1)log2WP[i]+WN[i] W(P1)+W(N1) 22. Gain_Ratio[i] = Gain[i]/ SplitInfo[i]

23. If Gain_Ratio[i] > Best_Gain then

24. Best_Gain  Gain_Ratio[i] 25. End if 26. End for. 27. LGT = Best_Gain * GSR. 28. For i=1 to n do 29. if Gain_Ratio[i] >=LGT && Gain[i] >= MGV then 30. Close-to-the-best[ ]  i // i là thứ tự thuộc tính trong A[n]. 31. end if 32. end for 33. For q =1 to Size[Close-to-the-best] do

// với mỗi giá trị trong Close-to-the-best.

34. TempP  P1, TempN  N1 //

sao lưu P1 và N1.

35. Xóa các tuple không chứa thuộc

tính A[q] trong P1 và N1.

38. if Count[N1] = = 0 then // Nếu N1 trống (rỗng).

39. Thêm luật dự tuyển trong RA[<tên

trường>=A[q]]vào tập luật R[ ].

40. Xóa thuộc tính A[q] khỏi Bảng

Gain_Ratio. Đặt trọng số của các tuple trong P chứa A[q] bằng 0 sau khi đã đưa vào luật chính thức R[ ]

41. end if.

42. P1  TempP, N1 TempN // trả

lại dữ liệu cho P1 và N1. 43. end for.

44. End While.

45. Return R[ ].

3.3.2.Nội dung giải thuật phân lớp.Đầu vào: tập thử nghiệm T, R. Đầu vào: tập thử nghiệm T, R.

Đầu ra: Accuracy.

Phương thức:

1. For i=1 to m do

2. Tính Laplace accuracy cho từng luật R[i]// công thưc (7)

3. end for

4. Sắp xếp các luật trong R[m];

5. For i=1 to n do //với mỗi tuple trong T 6. for j=1 to m do //cho mỗi luật trong R 7. if ( antecedent.R[j]  T[i] &&

consequent.R[j] == ‘Positive’ ) then

Đưa R[j] vào temp_P[ ]; 8. end if

9. if ( antecedent.R[j]  T[i] && consequent.R[j] == ‘Negative’ ) then

Đưa R[j] vào temp_N[ ]; 10. end if

11. end for

12. Chọn k luật tốt nhất từ temp_P[ ] và temp_N[ ];

13. Tính trung bình Laplace accuracy cho k luật tốt nhất vừa chọn.

16. else wrong = wrong + 1; 17. end if

18. end for

19. return Accuracy; công thức (8)

Các công thức.

Gain Ratio(A) = Gain(A)/SplitInfo(A) (1)

𝑆𝑝𝑙𝑖𝑡𝐼𝑛𝑓𝑜𝐴(𝐷)= − ∑ |𝐷𝑗| |𝐷| 𝑣 𝑗=1 ∗ 𝑙𝑜𝑔2(|𝐷𝐷𝑗|) (2) Trong đó:

|D| là tổng số tuple có trong tập huấn luyện D.

|𝐷𝑗| là tổng số tuple dương tính hoặc âm tính trong tập huấn luyện D.

𝑣 là tổng số lớp trong tập huấn luyện.

𝐴 là thuộc tính sẽ được thêm vào luật ứng viên. 𝐺𝑎𝑖𝑛(𝐴) = 𝐼(𝑝, 𝑛) − 𝐸(𝐴) (3) 𝐸(𝐴) = − ∑ 𝑝𝑖+ 𝑛𝑖 𝑝+𝑛 𝑚 𝑖=1 𝐼(𝑝𝑖, 𝑛𝑖) (4) Trong đó:

E(A) là entropy của thuộc tính A trong tập dữ liệu huấn luyện.

I(p,n) là thông tin dự kiến cần thiết để đáp ứng một tập dữ liệu huấn luyện. p là tổng số tuple dương tính trong tập

huấn luyện.

n là tổng số tuple âm tính trong tập huấn luyện.

𝑝𝑖 là tổng số tuple dương tính được bao phủ bởi giá trị thứ i của thuộc tính A

𝑛𝑖 là tổng số tuple âm tính được bao phủ bởi giá trị thứ i của thuộc tính A m là số giá trị của thuộc tính A.

𝑇𝑊𝑇 = ∑𝑛𝑖=1𝑊(𝑝𝑖) ∗ 𝐶𝑇 (5) Trong đó:

n là tổng số tuple dương tính trong tập huấn luyện.

𝐶𝑇 là ngưỡng bao phủ (trong nghiên cứu này sử dụng CT =0.05) 𝐿𝐺𝑇 = 𝐵𝑒𝑠𝑡_𝐺𝑎𝑖𝑛 ∗ 𝐺𝑆𝑅 (6) 𝐿𝑎𝑝𝑙𝑎𝑐𝑒 𝑎𝑐𝑐𝑢𝑟𝑎𝑐𝑦 = 𝑛𝑐+1 𝑛𝑡𝑜𝑡+𝑘 (7) Trong đó: k: số lớp.

nc: tổng số tuples trong tập dữ liệu huấn luyện thỏa cả vế trái và vế phải của luật.

ntot: số tuple trong tập dữ liệu huấn luyện chỉ thỏa vế trái của luật.

Accuracy = No. of correctly classified tuples/Total no. of tuples (8)

Một phần của tài liệu Ứng dụng thuật toán phân lớp dựa trên luật kết hợp dự báo vào giải bài toán dự báo tình hình nghỉ bỏ học của học sinh trung học trên địa bàn thành phố hồ chí minh (Trang 105 - 109)

Tải bản đầy đủ (PDF)

(112 trang)