0
Tải bản đầy đủ (.pdf) (112 trang)

Thuật tốn khai phá luật kết hợ p

Một phần của tài liệu LUẬN VĂN: NGHIÊN CỨU VÀ ÁP DỤNG MỘT SỐ KỸ THUẬT KHAI PHÁ DỮ LIỆU VỚI CƠ SƠ SỞ DỮ LIỆU NGÀNH THUẾ VIỆT NAM. DOCX (Trang 46 -46 )

2.1.1 Thut tốn Apriori

Thut tốn này thc hin theo tng mc:

1. Cho ngưỡng h tr s. Ln duyt đầu tiên tìm các items xut hin ít nht trong s phn ca gi hàng. Cĩ tp L1, các frequent items.

2. Các candidate C2 cho ln duyt th hai là các cp items trong L1. Các cp trong C2 cĩ sđếm >= s là các cp frequent pairs L2.

3. B ba candidate C3là nhng tp {A, B, C} mà tt c {A, B}, {A. C} và {B, C} đều trong L2. Ln duyt th 3, b ba candidate trong C3 cĩ s ln xut hin >= s là các b 3 frequent, L3.

4. Cĩ th tiếp tc đến khi các tp tr thành rng. Li là frequent itemsets cĩ kích thước i; Ci+1 là itemsets kích thước i+1 mà mi tp con kích thước i đều nm trong Li.

2.1.1.1 Sinh ra Candidate ca Apriori

Hàm apriori-gen ly tham s Lk-1, tp ca tt c các large (k-1)- itemsets. Nĩ tr v mt superset ca tp tt c các large k-itemsets. Hàm làm vic như sau. ðầu tiên, trong bước join, kết ni Lk-1 vi Lk-1

insert intoCk

selectp.item1, p.item2, …, p.itemk-1, q.itemk-1

from Lk-1 p, Lk-1 q

wherep.item1 = q.item1, …, p.itemk-2 = q.itemk-2, p.itemk-1 < q.itemk-1;

Tiếp theo, trong bước ct ta, ta xố tt c các itemsets c thuc Ck mà các tp con (k-1) ca c khơng nm trong Lk-1:

forall itemsetsc Ck do

forall(k-1)-subsetssofcdo

if(s Lk-1)then

deletecfromCk;

Ví d, Cho L3 là { {1 2 3}, {1 2 4}, {1 3 4}, {1 3 5}, {2 3 4} }. Sau bước kết ni, C4 s là { {1 2 3 4}, {1 3 4 5}}. Bước ct ta s xố itemsets {1 3 4 5} vì itemset {1 4 5} là khơng trong L3. Sau đĩ ch cịn {1 2 3 4} trong C4.

Tính đúng đắn – Cĩ Ck Lk. Rõ ràng bt k tp con nào ca large itemset cũng cn phi cĩ độ h tr cc tiu. Do vy, nếu m rng mi itemset trong Lk-1 vi tt c các items cĩ th và sau đĩ xố đi tt c nhng cái mà cĩ (k-1)-subsets ca nĩ khơng cĩ trong Lk-1, ta s cịn li mt superset ca các itemsets trong Lk.

Kết ni tương đương vi m rng Lk-1 vi mi item trong CSDL và sau đĩ xố nhng itemsets mà vi nĩ (k-1) itemset được to bng cách xố item th(k-1) là khơng cĩ trong Lk-1. ðiu kin p.itemk-1 < q.itemk-1 đơn gin đảm bo rng khơng sinh ra trùng nhau. Như vy sau bước join, Ck Lk. Vi lý do tương t, bước ct ta, đĩ xố khi Ck tt c các itemsets mà (k-1)-subsets

ca nĩ khơng cĩ trong Lk-1, s khơng xố mt bt k itemset nào cĩ th cĩ trong Lk.

2.1.1.2 Hàm Subset

Các candidate itemsets Ck được sp xếp trong mt hash-tree. Mt node ca hash-tree hoc cha mt danh sách các itemsets (mt node lá) hoc là mt hash table (mt node trong). Mt node trong, mi bucket ca hash table (lp cĩ cùng giá tr hàm băm) ch ti mt node khác. Gc ca hash-tree được định nghĩa là cĩ độ sâu 1. Mt node trong độ sâu d ch ti các node ti độ sâu d+1. Các itemsets được lưu trong các lá. Khi thêm mt itemset c, ta bt đầu t gc và đi xung đến khi gp mt lá. Ti mt node trong độ sâu d, chúng ta quyết định đi theo nhánh nào bng cách áp dng hàm băm (hash function) cho item th d ca itemset. Tt c các nodes được to ban đầu như các node lá. Khi s lượng các itemsets trong mt node lá vượt quá mt ngưỡng nào đĩ, node lá được chuyn thành node trong.

Bt đầu t node gc, hàm subset tìm tt c các candidates cha trong mt giao dch t như sau. Nếu ti lá, ta tìm itemset nào trong lá được cha trong t và thêm các tham chiếu ti chúng vào tp tr li. Nếu node trong và ta đã đến ti nĩ bng cách dùng hàm băm cho item i, ta s băm trên mi item đến sau i trong t và áp dng đệ quy th tc này ti node trong bucket tương ng. Vi node gc, chúng ta băm trên mi item trong t.

ðể biết vì sao hàm subset tr v tp các tham chiếu mong mun, xem xét ti node gc. Vi bt k itemset c nào cha trong giao dch t, item đầu tiên ca c cn phi cĩ trong t. Ti gc, bng cách băm trên mi item trong t, đảm bo rng ta ch b qua các itemsets bt đầu vi mt item khơng cĩ trong t. Tương t các tham s áp dng các độ sâu thp hơn. Vì các items trong bt

k itemset nào cũng được sp th t, nên nếu ta đạt đến node hin thi bng cách băm item i, thì ch cn xem xét các items xut hin sau i trong t.

2.1.2 Thut tốn AprioriTid

Thut tốn AprioriTid cho thy trong hình 2.2, cũng dùng hàm apriori- gen để xác định các candidate itemsets trước khi ln duyt bt đầu. ðặc đim đáng quan tâm ca thut tốn này là CSDL D khơng được dùng cho vic đếm độ h tr sau ln duyt đầu tiên. Tp Ck được dùng cho mc đích này. Mi thành viên ca tp

k

C dng <TID, {Xk}>, trong đĩ mi Xk là mt large k- itemset tim năng biu din trong giao dch vi TID. Vi k=1, C1 tương ng vi CSDL D, mc dù v khái nim mi item i được thay thế bi itemset {i}. Vi k>1,

k

C được sinh ra bng thut tốn (bước 10). Thành viên ca Ck

tương ng vi giao dch t là <t.TID, { c Ck | c được cha trong t}. Nếu mt giao dch khơng cha bt k candidate k-itemset nào, thì

k

C s khơng cĩ mt entry cho giao dch này. Như vy s lượng các entries trong

k

C cĩ th là nh hơn s lượng các giao dch trong CSDL, đặc bit cho các giá tr ln ca k. Hơn na, vi các k giá tr ln, mi entry cĩ th là nh hơn giao dch tương ứng vì giao dch cĩ th cha rt ít candidates. Nhưng, vi các giá tr k nh, mi entry cĩ th ln hơn giao dch tương ng vì mt entry trong Ck bao gm tt c các candidate k-itemset cĩ trong giao dch.

Hình 2.2 Thut tốn AprioriTid

Ví dụ: Xem xét CSDL trong hình 3 và cho rng độ h tr cc tiu là 2 giao dch. Gi apriori-gen vi L1 ti bước 4 cho các candidate itemsets C2. Trong các bước 6 đến 10, chúng ta đếm độ h tr ca các candidates trong C2 bng cách lp qua các entries trong C1 và sinh ra C2. Entry đầu tiên trong C1 là { {1} {3} {4} }, tương ng vi giao dch 100. Ct ti bước 7 tương ng vi entry t này là { {1 3} }, vì {1 3} là mt thành viên ca C2 và c hai ( {1 3} - {1}) và ( {1 3} - {3}) là các thành viên ca t.set-of-itemsets.

Gi hàm apriori-gen vi L2, cĩ được C3. Duyt mt ln qua C2 và C3 to ra C3 . Chú ý rng khơng cĩ entry nào trong C3 cho các giao dch vi TIDs 100 và 400, vì chúng khơng cha bt k tp itemsets trong C3. Candidate {2 3 5} trong C3 tr thành large và là thành viên duy nht ca L3. Khi sinh C4 dùng L3, kết qu rng và kết thúc.

Hình 2.3 Ví d

2.1.3 Thut tốn AprioriHybrid

Khơng cn thiết phi dùng cùng mt thut tốn trong tt c các ln duyt qua d liu. Hình 2.4 cho thy thi gian thc hin cho Apriori và AprioriTid cho các ln duyt khác nhau qua tp d liu T10.I4.D100K kích thước 4.4MB (T10.I4.D100K cĩ T=10, I=4, D=100, T là kích thước trung bình ca giao dch, I là kích thước trung bình ca các large itemsets, D là s lượng các giao dch). Trong các ln duyt đầu, Apriori làm tt hơn AprioriTid. Nhưng AprioriTid li hơn Apriori trong các ln duyt sau. Nguyên nhân: Apriori và AprioriTid dùng cùng mt th tc sinh ra candidate và do đĩ đếm cùng các itemsets. Trong các ln duyt sau, s lượng các candidate itemsets gim. Nhưng, Apriori vn kim tra mi giao dch trong CSDL. Trong khi đĩ, khơng duyt tồn b CSDL, AprioriTid duyt

k

được sốđếm độ h tr, và kích thước ca Ck tr thành nh hơn kích thước ca CSDL. Khi tp

k

C cĩ th va vn trong b nh, thì thm chí cịn khơng phi chu chi phí ca vic ghi nĩ lên đĩa.

Hình 2.4: Thi gian thc hin cho mi ln duyt ca Apriori và AprioriTid (T10.I14.D100K, độ h tr cc tiu = 0.75%)

Da trên nhng quan sát này, người ta đã thiết kế mt thut tốn lai, gi là AprioriHybrid: dùng Apriori trong trong các ln duyt đầu và chuyn ti AprioriTid khi nĩ cho rng tp

k

C ti cui ln duyt s va vn trong b nh. Dùng kinh nghim sau đây đểđánh giá xem

k

C cĩ va vn trong b nh khơng trong ln duyt tiếp theo. Ti cui mi ln duyt hin thi, ta cĩ s đếm các candidates trong Ck. Tđây, ta ước lượng kích thước ca

k

C s là gì nếu nĩ được sinh ra. Kích thước này, tính bng words, là

support(c) + s các giao dch Candidates c C

Nếu

k

C trong ln duyt này là nhđủ va trong b nh, và cĩ các large candidates trong ln duyt hin ti ít hơn ln duyt trước, ta s chuyn ti AprioriTid. ðiu kin th hai được thêm vào để tránh chuyn khi

k

C trong ln duyt hin ti va vi b nh nhưng

k

C trong ln duyt sau li khơng va. Chuyn t Apriori ti AprioriTid khơng bao gm chi phí. Gi s rng quyết định chuyn t Apriori ti AprioriTid ti cui ca ln duyt th k. Trong ln duyt th (k+1), sau khi tìm ra các candidate itemsets được cha trong giao dch, ta cũng s phi thêm IDs ca chúng vào +1

k

C . Như vy cĩ mt chi phí b sung phi chu trong ln duyt này ch liên quan ti vic chy Apriori. Ch trong ln duyt th (k+2) khi thc s bt đầu chy AprioriTid. Như vy, nếu khơng cĩ large (k+1)-itemsets, hoc khơng cĩ (k+2)-candidates, ta s phi chu chi phí ca vic chuyn mà khơng thu được bt k cái gì t vic dùng AprioriTid.

So sánh hiu năng ca AprioriHybrid vi Apriori và AprioriTid vi cùng các tp d liu: AprioriHybrid thc hin tt hơn Apriori trong phn ln các trường hp. Vi trường hp AprioriHybrid làm tt hơn Apriori t ln duyt cĩ s chuyn nhưng vic chuyn li xut hin ln duyt cui cùng; như vy AprioriHybrid chu chi phí ca vic chuyn mà khơng thc s cĩ li ích. Nĩi chung, thun li ca AprioriHybrid hơn Apriori ph thuc vào kích thước ca tp

k

C suy biến như thế nào trong các ln duyt sau. Nếu

k C gi nguyên large đến gn cui và sau đĩ đột ngt rt xung, thì s khơng thu được nhiu t vic dùng AprioriHybrid vì ta ch cĩ th dùng AprioriTid cho mt chu k thi gian ngn sau khi chuyn (như vi tp d liu T20.I16.D100K). Ngược li, nếu cĩ mt s suy gim dn trong kích thước ca

k

C , AprioriTid cĩ th được dùng mt lúc sau khi chuyn, và ý nghĩa ci tiến cĩ th thu được trong thi gian thc hin.

2.2. Ci tiến hiu qu thut tốn Apriori

Vì lượng ca d liu x lý trong khai phá các frequent itemsets cĩ xu hướng rt ln, nên vic phát minh ra nhng thut tốn hiu qu để khai phá d liu như vy là rt quan trng. Thut tốn Apriori cơ bn duyt CSDL mt vài ln, ph thuc vào kích thước ca frequent itemset ln nht. Mt vài tinh chnh đã được đưa ra tp trung vào vic gim s lượng ln duyt CSDL, s lượng các candidate itemsets được tính tốn trong mi ln duyt, hoc c hai.

Partition-based Apriori (Apriori da trên Partition) là thut tốn địi hi ch 2 ln duyt CSDL giao dch. CSDL được chia thành các phn (partitions) ri nhau, mi phn đủ nh để va vi b nh sn cĩ. Trong ln duyt đầu tiên, thut tốn đọc mi partition và tính tốn các frequent itemsets địa phương trong mi partition. Trong ln duyt th hai, thut tốn tính tốn độ h tr ca tt c các frequent itemsets địa phương đối vi tồn b CSDL. Nếu itemset là frequent vi tồn b CSDL, nĩ chc chn là frequent trong ít nht mt partition. ðĩ là kinh nghim dùng trong thut tốn. Do đĩ, ln duyt th 2 qua CSDL đếm superset ca tt c các frequent itemsets tim năng.

Ly mu: Khi kích thước ca CSDL rt ln, vic ly mu tr thành cách tiếp cn hp dn vi vic khai phá d liu. Thut tốn da trên mu đin hình yêu cu 2 ln duyt CSDL. Thut tốn đầu tiên ly mu t CSDL và sinh ra tp các candidate itemsets s là frequent trong tồn b CSDL vi kh năng chc chn cao. Trong ln duyt chui con trên CSDL, thut tốn tính tốn chính xác độ h tr ca các itemsets này và độ h tr ca ranh gii negative. Nếu khơng cĩ itemset nào trong negative border là frequent, thì thut tốn đã khám phá tt c các frequent itemsets. Mt khác, mt vài superset ca mt itemset trong negative border cĩ th là frequent, nhưng độ h tr ca nĩ chưa được tính tốn. Thut tốn sinh ra và tính tốn tt c các frequent itemsets tim năng trong các ln duyt chui con trên CSDL.

Cp nht dn (Incremental updating): Vic tìm ra các frequent itemsets trong các CSDL ln là rt cĩ giá tr, các k thut incremental

updating cn được phát trin để bo trì các frequent itemsets đã phát hin được (và các lut kết hp tương ng) vi mc đích tránh khai phá li tồn bộ CSDL. Các cp nht trên CSDL cĩ th khơng ch làm sai mt vài frequent itemsets đang tn ti mà con chuyn mt vài itemsets mi thành frequent. Vn đề bo trì các frequent itemsets đã phát hin t trước trong các CSDL ln và biến động khơng đơn gin. Ý tưởng là dùng li thơng tin ca các frequent itemsets cũ và tích hp thơng tin v độ h tr ca các frequent itemsets mi để gim v căn bn lượng các candidates được kim tra li.

Khai phá lut kết hp tng quát: Trong nhiu ng dng, các kết hp ca các items d liu thường xut hin ti mc khái nim tương đối cao. Ví d, mt phân cp ca các thành phn thc ăn được biu din trong hình 2.5, trong đĩ M (sa), B (bánh mì), là khái nim phân cp, cĩ th cĩ mt vài ni dung thành phn con. Các thành phn mc thp nht trong phân cp là các loi sa và bánh mì. Cĩ th khĩ tìm ra quy tc vi mc khái nim nguyên thy, như là sa socola và bánh mì bng lúa mì. Nhưng d dàng tìm ra quy tc ở mc khái nim cao, như: hơn 80% khách hàng mua sa cũng mua bánh mì.

Hình 2.5: Mt ví d ca cây phân cp khái nim cho khai phá các frequent itemsets nhiu mc

Do đĩ, khai phá ra các frequent itemsets ti mc tru tượng tng quát hoc ti các mc đa khái nim (multiple-concept levels) là rt quan trng.

Vì s lượng d liu được x lý trong khai phá các lut kết hp cĩ xu hướng rt ln, nên đưa ra nhng thut tốn hiu qu để xây dng vic khai phá trên nhng d liu như vy là rt quan trng. Trong phn này, trình bày mt vài thut tốn ci tiến cho Apriori.

2.2.2 Phương pháp FP-tree

Phương pháp Frequent pattern growth (FP-growth) là mt phương pháp hiu qu để khai phá các frequent itemsets trong các CSDL ln. Thut tốn khai phá các frequent itemsets mà khơng cĩ quá trình sinh candidate tn thi gian mà là yếu t cn thiết cho Apriori. Khi CSDL ln, FP-growth đầu tiên thc hin mt phép chiếu CSDL ca các frequent items; sau đĩ nĩ chuyn ti khai phá b nh chính bng cách xây dng cu trúc d liu gn nhđược gi là FP-tree. [9]

ðể gii thích thut tốn, ta dùng CSDL giao dch trong bng 2.1 và

Một phần của tài liệu LUẬN VĂN: NGHIÊN CỨU VÀ ÁP DỤNG MỘT SỐ KỸ THUẬT KHAI PHÁ DỮ LIỆU VỚI CƠ SƠ SỞ DỮ LIỆU NGÀNH THUẾ VIỆT NAM. DOCX (Trang 46 -46 )

×