Một trong những nội dung cơ bản nhất trong khai phá dữ liệu và rất thường xuyên là phát hiện các luật kết hợp trong kho cơ sở dữ liệu khổng lồ, nhằm tìm ra các tập mục thường xuyên thườn
Trang 1ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
NGUYỄN VĂN TƯ
KHAI PHÁ LUẬT KẾT HỢP TRONG CƠ SỞ DỮ LIỆU VÀ ỨNG DỤNG
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Thái nguyên, năm 2011
Trang 2ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
NGUYỄN VĂN TƯ
KHAI PHÁ LUẬT KẾT HỢP TRONG CƠ SỞ DỮ LIỆU VÀ ỨNG DỤNG
CHUYÊN NGÀNH: KHOA HỌC MÁY TÍNH
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan toàn bộ nội dung trong Luận văn là được thực hiện
theo đúng đề cương đã được hội đồng khoa học trường Đại học Thái nguyên-
khoa Công nghệ thông tin phê duyệt, nội dung thực hiện trong đề cương đã
được cán bộ hướng dẫn giao cho và kiểm soát Nội dung luận văn, các phần
trích lục các tài liệu hoàn toàn chính xác Nếu có sai sót tôi hoàn toàn chịu
trách nhiệm
Tác giả luận văn
Nguyễn Văn Tư
Trang 4LỜI CẢM ƠN
Tôi xin chân thành cảm ơ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 công nghệ thông tin – Viện Khoa học và Công nghệ Việt Nam, các anh chị lớp Cao học K8 - khóa 2009-2011 đã giúp đỡ tôi trong quá trình nghiên cứu và thực hiện luận văn
Tôi xin trân trọng cảm ơn TS Nguyễn Huy Đức – Khoa Thông tin - Máy tính, Trường Cao đẳng Sư phạm Trung ương, người thầy trực tiếp hướng dẫn, đưa ra ý tưởng, định hướng, đóng góp các ý kiến chuyên môn và tận tình giúp đỡ tôi trong suốt quá trình nghiên cứu và thực hiện luận văn thạc sĩ ngành khoa học máy tính
Tôi xin cảm ơn các bạn bè đồng nghiệp và gia đình đã giúp đỡ, đóng góp ý kiến và động viên tôi trong suốt qua trình học, quá trình nghiên cứu và hoàn thành luận văn
Tác giả
Trang 5MỤC LỤC
Trang
Lời cam đoan……….…….………i
Lời cảm ơn… ……….……….……….ii
Mục lục……… ……….….……… ……iii
DANH MỤC CÁC KÝ HIỆU VÀ CÁC CHỮ VIẾT TẮT v
DANH MỤC CÁC BẢNG BIỂU vi
DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ vii
MỞ ĐẦU 1
Chương 1: TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU VÀ KHAI PHÁ DỮ LIỆU 3
1.1 Quá trình phát hiện tri thức từ cơ sở dữ liệu 3
1.2 Kiến trúc của hệ thống khai phá dữ liệu 6
1.3 Quá trình khai phá dữ liệu 8
1.4 Nhiệm vụ của khai phá dữ liệu 10
1.5 Các phương pháp chính trong khai phá dữ liệu 11
1.5.1 Phương pháp luật kết hợp 12
1.5.2 Phương pháp cây quyết định 12
1.5.4 Các phương pháp dựa trên mẫu 14
1.6 Các ứng dụng của khai phá dữ liệu 15
Kết luận chương 1: 16
Chương 2: KHAI PHÁ LUẬT KẾT HỢP TRONG CƠ SỞ DỮ LIỆU 17
2.1 Bài toán mở đầu 17
2.2 Các khái niệm cơ sở 18
2.2.1.Cơ sở dữ liệu giao tác 19
2.2.2 Biểu diễn cơ sở dữ liệu giao tác 19
2.2.3 Tập mục thường xuyên 21
2.2.4 Luật kết hợp 22
2.2.5 Độ hỗ trợ và độ tin cậy của luật kết hợp 22
2.3 Khai phá luật kết hợp 24
2.4 Các cách tiếp cận khai phá tập mục thường xuyên 26
2.5 Các thuật toán điển hình khai phá tập mục thường xuyên 27
2.5.1 Thuật toán Apriori 28
2.5.2.Thuật toán FP_growth 33
2.6 Thuật toán sinh luật kết hợp: 41
2.7 Một số mở rộng khai phá luật kết hợp trong cơ sở dữ liệu 44
Kết luận chương 2: 46
Chương 3: KHAI PHÁ LUẬT KẾT HỢP CÓ TRỌNG SỐ 47
3.1 Một số khái niệm về luật kết hợp có trọng số 47
3.2 Khai phá luật kết hợp trọng số không chuẩn hóa 49
3.3 Khai phá luật kết hợp trọng số chuẩn hóa 52
Trang 63.3.1 Một số khái niệm về trọng số chuẩn hóa 52
3.3.2 Thuật toán khai phá luật kết hợp trọng số chuẩn hóa (MINVAL(W)) 54
Kết luận chương 3: 56
Chương 4: THỰC NGHIỆM KHAI PHÁ LUẬT KẾT HỢP 57
4.1 Giới thiệu bài toán 57
4.2 Dữ liệu thực nghiệm 58
4.3 Xây dựng chương trình 60
4.4 Thực nghiệm khai phá 61
4.5 Kết quả thực nghiệm 63
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 63
1 Những kết quả đã đạt được 63
2 Hướng phát triển của đề tài là: 64
TÀI LIỆU THAM KHẢO 65
PHỤ LỤC 67
Trang 7DANH MỤC CÁC KÝ HIỆU VÀ CÁC CHỮ VIẾT TẮT
KPDL Khai phá dữ liệu
CSDL Cơ sở dữ liệu
DB Cơ sở dữ liệu giao tác
TID Định danh của giao tác
BFS Breadth First Search
DFS Depth First Search
FP-growth Frequent-Pattern Growth
FP-tree Frequent pattern tree
Trang 8DANH MỤC CÁC BẢNG BIỂU
Bảng 2.1: Danh mục các tập mục trong CSDL 19
Bảng 2.2: Biểu diễn ngang của CSDL giao tác 20
Bảng 2.3: Biểu diễn dọc của CSDL giao tác 20
Bảng 2.4: Ma trận giao tác của CSDL bảng 2.2 21
Bảng 2.5: Cơ sở dữ liệu DB 24
Bảng 2.6: Độ hỗ trợ của các mục 25
Bảng 2.7: Độ hỗ trợ của các tập mục 25
Bảng 2.8: Độ tin cậy của các luật 26
Bảng 2.9: CSDL giao tác minh hoạ cho thuật toán Apriori 31
Bảng 2.10: CSDL giao tác minh hoạ cho thuật toán FP- growth 34
Bảng 3.1.a Tập giao tác DB 48
Bảng 3.1.b Thông tin của cửa hàng 48
Bảng 4.1: Dữ liệu đã trích chọn để khai phá 58
Bảng 4.2: Mã hóa các mặt hàng 59
Trang 9DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ
Hình 1.1 Quá trình khám phá tri thức 5
Hình 1.2 Kiến trúc của hệ thống khai phá dữ liệu 7
Hình 1.3: Quá trình khai phá dữ liệu 9
Hình 1.4: Mẫu kết quả với phương pháp cây quyết định 12
Hình 1.5: Phân cụm các đối tượng k-Mean ( + là tâm của cụm) 13
Hình 2.1: Phân loại các thuật toán khai phá tập mục thường xuyên 27
Hình 2.2: Cây FP-tree được xây dựng dần khi thêm các giao tác t1, t2, t3 35
Hình 2.3: Cây FP-tree của CSDL DB trong bảng 2.10 36
Hình 2.4: FP-tree phụ thuộc của m 39
Hình 2.5 : Các FP-tree phụ thuộc của am, cm và cam 39
Hình 4.1: Dữ liệu đã mã hóa chuẩn bị cho khai phá 60
Hình 4.2: Giao diện chương trình 61
Hình 4.3: Giao diện kết quả khai phá tập mục thường xuyên 62
Hình 4.4: Giao diện kết quả khai phá luật kết hợp 62
Trang 10MỞ ĐẦU
Trong những năm qua, việc nắm bắt, xử lý được thông tin được coi là
cơ sở của mọi hoạt động của đời sống xã hội, đặc biệt là trong sản xuất, kinh doanh Những thông tin tiềm ẩn mang tính dự đoán trong các khối dữ liệu là rất lớn Mỗi cá nhân hoặc tổ chức nào thu thập và hiểu được thông tin, hành động dựa trên các thông tin được kết xuất từ các thông tin đã có sẽ đạt được thành công trong mọi hoạt động Chính vì lý do đó, việc tạo ra thông tin, tổ chức lưu trữ và khai phá 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 cuộc sống như: thương mại, quản lý và khoa học …đã 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ép toán đơn giản thông thường như: phép đếm, 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 có í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 phá đượ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
Một trong những nội dung cơ bản nhất trong khai phá dữ liệu và rất thường xuyên là phát hiện các luật kết hợp trong kho cơ sở dữ liệu khổng lồ, nhằm tìm ra các tập mục thường xuyên thường xuất hiện đồng thời trong cơ
sở dữ liệu và rút ra các luật về ảnh hưởng của tập mục thường xuyên dẫn đến
sự xuất hiện của một (hay một tập) mục thường xuyên khác như thế nào, do vậy khai phá luật kết hợp trong kho cơ sở dữ liệu có ý nghĩa rất quan trọng, có lợi ích to lớn trong việc tổng hợp và cung cấp những thông tin cần thiết trong nguồn cơ sở dữ liệu lớn
Trang 11Xuất phát từ thực tế nói trên và với mục đích tìm hiểu về bài toán tìm luật kết hợp trong cơ sở dữ liệu, em đã quyết định lựa chọn đề tài:
“Khai phá luật kết hợp trong cơ sở dữ liệu và ứng dụng”
Ứng dụng khai phá luật kết hợp trong cơ sở dữ liệu đã mang lại những lợi ích to lớn trong việc tổng hợp và cung cấp những thông tin trong các nguồn cơ sở dữ liệu lớn Đây là một đề tài không chỉ có ý nghĩa khoa học mà còn mang đậm tính thực tiễn Phương pháp nghiên cứu của luận văn là tổng hợp các kết quả nghiên cứu về khai phá tập mục thường xuyên, khai phá luật kết hợp đã công bố trên các bài báo khoa học, hội thảo chuyên ngành trong và ngoài nước, từ đó, trình bày làm rõ vấn đề khai phá luật kết hợp và xây dựng chương trình thực nghiệm đánh giá một số thuật toán
Luận văn gồm 4 chương và phần kết luận
Chương 1: Tổng quan về cơ sở dữ liệu và khai phá dữ liệu
Chương 2: Khai phá luật kết hợp trong cơ sở dữ liệu
Chương 3: Khai phá luật kết hợp có trọng số
Chương 4: Thực nghiệm khai phá luật kết hợp
Trong suốt quá trình tìm hiểu, nghiên cứu và hoàn thành luận văn, được
sự hướng dẫn tận tình của Thầy hướng dẫn TS Nguyễn Huy Đức - Khoa Thông tin - Máy tính, Trường Cao đẳng Sư phạm Trung ương; mặc dù em đã
cố gắng, nỗ lực hết sức nhưng không thể tránh khỏi thiếu sót, em tha thiết kính mong tiếp tục nhận được sự giúp đỡ, chỉ bảo của các thầy cô để đề tài được hoàn thiện hơn
Em xin chân thành cảm ơn !
Thái Nguyên, ngày 30 tháng 10 năm 2011
Học viên: Nguyễn Văn Tư
Trang 12Chương 1: TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU VÀ KHAI PHÁ DỮ LIỆU 1.1 Quá trình phát hiện tri thức từ cơ sở dữ liệu
Trong thời đại ngày nay, với sự phát triển vượt bậc của công nghệ thông tin, các hệ thống thông tin có thể lưu trữ một khối lượng lớn dữ liệu về hoạt động hàng ngày của chúng Lượng dữ liệu được lưu trữ dẫn đến một đòi hỏi cấp bách phải có những kỹ thuật mới, những công cụ tự động mới trợ giúp con người một cách thông minh trong việc chuyển đổi một lượng lớn dữ liệu thành thông tin hữu ích
Một số nhà khoa học xem khai phá dữ liệu như là một cách gọi khác của một thuật ngữ cũng rất thông dụng là khám phá tri thức trong cơ sở dữ liệu (Knowledge Discovery in Databases – KDD), vì cho rằng mục đích của quá trình khám phá tri thức là thông tin và tri thức có ích, nhưng đối tượng mà chúng ta phải xử lý rất nhiều trong suốt quá trình khám phá tri thức lại chính
là dữ liệu Một số nhà khoa học khác thì xem khai phá dữ liệu như là một bước chính trong quá trình khám phá tri thức
Hiểu quá trình khám phá, phát hiện tri thức ở đây là gì? Thông thường chúng ta coi dữ liệu như là một dãy các bit, các số và các ký hiệu, hoặc các
“đối tượng” được gửi cho một chương trình dưới một định dạng nhất định nào
đó Chúng ta sử dụng các bit để đo lường thông tin, khi sử dụng xem nó như
là dữ liệu đã được lọc bỏ dư thừa, được rút gọn tới mức tối thiểu Bít được dùng làm đơn vị đặc trưng cho 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 học, được hiểu, được phát hiện ra Nói cách khác, tri thức có thể coi là dữ liệu có độ trừu tượng và tổ chức cao
Trang 13Phát hiện tri thức là quá trình nhận biết cái logic, cái mới lạ, những tri thức tiềm tàng hữu ích từ cơ sở dữ liệu, cuối cùng là việc hiểu được các mẫu các mô hình trong cơ sở dữ liệu Vì vậy mà kỹ thuật phát hiện tri thức đã ra đời và ngày càng phát triển để đáp ứng nhu cầu của con người trong việc xử
lý các thông tin trong kho cơ sở dữ liệu khổng lồ
Thuật ngữ KPDL (Khai phá dữ liệu) ra đời vào những năm cuối của thập kỷ 1980 Khai phá dữ liệu bao gồm nhiều hướng tiếp cận, là sự kết hợp của nhiều ngành như: Cơ sở dữ liệu; Hiển thị dữ liệu; Học máy; Trí tuệ nhân tạo; Lý thuyết thông tin; Xác suất thống kê; Tính toán hiệu năng cao, và các phương pháp tính toán mềm v v… Có rất nhiều định nghĩa khác nhau về
"KPDL" đã được đưa ra, ta có thể hiểu khai phá dữ liệu được định nghĩa là quá trình tìm kiếm những thông tin (tri thức) có ích, tiềm ẩn và mang tính dự đoán trong các khối cơ sở dữ liệu lớn
KPDL là cốt lõi của quá trình khám phá tri thức Nó gồm có các giải thuật KPDL chuyên dùng, dưới một số quy định về hiệu quả tính toán chấp nhận được KPDL là nhằm tìm ra những mẫu mới, mẫu có tính chất không tầm thường, những thông tin tiềm ẩn mang tính dự đoán chưa được biết đến
và có khả năng mang lại lợi ích cho người sử dụng
Nói tóm lại, mục đích chung của việc phát hiện tri thức từ dữ liệu và KPDL là tìm ra các mẫu được quan tâm nhất tồn tại trong cơ sở dữ liệu, nhưng chúng lại bị che dấu bởi một số lượng lớn dữ liệu
Trang 14Quá trình khám phá tri thức được tiến hành qua các bước sau:
Hình 1.1 Quá trình khám phá tri thức
Bước 1: Trích chọn dữ liệu (data selection): là bước trích chọn những
tập dữ liệu cần được khai phá từ các tập dữ liệu lớn (databases, data warehouses)
Bước 2: Tiền xử lý dữ liệu (data preprocessing): là bước làm sạch dữ
liệu (xử lý dữ liệu không đầy đủ, dữ liệu nhiễu, dữ liệu không nhất quán, v v), rút gọn dữ liệu (sử dụng các phương pháp thu gọn dữ liệu, histograms, lấy mẫu, v .v ), rời rạc hoá dữ liệu (dựa vào histograms, entropy, phân khoảng,
v v ) Sau bước này, dữ liệu sẽ nhất quán, đầy đủ, được rút gọn và được rời rạc hoá
Trang 15Bước 3: Biến đổi dữ liệu (data transformation): là bước chuẩn hoá và
làm mịn dữ liệu để đưa dữ liệu về dạng thuận lợi nhất nhằm phục vụ cho các
kỹ thuật khai phá ở bước sau
Bước 4: Khai phá dữ liệu (data mining): đây là bước quan trọng và tốn
nhiều thời gian nhất của quá trình khám phá tri thức, áp dụng các kỹ thuật khai phá(phần lớn là các kỹ thuật của machine learning) để khai phá, trích chọn được các mẫu (pattern) thông tin, các mối liên hệ đặc biệt trong dữ liệu
Bước 5: Đánh giá và biểu diễn tri thức (knowledge representation &
evaluation ): Dùng các kỹ thuật hiển thị dữ liệu để trình bày các mẫu thông
tin (tri thức) và mối liên hệ đặc biệt trong dữ liệu đã được khai phá ở bước trên biểu diễn theo dạng gần gũi với người sử dụng như đồ thị, cây, bảng biểu, luật, v v Đồng thời bước này cũng đánh giá những tri thức khai phá được theo những tiêu chí nhất định
Trong giai đoạn khai phá dữ liệu, có thể cần sự tương tác của người dùng để điều chỉnh và rút ra các tri thức cần thiết nhất Các tri thức nhận được cũng có thể được lưu và sử dụng lại
1.2 Kiến trúc của hệ thống khai phá dữ liệu
Khai phá dữ liệu là quá trình rút trích thông tin bổ ích từ những kho dữ liệu Khai phá dữ liệu là quá trình chính trong khai phá tri thức từ cơ sở dữ liệu
Kiến trúc của một hệ thống khai phá dữ liệu có các thành [3,8] phần như sau:
* CSDL, kho dữ liệu hoặc lưu trữ thông tin khác: Đây là một hay các
tập CSDL, các trang tính hay các dạng khác của thông tin được lưu trữ Các
kỹ thuật làm sạch dữ liệu và tích hợp dữ liệu có thể được thực hiện
Trang 16Hình 1.2 Kiến trúc của hệ thống khai phá dữ liệu
* Máy chủ CSDL (Database or Warehouse Server): Máy chủ có trách
nhiệm lấy những dữ liệu thích hợp dựa trên những yêu cầu khai phá của người dùng
* Cơ sở tri thức (Knowledge-base): Đây là miền tri thức dùng để tìm
kiếm hay đánh giá độ quan trọng của các mẫu kết quả thu được Tri thức này
có thể bao gồm một sự phân cấp khái niệm dùng để tổ chức các tập mục dữ liệu ở các mức trừu tượng khác nhau
* Máy khai phá dữ liệu (Data mining engine): là một hệ thống khai phá
dữ liệu cần phải có một tập các Modul chức năng để thực hiện công việc, chẳng hạn như kết hợp, phân lớp, phân cụm
(Data mining engine)
Kho dữ liệu Các lưu trữ
Trang 17* Modul đánh giá mẫu ( Pattern evaluation): Bộ phận tương tác với
các Modul khai phá dữ liệu để tập trung vào việc duyệt tìm các mẫu đáng được quan tâm Nó có thể dùng các ngưỡng về độ quan tâm để lọc mẫu đã khai phá được Cũng có thể Modul đánh giá mẫu được tích hợp vào Modul khai phá dữ liệu, tùy theo cách cài đặt của phương pháp khai phá dữ liệu được dùng
* Giao diện đồ họa cho người dùng ( Graphical user interface): Bộ
phận này cho phép người dùng giao tiếp với hệ thống khai phá dữ liệu Thông qua giao diện này người dùng tương tác với hệ thống bằng cách đặc tả một yêu cầu khai phá hay một nhiệm vụ, cung cấp thông tin trợ giúp cho việc tìm kiếm và thực hiện khai phá thăm dò trên các kết quả khai phá trung gian Ngoài ra bộ phận này còn cho phép người dùng xem các lược đồ CSDL, lược
đồ kho dữ liệu, các đánh giá mẫu và hiển thị các mẫu trong các khuôn dạng khác nhau
1.3 Quá trình khai phá dữ liệu
Quá trình khai phá dữ liệu là một bước trong quá trình khai phá tri thức, được thực hiện bằng việc xác định những vấn đề cần giải quyết, từ đó sẽ xác định dữ liệu liên quan dùng để xây dựng giải pháp và những việc cần thực hiện, xử lý chúng thành một dạng sao cho thuật toán khai phá dữ liệu có thể hiểu được
Với những dữ liệu đã thu thập, ta tiến hành tích hợp và chỉnh sửa dữ liệu, lọc dữ liệu, đây là quá trình tiền xử lý Dữ liệu được thu thập từ nhiều nguồn khác nhau, qua những dữ liệu trực tiếp ta thống kê tóm tắt, trong khi đó
có thể có những sự sai sót, dư thừa và trùng lặp Lọc dữ liệu là cắt bỏ những
dư thừa để dữ liệu được định dạng thống nhất
Có thể dễ hiểu hơn qua thực tế ví dụ sau: Người kinh doanh bán hàng nhiều mặt hàng, muốn tăng doanh thu thì phải giải được bài toán tìm quy luật
Trang 18mua hàng của khách hàng, ta tìm xem khách hàng thường cùng mua những mặt hàng nào để sắp xếp những món hàng đó gần nhau Từ dữ liệu có nhiều mục không cần thiết cho khai phá dữ liệu như: Mã khách hàng, nhà cung cấp, đơn giá hàng, người bán hàng… Các dữ liệu này cần cho quản lý bán hàng nhưng không cần cho khai phá dữ liệu, ta loại bỏ các mục dữ liệu này khỏi dữ liệu trước khi khai phá dữ liệu
Dữ liệu sau khi lọc và chỉnh sửa sẽ nhỏ hơn, xử lý nhanh chóng hơn Quá trình khai phá dữ liệu được thể hiện bởi hình 1.3 sau:
Hình 1.3: Quá trình khai phá dữ liệu
Công việc tiếp theo sử dụng các thuật toán khác nhau để khai phá các kiến thức tiềm ẩn trong kho dữ liệu sau khi đã xử lý và được thống kê tóm tắt cùng các dữ liệu trực tiếp Kết quả của quá trình khai phá dữ liệu là đạt được nhiệm vụ đặt ra Nhiều kỹ thuật khai phá dữ liệu được ứng dụng cho một nguồn dữ liệu, các kỹ thuật cho các kết quả có thể khác nhau Các kết quả được ước lượng bởi những quy tắc nào đó, nếu cuối cùng kết quả không thỏa mãn yêu cầu, chúng ta phải làm lại với kỹ thuật khác cho đến khi có kết quả mong muốn
Giải thuật khai phá DL
Xác định
nhiệm vụ
Xác định dữ liệu liên quan
Thu thập và tiền xử lý DL
Thống kê tóm tắt
Dữ liệu trực tiếp
Mẫu
Trang 191.4 Nhiệm vụ của khai phá dữ liệu
Mục đích của khai phá dữ liệu là đưa ra kết quả chiết xuất tri thức từ dữ liệu Khi cơ sở dữ liệu đã trở nên khổng lồ thì những khâu như: thu thập dữ liệu, tiền xử lý và xử lý dữ liệu đều đòi hỏi phải được tự động hóa bước khai
phá dữ liệu sẽ thực hiện hai mục đích mô tả (description) và dự đoán
(prediction) Các mẫu mà khai phá dữ liệu phát hiện được nhằm vào các mục
đích này Để đạt được hai mục đích trên, nhiệm vụ chính của khai phá dữ liệu
bao gồm là:
Phân cụm, phân loại, phân nhóm, phân lớp:
Nhiệm vụ là trả lời câu hỏi: Một dữ liệu mới thu thập sẽ thuộc về nhóm nào? Quá trình này thường được thực hiện một cách tự động
Khai phá luật kết hợp:
Nhiệm vụ là phát hiện ra những mối quan hệ giống nhau của các bản ghi giao tác Luật kết hợp X=>Y có dạng tổng quát là: Nếu một giao tác đã chứa các tính chất X thì đồng thời nó cũng chứa các tính chất Y, ở một mức
độ nào đó Khai phá luật kết hợp được hiểu theo nghĩa: Biết trước các tính chất X, vậy các tính chất Y là những tính chất nào? (chúng ta sẽ tìm hiểu sâu hơn ở chương 2 và chương 3)
Phân tích đối tượng ngoài cuộc:
Một cơ sở dữ liệu có thể chứa các đối tượng không tuân theo mô hình
dữ liệu Các đối tượng dữ liệu như vậy gọi là các đối tượng ngoài cuộc Hầu
Trang 20hết các phương pháp khai phá dữ liệu đều coi các đối tượng ngoài cuộc là nhiễu và loại bỏ chúng Sự phân tích dữ liệu ngoài cuộc được coi như là phai phá các đối tượng ngoài cuộc Một số phương pháp được ứng dụng để phát hiện đối tượng ngoài cuộc: Sử dụng các hình thức kiểm tra mang tính thống
kê trên cơ sở một phân phối dữ liệu hay một mô hình xác suất cho dữ liệu, dùng các độ đo khoảng cách mà theo đó các đối tượng có một khoảng cách đáng kể đến cụm bất kỳ khác được coi là đối tượng ngoài cuộc, dùng các phương pháp dựa trên độ lệch để kiểm tra sự khác nhau trong những đặc trưng chính của các nhóm đối tượng
Phân tích sự tiến hóa:
Phân tích sự tiến hóa thực hiện việc mô tả và mô hình hóa các quy luật hay khuynh hướng của những đối tượng mà ứng xử của chúng thay đổi theo thời gian Phân tích sự tiến hóa có thể bao gồm cả đặc trưng hóa, phân biệt, tìm luật kết hợp, phân lớp hay phân cụm dữ liệu liên quan đến thời gian, phân tích dữ liệu theo chuỗi thời gian, so sánh mẫu theo chu kỳ và phân tích dữ liệu dựa trên tính tương tự
Trong quá trình phát triển nền Kinh tế - Xã hội hiện nay, rất nhiều lĩnh vực đa ngành, nhiệm vụ khai phá dữ liệu phải làm là phát hiện ra những giả thuyết mạnh trước khi sử dụng những công cụ tính toán thống kê, đó là những công việc luôn thu hút các lĩnh vực khoa học như trí tuệ nhân tạo, cơ sở dữ liệu, hiển thị dữ liệu, marketing, toán học, tin sinh học, nhận dạng mẫu, tính toán thống kê …
1.5 Các phương pháp chính trong khai phá dữ liệu
Khai phá dữ liệu gồm nhiều hướng tiếp cận phù hợp với từng cơ sở dữ liệu của các lĩnh vực khoa học và đời sống xã hội Một số phương pháp chính trong khai phá dữ liệu là:
Trang 211.5.1 Phương pháp luật kết hợp
Một trong những chủ đề phổ biến của KPDL là khai phá luật kết hợp Mục đích của khai phá luật kết hợp là xác định mối quan hệ, sự kết hợp giữa các mục dữ liệu (item) trong một CSDL lớn (phương pháp này sẽ được trình bày cụ thể trong nội dung của chương 3)
1.5.2 Phương pháp cây quyết định
Cây quyết định là một mô tả tri thức dạng đơn giản nhằm phân các đối tượng dữ liệu thành một số lớp nhất định
Các nút của cây được gán nhãn là tên các mục dữ liệu, các cạnh được gán các giá trị có thể của các mục dữ liệu, các lá mô tả các lớp khác nhau Các đối tượng được phân lớp theo các đường đi trên cây, qua các cạnh tương ứng với các giá trị của mục dữ liệu tới lá Hình 1.4 mô tả một mẫu đầu ra có thể của quá trình khai phá dữ liệu dùng phương pháp cây quyết định với tập dữ liệu khách hàng xin vay vốn
Hình 1.4: Mẫu kết quả với phương pháp cây quyết định
Không cho vay
Không cho vay
Nợ > n
Thu thập < T
Trang 22phương pháp k-Mean được coi là các kỹ thuật cơ bản của phân cụm Với phương pháp này sẽ chia tập có n đối tượng thành k cụm sao cho các đối tượng trong cùng một cụm thì giống nhau, các đối tượng khác cụm thì khác nhau
Đầu tiên chọn k đối tượng ngẫu nhiên, mỗi đối tượng đại diện cho tâm của cụm (cluster mean or center) Dựa vào khoảng cách giữa tâm cụm với mỗi đối tượng còn lại, gán mỗi đối tượng vào một cụm mà nó giống nhau nhất Sau đó, tính tâm mới của mỗi cụm Quá trình được lặp lại cho đến khi hàm tiêu chuẩn hội tụ (criterion function converges) Chẳng hạn sử dụng hàm
Hình 1.5: Phân cụm các đối tượng k-Mean ( + là tâm của cụm)
Với đối tượng được đánh dấu cộng (+) là tâm cụm
Trang 231.5.4 Các phương pháp dựa trên mẫu
Phương pháp này sử dụng khai phá chuỗi theo thời gian (Sequential
temporal patterns) Xét về mặt kỹ thuật thì tương tự như khai phá dữ liệu bằng luật kết hợp nhưng có thêm tính thứ tự và tính thời gian Một luật mô tả mẫu tuần tự có dạng tiêu biểu X -> Y phản ánh sự xuất hiện của biến cố X sẽ dẫn đến việc xuất hiện kế tiếp biến cố Y Hướng tiếp cận này được ứng dụng nhiều trong lĩnh vực tài chính và thị trường chứng khoán bởi vì chúng có tính
dự báo cao
* Một số lưu ý khi thực hiện các phương pháp khai phá dữ liệu:
Khi thực hiện các phương pháp có những khó khăn phát sinh trong khai phá dữ liệu, đó là vì dữ liệu trong thực tế thường rất lớn, động và nhiễu, làm thế nào để giải quyết sự dư thừa thông tin không thích hợp khi khai phá dữ liệu
- Khai phá với dữ liệu lớn: giả sử cơ sở dữ liệu với hàng trăm trường, hàng triệu bản ghi với kích thước rất lớn, có thể lên đến GB Phương pháp giải quyết nên chọn là đưa ra lấy mẫu, lấy một ngưỡng cho cơ sở dữ liệu như các phương pháp tính xấp xỉ, xử lí song song
- Khai phá dữ liệu với kích thước lớn: khi đó, bài toán khai phá sẽ làm tăng không gian tìm kiếm, khả năng thuật toán khai phá dữ liệu có thể tìm thấy các mẫu giả Phương pháp khắc phục là làm giảm kích thước khi khai phá của bài toán và sử dụng các tri thức biết trước để xác định các mục dữ liệu không phù hợp
- Khai phá dữ liệu động: các kho cơ sở dữ liệu có đặc điểm là dữ liệu của chúng thay đổi liên tục Chẳng hạn như các mục trong cơ sở dữ liệu đã cho có thể bị thay đổi, bị xóa hoặc là tăng lên theo thời gian, việc khai phá dữ liệu bị ảnh hưởng bởi thời điểm quan sát dữ liệu, từ đó có thể làm cho mẫu
Trang 24khai phá được trước đó mất giá trị Gặp tình huống này phương pháp giải quyết là sử dụng thuật toán tăng trưởng để cập nhật các mẫu và coi những thay đổi như là cơ hội để khai phá bằng cách sử dụng nó để tìm kiếm các mẫu
bị thay đổi
- Khai phá dữ liệu gặp các trường dữ liệu không phù hợp: nghĩa là mục
dữ liệu trở thành không thích hợp với trọng tâm hiện tại của việc khai phá Ta
sử dụng giải pháp loại bỏ dữ liệu dư thừa
- Khi sử dụng các phương pháp khai phá dữ liệu cần chú ý khả năng biểu đạt mẫu, có nghĩa là dữ liệu khai phá được phải càng dễ hiểu với con người càng tốt Vì vậy, các giải pháp thường bao gồm việc diễn tả dưới dạng
đồ họa, xây dựng cấu trúc luật với các đồ thị có hướng, biểu diễn bằng ngôn ngữ tự nhiên và kỹ thuật khác nhằm biểu diễn các tri thức và dữ liệu khai phá
1.6 Các ứng dụng của khai phá dữ liệu
Vào những năm của thế kỷ XX, khi công nghệ thông tin bùng nổ cả về
bề rộng và chiều sâu, ảnh hưởng đến hầu hết các lĩnh vực khoa học, kinh tế và đời sống xã hội Dữ liệu ngày càng tăng theo thời gian, người ta coi khai phá
dữ liệu là quá trình phân tích cơ sở dữ liệu nhằm phát hiện ra các thông tin mới và giá trị, thường thể hiện dưới dạng các mối quan hệ chưa biết đến giữa các mục dữ liệu Nhờ phân tích các dữ liệu mà các doanh nghiệp có khả năng
dự báo trước một số hành vi ứng xử của khách hàng Công nghệ thông tin phát triển đồng nghĩa với việc phát triển các phần mềm ứng dụng Phần mềm khai phá dữ liệu là một công cụ phân tích dùng để phân tích dữ liệu Nó cho phép người sử dụng phân tích dữ liệu theo nhiều góc nhìn khác nhau, phân loại dữ liệu theo những quan điểm riêng biệt và tổng kết các mối quan hệ đã được bóc tách
Hiện nay, kỹ thuật khai phá dữ liệu đang được áp dụng một cách rộng rãi trong rất nhiều lĩnh vực kinh doanh và đời sống khác nhau như:
Trang 25- Thương mại: Phân tích dữ liệu bán hàng và thi trường, phân tích đầu
tư, quyết định cho vay, phát hiện gian lận, …
- Thông tin sản xuất: Điều khiển và lập kế hoạch, hệ thống quản lý, phân tích kết quả thử nghiệm, …
- Thông tin khoa học: dự báo thời tiết, CSDL sinh học: Ngân hàng gen,
…khoa học địa lý: dự báo động đất, …
- Trong y tế, marketing, ngân hàng, viễn thông, du lịch, internet… Những gì thu được từ khai phá dữ liệu thật đáng giá Điều đó được chứng minh bằng thực tế: Chẩn đoán bệnh trong y tế dựa trên kết quả xét nghiệm đã giúp cho bảo hiểm y tế phát hiện ra nhiều trường hợp xét nghiệm không hợp lý, tiết kiệm được nhiều kinh phí mỗi năm; Trong dịch vụ viễn thông đã phát hiện ra những nhóm người thường xuyên gọi cho nhau bằng mobile và thu lợi hàng triệu USD; IBM Suft-Aid đã áp dụng khai phá dữ liệu vào phân tích các lần đăng nhập Web vào các trang liên quan đến thị trường
để phát hiện sở thích khách hàng, từ đó đánh giá hiệu quả của việc tiếp thị qua Web và cải thiện hoạt động của các Website; trang Web mua bán qua mạng cũng tăng doanh thu nhờ áp dụng khai phá dữ liệu trong việc phân tích sở
thích mua bán của khách hàng
Kết luận chương 1:
Chương 1 đã tìm hiểu một các tổng quan quá trình phát hiện tri thức và các vấn đề về khai phá dữ liệu trong đó khai phá dữ liệu là bước quan trọng nhất để tìm ra các mẫu Khai phá dữ liệu có nhiều ứng dụng trong thực tế, cho nên đã thu hút được các nhà nghiên cứu, nhiều ngành, nhiều lĩnh vực quan tâm Các phương pháp phổ biến dùng để KPDL cũng được trình bày một cách
cụ thể, trong đó phương pháp khai phá luật kết hợp trong CSDL là một lĩnh vực đang được quan tâm nghiên cứu mạnh mẽ Chương sau sẽ trình bày cụ thể, chi tiết về khai phá luật kết hợp trong CSDL
Trang 26Chương 2: KHAI PHÁ LUẬT KẾT HỢP TRONG CƠ SỞ DỮ LIỆU 2.1 Bài toán mở đầu
Bài toán kinh điển dẫn đến việc khai phá luật kết hợp: bài toán phân tích dữ liệu bán hàng của một siêu thị:
Giả định chúng ta có rất nhiều mặt hàng, ví dụ như “bánh mì”, “sữa”,… Khách hàng khi đi siêu thị sẽ bỏ vào giỏ mua hàng của họ một số mặt hàng nào đó, và chúng ta muốn tìm hiểu các khách hàng thường mua các mặt hàng nào đồng thời Nhà quản lý dùng những thông tin này để điều chỉnh việc nhập hàng về siêu thị, hay đơn giản là để bố trí sắp xếp các mặt hàng gần nhau, hoặc bán các mặt hàng đó theo một gói hàng, giúp cho khách hàng đỡ mất công tìm kiếm
Ví dụ 2.1: Tìm hiểu thông tin bán hàng
Trong cửa hàng Văn phòng phẩm phục vụ học sinh chuẩn bị bước vào đầu năm học có rất nhiều mặt hàng như sách giáo khoa, sách tham khảo, sách bài tập, giấy viết, đồ dùng học tập cho các khối lớp được nhập về Hầu như các phiếu mua sách giáo khoa môn "Toán 9" thì có tới 70% mua thêm sách
"Ôn luyện thi lớp 10 môn toán", 30% mua thêm quyển " nâng cao môn toán 9" Nhà quản lý cửa hàng dùng những thông tin này để điều chỉnh việc nhập hàng về của hàng, để bố trí sắp xếp các mặt hàng gần nhau, hoặc bán các mặt hàng đó theo một gói hàng, giúp cho khách hàng đỡ mất công tìm kiếm và tại một thời gian luôn bán được nhiều mặt hàng hơn Đó chính là chủ cửa
hàng đã phát hiện ra luật kết hợp để sắp xếp các mặt hàng gần nhau thuận lợi
cho người mua hàng, tất nhiên là doanh thu của cửa hàng cũng vì vậy mà tăng lên vì đã đáp ứng được tối đa nhu cầu mua hàng của mỗi khánh hàng Ta nói rằng chủ của hàng đã biết cách khai phá luật kết hợp trong CSDL bán hàng để phục vụ cho việc kinh doanh
Trang 27Từ bài toán trên, hoàn toàn có thể áp dụng trong các lĩnh vực khác Xét một cách tổng quát và nhìn theo góc độ của thuật ngữ tin học thì khai phá luật kết hợp được mô tả như tìm sự tương quan của các sự kiện- những sự kiện xuất hiện thường xuyên xuất hiện cùng nhau Nhiệm vụ chính của khai phá luật kết hợp là phát hiện ra các tập mục thường xuyên xuất hiện trong một khối lượng giao tác lớn của một cơ sở dữ liệu cho trước Nói cách khác, thuật toán khai phá luật kết hợp cho phép tạo ra các luật mô tả các sự kiện xảy ra đồng thời (một cách thường xuyên) như thế nào, qua đó là tìm luật, để thực hiện công việc đó, nhiệm vụ cơ bản của khai phá luật kết hợp là:
- Tìm các tập mục thường xuyên trong cơ sở dữ liệu
- Sử dụng các tập mục thường xuyên để sinh ra các luật
- Cắt tỉa các luật không đáng quan tâm từ luật kết xuất được
2.2 Các khái niệm cơ sở
Khai phá luật kết hợp là một kỹ thuật quan trọng của khai phá dữ liệu Mục tiêu khai phá là phát hiện những mối quan hệ giữa các mục dữ liệu trong
cơ sở dữ liệu Mô hình đầu tiên của bài toán khai phá luật kết hợp là mô hình nhị phân (hay còn gọi là mô hình cơ bản) được R Agrawal, T Imielinski và
A Swami đề xuất vào năm 1993, xuất phát từ nhu cầu phân tích dữ liệu của
cơ sở dữ liệu giao tác, phát hiện các mối quan hệ giữa các tập mục hàng hóa (Itemsets) đã bán được tại các siêu thị [8] Việc xác định các quan hệ này không phân biệt vai trò khác nhau cũng như không dựa vào các đặc tính dữ liệu vốn có của các mục dữ liệu mà chỉ dựa vào sự xuất hiện cùng lúc của chúng
Phần tiếp sau đây nêu một số khái niệm cơ bản dẫn đến bài toán khai
phá tập mục thường xuyên và luật kết hợp
Trang 282.2.1.Cơ sở dữ liệu giao tác
Định nghĩa 2.1: Cho tập các mục (item) I=i1,i2, i n Một giao tác (transaction) T là một tập con của I, TI Cơ sở dữ liệu giao tác là một tập các giao tác DB=T1,T2, 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-tập mục Giao tác T gọi là chứa tập mục X nếu X T
2.2.2 Biểu diễn cơ sở dữ liệu giao tác
Cơ sở dữ liệu giao tác thường được biểu diễn ở dạng biểu diễn ngang, biểu diễn dọc và biểu diễn bởi ma trận giao tác
* Biểu diễn ngang: Cơ sở dữ liệu là một danh sách các giao tác Mỗi giao tác có một định danh TID và một danh sách các mục dữ liệu trong giao tác đó
Ví dụ 2.2: Giả sử có một bảng danh sách các mặt hàng trong cửa hàng bán văn phòng phẩm, mỗi mặt hàng được quy định bằng một số tự nhiên được đánh số từ 1
Trang 29Bảng 2.2: Biểu diễn ngang của CSDL giao tác
TID Các mục dữ liệu giao tác
T1 2, 3, 7 T2 1, 2, 6, 7 T3 3, 4, 5, 6 T4 2, 4, 6 T5 2, 3, 7 T6 1,2, 6
Bảng 2.3: Biểu diễn dọc của CSDL giao tác
Mục dữ liệu Định danh giao tác
Trang 30Ví dụ 2.3: Xét cơ sở dữ liệu bảng 2.2 biểu diễn ở dạng ma trận giao tác,
ở mỗi giao tác mục dữ liệu đó có hay không xuất hiện chỉ nhận 1 trong hai giá trị 0 hoặc 1, được biểu diễn như bảng 2.4:
DB
Ta có: 0 ≤ sup(X) ≤ 1 với mọi tập mục X I
Định nghĩa 2.3: Cho tập mục X I và ngưỡng hỗ trợ tối thiểu
(minimum support) minsup 0,1 (được xác định trước bởi người sử dụng)
X được gọi là tập mục thường xuyên (frequent itemset hoặc large itemset) với
độ hỗ trợ tối thiểu minsup nếu sup(X ) minsup , ngược lại X gọi là tập mục
không thường xuyên
Trang 31Một số tính chất của tập mục thường xuyên :
Cho cơ sở dữ liệu giao tác DB và ngưỡng độ hỗ trợ tối thiểu minsup
Các tập mục thường xuyên có các tính chất sau :
Tính chất 1: Giả sử X,Y I là hai tập mục với X Y thì sup(X) sup(Y)
Tính chất 2: Giả sử X, Y là hai tập mục, X,Y I, nếu Y là tập mục thường xuyên và XY thì X cũng là tập mục thường xuyên
Thật vậy, nếu Y là tập mục thường xuyên thì sup(Y) minsup, mọi tập mục X là con của tập mục Y đều là tập mục thường xuyên trong cơ sở dữ liệu
DB vì sup(X) sup(Y)
Tính chất 3: Giả sử X, Y là hai tập mục, X Y và X là tập mục không thường xuyên thì Y cũng là tập mục không thường xuyên
2.2.4 Luật kết hợp
Định nghĩa 2.4: Một luật kết hợp là một biểu thức dạng XY, trong
đó X, Y I, thỏa mãn điều kiện XY= Tập X gọi là tiền đề, tập Y gọi là kết luận của luật
Luật kết hợp có hai thông số quan trọng là độ hỗ trợ và độ tin cậy
2.2.5 Độ hỗ trợ và độ tin cậy của luật kết hợp
Định nghĩa 2.5: Độ hỗ trợ (Support) của một luật kết hợp( XY ), ký hiệu là Sup(XY), là độ hỗ trợ của tập mục XY, Sup(XY)= sup(XY)
Như vậy độ hỗ trợ của luật kết hợp ( XY ) chính là xác suất P(XY) của sự xuất hiện đồng thời của X và Y trong một giao tác
Ta có: 0 Sup(XY) 1
Khi đó, một luật kết hợp trong tập giao tác DB với độ hỗ trợ s, thì s là
số phần trăm của các giao tác trong DB có chứa XY( chứa cả X và Y), độ
hỗ trợ của luật có giá trị giữa 0 và 1
Trang 32Khi chúng ta nói rằng độ hỗ trợ của một luật là 50%, có nghĩa là có 50% tổng số bản ghi chứa XY Như vậy, độ hỗ trợ mang ý nghĩa thống kê
Trong một số trường hợp, chúng ta chỉ quan tâm đến những luật có độ
hỗ trợ cao Nhưng cũng có trường hợp, mặc dù độ hỗ trợ của luật thấp, ta vẫn cần quan tâm (ví dụ luật kết hợp liên quan đến nguyên nhân gây ra sự ngừng đập của tim khi phẫu thuật của ngành y học)
Định nghĩa 2.6: Độ tin cậy (Confidence) của một luật X Y, ký hiệu
conf (X Y), là tỷ lệ giữa số giao tác chứa X Y và số giao tác chứa X
trong cơ sở dữ liệu DB
sup( )conf( ) =
Trang 332.3 Khai phá luật kết hợp
Bài toán khai phá luật kết hợp có thể phát biểu như sau:
Cho cơ sở dữ liệu giao tác DB, ngưỡng độ hỗ trợ tối thiểu minsup và ngưỡng độ tin cậy tối thiểu minconf
Yêu cầu: Tìm tất cả các luật kết hợp X→Y trên cơ sở dữ liệu DB sao cho sup(X→Y) ≥ minsup và conf(X→Y) ≥ minconf
Khai phá luật kết hợp này được gọi là bài toán cơ bản hay bài toán nhị phân, vì ở đây, giá trị của mục dữ liệu trong cơ sở dữ liệu là 0 hoặc 1 (xuất hiện hay không xuất hiện)
Bài toán khai phá luật kết hợp trong CSDL chia thành hai bài toán con: (1) Tìm tất cả các tập mục thường xuyên: một tập mục là thường xuyên được xác định qua tính độ hỗ trợ và thoả mãn độ hỗ trợ cực tiểu
(2) Sinh ra các luật kết hợp từ các tập mục thường xuyên đã tìm được thỏa mãn độ tin cậy tối thiểu cho trước
Khi khai phá luật kết hợp trong CSDL DB thì mọi khó khăn nằm ở bài toán thứ nhất là tìm tập mục thường xuyên
Ví dụ: Cho CSDL DB gồm 5 giao tác biểu diễn trong bảng 2.5
Bảng 2.5: Cơ sở dữ liệu DB TID Các mục dữ liệu
Trang 35mà mục A xuất hiện trong bảng 2.5 kết quả độ tin cậy của các luật thể hiện qua bảng 2.8
Bảng 2.8: Độ tin cậy của các luật Luật kết hợp Độ tin cậy conf (X Y)
2.4 Các cách tiếp cận khai phá tập mục thường xuyên
Bài toán khai phá tập mục thường xuyên có thể chia thành hai bài toán nhỏ: tìm các tập mục ứng viên và tìm các tập mục thường xuyên Tập mục ứng viên là tập mục mà ta hy vọng nó là tập mục thường xuyên, phải tính độ
hỗ trợ của nó để kiểm tra Tập mục thường xuyên là tập mục có độ hỗ trợ lớn hơn hoặc bằng ngưỡng hỗ trợ tối thiểu cho trước Ta có thể phân chúng theo hai tiêu chí sau :
- Phương pháp duyệt qua không gian tìm kiếm
- Phương pháp xác định độ hỗ trợ của tập mục
Phương pháp duyệt qua không gian tìm kiếm được phân làm hai cách : duyệt theo chiều rộng (Breadth First Search – BFS) và duyệt theo chiều sâu (Depth First Search – DFS)
Duyệt theo chiều rộng là duyệt qua cơ sở dữ liệu gốc để tính độ hỗ trợ của tất cả các tập mục ứng viên có (k-1) mục trước khi tính độ hỗ trợ của các
Trang 36tập mục ứng viên có k mục Với cơ sở dữ liệu có n mục dữ liệu, lần lặp thứ k
phải kiểm tra độ hỗtrợ của tất cả !
!( )!
k n
n C
Phương pháp xác định độ hỗ trợ của tập mục X được chia làm hai cách : cách thứ nhất là đếm số giao tác chứa X trong cơ sở dữ liệu và cách thứ hai là tính phần giao của các tập chứa định danh của các giao tác chứa X
Đã có rất nhiều thuật toán tìm tập mục thường xuyên được công bố, ta
có thể phân chúng theo theo hình 2.1 như sau:
Hình 2.1: Phân loại các thuật toán khai phá tập mục thường xuyên
2.5 Các thuật toán điển hình khai phá tập mục thường xuyên
Phần tiếp sau mô tả chi tiết nội dung hai thuật toán tiêu biểu: Thuật toán Apriori tiêu biểu cho phương pháp sinh ra các tập mục ứng viên và kiểm tra độ hỗ trợ của chúng; Thuật toán FP- Growth, đại diện cho phương pháp
Đếm
Trang 37không sinh ra tập mục ứng viên, cơ sở dữ liệu được nén lên cấu trúc cây, sau
đó khai phá bằng cách phát triển dần các mẫu trên cây này
2.5.1 Thuật toán Apriori
Apriori là thuật toán khai phá tập mục thường xuyên do R Agrawal và
R Srikant đề xuất vào năm 1993 Thuật toán Apriori còn là nền tảng cho việc phát triển nhiều thuật toán khai phá tập mục thường xuyên khác về sau
Giả sử các mục dữ liệu trong mỗi giao tác được lưu theo trật tự từ điển Thuật toán sử dụng các ký hiệu sau đây:
Ck
Tập các k-tập mục ứng viên (các tập mục thường xuyên tiềm năng) Mỗi phần tử của tập này có 2 trường:
i) Tập mục (itemsets) ii) Độ hỗ trợ (count)
Ý tưởng chính của thuật toán như sau: sinh ra các tập mục ứng viên từ các tập mục thường xuyên ở bước trước, sử dụng kỹ thuật “tỉa” để bỏ đi những tập mục ứng viên không thoả mãn ngưỡng hỗ trợ cho trước Cơ sở của
kỹ thuật này là tính chất Apriori: Bất kỳ tập con nào của tập mục thường xuyên cũng phải là tập mục thường xuyên Vì vậy các tập mục ứng viên gồm
k mục có thể được sinh ra bằng cách kết nối các tập mục thường xuyên có 1) mục và loại bỏ tập mục ứng viên nếu nó có chứa bất kỳ một tập con nào không phải là thường xuyên
Trang 38(k-Thuật toán duyệt cơ sở dữ liệu nhiều lần Mỗi lần duyệt, thuật toán thực hiện hai bước: bước kết nối và bước tỉa Trong lần lặp thứ k, thuật toán nối hai (k-1)-tập mục để sinh ra k-tập mục, sử dụng tính chất Apriori để tỉa các tập ứng viên Bước nối và bước tỉa như sau:
* Bước kết nối (tìm Ck): Tập các k-tập mục ứng viên Ck được sinh ra bởi việc kết nối Lk-1 với chính nó Hai tập mục L1 và L2 của Lk-1 được nối nếu chúng có (k-2) mục dữ liệu đầu bằng nhau , mục dữ liệu thứ (k-1) của L1 < L2: (L1[1] = L2[1])(L1[2] = L2[2]) …(L1[k-2] = L2[k-2]) (L1[k-1] < L2[k-1])
Dạng của tập mục nhận được bởi nối L1 và L2 là:
L1[1] L2[2] … L1[k-2] L1[k-1] L2[k-1]
*Bước tỉa: Tập Ck chứa tập Lk, tức là tất cả các k-tập mục thường xuyên đều thuộc tập Ck Tập Ck có thể là rất lớn dẫn đến khối lượng tính toán lớn Thuật toán áp dụng tính chất Apriori để rút gọn tập Ck Nếu có một (k-1)
- tập mục con nào đó của k- tập mục ứng viên mà không có mặt trong Lk-1 thì ứng viên đó không thể là thường xuyên, có thể loại bỏ khỏi Ck Việc kiểm tra các (k-1) - tập mục con có thể thực hiện nhanh bởi duy trì một cây băm của tất cả các tập mục thường xuyên đã tìm thấy
Thuật toán Apriori ( tìm các tập mục thường xuyên)
Input: Cơ sở dữ liệu DB, ngưỡng độ hỗ trợ minsup
Output: Tập các tập mục thường xuyên L trong DB
Trang 39(4) For (each T DB) do begin
(5) C= subset(Ck,T) ; // Các tập mục ứng viên chứa trong T
Trang 40Ví dụ 2.4: minh hoạ thuật toán Apriori
Ta minh họa thực hiện thuật toán Apriori trên cơ sở dữ liệu cho trong bảng 2.9 với minsup=50%, tƣ́c là xuất hiện ít nhất 2 lần
Bảng 2.9: CSDL giao tác minh hoạ cho thuật toán Apriori
TID Các mục dữ liệu T1 a, c, d
T2 b, c, e T3 a, b, c, e T4 b, e
- Duyệt CSDL lần thứ nhất: tính độ hỗ trợ cho các 1-tập mục đƣợc kết quả nhƣ sau: