Thuật toán tìm tập rút gọn của bảng quyết định sử dụng metric

Một phần của tài liệu Nghiên cứu một số thuật toán liên quan đến tập rút gọn trên bảng quyết định nhất quán (Trang 43 - 50)

Định nghĩa 2.3. (Độ quan trọng của thuộc tính dựa trên metric) Cho bảnh quyết định DS=(U,CD,V,f), BCb  C-B. Độ quan trọng của thuộc tính b

đối với B đƣợc định nghĩa bởi.

SIGB(b) = dJ (K(B), K(BD)) – dJ (K(B{b}), K(B{b}D)) với giả thiết  ui= U với mọi ui U, i = 1…U .

Theo mệnh đề 2.5. dJ(K(B), K(BD))dJ(K(B{b}),K(B{b}D)) nên

SIGB (b)0. Do đó, SIGB (b) Đƣợc tính bởi lƣợng thay đổi khoảng cách giữa B

BD khi thêm thuộc tính b vào B, SIGB(b) càng lớn thì lƣợng thay đổi khoảng cách càng lớn, hay thuộc tính b càng quan trọng và ngƣợc lại. Độ quan trọng của thuộc tính b đặc trƣng cho chất lƣợng phân lớp của thuộc tính b, và đƣợc sử dụng làm tiêu chuẩn lựa chọn thuộc tính trong thuật toán heuristic tìm tập rút gọn của bảng quyết định.

Để xây dựng thuật toán heuristic tìm tập rút gọn, ta có thể sử dụng hai hƣớng tiếp cận: hƣớng tiếp cận từ dƣới lên (bottom-up) và hƣớng tiếp cận từ trên xuống (top-down). Trong phần này, luận văn trình bày thuật toán heuristic tìm tập rút gọn tính toán lõi theo hƣớng tiếp cận bottom-up. Ý tƣởng của thuật toán là xuất phát từ tập lõi, lần lƣợt bổ xung vào tập lõi các thuộc tính có độ quan trọng lớn nhất cho đến khi tìm đƣợc tập rút gọn.

Thuật toán 2.1. thuật toán tìm lõi sử dụng metric.

Đầu vào: bảng quyết định DS = (U,CD,V,f).

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 1. MCORE (C) = ; 2. Tính dJ(K(C), K(C D)); 3. For each c C 4. Begin 5. Tính dJ (K(C - {c}), K((C-{c})D)); 6. IF dJ (K(C - {c}), K((C - {c})D))  dJ(K(C), K(CD)) then MCORE(C): = MCORE (C){c}; 7. End; 8 Return MCORE(C).

Phân tích độ phức tạp thời gian của thuật toán 2.1

Sử dụng thuật toán trong [9] để tính U/C , độ phức tạp thời gian là O(|C||U|).

Do đó, độ phức tạp thời gian để tính dJ(K(C), K(CD)) là O(|C||U). Vì vậy, độ phức tạp thời gian của vòng lặp For từ dòng lệnh thứ 3 đến dòng lệnh thứ 7 là

O(|C|2|U|) và độ phức tạp thời gian của thuật toán 2.1 là O(|C|2|U|).

Ví dụ 2.2. Xét bảng quyết định DS = (U,CD,V,f) cho ở bảng 2.2.

U a1 a2 a3 d u1 0 1 1 0 u2 0 1 1 1 u3 0 1 0 0 u4 0 1 0 1 u5 0 1 0 1 u6 1 0 0 1 u7 1 0 1 1

Bảng 2.2. Bảng quyết định minh họa Ví dụ 2.2

Ta có U ={u1, u2, u3, u4, u5, u6, u7}, |U|=7, C ={a1, a2, a3}.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Thực hiện các bƣớc Thuật toán 3.1 tìm tập lõi:

1. MCORE(C) =; 2. dJ (K(C), K(C {d}) = 1- 1 U 1 n i  1 m i  2 i j i C D C  =1 - 1 7( 2 1 2 + 2 1 2 + 2 1 3 + 2 2 3 + 2 1 1 + 2 1 1 )=1 3 3. Xét lần lƣợt các thuộc tính a1, a2, a3ta có:

U/C - {a1) = U/{a2, a3}= {{u1, u2},{u3, u4, u5}, {u6},{u7}}=U /C do đó

dj(K(C-a1}), K((C-{a1} {d}))=dj(K({a2,a3}), K({a2,a3,d}))=dj(K(C-a1}) {d})). U/C - {a2}= U/{a1, a3}={{u1, u2},{ u3, u4, u5},{u6},{u7}}=U/C do đó dJ(K(C - a2}), K(C - u2}) {d}))= dJ(K{a1, a2}), K({a2, a3, d})) =1 - 2 2 2 1 2 3 2 12 ( ) 7 5  5  2 35 Do do dJ(K(C-{a3}{d}))dJ(K(C), K(CD))) vì vậy MCORE(C)={a3}.

Xét bảng quyết định DS=(U,CD,V,f). Với RC, aC-R giả sử

U/R={R1,R2,...RK}, U/R{}={R' 1, R'

2,...R'

m}. Theo định nghĩa 2.3, độ quan trọng của aC-R là SIGR( )= 1 U 1 m i  1 n j  2 ' 1 ' 1 J R D R- 1 U 1 k i  1 n j  2 ' 1 i j R D R (2.1)

Để tính SIGR  a ta phải tính phân hoạch U/R và phân hoạch U/R{a} ,

luận văn trình bày thuật toán tính phân hoạch U/R{a} khi biết phân hoạch U/R nhƣ sau.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Đầu vào : Phân hoạch U/R={R1, R2,...,RK }, thuộc tính aR.

Đầu ra: Phân hoạch U/R{a}. 1. TMP=;

2. For each R1U/R do 3. Begin

4. Tính phân hoạch Ri /{a};

5. TMP=TMPRi /{a};

6. End

7. Return (TMP);

Chứng minh tính đúng đắn của thuật toán 2.2

Tại bƣớc 4, phân hoạch R1/{a} chứa các lớp tƣơng đƣơng X=[ui] a với

uiRi, [ui]R=R1, nghĩa là X=[ui] a =[ui] a [ui]R .Theo tính chất 1.1 (Pawlak, 49 ), [ui] a [ui]R=[ui]R  a nên X=[ui]R  a . Nhƣ vậy tập TMP thu đƣợc tại bƣớc 7 bao gồm các tập X với X= [ui]R  a . Theo phân hoạch U/R{a}.

Độ phức tạp thời gian của thuật toán 2.2

Sử dụng thuật toán trong [9] để tính phân hoạch Ri/ a với độ phức tạp thời gian o Ri thì độ phức tạp thời gian của thuật toán 2.2 là

1

k i

O Ri =O U . Nếu sử dụng tính chất 1.1 để tính U/R{a} khi đã biết U/R, trƣớc phải tính phân hoạch u/{a}={A1,...Ai} với độ phức tạp thời gian O(U ). Tiếp theo, ta phải tính các phép giao RiAj, i=1..k, j=1..l với độ phức tạp thời gian là O(U 2

). Do đó, độ phức tạp thời gian nếu sử dụng Tính chất 1.1 là O(U 2). Độ phức tạp này lớn hơn độ phức tạp của thuật toán 2.2. Sở dĩ độ phức tạp thời gian của thuật toán

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

2.2 nhỏ hơn là vì thuật toán 2.2 không phải tính các phép giao RiAjtrong trƣờng hợp RiAj=.

Ví dụ 2.3. Xét bảng quyết định DS=(U,C{d},V,f) cho ở Ví dụ 2.1. Giả sử

R={a3} và phân hoạch U/R=U/{a3}={{u1,u2,u7}, {u3,u4,u5,u6}}, áp dụng Thuật toán 2.2 tính phân hoạch U/{a2,a3} (với a={a2}) ta có:

1. TMP = 

2. Xét R1={u1,u2,u7}, tính R1/{a2}={{u1,u2}, {u7}} và

TMP={{u1,u2}, {u7}}. Xét R2={u3,u4,u5,u6}, tính R2/{a2}={{u3,u4,u5}, {u6}}TMP={{u1,u2}, {u3,u4,u5}, {u6}, {u7}}.

Vậy U/{a2,a3}=TMP={{u1,u2}, {u3,u4,u5}, {u6}, {u7}}.

Thuật toán 2.3. Thuật toán heuristic tìm một tập rút gọn tốt nhất sử dụng metric.

Đầu vào: Bảng quyết định DS=(U,CD,V,f).

Đầu ra: R là một tập rút gọn tốt nhất của C. 1. Tìm tập lõi MCORE (C) theo Thuật toán 2.1;

2. R=MCORE(C);

// Thêm dần vào R các thuộc tính có độ quan trọng lớn nhất

3. While dJ(K(R), K(RD))dj(K(C), K(CD)) do 4. Begin

5. For each aC-R

6. Begin

7. Tính dJ(K(R{a}), K(R{a}D));

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

9. End;

10. Chọn amC-R sao cho SIGR(am) = ax

a C R M   {SIGR(a)}; 11. R = R{am}; 12. Tính dJK R K R( ), ( D);

13. End; //Loại bỏ các thuộc tính dư thừa trong R nếu có 14. R* = R - MCORE(C);

15. For each a  R* 16. Begin

17. Tính dJK R( {a} , K (R{a})D);

18. IF dJ K R( {a}, K(R{a})D)=dJK C K C( ), ( D) then R = R-{a}; 19. End;

20. Return R;

Chứng minh tính đúng đắn của thuật toán 2.3

Với bƣớc thêm dần vào R các thuộc tính có độ quan trọng lớn nhất, tập thuộc tính R thu đƣợc từ câu lệnh từ 3 đến 13 thoả mãn điều kiện bảo toàn khoảng cách dJK R K R( ), ( D)dJK C K C( ), ( D) .

Với bƣớc loại bỏ các thuộc tính dư thừa, câu lệnh từ 14 đến 19 đảm bảo tập R

là tối thiểu, nhĩa là.

rR, dJK R( { }) ,r  K (R{ })rD)dJK C K C( ), ( D).

Theo Định nhĩa 2.2, R là tập rút gọn dựa trên metric.

Độ phức tạp thời gian của Thuật toán 2.3

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

(2.1) để tính SIGR(a) ta chỉ cần tính hoạch U R/ {a} vì phân hoạch U R/ đã đƣợc tính ở bƣớc trƣớc. Từ Thuật toán 2.2, độ phức tạp thời gian để tính U R/ {a} khi biết U R/ là O U  nên độ phức tạp thời gian để tính tất cả các SIGR  a

 

       2 

1 ... 1 * * 1 / 2 *

CC    UC CUO C U

Độ phức tạp thời gian để chọn thuộc tính có độ quan trọng lớn nhất là

     2

1 ... 1 * 1 / 2 .

CC     C C  O C vòng lặp For tại dòng lệnh 15 thực hiện

*

R lần, mỗi lần ta phải tính dJK R K R( ), ( D) với độ phức tạp thời gian

 

O R U . Do đó, độ phức tạp thời gian của dòng lệnh 15 là O( *

R R U ). Vì vậy,

độ phức tạp thời gian của thuật toán là O(C2 U ).

Đánh giá Thuật toán 2.3 dựa trên lý thuyết

Với phƣơng pháp rút gọn thuộc tính sử dụng entropy Shannon (trong nhóm phƣơng pháp Entropy Shannon), thuật toán MIBARK trong [14] có độ phức tạp

thời gian là O(C U 2+U3), thuật toán CEBARNC, CEBARKCC trong [18] có độ

phức tạp tƣơng ứng là O(C2 U +U3), O(C U 2+U3). Do đó về lý thuyết, độ phức tạp thời gian Thuật toán 2.3 (thuật toán sử dụng metric) nhỏ hơn các thuật toán sử dụng entropy Shannon.

Độ phức tạp thời gian của các thuật toán tìm tập rút gọn phụ thuộc vào độ phức tạp của việc tính phân hoạch U/C. Nếu cùng sử dụng thuật toán tính U/C

trong [9]:

1) Độ phức tạp thƣời gian của Thuật toán 2.3 nhỏ hơn độ phức tạp các thuật toán sử dụng entropy Shannon vì Thuật toán 2.3 sử dụng kết quả đã đƣợc tính ở bƣớc trƣớc U/R để tính U/ R{a}.

2) Thuật toán 2.3 không phải tính toán các biểu thức logarit nên khối lƣợng tính toán nhỏ hơn các thuật toán sử dụng entropy Shannon.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Một phần của tài liệu Nghiên cứu một số thuật toán liên quan đến tập rút gọn trên bảng quyết định nhất quán (Trang 43 - 50)

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

(81 trang)