TÌM HIỂU và THỬ NGHIỆM THUẬT TOÁN KHAI PHÁ dữ LIỆU GSP

29 823 7
TÌM HIỂU và THỬ NGHIỆM THUẬT TOÁN KHAI PHÁ dữ LIỆU GSP

Đ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

Chuyên Đề Công Nghệ Phần Mềm Tên đề tài: TÌM HIỂU VÀ THỬ NGHIỆM THUẬT TOÁN KHAI PHÁ DỮ LIỆU GSP Giảng viên hướng dẫn: Nguyễn Mạnh Sơn Họ tên sinh viên: Lại Thế Quyền Quách Văn Phong Cấn Quang Hưng Lớp : L14CNPM MỤC LỤC 1.Khai phá liệu 1.1Tại lại khai phá liệu? .4 1.2 Định nghĩa khai phá liệu .5 1.3 Các bước khám phá tri thức Các hướng tiếp cận kỹ thuật áp dụng Khai phá liệu .7 2.1 Các hướng tiếp cận kỹ thuật khai phá liệu 2.1 Các dạng liệu khai phá .8 Ứng dụng Khai phá liệu Giới thiệu chung luật kết hợp .9 1.1 Khái niệm luật kết hợp .9 1.2 Các ứng dụng điển hình luật kết hợp 10 2.Luật dãy .11 2.1 Khái niệm luật dãy ví dụ 11 2.2 Một số ứng dụng .13 Chương III: CÁC PHƯƠNG PHÁP KHAI PHÁ LUẬT DÃY 16 1.Khái quát khai phá luật dãy 16 2.Thuật toán GSP (Generalized Sequential Patterns) 18 Giới thiệu đề tài Khai phá mẫu dãy nội dung quan trọng khai phá liệu với nhiều ứng dụng rộng rãi phân tích thị trường, phân tích mẫu truy cập web, phát xâm nhập môi trường mạng, nghiên cứu DNA, dự doán nhu cầu mua sắm khách hàng… Khai phá mẫu dãy việc phát dãy phổ biến sở liệu dãy Theo nghiên cứu, thuật toán, khai phá mẫu dãy chủ yếu tập chung vào hai nội dung cách thức mà dãy ứng viên sinh lưu trữ, cách mà độ hỗ trợ tính tần suất dãy ứng viên kiểm tra Dựa vào tiêu chí trên, thuật toán khai phá mẫu dãy nhóm thành hai hướng tiếp cận chính: thuật toán dựa Aproori, thuật toán pháy triển mẫu Có số thuật toán theo phương pháp tiếp cận dựa Apriori AprioriAll, GSP, Spade, Spam… biến thể chúng Chương I: TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU Khai phá liệu 1.1 Tại lại khai phá liệu? Hơn thập niên trở lại đây, lượng thông tin lưu trữ thiết bị điện tử (đĩa cứng, CD-ROM, băng từ, v.v.) không ngừng tăng lên Sự tích lũy liệu xảy với tốc độ bùng nổ Người ta ước đoán rằng, lượng thông tin toàn cầu tăng gấp đôi sau khoảng hai năm theo số lượng kích cỡ CSDL tăng lên cách nhanh chóng [AR95] Hình - Lượng liệu tích lũy tăng mạnh theo thời gian Chúng ta thực “ngập” liệu, lại cảm thấy “đói” tri thức thông tin hữu ích Lượng liệu khổng lồ thực nguồn “tài nguyên” giá trị thông tin yếu tố then chốt hoạt động kinh doanh giúp người điều hành quản lý có nhìn sâu sắc, xác, khách quan vào tiến trình kinh doanh trước định KPDL – khai thác thông tin tiềm ẩn có tính dự đoán từ CSDL lớn – hướng tiếp cận với khả giúp công ty trọng vào thông tin có nhiều ý nghĩa từ tập hợp liệu lớn (databases, data warehouses, data repositories) mang tính lịch sử Những công cụ KPDL dự đoán xu hướng tương lai cho phép doanh nghiệp định kịp thời định hướng tri thức mà KPDL đem lại Sự phân tích liệu cách tự động mang tính dự báo KPDL có ưu hẳn so với phân tích thông thường dựa kiện khứ hệ hỗ trợ định (decision support systems DSSs) truyền thống trước Công cụ KPDL trả lời câu hỏi lĩnh vực kinh doanh mà trước xem tốn nhiều thời gian để xử lý Với tất ưu trên, KPDL chứng tỏ tính hữu dụng môi trường kinh doanh đầy tính cạnh tranh ngày Giờ đây, KPDL trở thành hướng nghiên cứu lĩnh vực khoa học máy tính công nghệ tri thức Phạm vi ứng dụng ban đầu KPDL lĩnh vực thương mại (bán lẻ) tài (thị trường chứng khoán) Nhưng ngày nay, KPDL ứng dụng rộng rãi lĩnh vực khác tin-sinh (bio-informatics), điều trị y học (medical treatment), viễn thông (telecommunication), giáo dục (education), v.v 1.2 Định nghĩa khai phá liệu Chúng ta hiểu cách sơ lược KPDL trình tìm kiếm thông tin (tri thức) hữu ích, tiềm ẩn mang tính dự báo tập liệu lớn Như vậy, nên gọi trình khám phá tri thức (Knowledge Discovery in Databases – KDD) thay KPDL Tuy nhiên nhà khoa học lĩnh vực đồng ý với hai thuật ngữ tương đương thay cho Họ lý giải rằng, mục đích trình khám phá tri thức thông tin tri thức có ích, đối tượng mà phải xử lý nhiều suốt trình lại liệu Mặt khác, chia bước trình khám phá tri thức, số nhà nghiên cứu lại cho rằng, KPDL bước trình khám phá tri thức [FSSU96] Như vậy, xét mức tổng quan hai thuật ngữ tương đương nhau, xét cụ thể KPDL xem bước trình khám phá tri thức Có nhiều định nghĩa KPDL, định nghĩa định nghĩa mang tính mô tả Xin trích vài định nghĩa nguyên tiếng Anh nhằm chuyển tải y nguyên ý tác giả tránh sai sót chủ quan: Định nghĩa William J Frawley, Gregory Piatetsky-Shapiro, Christopher J Matheus 1991 [FSSU96]: “Knowledge discovery in databases, also known Data mining, is the nontrivial process of identifying valid, novel, potentially useful, and ultimately understandable patterns in data.” Định nghĩa Marcel Holshemier Arno Siebes (1994): “Data Mining is the search for relationships and global patterns that exist in large databases but are ‘hidden’ among the vast amount of data, such as a relationship between patient data and their medical diagnosis These relationships represent valuable knowledge about the database and the objects in the database and, if the database is a faithful mirror, of the real world registered by the database.” 1.3 Các bước khám phá tri thức Người ta thường chia trình khám phá tri thức thành bước sau [AR95] [MM00] [HK02]: • Trích chọn liệu (data selection): bước trích chọn tập liệu cần khai phá từ tập liệu lớn (databases, data warehouses, data repositories) ban đầu theo số tiêu chí định • Tiền xử lý liệu (data preprocessing): bước làm liệu (xử lý với liệu không đầy đủ, liệu nhiễu, liệu không quán, v.v.), rút gọn liệu (sử dụng hàm nhóm tính tổng, phương pháp nén liệu, sử dụng histograms, lấy mẫu, v.v.), rời rạc hóa liệu (rời rạc hóa dựa vào histograms, dựa vào entropy, dựa vào phân khoảng, v.v.) Sau bước này, liệu quán, đầy đủ, rút gọn, rời rạc hóa • Biến đổi liệu (data transformation): bước chuẩn hóa làm mịn liệu để đưa liệu dạng thuận lợi nhằm phục vụ cho kỹ thuật khai phá bước sau • KPDL (data mining): bước áp dụng kỹ thuật khai phá (phần nhiều kỹ thuật machine learning) để khai phá, trích chọn mẫu (patterns) thông tin, mối liên hệ (relationships) đặc biệt liệu Đây xem bước quan trọng tốn nhiều thời gian toàn trình KDD • Biểu diễn đánh giá tri thức (knowledge representation & evaluation): mẫu thông tin mối liên hệ liệu khai phá bước chuyển dạng biểu diễn dạng gần gũi với người sử dụng đồ thị, cây, bảng biểu, luật, v.v Đồng thời bước đánh giá tri thức khám phá theo tiêu chí định Hình - Các bước trình khám phá tri thức (KDD) Các hướng tiếp cận kỹ thuật áp dụng Khai phá liệu 2.1 Các hướng tiếp cận kỹ thuật khai phá liệu Các hướng tiếp cận KPDL phân chia theo chức hay lớp toán khác Sau số hướng tiếp cận [HK02] • Phân lớp dự đoán (classification & prediction): xếp đối tượng vào lớp biết trước Ví dụ: phân lớp vùng địa lý theo liệu thời tiết Hướng tiếp cận thường sử dụng số kỹ thuật machine learning định (decision tree), mạng nơ ron nhân tạo (neural network), v.v Phân lớp gọi học có giám sát (học có thầy – supervised learning) • Luật kết hợp (association rules): dạng luật biểu diễn tri thứ dạng đơn giản Ví dụ: “60 % nam giới vào siêu thị mua bia có tới 80% số họ mua thêm thịt bò khô” Luật kết hợp ứng dụng nhiều lĩnh vực kinh doanh, y học, tin-sinh, tài & thị trường chứng khoán, v.v • Khai phá chuỗi theo thời gian (sequential/temporal patterns): tương tự khai phá luật kết hợp có thêm tính thứ tự tính thời gian Hướng tiếp cận ứng dụng nhiều lĩnh vực tài thị trường chứng khoán có tính dự báo cao • Phân cụm (clustering/segmentation): xếp đối tượng theo cụm (số lượng tên cụm chưa biết trước Phân cụm gọi học không giám sát (học thầy – unsupervised learning) • Mô tả khái niệm (concept description & summarization): thiên mô tả, tổng hợp tóm tắt khái niệm Ví dụ: tóm tắt văn 2.1 Các dạng liệu khai phá Do KPDL ứng dụng rộng rãi nên làm việc với nhiều kiểu liệu khác [HK02] Sau số kiểu liệu điển hình • CSDL quan hệ (relational databases) • CSDL quan hệ - hướng đối tượng (object-relational databases) • CSDL đa phương tiện (multimedia databases) âm (audio), hình ảnh (image), phim ảnh (video), v.v • Dữ liệu Text Web (text database & www) • …… Ứng dụng Khai phá liệu KPDL lĩnh vực thu hút nhiều quan tâm nhà nghiên cứu nhờ vào ứng dụng thực tiễn Chúng ta liệt kê số ứng dụng điển hình: • Phân tích liệu hỗ trợ định (data analysis & decision support) • Điều trị y học (medical treatment): mối liên hệ triệu chứng, chẩn đoán phương pháp điều trị (chế độ dinh dưỡng, thuốc men, phẩu thuật, …) • Text mining & Web mining: phân lớp văn trang web, tóm tắt văn bản, v.v • Tin-sinh (bio-informatics): tìm kiếm, đối sánh hệ gene thông tin di truyền, mối liên hệ số hệ gene số bệnh di truyền, v.v • Tài thị trường chứng khoán (finance & stock market): phân tích tình hình tài dự báo giá loại cổ phiếu thị trường chứng khoán, v.v • Bảo hiểm (insurance)  v.v Chương II: KHÁI QUÁT CHUNG VỀ LUẬT KẾT HỢP, LUẬT DÃY VÀ KHAI PHÁ LUẬT DÃY Khai phá luật dãy chủ đề thiết thực quan trọng khai phá liệu với nhiều ứng dụng phân tích giao dịch mua hàng khách hàng, khai thác weblogs, khai thác dãy ADN, nghiên cứu liệu toán khí tượng - thủy văn dự báo thời tiết, thảm họa tự nhiên động đất, sóng thần Các thuật toán khai phá luật dãy kế thừa nhiều từ thuật toán khai phá luật kết hợp, nhiều thuật toán số mở rộng thuật toán khởi thủy, khác biệt khai phá luật dãy đưa phân tích liên giao dịch (intertransaction), khai phá luật kết hợp tìm luật mối liên quan phần tử giao dịch (intra- transaction) Trước tiên, ta cần tìm hiểu số vấn đề luật kết hợp Giới thiệu chung luật kết hợp 1.1 Khái niệm luật kết hợp Trong lĩnh vực Data Mining, mục đích luật kết hợp (Association Rule - AR) tìm mối quan hệ đối tượng khối lượng lớn liệu Nội dung luật kết hợp tóm tắt Cho sở liệu gồm giao dịch T tập giao dịch t1, t2, …, tn T = {t1, t2, …, tn} T gọi sở liệu giao dịch (Transaction Database) Mỗi giao dịch ti bao gồm tập đối tượng I (gọi itemset) I = {i1, i2, …, im} Một itemset gồm k items gọi k-itemset Mục đích luật kết hợp tìm kết hợp (association) hay tương quan (correlation) items Những luật kết hợp có dạng X =>Y Trong Basket Analysis, luật kết hợp X =>Y hiểu người mua mặt hàng tập X thường mua mặt hàng tập Y (X Y gọi itemset) Ví dụ, X = {Apple, Banana} Y = {Cherry, Durian} ta có luật kết hợp X =>Y nói người mua Apple Banana thường mua Cherry Durian Theo quan điểm thống kê, X xem biến độc lập (Independent variable) Y xem biến phụ thuộc (Dependent variable) Độ hỗ trợ (Support) độ tin (Confidence) tham số dùng để đo lường luật kết hợp Độ hỗ trợ (Support) luật kết hợp X =>Y tần suất giao dịch chứa tất items hai tập X Y Ví dụ, support luật X =>Y 5% có nghĩa 5% giao dịch X Y mua Độ tin cậy (Confidence) luật kết hợp X =>Y xác suất xảy Y biết X Ví dụ độ tin cậy luật kết hợp {Apple} =>Banana} 80% có nghĩa 80% khách hàng mua Apple mua Banana Để thu luật kết hợp, ta thường áp dụng tiêu chí: minimum support (min_sup) minimum confidence (min_conf) Các luật thỏa mãn có support confidence thỏa mãn (lớn bằng) Minimum support Minimum confidence gọi luật mạnh (Strong Rle) Minimum support Minimum confidence gọi giá trị ngưỡng (threshold) phải xác định trước sinh luật kết hợp Một itemsets mà tần suất xuất >= min_sup goi frequent itemsets Một số loại luật kết hợp Binary association rules (luật kết hợp nhị phân): Apple => Banana Quantitative association rules (luật kết hợp định lượng): weight in [70kg – 90kg] => height in [170cm – 190cm] Fuzzy association rules (Luật kết hợp mờ): weight in HEAVY => height in TALL Thuật toán phổ biến tìm luật kết hợp Apriori sử dụng Binary association rules 1.2 Các ứng dụng điển hình luật kết hợp Một số ứng dụng điển hình như: phân tích giỏ hàng (market basket analysis), đưa chiến lược tiếp thị, thiết kế trí gian hàng, chiến lược bán hàng khuyến mại, toán phân lớp, phân cụm, Market basket analysis: Chẳng hạn, người quản lý chi nhánh bán hàng, họ muốn biết thêm thói quen mua sắm khách hàng Cụ thể họ muốn biết “Trong lần mua sắm, khách hàng thường mua nhóm mặt hàng nhau?” Để trả lời câu hỏi này, việc phân tích giỏ khách hàng thực liệu mua bán lẻ khách hàng lưu trữ Sau sử dụng kết để lên kế hoạch tiếp thị, chiến lược quảng cáo dự định bổ sung danh mục hàng hóa Việc phân tích giỏ hàng giúp bạn thiết kế gian hàng với cách trí hàng hóa khác Các mặt hàng thường xuyên mua với đặt gần để thúc đẩy việc bán hàng Nếu khách hàng mua máy tính có xu hướng mua phần mềm diệt virus lúc, thế, đặt hình gần với phần mềm hiển thị giúp tăng doanh số bán hàng hai Trong chiến lược khác, bố trí phần cứng phần mềm hai đầu cửa hàng lôi kéo khách hàng mua mặt hàng khác đường di chuyển hai vị trí Ví dụ, sau định mua máy tính đắt tiền, đến mua phần mềm diệt virus, khách hàng quan sát thấy hệ thống an ninh gia đình trưng bày định mua Việc phân tích giỏ hàng giúp nhà bán lẻ đưa kế hoạch bán hàng giảm giá Thông thường, khách hàng có xu hướng mua máy tính máy in với nhau, bán giảm giá máy in khách hàng mua máy tính Trong gian hàng, mặt hàng gắn với biến Boolean biểu thị có mặt hay vắng mặt mặt hàng Tiếp đến, giỏ hàng thể vector Boolean giá trị gán cho biến Các vector Boolean biểu thị 10 offline hệ thống Tuy nhiên, dự báo di chuyển thực online Điều có nghĩa người dùng có ý định thực di chuyển khu vực định, yêu cầu dự đoán gửi đến hệ thống dự đoán thực hệ thống cách sử dụng luật di động dựa thuật toán dự đoán Hình 1.5: Kiến trúc tổng thể hệ thống quản lý thông tin di động 15 Chương III: CÁC PHƯƠNG PHÁP KHAI PHÁ LUẬT DÃY Khái quát khai phá luật dãy Khai phá luật dãy xử lý liệu điển hình dãy tập hợp phần tử thứ tự So với vấn đề luật kết hợp, luật dãy nghiên cứu liệu đưa phân tích “liên giao dịch” (inter-transaction) Có nhiều ứng dụng khai phá mẫu dãy vấn đề định nghĩa theo cách khác với mức độ thay đổi không đáng kể Kết hợp với giải pháp hiệu quả, vấn đề phù hợp với liệu thực tế có mốc thời gian (timestamp) (khi mà luật kết hợp không giải được) cung cấp kết hữu ích Ta sử dụng CSDL giao dịch mua bán hàng làm ví dụ, với thông tin về: định danh dãy định danh khách hàng (sequence-id or customer-id), thời gian giao dịch (transaction-time) mặt hàng liên quan giao dịch (item) Một CSDL gọi CSDL dãy Chính xác hơn, giao dịch tập hợp mặt hàng (itemset) dãy danh sách giao dịch xếp theo thời gian giao dịch Đối với hiệu việc trợ giúp định, mục đích để tìm thói quen tiêu biểu người dùng Để làm việc đó, đòi hỏi phải có CSDL dãy đưa giá trị hỗ trợ tức số lần xuất CSDL Một mẫu dãy phổ biến dãy mà tần xuất xuất CSDL vượt ngưỡng quy định Vấn đề tìm kiếm tất mẫu thường xuyên từ lượng liệu khổng lồ đòi hỏi chi phí mặt thời gian lớn Thông thường, việc kiểm tra tất kết hợp liệu vấn đề khó thuật toán tập trung vào liệu dãy coi quan trọng tổ chức Khai phá luật dãy áp dụng rộng rãi ứng dụng từ nhiều loại liệu có thời gian liên quan Ví dụ, từ CSDL mua bán hàng, mẫu dãy dùng để phát triển chiến lược tiếp thị sản phẩm; Bằng cách phân tích weblog, mẫu dãy hữu ích cho việc xây dựng website công ty giúp khách hàng truy cập cách dễ dàng liên kết phổ biến (Kosala Blockeel, 2000); Ta thấy CSDL báo động mạng viễn thông, phát xâm nhập (Hu Panda, 2004), dãy ADN (Zaki, 2003), … Chúng ta chia vấn đề khai phá luật dãy thành giai đoạn sau đây:  Giai đoạn xếp (Sort Phase): CSDL (D) xếp, với mã khách hàng (custorm-id) khóa thời gian giao dịch (transaction-time) khóa phụ Bước chuyển đổi ngầm sơ liệu giao dịch gốc thành CSDL dãy khách hàng  Giai đoạn Litemset (Litemset Phase): Trong giai đoạn này, tìm tập tất litemsets L, đồng thời tìm kiếm tập tất dãy phổ biến 1-sequence, tập { | l ∈ L} 16 Với giao dịch khách hàng, độ hỗ trợ tính tăng lên lần khách hàng mua tập sản phẩm hai hay nhiều giao dịch khác Tập hợp litemsets ánh xạ tới tập hợp số nguyên liên tiếp Sau bước xử lý litemsets để có thực thể nhất, việc ánh xạ giúp ta so sánh hai litemsets có hay không thời gian cố định, giảm số lần cần thiết để kiểm tra dãy chứa dãy khách hàng  Giai đoạn chuyển đổi (Transformation Phase): Như thấy giai đoạn dãy (Sequence Phase), cần phải xác định lặp lặp lại nhiều lần để đưa tập dãy phổ biến (large sequences) chứa dãy khách hàng Để thực điều cách nhanh chóng, ta chuyển đổi dãy khách hàng thành đại diện thay Trong dãy khách hàng chuyển đổi, giao dịch thay tập tất litemsets chứa giao dịch Nếu giao dịch không chứa litemset nào, không giữ lại dãy chuyển đổi Nếu dãy khách hàng không chứa litemset dãy bị loại bỏ CSDL chuyển đổi Tuy nhiên, góp phần vào việc tính tổng số lượng khách hàng Một dãy khách hàng thể danh sách tập litemsets Mỗi tập litemsets biểu diễn {l1, l2, , ln}, li litemset CSDL chuyển đổi gọi DT Tiếp tục sử dụng CSDL phần 1.2 làm ví dụ, việc chuyển đổi CSDL Hình 1.3 thể Hình 2.1 Ví dụ, trong việc chuyển đổi dãy khách hàng với Id 2, giao dịch (10 20) bị loại bỏ không chứa litemset giao dịch (40 60 70) thay tập litemsets {(40),(70), (40 70)} Customer Original Id Customer Sequence < (30) (90)> < (10 20) (30) (40 60 70) > < (30 50 70)> < (30) (40 70) (90)> Transformed After Mapping Customer Sequence < {(30)} {(90)}> < {(30)} {(40), (70), (40 70)}> < {(30), (70)}> < {(30)} {(40), (70), (40 70)} {5}> < (90)> < {(90)}> Hình 2.1: CSDL chuyển đổi từ Hình 1.3  Giai đoạn dãy (Sequence Phase): Ta sử dụng tập litemsets để tìm dãy ứng viên Cấu trúc chung thực trình duyệt lặp lặp lại liệu Trong lần duyệt, ta bắt đầu với tập khởi tạo dãy phổ biến Ta sử dụng tập khởi tạo để sinh dãy phổ biến mới, tiềm năng, gọi dãy ứng viên (candidate sequences) Tìm độ hỗ trợ cho dãy ứng viên suốt trình duyệt liệu Tại lần duyệt cuối bước, xác định dãy dãy ứng viên dãy phổ biến thực Các dãy ứng viên phổ biến trở thành khởi tạo cho lần duyệt Trong lần duyệt đầu tiên, tất 1-sequences với độ hỗ trợ tối thiểu, chứa giai đoạn litemset, tạo nên tập khởi tạo  Giai đoạn tìm dãy tối đa (Maximal Phase): Tìm dãy tối đa tập dãy phổ biến (large sequences) Giai đoạn kết hợp với giai đoạn dãy (Sequence Phase) để giảm chi phí thời gian việc tính dãy không tối đa Tập tất dãy phổ biến S tìm thấy giai đoạn dãy, thuật toán sử dụng để tìm dãy tối đa Với n độ dài dãy dài for ( k = n; k > 1; k – – ) foreach k-sequence sk Delete from S all subsequences of sk Thuật toán GSP (Generalized Sequential Patterns) Cấu trúc thuật toán GSP tìm kiếm mẫu dãy thuật toán duyệt liệu nhiều lần, lần duyệt xác định độ hỗ trợ phần tử, tức số lượng liệu dãy có chứa phần tử Kết thúc lần duyệt đầu tiên, thuật toán đưa phần tử thường xuyên, nghĩa thỏa mãn độ hỗ trợ tối thiểu Mỗi phần tử tiết lộ dãy phổ biến 1-element chứa phần tử Mỗi dãy bắt đầu duyệt với tập khởi đầu dãy phổ biến tìm thấy lần duyệt trước Tập khởi đầu sử dụng để sinh dãy phổ biến tiềm mới, gọi dãy ứng viên Mỗi dãy ứng viên có phần tử thuộc dãy khởi đầu, tất dãy ứng viên lần duyệt có số phần tử Độ hỗ trợ cho dãy ứng viên tìm thấy qúa trình duyệt liệu Kết thúc lần duyệt, thuật toán xác định dãy ứng viên thường xuyên thực Những ứng viên thường xuyên trở thành tập khởi đầu cho lần duyệt Thuật toán kết thúc không tìm dãy phổ biến cuối lần duyệt, dãy ứng viên sinh Ta cần rõ hai điểm mấu chốt thuật toán cách sinh dãy ứng viên (Candidate generation) cách tính độ hỗ trợ để xác định dãy ứng viên (Counting candidates)  Sinh dãy ứng viên (Candidate Generation) Xét dãy có k phần tử, gọi k-sequence (nếu phần tử xuất nhiều lần thành phần khác dãy, lần xuất tính vào giá trị k.) Gọi Lk biểu thị tập tất dãy phổ biến k-sequence Ck biểu thị tập dãy ứng viên k-sequence Cho Lk-1 tập tất dãy phổ biến (k-1)-sequence, ta cần tạo tập cha (superset) tập tất dãy phổ biến k-sequence Đầu tiên, ta định nghĩa khái niệm dãy liên tục Định nghĩa: Cho dãy s = dãy c, c dãy liên tục s thỏa mãn điều kiện sau đây: c nhận từ s cách lược bỏ phần tử s1 sn c nhận từ s cách lược bỏ phần tử từ thành phần si mà si có hai phần tử c dãy liên tục c‟, c‟ dãy liên tục s Ví dụ: Giả sử có dãy s = Khi đó, dãy liên tục s ; ; Các dãy dãy liên tục s như: ; Dữ liệu dãy có chứa dãy s chứa dãy liên tục s Nếu ràng buộc khoảng thời gian tối đa max-gap, liệu dãy chứa tất dãy s (bao gồm dãy không liên tục) Đặc tính cung cấp sở cho thủ tục sinh dãy ứng viên Thực sinh dãy ứng viên qua hai bước: a Giai đoạn nối (Join Phase): Thực sinh dãy ứng viên phép nối Lk- với Lk-1 Một dãy s1 nối với s2 dãy thu cách loại bỏ phần tử s1 dãy thu cách loại bỏ phần tử cuối s2 giống Dãy ứng viên sinh phép nối s1 với s2 dãy s1 mở rộng với phần tử cuối s2 Phần tử thêm trở nên thành phần riêng biệt thành phần riêng biệt s2, phần thành phần cuối s1 khác Khi thực nối L1 với L1, ta cần thêm vào phần tử s2 phần itemset thành phần riêng biệt, hai cho dãy loại bỏ phần tử (Ta thấy s1 s2 dãy liên tục dãy ứng viên b Giai đoạn loại (Prune Phase): Ta loại bỏ dãy ứng viên có dãy liên tục (k-1)-subsequence mà có độ hỗ trợ nhỏ độ hỗ trợ tối thiểu Nếu không tính ràng buộc thời gian max-gap, ta loại bỏ dãy ứng viên mà có dãy không thỏa mãn độ hỗ trợ tối thiểu Ví dụ: Hình cho thấy L3, C4 sau thực giai đoạn nối loại Trong giai đoạn nối, dãy nối với để sinh dãy nối với để sinh dãy Các dãy lại không nối với dãy L3 Chẳng hạn, dãy không nối với dãy dãy có dạng Trong giai đoạn loại, dãy bị loại bỏ dãy liên tục không thuộc L3 Candidate 4-Sequences Frequent after join after pruning 3-Sequences Hình 1: Ví dụ sinh dãy ứng viên  Tính độ hỗ trợ ứng viên (Counting Candidates) Trong trình duyệt liệu, ta đọc liệu dãy thời điểm tăng độ hỗ trợ ứng viên có liệu dãy Như vậy, với tập dãy ứng viên C liệu dãy d, ta cần tìm tất dãy C có chứa d Ta sử dụng hai kỹ thuật sau để giải vấn đề này: Sử dụng cấu trúc liệu hash-tree để giảm số lượng ứng viên C kiểm tra cho liệu dãy Biến đổi đại diện liệu dãy d để tìm kiếm ứng viên dãy d cách hiệu Giảm số lượ ng ứng viên cần kiể m tra: a Thêm dãy ứng viên vào hash-tree: Khi thêm dãy s, ta bắt đầu từ nút gốc tìm nút Tại nút trung gian có độ sâu p, ta lựa chọn nhánh cách áp dụng hàm băm cho phần tử thứ p dãy Lưu ý ta áp dụng hàm băm đến phần tử thứ p, thành phần thứ p Tất nút khởi tạo bước đầu nút Khi số lượng dãy nút vượt ngưỡng, nút chuyển đến nút trung gian b Tìm dãy ứng viên chứa liệu dãy: Bắt đầu từ nút gốc, ta tìm tất các ứng viên chứa liệu dãy d Áp dụng thủ tục sau, dựa loại nút bao gồm:  Nút trung gian nút gốc: Áp dụng hàm băm cho phần tử d, áp dụng đệ quy thủ tục tới nút nằm bucket tương ứng Với dãy s chứa liệu dãy d, phần tử s phải nằm d Thực băm phần tử d, ta đảm bảo bỏ qua dãy bắt đầu với phần tử không nằm d  Nút trung gian nút gốc: Giả sử ta đến nút việc thực băm phần tử x có thời gian giao dịch (transaction-time) t Áp dụng hàm băm tới phần tử d có thời gian giao dịch khoảng [t – window-size, t + max(window-size, max-gap)] áp dụng đệ quy thủ tục tới nút bucket tương ứng Để thấy kết trả tập ứng viên, xét dãy ứng viên s với hai phần tử liên tục x y Cho x phần tử chứa giao dịch d với thời gian giao dịch t Vì d chứa s nên thời gian giao dịch tương ứng với y cần phải khoảng [t – window-size, t + window-size] y phần thành phần chứa x, khoảng thời gian (t, t + max-gap] y phần thành phần Do đạt đến nút thực băm phần tử x với thời gian giao dịch t, y phải chứa giao dịch có thời gian giao dịch khoảng [t – window-size, t + max (window-size, max-gap)] cho liệu dãy để hỗ trợ dãy Như cần áp dụng hàm băm tới phần tử d có thời gian giao dịch nằm khoảng thời gian trên, kiểm tra nút tương ứng  Nút lá: Đối với dãy s nút lá, ta kiểm tra xem d có chứa s, thêm s vào tập kết cần thiết (Chúng ta thảo luận cách xác để tìm d chứa dãy ứng viên cụ thể.) Từ ta kiểm tra dãy chứa nút này, không bỏ qua dãy Kiểm tra liệu dãy chứa dãy cho trướ c: Cho liệu dãy d, dãy ứng viên s = Trước tiên ta mô tả thuật toán để kiểm tra d chứa s, giả sử tồn thủ tục tìm kiếm xuất thành phần s d sau thời gian định, sau mô tả thủ tục Thuật toán kiểm tra liệu dãy d chứa dãy ứng viên s luân phiên hai giai đoạn Thuật toán bắt đầu với giai đoạn duyệt xuôi từ phần tử  Giai đoạn duyệt xuôi (forward phase): Thuật toán tìm thành phần s d miễn hiệu số thời gian kết thúc thành phần tìm thấy thời gian bắt đầu thành phần trước khoảng max-gap (Nhắc lại thành phần si, thời gian bắt đầu start-time(si) thời gian kết thúc end-time(si) tương ứng với thời gian giao dịch cuối tập giao dịch có chứa si) Nếu hiệu số nhiều max-gap, thuật toán chuyển sang giai đoạn duyệt ngược Nếu thành phần không tìm thấy tức liệu dãy không chứa s  Giai đoạn duyệt ngược (backward phase): Thuật toán thực quay lui xét (kéo lên) thành phần liền trước Nếu si thành phần thời gian kết thúc end-time(si) = t, thuật toán tìm tập giao dịch có chứa si mà có thời gian giao dịch sau (t – max-gap) Thời gian bắt đầu si–1 (sau si–1 xét đến) sau thời gian kết thúc end-time si Trong xét si–1 đòi hỏi phải xét si–2 ràng buộc max-gap si–1 si–2 không thỏa mãn Thuật toán thực quay lui ràng buộc max-gap thành phần vừa xét thành phần liền trước thỏa mãn, thành phần lấy lên Sau thuật toán chuyển sang giai đoạn duyệt xuôi để tìm thành phần s d thành phần liền sau thành phần cuối lấy lên giai đoạn duyệt ngược Nếu thành phần lấy lên (nghĩa tập dãy giao dịch có chứa thành phần) liệu dãy không chứa s Thủ tục thực lặp lặp lại, hoán đổi giai đoạn duyệt xuôi duyệt ngược tất thành phần tìm thấy Ví dụ: Cho liệu dãy Hình Xét trường hợp max-gap 30, min-gap window-size Với dãy ứng viên , (forward phase) trước tiên ta cần tìm (1, 2) thời gian giao dịch 10, tìm thành phần (3) thời gian giao dịch 45 Khi khoảng thời gian hai thành phần (35 ngày) lớn max-gap, (backward phase) lấy lên thành phần (1, 2) Tìm lần xuất (1, 2) sau thời gian 15, thời gian kết thúc end-time((3)) = 45 max-gap 30, chí (1, 2) xảy số thời điểm trước 15, không thỏa mãn ràng buộc max-gap Ta tìm (1, 2) thời gian 50 Vì thành phần nên kiểm tra xem liệu ràng buộc max-gap có nằm (1, 2) thành phần trước có thỏa mãn không Ta chuyển sang bước Vì (3) không xảy lớn ngày sau (1, 2), cần tìm xuất (3) sau thời gian 55 Ta tìm thấy (3) thời gian 65 Khi ràng buộc (3) (1, 2) thõa mãn, ta tiếp tục di chuyển tiếp tìm thấy (4) thời gian 90 Ràng buộc max-gap (4) (3) thỏa mãn Item 10 25 45 50 65 90 95 1, 4, 1, 2, Hình 2: Dữ liệu dãy Times → 10 → 50 → NULL → 10 → 50 → 90 → NULL → 45 → 65 → NULL → 25 → 90 → NULL Hình 3: Item xuất theo thời gian Để tìm kiếm cách hiệu phần tử đơn lẻ (item), ta sử dụng mảng để lưu trữ tất phần tử có liệu dãy thời gian giao dịch, liệu dãy Hình biến đổi Hình 3, nhằm hỗ trợ cho việc tìm kiếm lần xuất thành phần liệu dãy sau thời gian t Thuật toán duyệt lần tất phần tử thành phần tìm thời gian giao dịch phần tử lớn t Nếu hiệu số thời gian bắt đầu thời gian kết thúc nhỏ với window-size chấp nhận Nếu không, t lấy hiệu số thời gian kết thúc window-size, thủ tục tiếp tục lặp lại Ví dụ: Cho liệu dãy Hình 2, giả sử window-size = ngày, ta phải tìm lần xuất thành phần (2, 6) sau thời gian t = 20 Ta tìm phần tử thời gian 50, phần tử thời gian 25 Vì end-time((2,6)) – start-time((2,6)) > nên ta đặt t 43 (= end-time((2,6)) – window-size) thử lại Phần tử lại thời gian 90, phần tử thời gian 95 Vì khoảng thời gian 90 95 nhỏ window-size nên ta bỏ qua  Phân loại Cách tiếp cận thay liệu dãy d với dãy mở rộng d’, đó, giao dịch d’i d’ chứa phần tử giao dịch di d tương ứng, tất “ancestor” (tổ tiên) phần tử di Ví dụ, liệu dãy thay với dãy mở rộng Sau đó, ta thực GSP dãy mở rộng Có hai cách tối ưu hóa để cải thiện đáng kể hiệu suất thực Cách thứ tính toán trước “ancestor” phần tử loại bỏ “ancestor” dãy ứng viên tính trước thực duyệt liệu Ví dụ, (2), (3) (4) không nằm dãy ứng viên tính lần duyệt tại, ta thay dãy với dãy mở rộng (thay dãy mở rộng ) Cách tối ưu hóa thứ hai không tính mẫu dãy với thành phần có chứa phần tử x phần tử y ancestor x, độ hỗ trợ dãy giống độ hỗ trợ cho mẫu dãy y (Bất kỳ giao dịch chứa x chứa y.) Ví dụ thuật toán GSP Cho liệu: Seq ID 10 20 30 40 50 Sequence Minsupp=2 C Sup -> F1 = , , , , , , có minsupp nhỏ nên bị loại Các ứng viên C1: , , , , , , , •Duyệt CSDL để tính độ phổ biến ứng viên tìm F1 Tạo ứng viên C2: Tạo chuỗi có chiều dài 2, có phần tử từ ứng viên F1 Tạo chuỗi chiều dài có phần tử Vậy tổng cộng có 51 chuỗi ứng viên có chiều dài Xác định tập chuỗi phổ biến F2: Duyệt sở liệu xác định độ phổ biến chuỗi ứng viên ta 19 ứng viên có độ phổ biến >= minsupp (=2) Supp=2 Supp=2 Supp=1 Supp=1 Supp=1 Supp=1 Supp=3 Supp=4 Supp=4 Supp=2 Supp=3 Supp=2 Supp=2 Supp=2 Supp=0 Supp=3 Supp=1 Supp=2 Supp=1 Supp=1 Supp=2 Supp=2 Supp=1 Supp=1 Supp=0 Supp=1 Supp=0 Supp=1 Supp=1 Supp=1 Supp=1 Supp=2 Supp=1 Supp=0 Supp=1 Supp=0 Supp=1 Supp=1 Supp=1 Supp=0 Supp=0 Supp=2 Supp=1 Supp=2 Supp=0 Supp=2 Supp=1 Supp=0 Supp=0 Supp=0 Supp=2 Tập chuỗi phổ biến F2 gồm 19 chuỗi: , , , , , , , , , , , , , , , , , , Kết Luận GSP, thuật toán khai thác mẫu tổng quát Đánh giá thực nghiệm sử dụng tổng hợp liệu thực tế cho thấy GSP nhanh nhiều thuật toán AprioriAll.Thuật toán GSP tỷ lệ tuyến tính với số lượng liệu tuần tự, có tỷ lệ tăng nhiều với số lượng trung bình liệu Thuật toán GSP thực phần tìm kiếm liệu nguyên mẫu khu nghiên cứu IBM, vầ hợp sản phẩm tìm kiếm liệu IBM Nó chạy nhiều tảng, bao gồm AIX MVS Nó dùng kết nối song song cho hệ thống sở liệu Thuật toán GSP tồn hạn chế sử dụng với số lượng lớn tập chuỗi ứng viên, không hiệu khai thác chuỗi dài Tài liệu tham khảo Nguyễn Hoàng Tú Anh, Bài giảng khai thác liệu ứng dụng Ramakrishnan Srikant and Rakesh Agrawal, Mining Sequential Patterns: Generalizations and Performance Improvements Manan Parikh, Bharat Chaudhari and Chetna Chand, A comparative of Senquential Pattern Mining Algorithm, 2013 Đỗ Phúc, Giáo trình Khai thác liệu, NXB ĐHQG TP HCM, 2005

Ngày đăng: 11/07/2016, 22:44

Từ khóa liên quan

Mục lục

  • 1. Khai phá dữ liệu

    • 1.1 Tại sao lại khai phá dữ liệu?

    • 1.2 Định nghĩa khai phá dữ liệu

    • 1.3 Các bước chính trong khám phá tri thức

    • 2. Các hướng tiếp cận và các kỹ thuật áp dụng trong Khai phá dữ liệu

      • 2.1 Các hướng tiếp cận và các kỹ thuật chính trong khai phá dữ liệu

      • 2.1 Các dạng dữ liệu có thể khai phá

      • 3. Ứng dụng của Khai phá dữ liệu

      • 1. Giới thiệu chung về luật kết hợp

        • 1.1 Khái niệm luật kết hợp

        • 1.2 Các ứng dụng điển hình của luật kết hợp

        • 2. Luật dãy

          • 2.1 Khái niệm luật dãy và ví dụ

          • 2.2 Một số ứng dụng

          • Chương III: CÁC PHƯƠNG PHÁP KHAI PHÁ LUẬT DÃY

            • 1. Khái quát về khai phá luật dãy

            • 2. Thuật toán GSP (Generalized Sequential Patterns)

Tài liệu cùng người dùng

Tài liệu liên quan