Dùng thuật toán tạo dàn khái niệm để tìm tập phổ biến

Một phần của tài liệu giáo trình khai phá dữ liệu (Trang 25 - 28)

4. Phát Triển Thuật Giải Tăng Cường Để Tìm Tập Phổ Biến

4.2.Dùng thuật toán tạo dàn khái niệm để tìm tập phổ biến

Đây là ý tưởng của Godin, để xây dựng thuật toán tăng cường tạo dàn khái niệm từ ngữ cảnh KPDL, gồm các mệnh đề sau:

- Mệnh đề 6: Nếu chèn một nút N = ({o*},λ({o*})) vào dàn L thì tất cả các nút

(X,S) trong dàn L có S ⊆ λ({o*}) đều bị cập nhật thành (X ∪ {o*} , S).

- Mệnh đề 7: Nếu (X’,S’) = inf {(X,S) ∈ L | S’ = S ∩ λ({o*})} và không tồn tại

(E,S) ∈ L thì sẽ tạo nút mới (X’,S’) được tính như trên. Phần tử (X,S) được gọi là phần tử sinh của khái niệm mới. Phần tử sinh sẽ là con của nút mới.

- Mệnh đề 8: Cha của nút mới (X,S) là một nút mới hay một nút bị sửa đổi (X’,S’)

sao cho (X’,S’) = sup {(X’,S’) ∈ L | S’ ⊆ S}

Dựa vào các kết quả trên R.Godin (1995) đã xây dựng thuật toán tăng cường tạo dàn khái niệm từ ngữ cảnh hình thức. Để tìm tập phổ biến, thuật toán này đã được cải tiến trong đó khái niệm (X,S) trong thuật toán của R.Godin được biến đổi thành (|ρ(S)|,S) với |ρ(S)| là số lượng hóa đơn có chứa tập mặt hàng S.

Thuật toán 9: Tạo dàn khái niệm để tìm tập phổ biến.

- Vào: Ngữ cảnh KPDL (O,I,R) - Ra: Dàn khái niệm

Thủ tục InsertOrder là một thuật toán tăng cường để chèn một đối tượng o vào dàn khái niệm. Hàm λ({o}) sẽ cho danh sách các mặt hàng chứa trong đối tượng (hóa đơn o). Maxsize là kích thước lớn nhất của các tập mặt hàng, DanL là dàn các khái niệm hình thức. Khái niệm C có kiểu khái niệm bao gồm các thành phần

C.intent(S) là intent của khái niệm C; C.Support là độ phổ biến của khái niệm C(| ρ(S)|); C.CardIntent là số phần tử của tập hợp C.intent. Các biến DanL,

TapChuaCo, TapDaCo, TapMuck là các biến có kiểu tập hợp mà các thành phần có

kiểu khái niệm.

Procedure InsertOrder (λ({o}) ; Maxsize ; DanL)

(1) TapChuaCo = ∅ ; (2) TapDaCo = ∅ ;

(3) For (k=1 ; k ≤ Maxsize ; k++)

(4) ---Đọc DanL và tạo TapMuck chứa khái niệm C có C.CardIntent là k. (5) For each C ∈ TapMuck do

(6) If (C.Intent ⊆ λ({o})) then

(7) Tăng C.Support thêm 1 ; //--Mệnh đề 6 (8) If (C.Intent = = λ({o}) then

(9) DanL = DanL ∪ TapChuaCo ;

(10) Dừng thuật toán ;

(11) Endif

(12) TapDaCo = TapDaCo ∪ {C.Intent}

(13) Else

(14) PhanGiao = C.Intent ∩ λ({o})

(15) If PhanGiao ∉ TapDaCo then //--Mệnh đề 7

(16) Tạo khái niệm mới NC

(17) NC.intent = PhanGiao ;

(18) NC.support = c.support + 1 ;

(19) NC.cardintent = ||PhanGiao|| ;

(20) TapChuaCo = TapChuaCo ∪ {NC} ;

(21) TapDaCo = TapDaCo ∪ {PhanGiao} ;

(22) Endif

(23) If (PhanGiao = = λ({o}))

(24) DanL = DanL ∪ TapChuaCo ;

(25) Dừng thuật toán ;

(26) Endif

(27) Endif

(28) Endfor

(29) Endfor

(30)--Tạo khái niệm mới NC (31) NC.intent = λ({o}) ; (32) NC.support = 1 ;

(33) NC.cardintent = |λ({o})| ;

(34) TapChuaCo = TapChuaCo ∪ {NC} ; (35) DanL = DanL ∪ TapChuaCo ;

(36) Return DanL ;

Ví dụ: Với ngữ cảnh KPDL trong bảng 3, với ngưỡng: 2 đối tượng.

i1 i2 i3 i4

o1 1 1 0 0

o2 1 1 1 0

o3 1 1 1 0

o4 1 0 1 1

- Chèn hóa đơn o1 = {i1, i2}

Tạo khái niệm mới có {i1, i2} khi dàn khái niệm còn rỗng. - Chèn hóa đơn o2 = {i1, i2, i3}

Các khái niệm hình thức đang có trên dàn khái niệm (1, {i1, i2})

Do khái niệm có intent S = {i1, i2} bao hàm trong o2 = {i1, i2, i3}, cập nhật extent X của khái niệm có intent S = {i1, i2} (dòng 7).

Tạo khái niệm mới có intent S là {i1, i2, i3} - Chèn hóa đơn o3 = {i1, i2, i3}

Các khái niệm hình thức đang có trên dàn khái niệm: (2, {i1, i2}) và (1, {i1, i2, i3})

Do khái niệm có S = {i1, i2} bao hàm trong {i1, i2, i3}. Cập nhật extent X của khái niệm có intent S = {i1, i2} (dòng 7)

Do khái niệm có S = {i1, i2, i3} bao hàm trong {i1, i2, i3}. Cập nhật extent X của khái niệm có intent S = {i1, i2, i3} (dòng 7)

Do khái niệm {i1, i2, i3} = o3 nên thoát ra (dòng 10) - Chèn hóa đơn o4 = {i1, i3, i4}

Các khái niệm hình thức đang có trên dàn khái niệm: (3, {i1, i2}) và (2, {i1, i2, i3})

Tạo khái niệm mới (dòng 16) có intent S là phần giao = {i1}

Tạo khái niệm mới (dòng 16) có intent S là phần giao = {i1, i3}, {i1, i3, i4} - Tạo biểu đồ Hasse

|----TT |----*1*2*3* |----*1*2* |----*1* |----*1*3* |----*1* |----*1*3*4* |----*1*3* |----*1* Với ngưỡng phổ biến là 2 đối tượng (tức là 0.5) - Các khái niệm hình thức:

Khái niệm hình thức

Độ phổ biến Lực lượng

{i1, i2} 3 2

{i1} 4 1

{i1, i3} 3 2

{i1, i3, i4} 1 3

- Các khái niệm hình thức phổ biến:

Khái niệm hình thức

Độ phổ biến Lực lượng

{i1, i2} 3 2

{i1, i2, i3} 2 3

{i1} 4 1

{i1, i3} 3 2

Tính chất: Cho ngữ cảnh KPDL (O,I,R) và B(O,I,R) là tập các khái niệm phổ biến.

Tập mặt hàng phổ biến bị đóng theo ngưỡng minsupp là intent của một khái niệm hình thức trong B(O,I,R) và khái niệm hình thức này cũng phổ biến theo ngưỡng minsupp.

Một phần của tài liệu giáo trình khai phá dữ liệu (Trang 25 - 28)