Để lấy thông tin có tính “tri thức” trong khối dữ liệu khổng lồ này, người ta đã tìm ra những kỹ thuật có khả năng hợp nhất các dữ liệu từ các hệ thống giao dịch khác nhau, chuyển đổi th
Trang 1LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Thái Nguyên - 2015
Trang 2
LỜI CẢM ƠN
Đầu tiên cho tôi gửi lời cảm ơn chân thành và sâu sắc nhất đến thầy
PGS.TS Lê Bá Dũng - Viện CNTT - Viện KH và CN Việt nam đã tận tình hướng dẫn, chỉ bảo cho tôi trong suốt quá trình làm luận văn
Tôi cũng gửi lời cảm ơn đến các thầy cô trường Đại học Công nghệ
thông tin và Truyền thông – Đại học Thái Nguyên, các thầy cô Viện ÂNCông nghệ thông tin đã truyền đạt những kiến thức và giúp đỡ tôi trong suốt quá trình học của mình
Tôi cũng xin gửi lời cảm ơn tới các đồng nghiệp, gia đình và bạn bè
những người đã động viên tạo mọi điều kiện giúp đỡ tôi trong suốt hai năm học.
ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
TRẦN NAM NGỌC
NGHIÊN CỨU LUẬT KẾT HỢP VÀ ỨNG DỤNG TRONG BÀI TOÁN XÂY DỰNG HỆ HỖ TRỢ HỌC SINH TRUNG HỌC PHỔ THÔNG
Chuyên ngành: Khoa học máy tính
Mã số : 60 48 01 01
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
NGƯỜI HƯỚNG DẪN KHOA HỌC: TS ĐẶNG THỊ THU HIỀN
Thái Nguyên - 2015
Trang 3MỤC LỤC
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT 4
DANH MỤC CÁC BẢNG 5
MỞ ĐẦU 1
CHƯƠNG I TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU 2
1.1 Tổ chức và khai thác cơ sở dữ liệu truyền thống 2
1.2 Tổng quan về kỹ thuật phát hiện tri thức và khai phá dữ liệu 3
1.2.1 Qui trình khai phá dữ liệu và phát hiện tri thức 4
1.2.2 Các lĩnh vực liên quan đến khai phá dữ liệu và phát hiện tri thức 5
1.3 Các nhiệm vụ trong khai phá dữ liệu và phát hiện tri thức 6
CHƯƠNG II: MỘT SỐ KỸ THUẬT KHAI PHÁ LUẬT KẾT HỢP 15
2.1 Lý thuyết về luật kết hợp 15
2.2 Thuật toán kinh điển 16
2.2.1 Thuật toán Apriori 16
2.2.2 Ý tưởng 16
2.2.3 Thuật toán 16
2.3 Một số thuật toán luật kết hợp 19
2.3.1 Thuật toán Fp_Growth 19
2.3.2 Thuật toán Fp_Tree 20
2.3.3 Thuật toán Fast Algorithm for Discovering Frequent Itemsets (FIT) 21
2.3.4 Thuật toán NSFI ALGORITHM 22
2.3.5 Thuật toán NSFI ALGORITH 25
2.4 Thuật toán FSM 26
2.4.1 Cơ sở lý thuyết của thuật toán FSM 27
2.4.2 Nội dung cơ bản của thuật toán FSM 27
2.4.3 Một số khái niệm của thuật toán 28
2.4.4 Nội dung bài toán: 31
CHƯƠNG III: ÁP DỤNG KHAI PHÁ TRÊN CƠ SỞ DỮ LIỆU BẢNG ĐIỂM CỦA HỌC SINH THPT TÂN LẬP - ĐAN PHƯỢNG 34
3.1 Phát biểu bài toán: 34
3.2 Lựa chọn phương pháp 35
3.3 Cài đặt và thử nghiệm 35
3.3.1 Môi trường cài đặt và thử nghiệm 35
3.3.2 Cài đặt thuật toán tìm luật kết hợp 36
3.3.3 Một số giao diện chương trình 37
3.4 Đánh giá: 38
TÀI LIỆU THAM KHẢO 47
PHỤ LỤC 49
Trang 4Tác giả xin chân thành cảm ơn các thầy giáo, cô giáo Trường Đại học Công nghệ thông tin và Truyền thông Thái Nguyên và các thầy Viện Công nghệ thông tin – Viện khoa học Công nghệ Việt Nam, đã tận tâm giảng dạy các kiến thức trong hai năm học qua cùng với sự cố gắng hết mực của bản thân
Đặc biệt tôi xin bày tỏ sự biết ơn sâu sắc đến thầy giáo Tiến sĩ Đặng Thị Thu Hiền, PGS TS Ngô Quốc Tạo người đã tận tình giảng dạy và hướng dẫn tôi thực hiện luận văn này
Tác giả cũng xin chân thành cảm ơn các thầy cô giáo trường THPT Tân Lập, các bạn đồng nghiệp, các bạn trong lớp cao học CK12H đã tạo điều kiện, giúp đỡ tôi trong suốt thời gian qua
Rất mong nhận được sự góp ý của các thầy, cô, bạn bè, đồng nghiệp để luận văn có thể phát triển và hoàn thiện hơn
Trang 5LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi
Các số liệu, kết quả nêu trong luận văn và chƣa từng đƣợc ai công bố
trong bất kỳ công trình nào khác
Thái Nguyên, tháng 12 năm 2015
TÁC GIẢ
Trần Nam Ngọc
Trang 6DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
Processing
Phân tích trực tuyến
MOLAP Multidimensional OLAP Phân tích đa chiều trực tuyến
TID Transaction Indentification Định danh giao tác
SQL Structured Query Language Ngôn ngữ truy vấn có cấu trúc SQO Semantic Query Optimization Tối ưu truy vấn ngữ nghĩa
DBSCAN Density Based Spatial
Clustering of Application with Noise
Thuật toán phân lớp dựa vào vị trí địa phương
Trang 7DENCLUE DENsity Based CLUstEring Thuật toán phân lớp cơ bản (tổng
quát)
DHP Direct Hashing and Pruning Bảng băm trực tiếp và sự cắt tỉa PHP Perfect Hashing and Pruning Bảng băm lý tưởng và sự cắt tỉa
Itemset
DANH MỤC CÁC BẢNG
Bảng 1.1 So sánh các nhiệm vụ phát hiện tri thức 12
Bảng 2.1 Cơ sở dữ liệu 29
Bảng 2.2 Giá trị lmv và cổ phần của các mục dữ liệu trong CSDL bảng 2.1 30
Bảng 2.3 Các tập mục cổ phần cao của CSDL bảng 2.1 31
Bảng 2.4 CSDL minh họa ngữ nghĩa của tập mục cổ phần cao 33
Trang 8DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ
Hình 1.1 Quy trình phát hiện tri thức 4
Hình 2.1 CSDL giao dịch 17
Hình 2.2 Minh họa các bước khai phá 18
Hình 2.3 Kết quả tìm luật kết hợp 18
Hình 3.1 Ví dụ về dữ liệu đầu vào cho thực nghiệm 37
Hình 3.2 Giao diện chương trình thực hiện 37
Hình 3.3 Kết quả 38
Trang 9MỞ ĐẦU
Ngày nay, thông tin được coi là tài sản quan trọng của các tổ chức, doanh nghiệp và các cá nhân Cá nhân hoặc tổ chức nào thu thập và hiểu được thông tin, và hành động kịp thời dựa trên các thông tin đó sẽ đạt được kết quả tốt Chính vì lý do đó, việc tạo ra thông tin, tổ chức lưu trữ và khai thác thông tin ngày càng trở nên quan trọng và gia tăng không ngừng
Sự tăng trưởng vượt bậc của các cơ sở dữ liệu (CSDL) trong các hoạt động như: sản xuất kinh doanh, thương mại, quản lý đã làm nảy sinh và thúc đẩy sự phát triển của kỹ thuật thu thập, lưu trữ, phân tích và khai phá dữ liệu… không chỉ bằng các phương pháp thông thường như: thống kê mà đòi hỏi cách
xử lý thông minh hơn, hiệu quả hơn Từ đó các nhà quản lý có được thông tin hữu ích để tác động lại quá trình sản xuất, kinh doanh của mình… đó là tri thức Các kỹ thuật cho phép ta khai thác được tri thức hữu dụng từ CSDL (lớn)
được gọi là các kỹ thuật khai phá dữ liệu (DM – Data Mining) Khai phá luật
kết hợp là một nội dung quan trọng trong khai phá dữ liệu
Luận văn tìm hiểu về luật kết hợp và ứng dụng thử nghiệm khai phá cơ sở
dữ liệu bảng điểm học tập của học sinh trường THPT Tân Lập – Đan Phương nhằm hỗ trợ cho công tác quản lý, định hướng học tập cho học sinh phổ thông Nhằm hỗ trợ học sinh chọn trường đại học, cao đẳng phù hợp với khả năng của bản thân hoặc đi học trường nghề chuyên nghiệp Giúp cho học sinh tập chung vào đúng khối mà mình có khả năng cũng như có thế mạnh Đồng thời cũng giúp nhà trường và giáo viên thấy được điểm mạnh, điểm chưa mạnh về chuyên môn của mình Đưa ra những hướng đi đúng nhằm xây dựng nhà trường thành nhà trường có chuyên môn tốt, môi trường thân thiện
Trang 10CHƯƠNG I TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU
1.1 Tổ chức và khai thác cơ sở dữ liệu truyền thống
Việc dùng các phương tiện tin học để tổ chức và khai thác cơ sở dữ liệu (CSDL) đã được phát triển từ những năm 60 của thế kỉ trước Từ đó cho đến nay, rất nhiều CSDL đã được tổ chức, phát triển và khai thác ở mọi quy mô và các lĩnh vực hoạt động của con người và xã hội Cho đến nay, số lượng CSDL
đã trở nên khổng lồ bao gồm các CSDL cực lớn cỡ gigabytes và thậm chí terabytes lưu trữ các dữ liệu kinh doanh ví dụ như dữ liệu thông tin khác hàng,
dữ liệu bán hàng, dữ liệu các tài khoản, Nhiều hệ quản trị CSDL mạnh với các công cụ phong phú và thuận tiện đã giúp con người khai thác có hiệu quả nguồn tài nguyên dữ liệu Mô hình CSDL quan hệ và ngôn ngữ vấn đáp chuẩn (SQL) đã có vai trò hết sức quan trọng trong việc tổ chức và khai thác CSDL Tuy nhiên bên cạnh chức năng khai thác dữ liệu có tính chất tác nghiệp,
sự thành công trong công việc không còn là năng suất của các hệ thống thông tin nữa mà là tính linh hoạt và sẵn sàng đáp ứng những yêu cầu trong thực tế, CSDL cần đem lại những “tri thức” hơn là chính những dữ liệu trong đó Lúc này, các mô hình CSDL truyền thống và ngôn ngữ SQL đã cho thấy không có khả năng thực hiện công việc này Để lấy thông tin có tính “tri thức” trong khối dữ liệu khổng lồ này, người ta đã tìm ra những kỹ thuật có khả năng hợp nhất các dữ liệu từ các hệ thống giao dịch khác nhau, chuyển đổi thành một tập hợp các CSDL ổn định, có chất lượng được sử dụng chỉ cho riêng một vài mục đích nào đó Các kỹ thuật đó gọi chung là kỹ thuật tạo kho dữ liệu (data warehousing) và môi trường các dữ liệu có được gọi là các kho dữ liệu (data warehouse)
Đồng thời, Công nghệ khai phá dữ liệu (data mining) ra đời đáp ứng những đòi hỏi trong khoa học cũng như trong hoạt động thực tiễn Đây chính
là một ứng dụng chính để khai phá kho dữ liệu nhằm phát hiện tri thức (Knowledge Discovery) phục vụ công tác quản lý, kinh doanh,…
Trang 111.2 Tổng quan về kỹ thuật phát hiện tri thức và khai phá dữ liệu
Chúng ta có thể xem tri thức như là các thông tin tích hợp, bao gồm các
sự kiện và các mối quan hệ giữa chúng Các mối quan hệ này có thể được hiểu
ra, có thể được phát hiện, hoặc có thể được học Nói cách khác, tri thức có thể được coi là dữ liệu có độ trừu tượng và tổ chức cao
Phát hiện tri thức trong các cơ sở dữ liệu là một qui trình nhận biết các mẫu hoặc các mô hình trong dữ liệu với các tính năng: hợp thức, mới, khả ích,
và có thể hiểu được Còn khai phá dữ liệu là một bước trong qui trình phát hiện tri thức gồm có các thuật toán khai thác dữ liệu chuyên dùng dưới một số qui định về hiệu quả tính toán chấp nhận được để tìm ra các mẫu hoặc các mô hình trong dữ liệu Nói một cách khác, mục đích của phát hiện tri thức và khai phá dữ liệu chính là tìm ra các mẫu và/hoặc các mô hình đang tồn tại trong các
cơ sở dữ liệu nhưng vẫn còn bị che khuất bởi hàng núi dữ liệu
Định nghĩa: Phát hiện tri thức và khai phá dữ liệu (KDD: Knowledge Discovery and Data Mining) là quá trình không tầm thường nhận ra những mẫu có giá trị, mới, hữu ích tiềm năng và hiểu được trong dữ liệu [7]
Còn các nhà thống kê thì xem Khai phá dữ liệu như là một qui trình phân tích được thiết kế để thăm dò một lượng cực lớn các dữ liệu nhằm phát hiện ra các mẫu thích hợp và/hoặc các mối quan hệ mang tính hệ thống giữa các biến
và sau đó sẽ hợp thức hoá các kết quả tìm được bằng cách áp dụng các mẫu đã phát hiện được cho các tập con mới của dữ liệu Qui trình này bao gồm ba giai đoạn cơ bản: thăm dò, xây dựng mô hình hoặc định nghĩa mẫu, hợp thức/kiểm chứng
Trang 121.2.1 Qui trình khai phá dữ liệu và phát hiện tri thức
Qui trình phát hiện tri thức được mô tả tóm tắt trên Hình 1:
Hình 1.1 Quy trình phát hiện tri thức
Bước thứ nhất: Hình thành, xác định và định nghĩa bài toán Là tìm hiểu lĩnh vực ứng dụng từ đó hình thành bài toán, xác định các nhiệm vụ cần phải hoàn thành Bước này sẽ quyết định cho việc rút ra được các tri thức hữu ích
và cho phép chọn các phương pháp khai phá dữ liệu thích hợp với mục đích ứng dụng và bản chất của dữ liệu
Bước thứ hai: Thu thập và tiền xử lý dữ liệu Là thu thập và xử lý thô, còn được gọi là tiền xử lý dữ liệu nhằm loại bỏ nhiễu, xử lý việc thiếu dữ liệu, biến đổi dữ liệu và rút gọn dữ liệu nếu cần thiết, bước này thường chiếm nhiều thời gian nhất trong toàn bộ qui trình phát hiện tri thức
Bước thứ ba: Khai phá dữ liệu, rút ra các tri thức Là trích ra các mẫu và/hoặc các mô hình ẩn dưới các dữ liệu Giai đoạn này rất quan trọng, bao gồm các công đoạn như: chức năng, nhiệm vụ và mục đích của khai phá dữ liệu, dùng phương pháp khai phá nào?
Bước thứ tư: Sử dụng các tri thức phát hiện được Là hiểu tri thức đã tìm được, đặc biệt là làm sáng tỏ các mô tả và dự đoán Các bước trên có thể lặp đi lặp lại một số lần, kết quả thu được có thể được lấy trung bình trên tất cả các lần thực hiện
Trang 13Tóm lại: KDD là một quá trình chiết xuất ra tri thức từ kho dữ liệu mà trong đó khai phá dữ liệu là công đoạn quan trọng nhất
1.2.2 Các lĩnh vực liên quan đến khai phá dữ liệu và phát hiện tri thức
Khai phá dữ liệu và phát hiện tri thức liên quan đến nhiều ngành, nhiều lĩnh vực: thống kê, trí tuệ nhân tạo, cơ sở dữ liệu, thuật toán học, tính toán song song và tốc độ cao, thu thập tri thức cho các hệ chuyên gia, quan sát dữ liệu Đặc biệt Phát hiện tri thức và khai phá dữ liệu rất gần gũi với lĩnh vực thống kê,
sử dụng các phương pháp thống kê để mô hình dữ liệu và phát hiện các mẫu, luật Kho dữ liệu (Data Warehousing) và các công cụ phân tích trực tuyến (OLAP) cũng liên quan rất chặt chẽ với Phát hiện tri thức và khai phá dữ liệu Khai phá dữ liệu có nhiều ứng dụng trong thực tế Một số ứng dụng điển hình như:
- Bảo hiểm, tài chính và thị trường chứng khoán: Phân tích tình hình tài chính và dự báo giá của các loại cổ phiếu trong thị trường chứng khoán Danh mục vốn và giá, lãi suất, dữ liệu thẻ tín dụng, phát hiện gian lận,
- Điều trị y học và chăm sóc y tế: Một số thông tin về chuẩn đoán bệnh lưu trong các hệ thống quản lý bệnh viện Phân tích mối liên hệ giữa các triệu chứng bệnh, chuẩn đoán và phương pháp điều trị (chế độ dinh dưỡng, thuốc, )
- Text mining và Web mining: Phân lớp văn bản và các trang Web, tóm tắt văn bản,
- Lĩnh vực khoa học: Quan sát thiên văn, dữ liệu gene, dữ liệu sinh vật học, tìm kiếm, so sánh các hệ gene và thông tin di truyền, mối liên hệ gene và một số bệnh di truyền,
- Mạng viễn thông: Phân tích các cuộc gọi điện thoại và hệ thống giám sát lỗi, sự cố, chất lượng dịch vụ,
Trang 141.3 Các nhiệm vụ trong khai phá dữ liệu và phát hiện tri thức
Do sự phát triển mạnh mẽ của các loại hệ thống phát hiện tri thức trong CSDL (KDD) theo yêu cầu nhằm đáp ứng những đòi hỏi trong nhiều lĩnh vực khác nhau, việc phát hiện tri thức cũng trở lên đa dạng hơn Do đó, nhiệm vụ của phát hiện tri thức trong CSDL cũng trở lên phong phú và có thể phát hiện rất nhiều kiểu tri thức khác nhau Một trong các bước đầu tiên trong quá trình phát hiện tri thức trong CSDL là quyết định xem loại kiến thức nào mà thuật toán phát hiện tri thức trong CSDL cần phải kết xuất từ dữ liệu Do đó, vệc phân loại và so sánh các kiểu nhiệm vụ phát hiện tri thức trong CSDL là vấn
đề đáng quan tâm nhằm tạo ra một hệ thống phát hiện tri thức trong CSDL hữu ích Ta sẽ xem xét một số kiểu nhiệm vụ phát hiện tri thức sau:
Phát hiện các luật tối ưu truy vấn ngữ nghĩa (Sematics Query Optimization - SQO Rules)
Các luật tối ưu truy vấn CSDL thông thường thực hiện một phép biến đổi
cú pháp, hay sắp xếp lại thứ tự của các phép toán quan hệ trong một truy vấn
và sản sinh ra một truy vấn hiệu quả hơn Các phép biến đổi này thường dựa trên lý thuyết đại số quan hệ Các luật được biến đổi trả lại cùng một câu trả lời như câu truy vấn ban đầu ở bất kỳ trạng thái nào của CSDL Ngược lại, luật tối
ưu truy vấn ngữ nghĩa biến đổi các câu truy vấn ban đầu thành một truy vấn mới bằng cách thêm vào hoặc xoá đi các mối liên kết bằng việc sử dụng các tri thức CSDL ngữ nghĩa bao gồm các ràng buộc về tính toàn vẹn và sự phụ thuộc hàm để sản sinh ra các câu truy vấn hiệu quả hơn Như vậy câu truy vấn đã biến đổi cũng trả lại cùng câu trả lời giống như câu truy vấn ban đầu trong bất
kỳ trạng thái nào của CSDL thoả mãn kiến thức về ngữ nghĩa được sử dụng trong phép biến đổi Các hệ thống phát hiện luật SQO có thể được chia thành
ba lớp:
Trang 15- Các hệ thống hướng truy vấn (hệ thống báo cáo) trong đó thuật toán phát hiện tri thức trong CSDL nhằm phục vụ các truy vấn CSDL thực của người dùng;
- Các hệ thống hướng dữ liệu (hệ thống tác nghiệp) trong đó thuật toán phát hiện tri thức trong CSDL chủ yếu phục vụ sự phân bổ dữ liệu trong trạng thái hiện thời của CSDL;
- Các hệ thống lai kết hợp các đặc tính của cả hệ thống hướng truy vấn và hướng dữ liệu
Một đặc tính quan trọng của các luật SQO, khác với các kiểu phát hiện tri thức khác, là việc chọn các thuộc tính để tổng hợp một SQO cần phải tính đến chi phí liên quan như dùng phương pháp truy cập nào và sơ đồ chỉ số trong hệ quản trị CSDL Việc này là cần thiết để tiết kiệm thời gian xử lý truy vấn Một thuật toán phát hiện tri thức trong CSDL loại này đòi hỏi phải xem xét tối ưu chi phí
Phát hiện sự phụ thuộc CSDL (Database Dependencies)
Trong mô hình dữ liệu quan hệ, chúng ta đã nghiên cứu quan hệ trong CSDL quan hệ không tính đến quan hệ giữa các thuộc tính Các quan hệ này thường được thể hiện thông qua sự phụ thuộc dữ liệu hoặc ràng buộc toàn vẹn
Ở đây sẽ sử dụng thuật ngữ phụ thuộc CSDL để chỉ sự phụ thuộc dữ liệu kiểu này Sự phụ thuộc CSDL được sử dụng trong thiết kế và duy trì một CSDL Phương pháp phát hiện tự động các sự phụ thuộc CSDL này chính là một kiểu nhiệm vụ của Khai phá dữ liệu
Phát hiện sự sai lệch (Deviation)
Nhiệm vụ này nhằm phát hiện sự sai lệch đáng kể giữa nội dung của tập con dữ liệu thực và nội dung mong đợi Hai mô hình sai lệch hay dùng là mô hình sai lệch theo thời gian và sai lệch nhóm Sai lệch theo thời gian là sự thay
Trang 16không chờ đợi giữa dữ liệu trong hai tập con dữ liệu, ở đây tính đến cả trường hợp tập con này thuộc trong tập con kia, nghĩa là xác định dữ liệu trong một nhóm con của đối tượng có khác đáng kể so với toàn bộ đối tượng không Theo cách này, các sai sót dữ liệu hay sự sai lệch so với giá trị thông thường được phát hiện
Phát hiện luật kết hợp (Association Rules)
Ta xét một ví dụ: Xét một tập các mặt hàng trong một giỏ mua hàng Vấn
đề đặt ra là tìm những mối liên quan giữa các mặt hàng trong giỏ
Một cách chi tiết hơn, xét một tập các thuộc tính nhị phân với một tập các
bộ, mỗi bộ được gọi là một giỏ Các thuộc tính nhị phân được gọi là các mục hay các mặt hàng trong giỏ mà mỗi mục chỉ nhận một trong hai giá trị đúng hoặc sai tuỳ thuộc vào khách hàng có mua mặt hàng đó trong giao dịch hay không Trên thực tế, loại dữ liệu này rất phổ biến và được gọi là dữ liệu giỏ Chúng thường được thu thập thông qua công nghệ mã số, mã vạch trong các hoạt động kinh doanh siêu thị
Một giao dịch có thể chứa một số khoản mục, tập hợp tất cả các khoản mục
sẽ thuộc vào một không gian T nào đó mà mỗi giao dịch khi đó là một tập con của T Ta cần phát hiện những mối tương quan quan trọng hoặc mối quan hệ, mối kết hợp trong số các khoản mục chứa trong các giao dịch của một dữ liệu nào đó sao cho sự xuất hiện của một số khoả mục nào đó trong giao dịch sẽ kéo theo sự xuất hiện của một số khoản mục khác trong cùng một giao dịch đó
Ta sẽ tìm hiểu luật kết hợp cụ thể hơn ở phần sau
Mô hình hoá sự phụ thuộc (Dependence Modeling)
Nhiệm vụ này liên quan đến việc phát hiện sự phụ thuộc trong số các thuộc tính Những phụ thuộc này thường được biểu thị dưới dạng luật “nếu thì”: “nếu (tiên đề là đúng) thì (kết luận là đúng)” Về nguyên tắc, cả tiên đề và kết luận của luật đều có thể là sự kết hợp logic của các giá trị thuộc tính Trên thực tế,
Trang 17tiên đề thường là nhóm các giá trị thuộc tính và kết luận chỉ là một giá trị tuộc tính Lưu ý là những luật này không phải hoàn toàn giống với sự phụ thuộc CSDL được nêu ở phần 2.2 Hơn nữa, hệ thống có thể phát hiện các luật với phần kết luận nhiều thuộc tính Điều này khác với luật phân lớp trong đó tất cả các luật cần phải có cùng một thuộc tính do người dùng chỉ ra trong kết luận
Mô hình hoá nhân quả (Causation Modeling)
Nhiệm vụ này liên quan đến việc phát hiện mối quan hệ nhân quả trong thuộc tính Các luật nhân quả cũng là các luật “nếu - thì” giống các luật phụ thuộc, nhưng mạnh hơn Luật phụ thuộc đơn giản chỉ ra một mối tương hỗ giữa tiên đề và kết luận của luật mà không có ý nghĩa nhân quả trong quan hệ này Do đó, cả tiên đề và kết luận có thể quan hệ dưới sự ảnh hưởng của một biến thứ ba, tức là một thuộc tính hoặc có ở trong tiên đề hoặc có ở trong kết luận Luật nhân quả không chỉ chỉ ra mối tương quan giữa tiên đề và kết luận
mà còn cho biết tiên đề thực sự tạo ra kết luận và mối quan hệ giữa hai thành phần này là trực tiếp Tập các mối quan hệ nhân quả có thể được biểu diễn bằng đồ thị nhân quả
Các quan hệ nhân quả cần phụ thuộc vào thời gian theo nghĩa là nguyên nhân trước kết quả (kết luận) Nguyên nhân và kết quả đều có ít nhất một sự kiện thời gian đi kèm và thời gian của kết quả phải đi sau thời gian của nguyên nhân Mặc dù yếu tố thời gian làm rõ ý nghĩa nhân quả nhưng hệ thống thường khó phân biệt các liên kết giả tạo
Phân cụm, nhóm (Clustering)
Một nhiệm vụ của các hệ thống phát hiện tri thức là phân tích các đối tượng dữ liệu dạng như các giỏ hàng mà không quan tâm tới lớp của chúng Các hệ thống này phải tự phát hiện ra các lớp và sinh ra một sơ đồ phân nhóm của tập dữ liệu đó
Trang 18Tuy nhiên, chất lượng của việc phân nhóm này là một vấn dề khó có thể xác định được Bài toán phân nhóm xác định các nhóm dựa vào quan hệ nhiều
- nhiều, tức là bất kỳ thuộc tính nào cũng có thể được sử dụng để xác định các nhóm và để dự báo các giá trị thuộc tính khác Điều này trái với cách xác định nhiều - một liên quan đến nhiệm vụ phân lớp các đối tượng, trong đó, một thuộc tính được xem như lớp và tất cả các thuộc tính khác được sử dụng để phán đoán giá trị cho thuộc tính lớp
Phân lớp (Classification)
Trong nhiệm vụ phân lớp, mỗi bộ dữ liệu theo dạng giỏ mua hàng thuộc
về một lớp nào đó đã được xác định trước Các bộ dữ liệu bao gồm tập các thuộc tính dự báo và một thuộc tính phân lớp cụ thể Lớp của bộ được chỉ ra bởi giá trị của thuộc tính lớp mà người dùng xác định trước
Ta xét ví dụ sau: Giả sử, mỗi bộ dữ liệu biểu diễn các thông tin về nhân viên, trong đó các thuộc tính dự báo là tuổi, giới tính, trình độ học vấn, của nhân viên đó và thuộc tính phân lớp là trình độ lãnh đạo của nhân viên Mục tiêu của thuật toán phân lớp là tìm ra mối quan hệ nào đó giữa các thuộc tính
dự báo và thuộc tính phân lớp, từ đó sử dụng mối quan hệ này để dự báo lớp cho các bộ dữ liệu mới khác cùng khuôn dạng
Trong trường hợp những kiến thức được phát hiện biểu diễn dưới dạng các luật thì khuôn dạng của luật có thể là: “nếu các thuộc tính dự báo của một
bộ dữ liệu thoả mãn các điều kiện của tiên đề, thì bộ dữ liệu đó có lớp chỉ ra trong kết luận”
Hồi quy (Regression)
Về khái niệm, nhiệm vụ hồi quy tương tự như phân lớp Điểm khác nhau chính là ở chỗ thuộc tính để dự báo là liên tục chứ không phải rời rạc Việc dự báo các giá trị số thường được làm bởi các phương pháp thống kê cổ điển, chẳng hạn như hồi quy tuyến tính Tuy nhiên, các phương pháp mô hình hoá cũng được
Trang 19sử dụng, chẳng hạn như cây quyết định, trong đó nút lá là mô hình tuyến tính phát sinh tập các lớp giả (pseudo - class) có giá trị thuộc tính đích tương tự nhau, sau
đó sử dụng phương pháp quy nạp để thay thế các lớp trong luật quy nạp bằng tổ hợp các giá trị của thuộc tính lớp cho các bộ dữ liệu theo luật
Tổng hợp (Sumarization)
Nhiệm vụ tổng hợp chính là sản sinh ra các mô tả đặc trưng cho một lớp
Mô tả này là một kiểu tổng hợp, tóm tắt mô tả các đặc tính chung của tất cả (hoặc hầu hết) các bộ dữ liệu dạng giỏ mua hàng thuộc một lớp
Các mô tả đặc trưng thể hiện dưới dạng luật có dạng sau: ”nếu một bộ dữ liệu thuộc về một lớp đã chỉ ra trong tiên đề, thì bộ dữ liệu đó có tất cả các thuộc tính đã nêu trong kết luận” Cần lưu ý là các luật này có những đặc trưng khác biệt so với luật phân lớp Luật phát hiện đặc trưng cho một lớp chỉ sản sinh khi các bộ dữ liệu đã thuộc về lớp đó
So sánh các nhiệm vụ phát hiện tri thức
Điểm giống và khác giữa các nhiệm vụ phát hiện tri thức được tóm tắt trong bảng sau:
Nhiệm vụ Kiểu phát hiện Mục đích Kiểu dự báo
Thiết kế và duy trì
Phát hiện sai lệch Mục đích chung Xác định trội Không học
Phát hiện liên kết Mục đích chung Dự báo, xác định
Trang 20Nhân quả Mục đích chung Dự báo, mô tả Không học Phân nhóm Mục đích chung Dự báo, mô tả Không học
Bảng 1.1 So sánh các nhiệm vụ phát hiện tri thức
Trong bảng này, cột đầu tiên chỉ ra nhiệm vụ phát hiện tri thức Cột thứ hai chỉ ra kiểu tri thức được phát hiện Các kiểu có thể là hướng hệ quản trị CSDL (như các luật SQO) hoặc phụ thuộc CSDL hoặc là mục đích chung (tức
là các nhiệm vụ phát hiện bổ trợ khác) Tri thức hướng hệ quản trị CSDL thường dùng trong thiết kế và giao dịch của một CSDL Tuy nhiên, tri thức hướng hệ quản trị CSDL cũng có thể dùng cho việc kiểm tra các luật tối ưu truy vấn ngữ nghĩa để cải thiện việc tìm hiểu ứng dụng Trong khi tri thức theo kiểu mục đích chung có thể được sử dụng theo các mục đích khác nhau tuỳ thuộc vào nhu cầu của người dùng theo nghĩa mờ và nó có thể sử dụng hiệu quả trong hệ quản trị CSDL Tuy vậy, điểm khác biệt quan trọng là tri thức hướng hệ quản trị CSDL yêu cầu độ chính xác cao hơn so với tri thức theo mục đích chung
Cột thứ ba trong bảng chỉ ra mục đích của việc phát hiện tri thức Cột này xuất phát từ cột hai Mục đích chính của các tri thức hướng hệ quản trị CSDL
là khá cụ thể: Tối ưu truy vấn (trong trường hợp SQO) và thiết kế, duy trì CSDL (trong trường hợp sự phụ thuộc CSDL) Các tri thức theo kiểu mục đích chung thường được dùng co một sự kết hợp các mục đích dự báo, mô tả và xác định trội Dự báo liên quan đến xác định giá trị của các tri thức trên cơ sở xác định giá trị của các thuộc tính khác Kỹ thuật đặc trưng là phân lớp và hồi quy Tuy nhiên, dự báo cũng dựa trên quan hệ nhân quả, mô hình hoá sự phụ thuộc
Trang 21cũng như phát hiện luật kết hợp Mô tả thường gắn với tổng hợp, thông tin gộp Do vậy, mô tả là mục tiêu chính của phân nhóm và tổng hợp Đối với hai nhiệm vụ này, việc mô tả các thuộc tính chung của các tập dữ liệu được quan tâm Hơn nữa việc mô tả cũng khá quan trọng trong các nhiệm vụ xác định phụ thuộc và quan hệ nhân quả Cần chú ý là mục tiêu chính của phát hiện tri thức phụ thuộc vào dạng mà tri thức biểu diễn, chẳng hạn, mạng nhân quả thích hợp cho mục tiêu mô tả hơn là luật về sự phụ thuộc
Cột thứ tư chỉ ra loại dự báo liên quan đến từng nhiệm vụ phát hiện tri thức Mặc dù các nhiệm vụ SQO và sự phụ thuộc CSDL phát hiện tri thức hướng CSDL và theo mục tiêu cụ thể, nhưng cũng có các nhiệm vụ dự báo liên quan đến kiểu này Nói chung, các nhiệm vụ SQO, sự phụ thuộc CSDL, liên kết, nhân quả, sự phụ thuộc và phân cụm có kiểu dự báo nhiều - nhiều trong đó giá trị của một vài thuộc tính có thể dùng để dự báo giá trị của các thuộc tính khác Một cách nhìn khác về quan hệ nhiều - nhiều là xem xét các nhiệm vụ như một dạng phát hiện không có học, bởi vì người dùng không chỉ ra thuộc tính mục tiêu và hệ thống có sự tự chủ hoàn toàn để quyết định thuộc tính nào
sẽ được đưa ra trong tri thức Nhiệm vụ phát hiện sự sai khác không hoàn toàn đúng với mục tiêu dự báo nhưng có thể nói nó liên quan đến việc phát hiện không có học
Nhiệm vụ phân lớp và hồi quy liên quan đến dự báo nhiều - một trong đó giá trị của nhiều thuộc tính có thể được sử dụng để dự báo giá trị của một thuộc tính do người dùng xác định trước Đối với nhiệm vụ tổng hợp, từ lớp của một bộ dữ liệu, chúng ta có thể dự báo giá trị (hoặc khoảng giá trị, giá trị trung bình, ) của các thuộc tính khác Tri thức được phát hiện phải bao gồm quan hệ đó Do vậy, tính tự chủ của hệ thống chỉ ở chỗ xác định các thuộc liên quan đến giá trị thuộc tính đích và có hạn chế hơn so với các nhiệm vụ không học Tuy nhiên, các nhiệm vụ không học có thể chuyển thành có học
Trang 22Các đặc tính khác của phát hiện tri thức như tính thông minh và tính hữu dụng không bao gồm trong bảng trên bởi vì chúng mang tính chủ quanvà thay đổi lớn trong mỗi nhiệm vụ của từng kĩnh vực cụ thể
Phát hiện tri thức hướng CSDL (SQO và sự phụ thuộc CSDL) có độ chính xác cao Đây là điểm khác biệt quan trọng so với các đòi hỏi của các nhiệm vụ phát hiện tri thức khác Nhiệm vụ phát hiện sự sai lệch liên quan đến phát hiện tri thức với mức ý nghĩa do người dùng xác định Nhiệm vụ phát hiện liên kết cũng như thế với ngưỡng tin cậy (ngưỡng confidence) và tần suất tương đối (ngưỡng hỗ trợ - support) Nhiệm vụ tổng hợp liên quan đến phát hiện tri thức có tính phổ biến cao tức là luật được phát hiện phải bao hàm một
số dữ liệu (mà các nhiệm vụ khác như phân lớp không đòi hỏi như vậy)
Các nhiệm vụ như phát hiện sự phụ thuộc, nhân quả, phân lớp và hồi quy chủ yếu liên quan đến phát hiện tri thức có độ chính xác cao
Trang 23CHƯƠNG II: MỘT SỐ KỸ THUẬT KHAI PHÁ LUẬT KẾT
HỢP 2.1 Lý thuyết về luật kết hợp
Khái niệm
Trong lĩnh vực Data Mining, mục đích của luật kết hợp (Association Rule - AR) là tìm ra các mối quan hệ giữa các đối tượng trong một cơ sở dữ liệu khổng lồ Nội dung cơ bản của luật kết hợp được tóm tắt như sau:
-Cho cơ sở dữ liệu gồm các giao dịch T là tập các giao dịch t1, t2, …,
tn
T = {t1, t2, …, tn}: T gọi là cơ sở dữ liệu giao dịch (Transaction
Database)
-Mỗi giao dịch ti bao gồm tập các đối tượng I (gọi là itemset)
I = {i1, i2, …, im}: Một itemset gồm k items gọi là k-itemset
-Mục đích của luật kết hợp là tìm ra sự kết hợp hay tương quan giữa các items Những luật kết hợp này có dạng X =>Y
Trong kinh doanh, luật kết hợp X =>Y có thể hiểu rằng những người mua các mặt hàng trong tập X cũng thường mua các mặt hàng trong tập Y (X
và Y gọi là itemset)
Ví dụ, nếu X = {Apple, Banana} và Y = {Cherry, Durian} và ta có luật kết hợp X =>Y thì chúng ta có thể nói rằng những người mua Apple và Banana thì cũng thường mua Cherry và Durian
Theo quan điểm thống kê, X được xem là biến độc
lập (Independent variable) còn Y được xem là biến phụ thuộc (Dependent variable)
Trang 242.2 Thuật toán kinh điển
2.2.1 Thuật toán Apriori
- Thuật toán Apriori được dùng để phát hiện các luật kết hợp dạng khẳng định (Positive Rule X=>Y) nhị phân (Binary Association Rules) chứ không thể phát hiện các luật kết hợp ở dạng phủ định (Negative Association Rule) chẳn hạn như các kết hợp dạng “Khách hàng mua mặt hàng A thường KHÔNG mua mặt hàng B” hoặc “Nếu ủng hộ quan điểm A thường KHÔNG
ủng hộ quan điểm B”
- Để thu được các luật kết hợp, ta thường áp dụng 2 tiêu chí: minimum
support (min_sup) và minimum confidence (min_conf)
- Minimum support và Minimum confidence gọi là các giá trị ngưỡng
và phải xác định trước khi sinh các luật kết hợp
- Từ frequent itemsets sinh ra các luật kết hợp mạnh (các luật kết hợp
thỏa mãn 2 tham số min_sup và min_conf)
Trang 25k-B4.Lặp lại từ bước 2 cho đến khi Candidate set (C) trống (không tìm thấy frequent itemsets).
B5.Với mỗi frequent itemset I, sinh tất cả các tập con s không rỗng của I
B6 Với mỗi tập con s không rỗng của I, sinh ra các luật s => (I-s)nếu
độ tin cậy (Confidence) của nó > =min_conf
Ví dụ:
Chẳn hạn với I= {A1,A2,A5}, các tập con của I: {A1}, {A2}, {A5},
{A1,A2},{A1,A5},{A2,A5} sẽ có các luật sau
{A1} => {A2,A5},{A2} =>{A1,A5},{A5} =>{A1,A2}
{A1,A2} =>{A5},{A1,A5} =>{A2},{A2,A5} => {A1}
Ví dụ: Giả sử ta có có sở dữ liệu giao dịch (Transaction Database
-TDB) như sau :
Hình 2.1 CSDL giao dịch
Thuật toán Apriori khai phá luật kết hợp được mô tả qua các bước sau( với min-sup=2 (50%) và min-con =80%):
Trang 26Hình 2.2 Minh họa các bước khai phá
Với frequent itemsets I ={B,C,E}, ta có tập con : {B}, {C}, {E}, {B,C},{B,E},{C,E} Các luật được sinh ra với Confidence tương ứng:
Tuy nhiên thuật toán này có nhược điểm sau:
- Tập C được tạo ra bằng cách kết những tập thường xuyên với những item trong giao tác, do đó phát sinh quá nhiều các tập không thường xuyên không cần thiết
Trang 27 104 frequent 1-itemsets nhiều hơn 107 (≈104(104-1)/2) itemsets dự tuyển
2- Một k-itemset cần ít nhất 2k -1 itemsets dự tuyển trước đó
- Với mỗi tập ứng cử viên C, thuật toán phải duyệt lại toàn bộ cơ sở dữ liệu để tính độ hỗ trợ, điều này làm tăng quá nhiều thời gian xử lý Vì vậy, thuật toán sẽ không đạt hiệu quả tốt đối với các cơ sở dữ liệu lớn
Chi phí lớn khi kích thước các itemsets tăng lên dần
Nếu k-itemsets được khám phá thì cần kiểm tra tập dữ liệu k+1 lần
2.3 Một số thuật toán luật kết hợp
2.3.1 Thuật toán Fp_Growth
Thuật toán kinh điển Apriori tìm tập mục phổ biến thực hiện tốt bởi rút gọn kích thước các tập ứng cử nhờ kỹ thuật tỉa Tuy nhiên, trong tình huống
mà số các mẫu nhiều, mẫu dài hoặc độ hỗ trợ cực tiểu thấp, các thuật toán Apriori gặp phải chi phí lớn
Chi phí cho số lượng khổng lồ các tập ứng cử Ví dụ: nếu cứ 10^4 tập mục phổ biến thì thuật toán Apriori sẽ cần sinh ra hơn 10^7 các ứng cử 2-item
1-và thực hiện kiểm tra sự xuất hiện của chúng Hơn nữa, để khám phá được một
số mẫu phổ biến kích thước (độ dài) là l, thuật toán phải kiểm tra (2^l-2 ) các mẫu phổ biến tiềm năng Ví dụ l=100, chẳng hạn là {a1,a2, ,a100}, nó phải sinh ra tổng số 2^100 =10^30 các ứng cử (đấy chính là số tập con của tập có
100 phần tử)
Đòi hỏi lặp lại nhiều lần duyệt CSDL để kiểm tra tập rất lớn các ứng cử
Số lần duyệt CSDL của thuật toán Apriori bằng độ dài của mẫu phổ biến dài nhất tìm được Trong trường hợp mẫu phổ biến dài hơn và CSDL lớn, có nhiều bản ghi, điều này là không thể thực hiện được Thuật toán Apriori chỉ thích
Trang 28hợp cho các CSDL thưa (sparse), với các CSDL dày (dense) thì thuật toán thực hiện kém hiệu quả hơn
Thuật toán tìm các tập phổ biến hiệu quả hơn thuật toán Apriori là thuật toán Fp-tree và Fp-Growth
2.3.2 Thuật toán Fp_Tree
Được gọi là cây mẫu phổ biến (frequent pattern tree hoặc gọi tắt là FP-
tree) dùng để nén dữ liệu thích hợp Chỉ có các mục độ dài l (l-item) ở trong
cây và các nút của cây được sắp đặt để các nút xuất hiện thường xuyên hơn có thể dễ dàng chia sẻ với các nút xuất hiện ít hơn CSDL lớn được nén chặt tới cấu trúc dữ liệu nhỏ hơn (FP-tree), tránh được chi phí lặp lại duyệt qua CSDL
Thuật toán xây dựng FP-tree:
Input: Cơ sở dữ liệu giao dịch DB và ngưỡng hỗ trợ tối thiểu là ξ
Output: Cây FP-Tree, cây chứa các mẫu phổ biến
FP-tree được xây dựng theo các bước sau đây:
B1 Duyệt DB lần đầu để thu được tập F gồm các đối tượng phổ biến (frequent item) và độ hỗ trợ (support count) của chúng Sắp xếp các đối tượng (item) trong F giảm dần theo supprort count ta được danh sách L
b Call Insert_Tree([p,P], T);
Trang 292.3.3 Thuật toán Fast Algorithm for Discovering Frequent Itemsets (FIT)
Khai phá luật kết hợp là một vấn đề khai phá dữ liệu quan trọng đã được nghiên cứu rông rãi Một thuật toán nhanh và đơn giản cho danh sách các thuộc tính giao nhau sử dụng Bảng dữ liệu hỏng được trình bày FIT được thiết kế để tính toán một cách hiệu quả tất cả các tập phổ biến trong cơ sở dữ liệu lớn Nó triển khai các ý tưởng tương tự như Eclat nhưng có hiệu suất tính toán tốt hơn nhiều so với Eclat do hai khía cạnh:
1) FIT có tổng số các phép so sánh ít hơn cho từng hoạt động giao nhau giữa hai danh sách thuộc tính,
2) FIT giảm đáng kể tổng số hoạt động giao nhau Các kết quả thực nghiệm chứng minh rằng hiệu suất của FIT là tốt hơn nhiều so với các thuật toán Apriori và Eclat
Với một cơ sở dữ liệu D, và minsup, mô tả chính thức của các phương pháp
đơn giản được thể hiện như sau :
Bước 1)
Chuyển đổi D vào các thuộc tính định dạng danh sách và tính toán
L1 Sắp xếp tài liệu và danh sách thuộc tính tương ứng trong L 1 vào trật
tự không tăng theo số lượng các thuộc tính trong danh sách Đánh dấu
tất cả các tập phổ biến ở L 1 không truy cập
Trang 30Quét các danh sách thuộc tính của các tập phổ biến không truy cập đầu
tiên (X) trong L k , Đối với mỗi thuộc tính (vx) bộ hb [vx] tới 1 Đánh dấu X truy cập
Bước 5)
Quét các danh sách thuộc tính của bất kỳ của các tập phổ biến khác (Y)
theo sau X trong Lk Đối với mỗi thuộc tính (ty), nếu hb [vy] bằng 0, loại
bỏ ty Nếu hb [vy] bằng 1, đặt vy vào danh sách thuộc tính kết quả Nếu
số lượng các thuộc tính trong danh sách thuộc tính kết quả là không ít
hơn minsup, đặt các tập phổ biến (X∩Y) và danh sách thuộc tính kết quả vào L k + 1 Đánh dấu các tập phổ biến X∩Y không truy cập trong L k + 1
Bước 6)
Thiết lập lại các mục trong hb đến -1 Nếu L k+1 không phải là trống, tăng
k bằng 1 và quay trở lại bước 4) Nếu không, đi đến bước 3)
2.3.4 Thuật toán NSFI ALGORITHM
Khai thác tập phổ biến là một yếu tố cơ bản liên quan đến nhiều vấn đề khai thác dữ liệu hướng vào việc tìm kiếm mô hình thú vị trong dữ liệu Gần đây các thuật toán PrePost, một thuật toán mới cho khai thác tập phổ biến dựa trên ý tưởng của N-list, mà trong nhiều trường hợp làm tốt hơn Tác giả đã đề xuất một phiên bản cải tiến của PrePost, N-list và bao hàm dựa trên thuật toán khai thác tập phổ biến (NSFI) thuật toán có sử dụng một bảng băm để tăng cường quá trình tạo ra các N-list liên kết với 1 tập phổ biến và tồn tại được cải thiện N-list thuật toán giao nhau Hơn nữa, hai định lý mới được đề xuất để xác định '' bao hàm index '' của thường xuyên 1-tập phổ biến dựa trên khái niệm N-list Sử dụng chỉ số bao hàm, NSFI có thể xác định các nhóm của tập phổ biến mà không xác định N-list ch liên kết với chúng Kết quả cho thấy NSFI nhanh hơn so PrePost về thời gian chạy và sử dụng bộ nhớ và nhanh hơn
so với clat triển về mặt thời gian chạy
Trang 31Deng et al [3] đề xuất một chức năng giao điểm N-danh sách để xác định giao điểm của hai N-danh sách đó là O (n + m + k) trong đó n, m và k là
độ dài của đầu tiên, thứ hai và kết quả là N-danh mục (chức năng di chuyển qua danh sách N- kết quả như vậy là để hợp nhất cùng PP-mã) Trong phần này chúng tôi trình bày một chức năng giao điểm N-list được cải tiến để cung cấp cho O (n + m) Chức năng cải tiến này cung cấp những lợi thế mà nó không đi qua các kết quả N-list để hợp nhất các mã PP- cùng Hơn nữa, chúng tôi cũng đề xuất một chiến lược đầu bỏ bao gồm ba bước: (i) xác định tổng tần
số đầu tiên và thứ hai N-danh sách ký hiệu là SF, (ii) cho mỗi Ci PP-mã, mà không thuộc về kết quả N-list, cập nhật SF = SF - C.frequency, và (iii) nếu SF giảm xuống dưới \ minSup xn] dừng lại (các tập phổ biến hiện đang được coi
là không thường xuyên) Với các chức năng trên giao điểm N-list cải thiện
Thuật toán N-list cải tiến
function NL_intersection (PS1, PS2)
1 let PS3 ← ∅, sF ← σ(PS1) + σ (PS2), i = 0, j = 0 and f = 0
2 while i < |PS1 | and j < |PS2| do
3 if PS1[i].pre < PS2[j].pre then
4 if PSi[i].post > PS2[j].post then
5 if |PS3| > 0 and pre value of the last element in PS3 equal
Trang 323 if j ϵ l1 [i] Subsumes then continue
4 if checkSubsume (l1 [i] N-list, l1 [j ] N-list) is true then
5 add l1 [ j ] name and its index, j, to l1[i].Subsumes
6 add all elements in l1[j ] Subsumes to l1[i] Subsumes
Đầu tiên các thuật toán NSFI tạo PPC-cây, sau đó đi qua cây này để tạo
ra N-danh sách liên quan đến việc thường xuyên 1-itemset Sau đó, một chiến
Trang 33lược chia-và-chinh phục, cùng với khái niệm chỉ số bao hàm, được sử dụng để tôi tập phổ biến Đối với mỗi phần tử X, nếu chỉ số bao hàm của nó có các yếu
tố, tập hợp các tập phổ biến được sản xuất bằng cách kết hợp với các yếu tố X trong chỉ số bao hàm của nó là thường xuyên và có sự hỗ trợ tương tự như X Đối với mỗi nguyên tố còn lại không được chứa trong các bao hàm chỉ số của
X, thuật toán sẽ kết hợp chúng với X để tạo ra các tập phổ biến ứng cử viên thường xuyên Lưu ý rằng đối với 2 tập phổ biến hoặc nhiều hơn, thuật toán không sử dụng các chỉ số bao hàm
Thuật toán NSFI ALGORITH
Input: A dataset DB and minSup
Output: FIs, the set of all frequent itemsets
1 Construct_PPC_tree (DB, minSup) to generate R., l1, H 1 and threshold
1 let C ← (R.pre, R.post, R frequency)
2 add C to H1[R .name] N-list
3 increase H1 [R .name] frequency by C frequency
4 for each child in R .children do
5 Generate_NList(child)
procedure Find_FIs (Is, S)
1 for i ← Is size - 1 to 0 do
2 let FIsnext ← 0
Trang 344 let S be the set of subset generated from all elements of
Is [i] Subsumes
5 for each s in S do
6 add (s Is [i] frequency) to FIs //using theorem 4
7 else if |Is[i] | = 1 then
8 S ← {}
9 indexS = |Is [i] Subsumes | - 1
10 for j ← i - 1 to 0 do
11 if indexS ≥ 0 and Is [i].Subsumes[indexS] = j then
12 indexS = indexS - 1 and continue
13 let efirst be the first item of Is[j]
14 FI ← { efirst } + Is[i]
15 (FI.N-list and FI frequency) ← NL_intersection (Is [j ]
.N-list, Is [i] N-list)
16 if FI.N-list = null then continue
17 if(FI.frequency ≥ threshold) then
18 add FI to FIs
19 insert FI at first in FIsnext
20 for each subsume in S do
21 let f = FI + subsume
22 f.frequency = FI.frequency
23 add f to FIs // using theorem 4
24 Find_FIS (FIsnext, S)
2.4 Thuật toán FSM
Năm 2005, Yu-Chiang Li và đồng nghiệp tại Khoa Khoa học máy tính và
Kỹ thuật thông tin của Đại học Chung Chen, Đài Loan giới thiệu thuật toán FSM (Fast Share Measure), đây là một thuật toán hiệu quả tìm ra tất cả các tập mục cổ phần cao Thay vì khai thác tính chất Apriori, thuật toán FSM sử dụng một số tính chất của tập mục cổ phần cao để rút gọn các tập mục ứng viên
Trang 352.4.1 Cơ sở lý thuyết của thuật toán FSM
Cơ sở lý thuyết của thuật toán được thể hiện trong mệnh đề sau:
Cho minShare và k-itemset X không là tập mục cổ phần cao Nếu:
( ) ( ) lmv X ( ) min_
CF X min_lmv thì không có tập cha nào của X là tập mục cổ phần cao
Thuật toán FSM dựa vào mệnh đề này để tỉa các tập mục ứng viên
2.4.2 Nội dung cơ bản của thuật toán FSM
Thuật toán duyệt nhiều lần CSDL, ở lần duyệt thứ k, C k lưu các tập mục
ứng viên, RC k lưu các tập mục nhận được sau khi kiểm tra hàm tới hạn CF, F k
lưu các tập mục cổ phần cao nhận được
Giống như thuật toán Apriori, ban đầu mỗi mục dữ liệu là một ứng viên Trong lần duyệt thứ nhất, thuật toán duyệt cơ sở dữ liệu, tính giá trị của mỗi
mục dữ liệu Mỗi ứng viên 1- tập mục X sẽ bị tỉa nếu CF(X)< min_lmv Trong
mỗi lần duyệt tiếp theo, các tập mục ứng viên được tạo ra bằng cách nối hai
Trang 36(k-1)-itemset trong RC k-1 nếu chúng có (2) mục đầu giống nhau và nhận đƣợc
k-itemset, kết nạp vào tập C k (giả sử các mục của cơ sở dữ liệu đã đƣợc sắp thứ
tự) Tất cả k tập con với độ dài (k-1) của mỗi k-itemset trong C k là phải thuộc
Tiếp theo, thuật toán duyệt cơ sở dữ liệu để tìm tập mục cổ phần cao Với mỗi
tập mục X trong C k , nếu tập mục này có lmv X min lmv_ thì X là tập mục cổ phần cao và đƣợc thêm vào F k ; Ngƣợc lại, xét hàm tới hạn CF, nếu
( )
CF X min_lmv thì tập ứng viên X bị loại khỏi RC k Quá trình trên cứ lặp cho đến khi không có tập mục ứng viên nào đƣợc sinh ra
2.4.3 Một số khái niệm của thuật toán
Cho tập các mục (item) I i i1 , , , 2 i n Một giao tác (transaction) T là một tập con của I, TI Cơ sở dữ liệu là một tập các giao tác DBT T1 , 2 , ,T m
Mỗi giao tác đƣợc gán một định danh TID Một tập mục con X I, gồm k
mục phân biệt đƣợc gọi là một k-itemset Giao tác T gọi là chứa tập mục X
nếu X T
MV (Measure Value – Giá trị tập mục trong giao tác): Ta ký hiệu giá trị
của mục i p trong giao tác T q là mv i T( ,p q), mv i T( ,p q) có giá trị là số tự nhiên (nhƣ số lƣợng đã bán của một mặt hàng trong giao tác), tức là, mv i T( ,p q) 0
nếu i pT q và mv i T( ,p q) 1 nếu i pT q
TMV (Transaction Measure Value – Giá trị giao tác): Giá trị của giao tác
Tq là tổng giá trị các mục dữ liệu trong giao tác, ký hiệu là tmv(T q), tức là
Trang 37Ví dụ 2.1 : Cho cơ sở dữ liệu bảng 2.1, mv(D,T01)=1, mv(C,T03)=3,
IMV (Itemset Measure Value): Cho giao tác T q chứa tập mục X Giá trị của
tập mục X trong T q, ký hiệu imv X T , q, là tổng giá trị của các mục ip trong T q
Sh (Share Value): Cổ phần hay đóng góp của tập mục X , ký hiệu là Sh(X), là
tỉ số giữa giá trị của tập mục X và tổng giá trị của tất cả các mục trong cơ sở dữ
liệu, tức là: lmv X( )
Sh X
Tmv
Sh(X) cho biết trong tổng giá trị của tất cả các mục dữ liệu trong cơ sở dữ
liệu thì giá trị của tập X chiếm bao nhiêu phần trăm Ví dụ, với CSDL giao tác
Trang 38bán hàng, Sh(X)=30% tức là trong tổng số lượng hàng đã bán được thì số lượng các mặt hàng trong X chiếm 30%
MinShare: ngưỡng cổ phần (minimum share) minShare s% và tập mục X X
được gọi là tập mục cổ phần cao nếu Sh(X) ≥ minShare Trường hợp ngược lại, X được gọi là tập mục cổ phần thấp
Ký hiệu giá trị cổ phần tối thiểu (minimum local measure value) là
min_lmv, min_lmv= minShare x Tmv, có thể thay điều kiện Sh(X) ≥ minShare
trong định nghĩa 2.4 bởi điều kiện lmv X min lmv_
Ví dụ: Xét cơ sở dữ liệu cho ở bảng 2.1 và minShare=30% Bảng 2.2 là
giá trị của các mục dữ liệu và cổ phần của chúng