Ma trận giao tỏc của cơ sở dữ liệu cho ở bảng 2.1

Một phần của tài liệu Khai phá tập mục lợi ích cao dựa trên cấu trúc cây tiền tố (Trang 25 - 31)

TID A B C D E F T1 0 1 1 1 0 0 T2 0 1 1 1 0 0 T3 1 1 0 1 0 0 T4 0 0 1 1 0 1 T5 0 0 1 1 0 0 T6 1 0 1 0 0 0 T7 1 1 1 0 0 1 T8 1 0 1 0 0 0 T9 1 1 0 0 1 0 T10 1 0 0 0 1 0 T11 1 1 1 0 0 0

2.1.2 Tập mục thường xuyờn và luật kết hợp Định nghĩa 2 (Độ hỗ trợ)

Cho tập mục X I. Ta gọi độ hỗ trợ (Support) của X trong cơ sở dữ liệu giao tỏc DB, ký hiệu sup( ),X là tỷ lệ phần trăm cỏc giao tỏc chứa X trờn tổng số cỏc giao tỏc trong DB, tức là: DB X T DB T X) } sup(

Ta cú: 0 sup(X) 1với mọi tập mục X I

Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/

Cho tập mục X Ivà ngƣỡng hỗ trợ tối thiểu (minimum support) minsup

0,1 (đƣợc xỏc định trƣớc bởi ngƣời sừ dụng). X đƣợc gọi là tập mục thƣờng xuyờn (frequent itemset hoặc large itemset) với độ hỗ trợ tối thiểu minsup nếu sup( )X minsup, ngƣợc lại X gọi là tập mục khụng thƣờng xuyờn.

Định nghĩa 4

Một luật kết hợp là một biểu thức dạng X Y, trong đú XY là cỏc tập con của I, X Y ; X gọi là tiền đề, Y gọi là kết luận của luật.

Luật kết hợp cú hai thụng số quan trọng là độ hỗ trợ và độ tin cậy.

Định nghĩa 5

Độ hỗ trợ (Support) của một luật kết hợp X→Y, ký hiệu là sup(X→Y), là độ hỗ trợ của tập mục X Y,sup(X Y) sup(X Y).

Nhƣ vậy độ hỗ trợ của luật kết hợp X Y chớnh là xỏc suất P X( Y) của sự xuất hiện đồng thời của XY trong một giao tỏc.

Ta cú: 0 sup(X Y) 1.

Định nghĩa 6

Độ tin cậy (Confidence) của một luật X Y, ký hiệu conf X( Y),là tỷ lệ phần trăm giữa số giao tỏc chứa X Yvà số giao tỏc chứa X trong vơ sở dữ liệu

. DB ) sup( ) sup( ) ( X Y X Y X conf

Độ tin cậy của luật kết hợp X Y chớnh là xỏc suất cú điều kiện P Y X( / ) :

( / ) P Y X } { } { T X DB T T Y T X DB T = } { } { T X DB T T Y X DB T = ) sup( ) sup( X Y X và ta cú 0 conf X( Y) 1.

Cỏc luật thỏa món cả hai ngƣỡng độ hỗ trợ tối thiểu (minsup) và độ tin cậy tối thiểu (minconf), tức thỏa món sup(X Y) minsup và conf X( Y) minconf, đƣợc gọi là luật kết hợp mạnh.

Tớnh chất cơ bản của tập mục thường xuyờn:

Cho cơ sở dữ liệu giao tỏc DBvà ngƣỡng độ hỗ trợ tối thiểu minsup. Cỏc tập mục thƣờng xuyờn cú cỏc tớnh chất sau:

Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/

(2) Nếu một tập mục là khụng thƣờng xuyờn thỡ mọi tập cha của nú của nú cũng khụng thƣờng xuyờn.

(3) Nếu một tập mục là thƣờng xuyờn thỡ mọi tập con khỏc rỗng của nú cũng là tập mục thƣờng xuyờn.

Tớnh chất (3) đƣợc gọi là tớnh chất Apriori, tớnh chất này là cơ sở để rỳt gọn khụng gian tỡm kiếm cỏc tập mục thƣờng xuyờn

2.1.3 Bài toỏn khai phỏ luật kết hợp và một số thuật toỏn về khai phỏ tập mục thường xuyờn mục thường xuyờn

2.1.3.1 Bài toỏn khai phỏ luật kết hợp

Cho cơ sở dữ liệu giao tỏc DB, ngƣỡng độ hỗ trợ tối thiểu minsup và ngƣỡng độ tin cậy tối thiểu minconf.

Yờu cầu: Tỡm tất cả cỏc luật kết hợp X Y trờn cơ sở dữ liệu DBsao cho

) (adsbygoogle = window.adsbygoogle || []).push({});

sup(X Y minsup và conf X( Y) minconf.

Bài toỏn khai phỏ luật kết hợp này đƣợc gọi là bài toỏn cơ bản hay bài toỏn nhị phõn, vỡ ở đõy, giỏ trị của mục dữ liệu trong cơ sở dữ liệu là 0 hoặc 1 (xuất hiện hay khụng xuất hiện).

Bài toỏn khai phỏ luật kết hợp đƣợc chia thành hai bài toỏn con. Bài toỏn thứ nhất là tỡm tất cả cỏc tập mục thỏa món độ hỗ trợ tối thiểu cho trƣớc, tức là tỡm tất cả cỏc tập mục thƣờng xuyờn. Bài toỏn thứ hai là sinh ra cỏc luật kết hợp từ cỏc tập mục thƣờng xuyờn đó tỡm đƣợc thỏa món độ tin cậy tối thiểu cho trƣớc.

Bài toỏn thứ hai đƣợc giải quyết nhƣ sau: giả sử đó tỡm đƣợc X là tập mục thƣờng xuyờn, ta sinh ra cỏc luật kết hợp bằng cỏch tỡm Y X, kiểm tra độ tin cậy của luật X Y\ Ycú thỏa món độ tin cậy tối thiểu khụng. Bài toỏn thứ hai này đơn giản, mọi khú khăn nằm ở bài toỏn thứ nhất, hầu hết cỏc nghiờn cứu về luật kết hợp đều tập trung giải quyết bài toỏn thứ nhất là tỡm cỏc tập mục thƣờng xuyờn.

Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/ 2.1.3.2 Một số thuật toỏn về khai phỏ tập mục thường xuyờn

* Thuật toỏn AIS

Thuật toỏn hoàn toàn sử dụng chiến lƣợc “vột cạn”, xem xột toàn bộ cỏc tập mục thƣờng xuyờn bằng cỏch sinh tổ hợp tập cỏc mục và chạy kiểm tra.

* Thuật toỏn SETM

Đƣợc đề xuất do mong muốn dựng SQL để tỡm cỏc tập mục thƣờng xuyờn. Cũng giống nhƣ thuật toỏn AIS, SETM cũng sinh ra cỏc tập ứng viờn dựa trờn cỏc giao dịch đọc đƣợc từ CSDL. Vỡ thế, nú sinh ra và đếm mỗi tập mục ứng cử viờn mà thuật toỏn AIS sinh ra. Tuy nhiờn để phộp nối (JOIN) chuẩn của SQL, SETM chia sự phỏt sinh ứng cử viờn từ việc đếm.

* Thuật toỏn CHARM

Thực hiện trờn cả khụng gian cỏc tập phổ biến và khụng gian cỏc tập định danh. CHARM khụng tỡm tất cả cỏc tập con cú thể của tập mục mà thuật toỏn kết hợp tỡm tập đúng hiệu quả hơn (bottom – up). Nếu CSDL của tập mục là lớn và tập mục thƣờng xuyờn là dày thỡ CHARM duyệt cả khụng gian tập mục và tập định danh đồng thời sẽ bỏ qua nhiều mức để tỡm tập phổ biến đúng thay cho việc tớnh toỏn nhiều tập con khụng đúng.

* Thuật toỏn FP-Growth

Phỏt triển từ thuật toỏn Apriori, J.Han, J Pei, Y.Yin và R.Mao đó đề xuất thuật toỏn FP-growth [7] nhằm khắc phục những hạn chế của thuật toỏn Apriori. Thuật toỏn này đƣợc xõy dựng với ba kỹ thuật chớnh là: Nộn dữ liệu thớch hợp vào một cấu trỳc cõy gọi là FP-tree. Chỉ cú 1–tập mục ở trong cõy và cỏc nỳt của cõy đƣợc sắp xếp để cỏc nỳt xuất hiện thƣờng xuyờn hơn cú thể dễ dàn chia sẻ với cỏc nỳt xuất hiện ớt hơn; Thực hiện phƣơng phỏp khai phỏ phỏt triển (growth) từng đoạn dựa trờn cõy FP-tree gọi là phƣơng phỏp FP-growth; Kỹ thuật tỡm kiếm đƣợc dựng ở đõy là dựa vào sự phõn chia, “chia để trị”, phõn ró nhiệm vụ khai phỏ thành nhiệm vụ nhỏ hơn.

* Thuật toỏn Apriori

Apriori là thuật toỏn khai phỏ tập mục thƣờng xuyờn do R. Agrawal và R. Srikant đề xuất vào năm 1993 [11]. í tƣởng của thuật toỏn Apriori cũn là nền tảng cho việc phỏt triển nhiều thuật toỏn khai phỏ tập mục thƣờng xuyờn khỏc về sau.

Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/

í tƣởng chớnh của thuật toỏn này là: sinh ra cỏc tập mục ứng viờn từ cỏc tập mục thƣờng xuyờn ở bƣớc trƣớc, sử dụng kỹ thuật tỉa để bỏ bớt đi những tập mục ứng viờn khụng thỏa món ngƣỡng hỗ trợ tối thiểu (minsup). Cơ sở của thuật toỏn này là tớnh chất Apriori “Bất kỳ tập con nào của tập mục thƣờng xuyờn cũng phải là tập mục thƣờng xuyờn”. Thuật toỏn giỳp tỉa bớt những tập ứng viờn cú tập con khụng thƣờng xuyờn trƣớc khi tớnh độ hỗ trợ. Nhƣợc điểm của thuật toỏn là chi phớ sinh ra số lƣợng khổng lồ tập ứng viờn và phải duyệt CSDL nhiều lần.

Giả sử cỏc mục dữ liệu trong mỗi giao tỏc đƣợc lƣu theo trật tự từ điển. Thuật toỏn sử dụng cỏc ký hiệu sau đõy :

Tập k mục Chức năng

Lk Tập cỏc k-tập mục thƣờng xuyờn (với độ hỗ trợ tối thiểu minsup). Mỗi phần tử của tập này cú 2 trƣờng :

i) Tập mục (itemsets) ii) Độ hỗ trợ (count)

Ck Tập cỏc k-tập mục ứng viờn (cỏc tập mục thƣờng xuyờn tiềm năng). Mỗi phần tử của tập này cú 2 trƣờng:

i) Tập mục (itemsets) ii) Độ hỗ trợ (count)

Thuật toỏn duyệt cơ sở dữ liệu nhiều lần. Mỗi lần duyệt, thuật toỏn thực hiện hai bƣớc: bước kết nối và bước tỉa. Trong lần lặp thứ k, thuật toỏn nối hai (k-1)-tập mục để sinh ra k-tập mục, sử dụng tớnh chất Apriori để tỉa cỏc tập ứng viờn. Bƣớc nối và bƣớc tỉa nhƣ sau:

Bước kết nối (tỡm Ck)

Tập cỏc k-tập mục ứng viờn Ck đƣợc sinh ra bởi việc kết nối Lk-1 với chớnh nú. Hai tập mục l1 và l2 của Lk-1 đƣợc nối nếu chỳng cú (k-2) mục dữ liệu đầu bằng nhau, mục dữ liệu thứ (k-1) của l1 nhỏ hơn của 12:

(l1[l] = l2[1]) (l1[2] = l2[2]) ... (l1[k-2] = l2[k-2]) (l1 [k-1] < l2[k-l]) Dạng của tập mục nhận đƣợc bởi nối l1 và l2 là: l1[1] l1[2] ... l1[k-2] l1[k-1] l2[k-1].

Bước tỉa

Tập Ck chứa tập Lk , tức là tất cả cỏc k-tập mục thƣờng xuyờn đều thuộc tập Ck. Tập Ck cú thể là rất lớn dẫn đến khối lƣợng tớnh toỏn lớn. Thuật toỏn ỏp dụng tớnh

Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/ (adsbygoogle = window.adsbygoogle || []).push({});

chất Apriori để rỳt gọn tập Ck. Nếu cú một (k-1)-tập mục con nào đú của k-tập mục ứng viờn mà khụng cú mặt trong Lk-1 thỡ ứng viờn đú khụng thể là thƣờng xuyờn, cú thể loại bỏ khỏi Ck. Việc kiểm tra cỏc (k-1)-tập mục con cú thể thực hiện nhanh bởi duy trỡ một cõy băm của tất cả cỏc tập mục thƣờng xuyờn đó tỡm thấy.

Thuật toỏn Apriori ( tỡm cỏc tập mục thƣờng xuyờn)

Input: Cơ sở dữ liệu DB, ngƣỡng độ hỗ trợ minsup Output: Tập cỏc tập mục thƣờng xuyờn L trong DB Method:

(1) Tỡm cỏc 1-tập mục thƣờng xuyờn, nhận đƣợc L1; (2) For (k=2; Lk-1≠ỉ; k++) do begin

(3) Ck = apriori_gen(Lk-1, minsup); // Sinh tập ứng viờn mới từ Lk-1 (4) For (each T DB) do begin

(5) C = subset(Ck,T); // Cỏc tập mục ứng viờn chứa trong T (6) For (each c C)

(7) c.count++; // tăng số đếm c lờn một đơn vị (8) end;

(9) Lk = {c Ck / c.count ≥ minsup}; (10) End;

(11) L=Lk;

Sinh cỏc tập mục ứng viờn của thuật toỏn Apriori: hàm Apriori_gen() Function Apriori gen()

Input: Tập cỏc (k-1)- tập mục thƣờng xuyờn Lk-1 Output: Tập cỏc k- tập mục ứng viờn Ck Method: // Bước kết nối (1) For (each (k-l)-tập mục l1 G Lk-1) do (2) For (each (k-l)-tập mục 12 Lk-1) do (3) if (l1[1] = l2[1]) and (l1[2] = l2[2]) and…and (l1[k-2] = l2[k-2]) and (l1[k-1] < l2[k-1]) then (4) Ck ← { l1[1], l1[2], ... l1[k-2],l1[k-1] l2[k-1]};

Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/

// kết nạp k-tập mục mới vào Ck // Bước tỉa

(5) For (each ci Ck) do

(6) If exist (s ci) and (s Lk-1) then (7) delete ci from Ck; (8) Return Ck;

Vớ dụ minh hoạ thuật toỏn Apriori:

Ta minh họa thực hiện thuật toỏn Apriori trờn cơ sở dữ liệu trong bảng 2.4 với

minsup=50%, tức xuất hiện ớt nhất 2 lần.

Một phần của tài liệu Khai phá tập mục lợi ích cao dựa trên cấu trúc cây tiền tố (Trang 25 - 31)