1. Trang chủ
  2. » Giáo Dục - Đào Tạo

(Luận văn thạc sĩ) khai phá luật kết hợp

97 9 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 97
Dung lượng 31,63 MB

Nội dung

ĐẠI HỌC QUỐC GIA HÀ NỘI KHOA CÔNG NGHỆ NGUYỄN THỊ THU PHƯƠNG KHAI PHÁ LUẬT KẾT HỢP CHUYẼN NGHÀNH: CÔNG NGHỀ THÔNG TIN MÃ SỐ: LUẬN VĂN THẠC SỸ KHOA HỌC NGƯỜI HƯỚNG DẪN ĐTKH: TS Đ ỗ VÁN THÀNH ĐẠí n r v r a u Ĩ C G í A HÀ NĨ ; ị TWẻrtGTM THNG r u a t ỡ M V lf:ô ị HÀ NỘI - 2001 M ỤC LỤ C Mờ đầu Chương Khai phá liệu 1.1 Phát tri thức 1.2 Các siai đoạn cúa trình phát tri thức 1.3 Khai phá liệu Chương Khai phá luật kết hợp 15 2.1 Bài toán xuất phát 15 2.2 Mơ hình hình thức 16 2.3 Thuật toán Apriori AprioriTid 19 2.4 Hệ thống thuật toán .29 2.5 Khai phá luật kết hợp định lượng 39 Chương Cơ sờ lý thuyết luật kết h ợ p 44 3.1 Độ phức tạp cùa thuật toán khai phá luật kết hợp 44 3.2 Khai phá luật kết hợp đóng 47 3.3 Luật kết hợp nhìn theo quan điểm modal lơ g ic 58 Chương Chương trình thử nghiệm khai phú luật kết hợp 66 4.1 Mô tà liệu 66 4.2 Xây dựng chương trình 67 4.3 Kết thử n g h iệ m .69 Kết lu ậ n 73 Phụ l ụ c 77 MỚ ĐẨU Mộl thực tế irons nhiều thập kỷ qua người có tay luợng liệu lớn nhtmg hiểu biết thực chưa bao nhiêu, tượng giàu liệu mà nahèo thông tin diễn phổ biến tronẹ tổ chức, doanh nghiệp ứng dụng cơng nghệ thịng tin Tinh hình dẫn đến xu hướng nám gán người ta khai ihác sờ liệu (CSDL.) khơng chi nhằm tìm nhữna liệu đáp ứng hoạt động manh tính tác nahiệp mà cịn nhầm có nhữns “tri thức” phục vụ yêu cầu trợ giúp iịnh Các mơ hình CSD L truyền thơns với cỏng cụ truy vấn liệu khơng có khả nãng hực cỏna việc phát “tri thức” từ CSDL cho, lằ CSDL lớn Những thực tế khách quan thách thức đặt sau: • Các CSDL tãng trưởng nhanh; khả cách thức truy vấn CSDL cổ điển để phán tích liệu hỗ trợ định khơng đáp ứng được; • Tập liệu thườnạ q lớn phàn tích thống kê, thuật tốn tìm kiếm v.v gãp nhiều phức tạp thời gian thực nhớ máy tính; • Việc phát triển nhanh cịng nghệ mạng phươna thức truy nhập liệu mạna cho phép ngày càns thuộn tiện, dễ dàng trons việc thu thập liệu từ nhiều nguồn dược dựa nhiều hệ CSDL khác nhau; • Nhiều liệu lựa chọn chưa phản tích; gâv lãng phí v.v « Những người sử dụng khơng phải nhà phân tích liệu hay nhà thống kè chuyên nghiệp; « Nhu cầu nhận biết làm chủ thời đặt hoạt động kinh tế xã hội nhữna hoạt động có tính cạnh tranh, v.v Các nhu cầu đòi hòi nhà nghiên cứu ứng dụng tin học phải nghiên cứu, tm kiếm phươna pháp để phân tích phát “tri thức" có giá tị từCSDL CSDL lớn Được nói đến lần đầu vào cuối nhữna năm 1980 [4], phát tri thức CSDL (Knowledge Discovery in Databases hay viết tắt KDD) trình phát tri thức tiém án, trước tiém có lợi từ liệu CSDL lớn KDD tiếp thu sừ dụng phát triển thành tựu nhiéu lĩnh vực nahiẽn cứu ứng dụng tin học trước như: lý thuyết nhận dạng, hệ chuyên gia, trí tuệ nhàn tạo, thống ké, v.v Đặc điểm để phân biệt KDD với lĩnh vực nghiên cứu ứna dụne trước trình nhảm phát tri thức trực tiếp từ liệu Trons KDD tri thức phát dans mâu chưa biết trước Quá irình phát tri thức gồm nhiều giai đoạn, trona giai đoạn khai phá liệu (Data Mining hay viết tắt DM ) giai đoạn chù yếu Khai phá liệu bao hàm kỹ thuật nhằm phát thơng tin có giá trị tiềm án chưa biết trước từ CSDL lớn Các kỹ thuật khai phá liệu chia thành ba mána bản: phàn lớp/phân cụm liệu, luật kết hợp khai phá chuỏi Nếu vấn đổ phân lớp/phàn cụm liệu có lịch sử nghiên cứu, ứng dụng lâu dài vấn đề khai phá luật kết hợp đề cập đến vài năm gần đây, nghiên cứu, phát triển mạnh, trờ thành khuynh hướng quan trọrm cùa khai phá liệu Luật kết hợp luật ngầm định số quan hệ kết hợp tập đối tượng mà chúna có thê hồn toàn độc lập với Khai phá luật kết hợp từ CSDL lớn lần đầu xuất vào năm 1993, nahiên cứu phát triển mạnh luật tìm thấy bộc lộ nhiều mẫu có ích để hỗ trợ q trinh định, lựa chọn chiến lược kinh doanh, dự báo tài chính, chấn đốn lâm sàns, nhiều ứng dụng khác v.v Dựa irên số báo cáo khoa học trôna số hội n£hị quốc tế số báo cơng bố tạp chí chuyên ngành phổ biến Internet, luận văn sê trình bày rõ vấn đề khai phá luật kết hợp Cụ luận văn tập trung trình bày vấn để sau: • Bài tốn ihực tế xuất phát mơ hình hình thức luật kết hợp • Thuật tốn khai phá luật kết hợp (được đề xuất lần đầu nhất) • Vấn để khai phá luật kết hợp định lượng • Cơ sở lý thuyết luật kết hợp: đánh giá độ phức tạp thuật toán khai phá luật kết hợp, khai phá luật kết hợp đóna • Luật kết hợp nhìn từ quan điểm modal logic • Xây dựng chươna trình khai phá luật kết hợp vài CSDL thử nghiệm Luận văn chia làm bốn chương gồm 76 trang không kể phần phụ lục Chương ỉ K h phá liệu : nhằm tổng quan siai đoạn trình phát tri thức khai phá ỉiệu giai đoạn chủ yếu Các kỹ thuật khai phá liệu, mục đích vai trị cùa khai phá luật kết hợp Chươns K h phá luật kết họp : sâu tìm hiểu tốn xuất phát, mơ hình hình thức số thuật tốn khai phá luật kết hợp Apriori, AprioriTid Phân loại thuật toán khai phá luật kết hợp theo cách tiếp cận so sánh thuật toán xây dims theo cách tiếp cận Khai phá luật kết hợp định lượng hướng quan tâm nghiên cứu vấn đé khai phá luật kết hợp nội dung cuối chương Chương C sở iý thuyết luật kết hợp : trình bày kết đánh giá độ phức tạp thuật tốn khai phá luật kết hợp Chứng minh tính đắn khai phá luật kết hợp đóng trình bày thuật tốn khai phá luật kết hợp đóng CHARM Đây bước cải tiến thuật toán khai phá luật kết hợp dựa nghiên cứu sở lý thuyết luật kết hợp Nội duns phần cuối chương đẻ cập đến vấn đề làm rõ chất logic luật kết hợp theo quan điểm modal logic Chương Chương trình thử nghiệm khai phá luật k ết hợp trình bàv kết xây dựna chươnơ trình kết quà chương trình khai phá luật kết hợp vài CSDL thử nshiệm Tác giả luận văn xin cảm ơn giúp đỡ nhiệt tình của: • Thầy hướng dẫn TS Đỗ Văn Thành - Văn Phịns phủ • Nhổm xê mi na “Khai phá tri thức CSDL" môn Hệ thống thông tin Khoa công nghệ - Đại học Quốc Gia Hà Nội • Bộ mơn Hệ thống thông tin khoa Công nghệ Đại học Quốc Gia Hà Nội • Khoa Cơng nghệ thõng tin 1- Học viện Cơng nahệ Bưu viễn thơng Chưưng KH AI PHÁ D L IỆ U Phát tri thức, khai phá liệu khái niệm đời vào năm cuối thập kỷ 80 trờ thành lĩnh vực nghiên cứu sôi động năm gần Lĩnh vực lên phát triển nhanh chóng nhiều ngành hợp lại với như: CSDL thống kè học máy, lĩnh vực liên quan khác nhằm phát tri thức từ liệu Nội dung cúa chương bao gồm việc trình bày tổng quan giai đoạn trình phát tri thức, kỹ thuật khai phá liệu vai trò khai phá luật kết hợp 1.1 PH Á T HIỆN T R I TH Ứ C Phát tri thức CSDL trình phát tri thức tiém ẩn khơng biết trước, tiềm nâng có lợi từ liệu trona CSDL lớn Thực chất trình tìm kiếm mẫu tổn CSDL, bị che dấu khối liệu Khó định nshĩa xác tri thức, nhiên hiểu tri thức biểu thức trons nsơn naữ diễn tả (hoặc nhiểu) mối quan hệ thuộc tính liệu Các ngơn ngữ thường đùng để biểu diễn tri thức việc phái tri thức từ CSDL khung (frames), đồ thị, luật (rules), cổng thức logic mệnh đề logic tán từ cấp v.v Tri thức nói tri thức rút từ CSDL thường để giải loạt nhiệm vụ định lĩnh vực định Do vậv, trình phát tri thức cũnạ mans tính chất hướng nhiệm vụ, khơng phải ỉà phát tri thức bất kv mà phát tri thức nhằm giải quvết tốt nhiệm vụ đề V ì vậy, trình phát tri thức trình hoạt động tương tác người sử dụns chun gia phân tích với cơng cụ tin học [2] 1.2 C Á C G IA I ĐOẠN CỦA QUÁ TRÌN H PH Á T HIỆN T R I THỨC Mục đích cùa q trình phát tri thức rút tri thức từ liệu CSDL lớn Quá trình KD D trình gồm nhiều giai đoạn lặp lặp lại, mà lặp lại xuất bước Q trình mô tà theo mô htnh sau [4, Ị: Hình 1.1 Mơ hình mơ tả q trinh KDD Criai đoạn : X c định định nahĩa vấn đề - Tìm hiểu lĩnh vực ứng dụng nhiệm vụ đặt ra, xác định tri thức có mục tiêu người sử dụng - Tạo lựa chọn CSDL Giai đoạn : Thu thập tiền xứ lý liệu - Xử lý làm liệu trước: bỏ liệu tạp bao gổm lỗi dạng khône bình thường Xử lý giá trị bị mất, chuyển đổi liệu phù hợp - Rút gọn kích thước liệu số chiểu: nhận từ cách tìm thuộc tính hữu ích, siảm bớt số chiều biến đổi liệu để nhận bất biến Giai đoạn : Khai phá dừ liệu - Chọn nhiệm vụ khai phá liệu - Lựa chọn phương pháp khai phá liệu - Khai phá liệu để rút mẫu mô hình Giai đoạn : Giải thích kết đánh aiá mẫu mơ hình giai đoạn Giai đoạn : Sử đụng tri thức phát - Các tri thức phát tích hợp chặt chẽ hệ thống, giải xung đột tiềm tàng nghiên cứu thay đổi hệ thống Như KD D trình rút tri thức từ liệu khai phá liệu giai đoạn chù yếu 1.3 K H A I PHÁ D L IỆ U Khai phá liệu khái niệm đời vào cuối năm 80 bao gổm kỹ thuật nhảm phát thơng tin có giá trị tiềm ẩn từ liệu chứa CSDL lớn Khai phá liệu giai đoạn quan trọng tron? trình phát tri thức; chát liên quan đến việc phàn tích liệu sử dụng kv thuật để tìm mẫu tập liệu Mục đích nguvên thuỷ khai phá liệu mơ tả dự đốn [4] - Dự đoán liên quan đến việc sử dụng biến trường CSDL để chiết xuất mảu dự đoán giá trị chưa biết giá trị tương lai biến đáng quan tâm - Mơ tả tập truns vào việc tìm kiếm mẫu mô tả liệu mà người hiểu Hiện giới có nhiéu ngành công nghiệp sử đụnR kỹ thuật khai phá liệu đê phục vụ cho hoạt động sản xuất kinh doanh bước đầu thành c ô n g n h n g n h tài c h ín h , V h ọ c, g iá o d ụ c b ả o h iể m , c h ế tạ o g i a o t h ô n s , hàn g k h ô n g v.v Các kết đạt cho thấy kỹ thuật khai phá liệu nhiều vấn để, với tri thức mà chuvên gia người chưa cung cấp khai phá liệu có tiêm nãna to lớn để khấc phục hạn ch ế Các kỹ thuật khai phá liệu chia thành ba mảng chính: phân cụm/ phân lớp liệu, luật kết hợp khai phá chuỗi 1.3.1 Phân cụm phàn lớp liệu Một cách đcm giản phân cụm/phàn lớp liệu cổ điển xem q trình phân tích mộc tập liệu sình tập nhóm luật mà chúng sừ dụnR dể phân lớp liệu tương lai Khi phân lớp liệu naười ta phát triển việc mó tá mị hình cho lớp sở liệu, dựa nét đặc trưng diện tập liệu huấn luvẹn sắn nhãn Đã có nhiều phương pháp đế phàn lớp liệu nghiên cứu như: - Các phươnsỉ pháp sinh quvết định - Các phương pháp thống kẽ - Các mạng nơ ron - Các mạng xác suất Bayes - Các tập thô - Các thuật toán di truyền - Phươnc pháp người láng giềng gần - Luật suy diễn - Trực quan hoá liệu v.v Và chúng phân thành nhóm [1]: a Các phương pháp phân lớp liệu - Phương pháp thốna kê: Các hệ thống phân tích thống kê SA S SPSS nhà phân tích liệu sừ dụng để phát mẫu lạ giải thích mẫu cá c mơ hình thống kê chẳng hạn mơ hình tuyến tính Các hệ thống phân tích thống kê có vị trí tiếp tục sử dụng I 82 (tham khao "Fast Algorithms for Mining Association Rules" cua Rakesh Agrawal va Ramakrishnan Srikant) */ public class sinhluat implements Timluatkethop{ private SET supports; private Vector rules ; private float min_supDort; private float min_confidence; private Tapmuc is_in_antecedent; private Tapmuc is in_consequent ; private Tapmuc is_ignored; private int max_antecedent; private int min_consequent; // phucng thuc luu tat ca cac cap mue bien CO ho tro Ion hon // ho tro nho nhat mot SET lam tang hieu qua truy cap private void initializeSupports(DBCacheReader cacheReader) { // tap cap moi SET supports = new SETO; try { Tapmuc is ; while (true) { // lay item tu VTang nho cache is = cacheReader.getNextltemset(); // neu mot item CO ho tro ion hon ho tro nho nhat // thi them no vao SET if (is.getSupport() >= min_support) { supports.insert(is); } } } catch (EOFException e) { I I khong lam gi, dat EOF } catch (lOException e) { System.err.println("Loi doc bo nho cache!!!\n" + e); 83 } catch (ClassNotFoundException e) j System.err.println("Loi doc bo nho cache!!!\n" + e) • } ) j** * Tim cac luat kec hop CSDL, cho truoc tap muc b ie n •k * üparam cacheReader doi tuona duoc su dung de doc du lieu cu vung nho cache * param minSupport ho tro nho nhat * ®param minConfidence tin cay nho nhafc * «return Vector bao gom tat ca cac luat ket hop duoc tim th a y */ public Vector find-^ssociations (DBCacheReader cacheReader, float minSupport, float minConfidence) { min_suppcrt = minSupport; conf idence = minConf idence ; // tao vector luu cac luat rules = new Vector 0; // doc tu vung nho cache ho tro cua cac tap mue bien initializeSupports(cacheReader); // lay taD mue bien Vector frequent = supports.getltemsets() ; // sinh cac luat tu for (int i = 0; i < { // lay cac tap mue Tapmuc is_frequent moi tap mue bien frequent.size(); i++) bien = (Tapmuc)frequent.elementAt(i); // bo qua neu no qua nho if (is frequent.size (} = min_confidence) { consequents.addElement (is_consequent) ; I I Them vao cac luat thoa man dieu kien rules.addElemenc(new AssociationRule(is_antecedent, is_consequent, is_frequent.getSupport(), confidence) ) Ỉ ) } // goi ham ap_genrules sinh tat ca cac luat tu cac tap muc bien ap_genrules{is_frequent, consequents); } return rules; } // Ham ap-genrules sinh luat tu cac tap mue bien private void ap_genrules(Tapmuc is_frequent, Vector consequents) Í 85 if (consequents.size() == 0) return; // kich thuoc cua tap mue bien phai lon honkich thuoc cua cap mue phan ket qua // nhat la 2, if (is_frequent.size() > ((Tapmuc)(consequents.elementAc (0))) size () + 1) { Vector new_consequents = apriori_gen(consequents); AssociacionRule ar; for (int i = 0; i < new_conseauents.size() ; i++ ) { Tapmuc is_consequent = ỊTapmuc)new_consequents.elementAt(i); Tapmuc is_antecedent = is_freơuent.subtract(is_consequent); float antecedent support = (float )0 00001 ; cry { antecedent_support = 3upports.geCSupport(is_antecedent); _ } catch (SETException e) { System.err.println("Loi doc ho tro tu SET!!!\n" + e) ; } float confidence = is_frequenc.getSupport() / antecedent_support; // neu luat thoa man dieu kien them vao vector dung lu iuat if (confidence >= confidence) rules.addElement(new AssociationRule(is_antecedent, is_oonsequent, is_frequenr.getSupport(), confidence) ) ; // neu khon loai bo phan ket qua else new_consequents.reraoveElemencAt (i ) ; } ap_genrules(is_frequent, new_consequents); } 86 // day la ham apriori_gen private Vector aoriori_gen(Vector itemsefs) { if (icemsets.size() == 0) return new Vector(0); // tao eau truc du lieu hashtree Caybam ht_itemsets = new Caybam(itemsefcs) ; for (int i = 0; i < itemsets.size(); i++) ht_itemsets.add(i); ht_itemsets.preoareForDescent;) ; Vector result = new Vector(}; Tapmuc is_i, is_j; for (int i = 0; i < itemsets.size() - 1; i++ ) for (int j = i +• 1; j < itemsets.size(); j++) { is_i = (Tapmuc)iterasets.elementAt(i ) ; is_j = (Tapmuc)itemsecs.elementAt(j); if (!is_i.canCombineWith(is_j)) break; else { Tapmuc is = is_i combineWich{is_j); // k-itemset CO k (k-1)-subsets if (ht_itemsets.countSubsets(is) == is.size 0) result.addElement(is); } } return result; } j ★★ * Tim cac luat ket hop tu CSDL , cho mot tap cac tap muc bien va cac han he * * @param cacheReader doi tuong duna de doc du lieu tu bo nho cache * @param minSupport ho tro nho nhat * Sparam minConfi d e n c e tin cay nho nhat 87 * ©Daram inAntecedent cac mue xuat hien phan nguyên nhacua luatn * @param inconsequent cac luat xuat 'nien phan ket qua * Sparam ignored tap mue bi bo qua * ®param maxAntecedent so muc lon nhat co the xuat hìen phan nguyen nhan * ®param minConsequent so muc nho nhat co the xuat hien crona phan ket qua * ẩreturn Vector bao gom tat ca cac luat duoc tim thay */ public Vector fìndAssociations(DBCacheRsader cacheReader, float minSupoort, float rainConfidence, Tapmuc inAntecedent, Tapmuc inconsequent, Tapmuc ignored, int maxAntecedent, int mìnConsequent) { ĩTÚn_suDport = mìnSupport; min_confidence = minConfidence; is_in_antecedent = inAncecedenC; is_ìn_consequent = inconsequent; is_ignored = ignored; max antecedent = maxAntecedent; mm consequent = minConsequent ; // tao vector luu cac luat rules = new Vector 0; // doc ho tro cua cac tap mue bien tu bo nho cache initializeSupports (cacheReader); // doc cac tap mue bien Vector frequent = supports.getltemsets(); if (frequent.size() == 0) return rules; if (ignored != null) / \ for (int i = 0; i < frequent.size(); i++) { Tapmuc is = (Tapmuc)frequent.elementAt(i); if (is.doeslntersect(ignored)) 88 frequent.setElementAt Ífrequeue lastElernent

Ngày đăng: 05/12/2020, 09:52

w