280 likes | 521 Views
BÀI G I ẢNG MÔN HỌC KHAI PHÁ DỮ LIỆU. TR ƯỜNG ĐẠI HỌC HÀNG HẢI VIỆT NAM KHOA CÔNG NGHỆ THÔNG TIN. CHƯƠNG 2: KHAI PHÁ LUẬT KẾT HỢP. Giảng viên : ThS . Nguyễn V ươ ng Thịnh Bộ môn : Hệ thống thông tin. Hải Phòng , 2012. Thông tin về giảng viên. Tài liệu tham khảo.
E N D
BÀI GIẢNG MÔN HỌCKHAI PHÁ DỮ LIỆU TRƯỜNG ĐẠI HỌC HÀNG HẢI VIỆT NAM KHOA CÔNG NGHỆ THÔNG TIN CHƯƠNG 2: KHAI PHÁ LUẬT KẾT HỢP Giảngviên: ThS. Nguyễn Vương Thịnh Bộmôn: Hệthốngthông tin HảiPhòng, 2012
Tài liệu tham khảo Jiawei Han and MichelineKamber, Data Mining Concepts and Techniques, Elsevier Inc, 2006. Robert Nisbet, John Elder, Gary Miner, Handbook of Statistical Analysis and Data Mining Applications, Elsevier Inc, 2009. Elmasri, Navathe, Somayajulu, Gupta, Fundamentals of Database Systems (the 4th Edition), Pearson Education Inc, 2004. Hà Quang Thụy, Phan XuânHiếu, Đoàn Sơn, Nguyễn Trí Thành, Nguyễn Thu Trang, Nguyễn CẩmTú, GiáotrìnhKhaiphádữliệu Web, NXB Giáodục, 2009
CHƯƠNG 2: KHAI PHÁ LUẬT KẾT HỢP 2.1. MỘT SỐ KHÁI NIỆM CƠ BẢN 2.2. TÌM TẬP PHỔ BIẾN VỚI GIẢI THUẬT APRIORI 2.3. SINH LUẬT KẾT HỢP TỪ CÁC TẬP PHỔ BIẾN
2.1. MỘT SỐ KHÁI NIỆM CƠ BẢN 2.1.1. Kháiniệmmục (item) vàtậpmục (item set) • Cho mộttậpgồm n đốitượng I = {I1, I2, I3,…, In}, mỗiphầntử Ii ∈ I đượcgọilàmộtmục (item). Mộttập con bấtkỳ X ⊆ I đượcgọilàmộttậpmục (item set). • Cho mộttập D = {T1, T2,…, Tm}, mỗiphầntửTj ∈ D đượcgọilàmộtgiaodịch (transaction) vàlàmộttập con nàođócủa I (Tj ⊆ I). Ngườitagọi D làcơsởdữliệugiaodịch (transaction database). Sốgiaodịchcótrong D kýhiệulà |D|. Vídụ: I = {A, B, C, D, E, F}, X = {A, D, E} làmộttậpmục. Mộtcơsởdữliệugiaodịch D gồmcáctập con Tjkhácnhaucủa I:
2.1.2. Độhỗtrợ (support) ứngvớimộttậpmục “Độhỗtrợứngvớitậpmục X làxácsuấtxuấthiệncủa X trongcơsởdữliệugiaodịch D” Hoặc “Đỗ hỗtrợứngvớitậpmục X làtỷlệcácgiaodịchcóchứa X trêntổngsốcácgiaodịchcótrongcơsởdữliệugiaodịch D” Trongđó: C(X) làsốlầnxuấthiệncủa X hay sốgiaodịchcóchứa X Vídụ: X = {A, E} thì C(X) = 4 và sup(X) = 4/5 = 80% Cáctậpmụccóđộhỗtrợlớnhơnmộtgiátrịngưỡngminsupnàođóchotrướcđượcgọilàcáctậpphổbiến (frequent item set).
2.1.3. Luậtkếthợp (Association Rule) • Cho haitậpmục X, Y ⊆ I, X ∩ Y = ϕ. Luậtkếthợpkýhiệulà X → Y chỉramốiràngbuộccủatậpmục Y theotậpmục X, nghĩalàkhi X xuấthiệntrongcơsởdữliệugiaodịchthìsẽkéotheosựxuấthiệncủa Y vớimộtmộttỷlệnàođấy. • Luậtkếthợpđượcđặctrưngbởi: Độhỗtrợcủaluật: làtỷlệ(hay xácsuất) xuấthiệncả X và Y trongcùngmộtgiaodịch. Độ tin cậycủaluật: làtỷlệcácgiaodịchcóchứacả X và Y so vớicácgiaodịchcóchứaX. Trongđó: C(X ∪ Y): Sốgiaodịchcóchứacả X và Y. C(X): Sốgiaodịchcóchứa X.
Luậtmạnh: Cácluậtcóđộhỗtrợlớnhơnmộtgiátrịngưỡngminsupvàđộ tin cậylớnhơnmộtgiátrịngưỡngminconfchotrướcđượcgọilàcácluật “mạnh” hay “luậtcógiátrị” (strong association rules). Cụthể: • Nếuđồngthờisup(X→Y) ≥ minsupvà conf(X→Y) ≥ minconfthì X→Y đượcgọilàluậtmạnh (strong association rule).
2.1.4. Bàitoánkhaipháluậtkếthợp Input: Cơsởdữliệugiaodịch D. Cácgiátrịngưỡngminsup, minconf. Output: Tấtcảcácluậtmạnh. Đểgiảiquyếtbàitoánkhaipháluậtkếthợpbaogiờcũngthườngtrải qua haipha: Pha 1: Sinhtấtcảcáctậpphổbiếncóthểcó. Ở phanàytasửdụnggiảithuậtApriori. Pha 2: Ứngvớimỗitậpphổbiến K tìmđược ở pha 1, tách K thànhhaitập X, Y khônggiaonhau (K = X ∪ Y và X ∩ Y = ϕ). Tínhđộ tin cậycủaluậtkếthợp X → Y, nếuđộ tin cậytrênngưỡngminsupthìnólàluậtmạnh. Chú ý lànếutập K có k phầntửthìsốtập con thựcsựcủa K sẽlà 2k – 2, tứclàtừ K tasẽsinhđượctốiđalà 2k - 2 luật. Lưu ý: TronggiảithuậtApriori, đểxácđịnhmộttậplàphổbiếnngườitakhôngsửdụngkháiniệmđộhỗtrợmàsửdụngkháiniệmsốlầnxuấthiện (support count). Nếusốlầnxuấthiệncủatậpmụctrongcơsởdữliệugiaodịchlớnhơnmộtgiátrịngưỡngnàođấythìnólàtậpphổbiến. Giátrịngưỡngnàyđượcxácđịnhlà:
2.2. TÌM TẬP PHỔ BIẾN VỚI GIẢI THUẬT APRIORI 2.2.1. NguyênlýApriori “Nếumộttậpmụclàtậpphổbiếnthìmọitập con khácrỗngbấtkỳcủanócũnglàtậpphổbiến” Chứng minh: XétX’ ⊆ X. Kýhiệu p làngưỡngđộhỗtrợminsup.Mộttậpmụcxuấthiệnbaonhiêulầnthìcáctập con chứatrongnócũngxuấthiệnítnhấtbấynhiêulần, nêntacó: C(X’) ≥ C(X) (1). X làtậpphổbiếnnên: Từ (1) và (2) suyra: Tứclà X’ cũnglàtậpphổbiến (đpcm).
2.2.2. GiảithuậtApriori Mụcđích: Tìmratấtcảcáctậpphổbiếncóthểcó. • DựatrênnguyênlýApriori. • HoạtđộngdựatrênQuyhoạchđộng: TừcáctậpFi = { ci | cilàtậpphổbiến, |ci| = i} gồmmọitậpmụcphổbiếncóđộdàii (1 ≤ i ≤ k), đitìmtập Fk+1gồmmọitậpmụcphổbiếncóđộdài k+1. Cácmục I1, I2,…, Introngtập I đượccoilàsắpxếptheomộtthứtựcốđịnh.
Input: - Cơsởdữliệugiaodịch D = {t1, t2,…, tm}. - Ngưỡngđộhỗtrợtốithiểuminsup. Output: - Tậphợptấtcảcáctậpphổbiến. F1 = { cáctậpphổbiếncóđộdài 1}; for(k=1; Fk != ⍉; k++) { Ck+1 = Apriori_gen(Fk); for each t ∈ D { Ct = { c | c ∈ Ck+1và c ⊆ t}; for each c ∈ Ct c.count++; } Fk+1 = {c ∈ Ck+1 | c.count ≥ mincount}; } return F =
Thủtục con Apriori_gen • Thủtục con Apriori_gencónhiệmvụsinhra (generation) cáctậpmụccóđộdài k+1 từcáctậpmụccóđộdài k trongtậpFk. • Đượcthihành qua haibước: nối (join) cáctậpmụccóchungcáctiềntố (prefix) vàsauđóápdụngnguyênlýAprioriđểloạibỏbớtnhữngtậpkhôngthỏamãn. Cụthể: • Bướcnối: Sinhcáctậpmục c làứngviêncủatậpphổbiếncóđộdài k+1 bằngcáchkếthợphaitậpphổbiếnlivàlj ∈ Fkcóđộdài k vàtrùngnhau ở k-1 mụcđầutiên: c = li + lj = {i1, i2,…, ik-1, ik, ik’}. • Vớili = {i1, i2,…, ik-1, ik}, lj = {i1, i2,…, ik-1, ik’}, và i1 ≤ i2 ≤…≤ ik-1 ≤ ik≤ ik’. • Bướctỉa: Giữlạitấtcảcácứngviên c thỏathỏamãnnguyênlýAprioritứclàmọitập con cóđộdài k củanóđềulàtậpphổbiến (∀sk ⊆ c và |sk| = k thìsk ∈ Fk).
functionApriori_gen(Fk: tậpcáctậpphổbiếnđộdài k): Tậpứngviêncóđộdài k+1 { Ck+1 = ⍉; for eachli ∈ Fk for eachlj ∈ Fk if (li[1]=lj[1]) and (li[2]=lj[2]) … and (li[k-1]=lj[k-1]) and (li[k]<lj[k]) then { c = {li[1], li[2], li[3],…, li[k], lj[k]}; ifhas_infrequent_subset(c, Fk) then delete c; else Ck+1 = Ck+1 ∪ {c}; } return Ck+1; }
Hàmhas_infrequent_subsetlàmnhiệmvụkiểmtraxemmộtứngviêncóđộdài k+1 cóchứatậpkhôngphổbiến hay không, nếucóthìứngviênlậptứcbịloại. ĐâylàbướctỉadựatrênnguyênlýApriorinhằmloạibỏnhanhcácứngviênkhôngthỏamãn. function has_infrequent_subset(c: Ứngviêncóđộdài k+1, Fk: Tậpcáctậpphổbiếnđộdài k): Boolean { for eachsk ⊂ c ifsk ∉ Fkthen return True; return False; }
2.3. SINH LUẬT KẾT HỢP TỪ CÁC TẬP PHỔ BIẾN • Đểsinhcácluậtkếthợp: • Vớimỗitậpphổbiến X ∈ F, taxácđịnhcáctậpmụckhôngrỗnglà con của X. • Vớimỗitậpmục con S khôngrỗngcủa X tasẽthuđượcmộtluậtkếthợplà S→(X\S). Nếuđộtin cậycủaluậtthỏamãnngưỡngminconfthìluậtđólàluậtmạnh. functionRules_Generation(F: Tậpcáctậpphổbiến): Tậpcácluậtkếthợpmạnh { R = ⍉; F=F \ F1; //Cáctậpphổbiếnđộdài 1 khôngdùngđểsinhluật for each X ∈ F for each S ⊂ X if conf(S→(X\S)) ≥ minconfthen R = R ∪ { S→(X\S)}; return R; }
BÀI TẬP ÁP DỤNG Bàitậpsố 1: Cho I = {A, B, C, D, E, F} vàcơsởdữliệugiaodịch D: Chọnngưỡngminsup = 25% vàminconf = 75%. Hãyxácđịnhcácluậtkếthợpmạnh.
Sinhcáctậpcóđộdài 2 bằngcáchnốicáctậpcóđộdài 1 Sinhcáctậpphổbiếncóđộdài 1 LoạicáctậpmụckhôngthỏamãnnguyênlýApriori Sinhcáctậpmụccóđộdài 3 từtậpphổbiến F2 F3chỉcómộtphầntửnênkhôngthểtiếptụckếtnốiđểsinh F4. Thuậttoánkếtthúc. Ta cótậpcáctậpphổbiếnlà: F ={{A}, {B}, {C}, {E}, {F}, {A, B}, {A, C}, {A, F}, {B, F}, {A, B, F}}
{A, B} cóthểsinhcácluật: {A}→{B}, {B}→{A} • {A, C} cóthểsinhcácluật: {A}→{C}, {C}→{A} • {A, F} cóthểsinhcácluật: {A}→{F}, {F}→{A}
{B, F} cóthểsinhcácluật: {B}→{F}, {F}→{B} {A, B, F} cóthểsinhcácluật: {A}→{B, F}, {A, B}→{F}, {B}→{A, F}, {B, F}→{A}, {F}→{A, B}, {A, F}→{B}
Nhưvậycácluậtkếthợpmạnhthuđượcgồm: {C}→{A}, {B}→{F}, {F}→{B}, {A, B}→{F}, {A, F}→{B}
Bàitậpsố 2: Cho I = {A, B, C, D, E, F} vàcơsởdữliệugiaodịch D: Chọnngưỡngminsup = 20% vàminconf = 70%. Hãyxácđịnhcácluậtkếthợpmạnh.
TậpF3chỉcómộtphầntửnênkhôngthểtiếptụckếtnốiđểsinhứngviênchotậpF4. Thuậttoánkếtthúc. Tậpcáctậpphổbiếnthuđược: F = {{A}, {B}, {C}, {D}, {E}, {A, B}, {A, D}, {B, D}, {C, D}, {D, E}, {A, B, D}}
{A, B} sinhluật: {A}→{B}, {B}→{A} • {A, D} sinhluật: {A}→{D}, {D}→{A} • {B, D} sinhluật: {B}→{D}, {D}→{B}
{C, D} sinhluật: {C}→{D}, {D}→{C} • {D, E} sinhluật: {D}→{E}, {E}→{D} • {A, B, D} sinhluật: {A}→{B, D}, {A, B}→{D}, {B}→{A, D}, {B, D}→{A}, {D}→{A, B}, {A, D}→B
Cácluậtkếthợpmạnhthuđượcgồm: • {A}→{B} • {A}→{D} • {B}→{D} • {C}→{D} • {E}→{D} • {A}→{B, D} • {A,B}→{D} • {A, D}→B