Luật kết hợp mờ là một trong những phương pháp khai phá dữ liệu có hiệu quả Nội dung luận văn gồm các chương sau: Chương 1: Tổng quan về khai phá dữ liệu Chương này trình bày khái quát v
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI
T R Ư Ờ N G Đ Ạ I H Ọ C C Ô N G N G H Ệ• • •
Pham T hi H oa Nam• •
KHAI PHÁ DỮ LIỆU LUẬT KẾT HỢP MỜ
VÀ ỨNG DỤNG CHO BÀI TOÁN KHAI PHÁ
D ử LIỆU CƯỚC INTERNET
Ngành : Công nghệ thông tin
Ma số: 1.01.10
LUẬN VĂN THẠC s ĩ
NGƯỜI HƯỚNG DÃN KHOA HỌC:
PGS.TS NGUYỄN THANH THUY
Hà Nội - 2007
Trang 2MỤC LỤC
MỞ ĐẦU .7
Chương 1 TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU 7
1.1 Khái niệm cơ bản 7
1.1.1 Mục tiêu của khai phá dữ liệu 7
1.1.2 Định nghĩa khai phá dữ liệu 8
1.1.3 Các dạng dữ liệu có thể khai phá dữ liệu.[l][3] 8
1.1.4 Quá trình khai phá dữ liệu 9
1.1.4.1 Các bước chính trong quá trình khai phá 9
1.1.4.2 Các thành phần của giải thuật khai p h á 9
1.1.4.3 Hướng tiếp cận cơ bàn và kỹ thuật áp dụng trong quá trình khai phá 10
1.1.4.4 ứng dụng của khai phá dữ liệu 11
1.2 Phương pháp khai phá dữ liệu 12
1.2.1 Một số phương pháp khai phá dữ liệu phổ biến [1][3] 12
1.2.1.1 Cây quyết định và luật 12
1.2.1.2 Phương pháp suy diễn và quy nạp 12
1.2.1.3 Phát hiện các luật kết h ợ p 13
1.2.1.4 Phân nhóm và phân đoạn 14
1.2.1.5 M ạngnơron 15
1.2.1.6 Giải thuật di truyền 16
1.2.2 Phân loại các hệ thống khai phá dữ liệu 16
1.2.3 Những vấn đề quan tâm trong hệ thống khai phá dữ liệu và lựa chọn các kỹ thuật khai phá 17
Chương 2 KHAI PHÁ DỮ LIỆU BẢNG LUẬT KẾT HỢP 20
2.1 Ý nghĩa của ỉuật kết hợp[5] 20
2.2 Phát biểu bài toán [1][5] 21
2.3 Một số khái niệm cơ bản và các pha thực hiện.[3][4][5] 22
2.4 Một số tính chất của tập mục phổ biến và luật kết h ợ p 24
2.4.1 Một số tính chật của tập mục phổ biến 24
2.4.2 Một số tính chất của luật kết h ợ p 25
2.4.3 Các loại luật kết họp [5][6][8] 26
2.5 Các thuật toán khai phá dữ liệu nhờ luật kết hợp 27
2.5.1 Khai phá luật kết hợp nhị phân đơn chiều tò cơ sở dữ liệu tác v ụ 27
2.5.1.1 Thuật toán Apriori tìm tập mục phổ biến sử dụng phương pháp sinh các ứng cử [5] 27 2.5.1.2 Nâng cao hiệu quả thuật toán Apriori [7][8][9] 33
2.5.1.3 Thuật toán sinh các luật kết hợp tò tập mục phổ biến 35
2.5.1.4 Khai phá tập mục phổ biến không sinh ứng cử [ 3 ] 38
2.5.2 Khai phá luật ket hợp định lượng [6] 44
2.5.3 Khai phá luật kết hợp đa mức [6] 45
2.5.3.1 Luật kết họp đa m ức 45
2.5.3.2 Các cách tiep cận khai phá luật kết hợp đa m ức 45
2.5.4 Khai phá luật kết hợp đóng 46
2.5.4.1 Tập mục phổ biến đóng 47
2.5.4.2 Sinh luật! 50
L Ờ I C Ả M Ơ N 3
Trang 32.5.4.3 Thuật toán CHARM [8] 51
Chương 3 KHAI PHÁ DỮ LIỆU BANG LUẬT KÉT HỢP M Ờ 54
3.1 Khái niệm về tập mờ (Fuzzy Sets), logic mờ và hệ mờ 54
3.1.1 Tập mờ [2], .54
3.1.2 Các phép toán cơ bản trên tập mờ [2] 56
3.1.2.1 Phép phủ định 56
3.1.2.2 Phép hội ’ 56
3.1.2.3 Phép tuyển 57
3.1.2.4 Luật De Morgan 57
3.1.2.5 Phép kéo theo 57
3.1.3 Áp dụng tập mờ để rời rạc hóa dữ liệu và các ưu điểm 58
3.2 Các luật kết hợp mờ [3] [11] 59
3.3 Các thuật toán khai phá luật kết hợp mờ 63
3.4 Luật kết hợp mờ ở dạng phủ định 68
3.5 Luật kết hợp mờ với thuộc tính được đánh trọng số [5][6][11] 68
3.6 Tìm các luật thật sự có ích [3] 69
3.6.1 Phương pháp dùng quy luật loại bỏ luật thừa 69
3.6.2 Phương pháp tìm luật đơn giản 70
3.6.3 Phương pháp tìm luật mới lạ dựa trên tri thức đã biết 70
3.6.4 Chuyển iuật kết hợp mờ về luật kết hợp thuộc tính s ố 72
Chương 4 ỨNG DỤNG LUẬT KẾT HỢP MỜ CHO BÀI TOÁN KHAI PHÁ DỮ LIỆU CƯỚC INTERNET 74
4.1 Nguồn dữ liệu cuớc Internet 74
4.2 Cài đặt hệ thống khai phá dữ liệu cước Internet 75
4.2.1 Các bước tiến hành xây dựng hệ thống khai phá dữ liệu cước Internet 75
4.2.2 Giao diện hệ thống khai phá dữ liệu cước Internet 80
4.2.2.1 Hệ thống hàm chuẩn 80
4.2.2.2 Mờ hoá dữ liệu và sinh luật kết hợp m ờ 81
4.2.2.3 Tìm luật có ích 87
KẾT LUẬN 89
Trang 4Đầu tiên tôi xin gửi lời cảm ơn sâu sắc nhất đến thầy giáo, cán bộ hướng dẫn khoa học PGS.TS Nguyễn Thanh Thủy, người đã truyền cho tôi cảm hứng về đề tài,
về phương pháp nghiên cứu khoa học, đã giảng dạy, chỉ bảo hướng dẫn tận tình trong suốt thòi gian qua
Tôi xin bầy tỏ lòng biết ơn sâu sắc đến tất cả các thầy cô giáo ở Trường Đại học Công nghệ, Viện công nghệ thông tin đã giảng dạy, truyền đạt cho tôi các kiến thức trong suốt 3 năm qua
Cuối cùng tôi xin chân thành cảm ơn các bạn học viên lớp K10T3, các đồng nghiệp, gia đình đã giúp đỡ, động viên tôi trong suốt thời gian qua
Hà nội, ngày 23 tháng 10 năm 2007
Học viên
I
Pham Thi Hoa Nam • •
LỜI CẢM ƠN
Trang 540 74 77 79 80 80 81 81 82 82 83 83 84 84 85 85
86 86
87 87 88
DANH MỤC CÁC HÌNH VẼ, ĐÒ THỊ
Ví dụ cây FP-tree với minsup=20%
Mô hình vận hành hệ thống (theo quy trình đấu nối và khai thác dịch vụ) Mô hình tổng quan hệ thống khai phá dữ liệu:
Mô hình cơ sở dữ liệu quan hệ
Loại hàm thuộc
Hàm thuộc và tham sổ cho mỗi hàm thu ộ c
Tập mờ và thuộc tính gốc của n ó
Giao diện thực hiện Mờ hoá dữ liệu và cơ sở dữ liệu cước g ố c
Cơ sở dữ liệu sau khi thực hiện mờ h o á
Sinh tập phổ biến sử dụng toán tử T-norm - Tích đại s ổ
Sinh tập phổ biến sử dụng toán tử T-norm - Phép lấy m in
Sinh tập phổ biến sử dụng toán tử T-norm - Tích bị chặn
Sinh tập phổ biến sử dụng toán tử T-norm - Tích Drastic
Sinh tập phổ biến sử dụng toán tử T-norm - Phép giao
Sinh tập các luật mờ từ tập phổ biến
Diễn giải luật
Sinh tập luật bằng luật phủ đ ịn h
Sinh luật kết hợp với các thuộc tính được đánh trọng số
Tìm luạt mới lạ dựa trên tri thức đã biết
Tìm luật đom giản
Loại bỏ luật thừ a
Trang 6Chính vì vậy các nhà khoa học cho rằng chúng ta đang sổng trong xã hội giàu thông tin nhưng nghèo tri thức Vì thế đòi hỏi phải nghiên cứu phát triển các
phương pháp khai phá, phát hiện ra những thông tin, tri thức hữu ích bị che giấu trong đống “ dữ liệu” để phục vụ các công việc của nhà quản lý, các chuyên gia, chuyên viên
M ục tiêu của bài toán khai phá dữ liệu là tìm ra thông tin, tri thức (những mối quan hệ hay sự phụ thuộc giữa các đại lượng (các biến) trong kho tàng dữ liệu (về một lĩnh vực nào đó)
Chúng ta dễ dàng nhận thấy, mỗi con người dù là người nước nào đều tư duy bằng ngôn ngữ và như vậy tri thức trong đầu mỗi người đều được biểu thị qua ngôn ngữ Vì ngôn ngữ hàm chứa các thông tin mờ cho nên việc ứng dụng phương pháp luận mờ ừ ong việc biểu diễn, xử lý, xây dựng các hệ tri thức là tự nhiên và như vậy mới thực sự đi vào giải quyết vấn đề một cách bản chất Chính vì vậy các mô hình
m ờ (fuzzy) được sừ dụng để mô phỏng, phản ánh, giải quyết các bài toán liên quan đến khía cạnh định tính của tri thức
Trang 7Luật kết hợp mờ là một trong những phương pháp khai phá dữ liệu có hiệu quả
Nội dung luận văn gồm các chương sau:
Chương 1: Tổng quan về khai phá dữ liệu
Chương này trình bày khái quát về khai phá dữ liệu, các phương pháp khai phá, các lĩnh vực ứng dụng
Chương 2: Khai phá dữ liệu bằng luật kết họp
Chương này trình bày các phương pháp khai phá dữ liệu bằng luật kết hợp từ thuật toán cơ bản đến các thuật toán cải tiến Đồng thời cũng trình bày một số vấn
đề cơ bản của luật kết họp đa mức, định lượng, đóng
Chương 3: Khai phá dữ liệu bằng luật kết hợp mờ
Chương này trình bày khái niệm về tập mờ, các phép toán cơ bản trên tập mờ, các luật kết hợp mờ, cách tìm kiếm các luật thực sự có ích
Chương 4: ứ n g dụng luật kết hợp mờ cho bài toán khai phá dữ liệu cước InternetTrong chương này trình bày bài toán, xác định nhiệm vụ khai phá dữ liệu, phân tích và thiết kế các môđul, giao diện chương trình Chương trình được xây dựng với mục đích thử nghiệm để đánh giá kết quả
Trang 8C h ư ơ n g 1 TỔNG QUAN VÈ KH AI PHÁ D Ữ LIỆU
1.1 Khái niêm cơ bản
1.1.1 Mục tiêu của khai phá dữ liệu
Trong những thập niên gần đây, lượng thông tin được lun trữ trên các thiết bị không ngừng tăng lên Sự tích lũy dữ liệu này xảy ra với một tốc độ bùng nổ Người
ta dự đoán rằng, lượng thông tin trên toàn cầu tăng khoảng gấp đôi sau hai năm đồng thời số lượng cũng như kích cỡ của cơ sở dữ liệu cũng tăng lên nhanh chóng.Trong lĩnh vực kinh doanh, những nhà quản lý đang ngập trong dữ liệu nhưng việc tìm ra tri thức và thông tin hữu ích thì lại rất khó Lượng dữ liệu khổng lồ này thực sự đã trở thành nguồn tài nguyên rất giá trị bởi thông tin là yểu tố then chốt trong mọi hoạt động thương mại vì thông tin ừ ợ giúp người điều hành và nhà quản
lý có cái nhìn sâu sắc, chính xác, khách quan trước khi ra quyết định Việc khai thác những thông tin tiềm ẩn mang tính dự đoán từ những cơ sở dữ liệu lớn là mục tiêu chính của khai phá dữ liệu - một hướng tiếp cận mới với khả năng giúp các đơn vị,
tổ chức chú trọng vào những thông tin có giá trị, ý nghĩa từ những tập bợp dữ liệu lớn mang tính lịch sử Những công cụ khai phá dữ liệu có thể dự đoán những xu hướng tương lai do đó cho phép các tổ chức, doanh nghiệp ra những quyết định kịp thời được định hướng bởi tri thức mà khai phá dữ liệu đem lại Sự phân tích dữ liệu
m ột cách tự động và mang tính dự báo của khai phá dữ liệu khiến nó có ưu thế hơn hẳn so với sự phân tích thông thường dựa trên những sự kiện trong quá khứ của các
hệ hỗ trợ ra quyết định truyền thống trước đây Công cụ khai phá dữ liệu cũng có thể trả lời câu hỏi trong lĩnh vực kinh doanh mà trước đây được xem là tốn nhiều thời gian để xử lý
Với tất cả các ưu thế trên, khai phá dữ liệu đã chứng tỏ được tính hữu dụng của
nó trong môi trường kinh doanh, quản lý phức tạp ngày nay Giờ đây khai phá dữ liệu đã và đang trở thành một trong những hướng nghiên cứu chính của lĩnh vực khoa học m áy tính và công nghệ tri thức Phạm vi ứng dụng ban đầu của khai phá
dữ liệu chỉ là trong lĩnh vực thương mại và tài chính Nhưng ngày nay, khai phá dữ
Trang 9liệu đã được ứng dụng rộng rãi trong các lĩnh vực khác như: sinh học, y học, viễn
1.1.2 Định nghĩa khai phá dữ liệu
Có thể hiểu sơ lược rằng khai phá dữ liệu là quá trình tìm kiếm thông tin hữu ích, tiềm ẩn và mang tính dự báo trong các cơ sở dữ liệu lớn Như vậy, quá trình này còn
có thể được gọi là khám phá tri thức Nhiều nhà khoa học đồng ý với nhau rằng hai thuật ngữ khám phá tri thức và khám phá dữ liệu là tương đương với nhau và có thể thay thế cho nhau V ì họ lý giải rằng mục đích chính của quá trình khám phá tri thức là thông tin có ích, nhưng đối tượng mà chúng ta xừ lý rất nhiều trong quả trình đó lại chính là dữ liệu Mặt khác, khi chia các bước trong quá trình khám phá tri thức, nhiều nhà khoa học khác cho rằng khám phá dữ liệu chỉ là một bước trong quá trình khám phá tri thức
1.1.3 Các dạng dữ liệu có thể khai phá dữ Iiệu.[l][3]
Có nhiều dạng dữ liệu khác nhau có thể áp dụng được các phương pháp khai phá
dữ liệu Sau đây liệt kê một số loại cơ sở dữ liệu phổ biến:
Cơ sở dữ liệu quan hệ (relational database): là các cơ sở dữ liệu tác nghiệp được
tổ chức theo mô hình dữ liệu quan hệ H ầu hết các hệ quản trị cơ sở dữ liệu đều hỗ trợ dạng cơ sở dữ liệu này như: Oracle, IBM DB2, MS SQL Server, MS A ccess,
Cơ sở dữ liệu đa chiều (multimension structures, data warehouses, data mart): là kho dữ liệu được tập hợp, chọn lọc từ nhiều nguồn dữ liệu khác nhau Dạng dữ liệu
này mang tính lịch sử (tức là có tình thời gian) và chủ yếu phục vụ cho quá trình
phân tích cũng như khai phá tri thức nhằm hỗ trợ cho việc ra quyết định
Cơ sở dữ liệu dạng giao dịch (transactional databases): là dạng cơ sở dữ liệu tác
nghiệp nhưng các bản ghi thường là các giao dịch Dạng dữ liệu này thường phổ biến trong lĩnh vực thương mại và ngân hàng
Cơ sở dữ liệu quan hệ - hướng đổi tượng (object-relational databases’): là dạng
cơ sở dữ liệu lai giữa hai mô hình quan hệ và hướng đối tượng
Trang 10C ơ s ở d ữ liệu không gian vù thời gian (spatial, tem poral a n d tim e-series data): là dạng dữ liệu có tích hợp thuộc tính về không gian (ví dụ như dữ liệu về bản đồ) hoặc thời gian (ví dụ như dữ liệu về thị trường chứng khoán).
Cơ sở dữ liệu đa phương tiện (multimedia databases): là dạng dữ liệu âm thanh
(audio), hình ảnh (image), phim ảnh (video), Text và W W W , Dạng dữ liệu này hiện đang rất phổ biến trên Internet
1.1.4 Quá trình khai phá dữ liệu
1.1.4.1 Các bước chính trong quá trình khai phá
Quá trình khai phá dữ liệu thực hiện các bước chính sau:
Xác đinh nhiệm vụ: Xác định chính xác các vấn đề cần giải quyết
Xác định các dữ liệu liên quan: dùng để xây dựng giải pháp giải quyết nhiệm vụ
bài toán
Thu nhập các dữ liệucó liên quan với nhau và xừ lý chúng thành dạng nào đỏ
sao cho giải thuật khai phá dữ liệu có thể hiểu được
Chọn thuật toán khai phá dữ liệu thích hợp và thực hiện việc khai phá nhằm tìm
được các m ẫu có ý nghĩa dưới dạng biểu diễn tương ứng với các ý nghĩa đó
1.1.4.2 Các thành phần của giải thuật khai phá
Q uá trình khai phá dữ liệu là quá trình phát triển mẫu trong đó giải thuật khai phá
dữ liệu tìm kiếm mẫu đáng quan tâm theo dạng xác định các luật, cây phân lớp, hồi quy, phân n h ó m , Giải thuật khai phá dữ liệu gồm 3 thành phần chính:
Biểu diễn mô hình Mô hình được biểu diễn bằng một ngôn ngữ sao cho có thể
khai phá được N ấu mô hình có sự mô tả hạn chế thì sẽ không thể học được hoặc sẽ
không thể có các mẫu tạo ra Nếu diễn tả mô hình càng lớn thì càng làm tăng mức
độ nguy hiểm do bị học quá nhiều và làm giảm đi khả năng dự đoán các dữ liệu chưa biết Hơn nữa, việc tìm kiếm sẽ càng trờ nên phức tạp hơn và việc giải thích
mô hình cũng khó khăn hơn
Trang 11Đánh giá mô hình: Đánh giá xem m ột mẫu có đáp ứng được các tiêu chuẩn của
quá trình phát hiện ừi thức hay không Việc đánh giá mô hình được thực hiện thông qua kiểm fra dữ liệu, đổi với nhiệm vụ dự đoán thì việc đánh giá mô hình ngoài kiểm tra dữ liệu còn dựa trên độ chính xác dự đoán mà việc đánh giá độ chính xác
dự đoán dựa trên đánh giá chéo
Tìm kiểm mô hình'. Bao gồm 2 thành phần: tìm kiếm tham số và tìm kiểm mô hình
Tìm kiếm tham số: Giải thuật cần tìm các tham số để tối ưu hóa các tiêu chuẩn đánh giá mô hình với các dữ liệu quan sát được và với một miêu tả mô hình đã định.Tìm kiếm mô hình: Quá trình này xảy ra giống như một vòng lặp qua phương pháp tìm kiếm tham số Khi miêu tả, mô hình bị thay đổi tạo nên một họ các mô hình thì với mỗi một miêu tả mô hình phương pháp tìm kiếm tham số được áp dụng
để đánh giá chất lượng mô hình Các phương pháp tìm kiếm mô hình thường sử dụng các kỹ thuật tìm kiếm kinh nghiệm bởi kích thước của không gian các mô hĩnh
có thể ngăn cản các tìm kiếm tổng thể
1.1.4.3 Hướng tiếp cận cơ bản và kỹ thuật áp dụng trong quá trình khai phá
Vấn đề khai phá dữ liệu có thể được phân chia theo lớp các hướng tiếp cận chính sau:
Phân lớp và dự đoản (classification & prediction): xếp một đối tượng vào một trong những lớp đã biết Ví dụ: phân lớp vùng địa lý theo dữ liệu thời tiết Đối với hướng tiếp cận này thường áp dụng một số kỹ thuật như học máy (machine
learning), cây quyết định (decision tree), mạng nơron (nơron network),., Hay lớp bài toán này còn được gọi là học có giám sát (supervised learning)
Phân cụm (clustering/segmentation): sắp xếp các đối tượng theo từng cụm
nhưng số lượng và tên các cụm chưa biết trước Lớp bài toán phân cụm còn được gọi là học không giám sát (unsupervised learning)
Trang 12Luật kết hợp (association rules)-, là dạng luật biểu diễn tri thức ở dạng khá đơn
giản Ví dụ: “80% sinh viên đăng ký học Cơ sở dữ liệu thì có tới 70% trong số họ đăng ký học Phân tích thiết kế hệ thống thông tin” Hướng tiếp cận này được ứng
dụng nhiều trong lĩnh vực kinh doanh, y học, tin sinh học, giáo d ụ c,
Khám phá chuỗi theo thời gian (sequential / temporal patterns): Cũng 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
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 chúng có tính dự đoán cao
Mô tả khái niệm (concept description & summarization)', lớp bài toán này thiên
về mô tả, tổng hợp và tóm tắt khái niệm Ví dụ: tóm tắt văn bản
1.1.4.4 ứ n g dụng của khai phá dữ liệu
Khai phá dữ liệu là một lĩnh vực mới phát triển nhưng thu hút được nhiều nhà nghiên cứu nhờ vào những ứng dụng thực tiễn của nó Sau đây là một số lĩnh vực ứng dụng điển hình:
Phân tích dữ liệu và hỗ írợ ra quyết định
Sinh học: tìm kiếm, đối sánh các hệ gen và thông tin di truyền, mối liên hệ giữa một số gene và một số bệnh di truyền,
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 cổ phiếu
Bảo hiểm, Giáo dục
Điều trị trong y học: Mối liên hệ giữa triệu chứng, chuẩn đoán và phương pháp điều trị
Phân lớp văn bản, tóm tắt văn bản và phân lớp các trang Web
Trang 131.2 P hương p h áp khai p h á d ữ liệu
1.2.1 Một số phương pháp khai phá dữ liệu phổ biến [1][3]
1.2.1.1 Cây quyết định và luật
Cây quyết định'. Cây quyết định là một phương pháp 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 thuộc tính, các cạnh được gán các giá ứị có thể của các thuộc tính, các lá miêu 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 giá trị của các thuộc tính của đối tượng tới
Tạo luật: Các luật được tạo ra nhằm suy diễn cho một số mẫu dữ liệu có ý nghĩa
về mật thổng kê Các iuật có dạng nếu p thì Q, trong đó p là mệnh đề đúng với một
phần dữ liệu trong cơ sở dữ liệu và Q là mệnh đề dự đoán
Cây quyết định là phương pháp dùng trong các bài toán dữ liệu theo một tiêu chuẩn nào đó dựa trên mức độ khác nhau của thuộc tính Cây quyết định và luật có
ưu điểm là hình thức miêu tả đom giản, mô hình suy diễn khá dễ hiểu đối với người
sử dụng Tuy nhiên, giói hạn của nó là miêu tả cây và luật chỉ có thể biểu diễn được một số dạng chức năng và vì vậy giới hạn cả về độ chính xác của mô hình
1.2.1.2 Phương pháp suy diễn và quy nạp
Phương pháp suy diễn: Rút ra thông tin là kết quả logic từ các thông tin nằm
trong cơ sở dữ liệu dựa trên các quan hệ trong dữ liệu Phương pháp suy diễn dựa trên các sự kiện chính xác để suy ra các tri thức mới từ các thông tin cũ Mầu chiết suất được bằng cách sử dụng phương pháp này thường là các luật suy diễn
Phương pháp quy nạp: Các thông tin được suy ra tò cơ sở dữ liệu bằng cách nó
tự tìm kiếm, tạo mẫu và sinh ra tri thức chứ không bắt đầu với các tri thức đã biết trước
Trang 141.2.1.3 Phát hiện các luật kết họp
Các luật kết họrp là một dạng biểu diễn tri thức, hay chính xác là dạng mẫu của hình thành tri thức Phương pháp này nhằm phát hiện ra các luật kết hợp giữa các thành phần dữ liệu trong cơ sờ dữ liệu Một đầu ra của giải thuật khai phá dữ liệu là tập các luật kết hợp tìm được
Cho một lược đồ R = {A!,A2, ,Ap} với các thuộc tính có miền giá trị {0,1} và một quan hệ r trên R Ta gọi một luật kết hợp trên quan hệ r được mô tả như sau: X
=> B với X c R v à B 6 R\x Cho W c R , đặt s(W,r) là tần sổ xuất hiện của w trong r được tính bằng tỉ lệ của các hàng trong r có giá trị 1 tại mỗi cột Khi đó ta định nghĩa tần số xuất hiện và độ tin cậy của luật X => B trong r như sau:
Tần số xuất hiện ơ = s(X u {B},r)
Độ tin cậy 0 =s(X u {B},r) \ s(X,r)Với X gồm nhiều thuộc tính và B là giá trị không cố định
Nhiệm vụ của việc phát hiện các luật kết hợp là phải tìm tất cả các luật X => B sao cho tần số xuất hiện của luật không nhỏ hơn ngưỡng ơ cho trước và độ tin cậy của luật không nhỏ hơn ngưỡng 0 cho trước
Khi thiết kế dữ liệu dùng cho kỹ thuật kết hợp cần lưu ý để giảm thiểu số lượng các thuộc tính đầu vào bởi không gian tìm kiếm các luật sẽ tăng theo hàm mũ của số lượng các thuộc tính đầu vào
Giải thuật tìm các luật kết hợp được bắt đầu bằng việc tìm tất cả các tập thường xuyên xuất hiện Tập thường xuyên xuất hiện lớn hơn ngưỡng tần số được xác định trước Các luật kết hợp sẽ được tạo ra bằng cách ghép dần các tập thuộc tính dựa trên mức độ thường xuyên
Ví dụ: Phân tích cơ sở dữ liệu bán hàng nhận được thông tin về những khách mua các mặt hàng máy tính có khuynh hướng mua phần mềm kế toán trong cùng lần mua được mô tả bởi luật kết họp như sau:
Trang 15“Neu mua máy tính thì mua phần mềm kế toán ”
[Độ hỗ trợ: 30%, Độ tin cậy: 65%]
Phương pháp này có ưu thể cơ bản là đơn giản và dễ hiểu đối với con người Ở ví
dụ trên độ hỗ trợ 30% có nghĩa là: 30% của tất cả các giao dịch được phân tích thì chi ra rằng máy tính và phần mềm kế toán được mua cùng nhau Còn độ tin cậy 65% có nghĩa là: 65% các khách hàng mua máy tính thì cũng mua phần mềm Đặc biệt, các luật kết hợp được coi là đáng quan tâm nếu chúng thoả mãn cả hai ngưỡng
độ hỗ trợ cực tiểu và độ tin cậy cực tiểu Những ngưỡng này thường do người dùng hoặc các chuyên gia trong lĩnh vực xác định
Nhược điểm cơ bản của phương pháp này là việc tăng nhanh chóng khối lượng tính toán và các thông số Tuy nhiên với sự phát triển nhanh chóng và mạnh mẽ của phần cứng thì vấn đề này cũng được khắc phục
1.2.1.4 Phân nhóm và phân đoạn
Kỹ thuật phân nhóm và phân đoạn là những kỹ thuật phân chia dữ liệu sao cho mỗi phần hoặc mỗi nhóm giống nhau theo một tiêu chuẩn nào đó Mối quan hệ thành viên của các nhóm có thể dựa trên mức độ giống nhau của các thành viên và
từ đó xây dựng nên các luật ràng buộc giữa các thành viên trong nhóm Một kỹ thuật phân nhóm khác là xây dựng nên các hàm đánh giá các thuộc tính của các thành phần như là hàm của các tham số của các thành phần Kỹ thuật này được gọi
là kỹ thuật phân hoạch tối ưu
Ví dụ: một trong những ứng dụng của kỹ thuật phân nhóm theo độ giống nhau là
cơ sở dữ liệu khách hàng để phân nhóm khách hàng theo các tham số và các nhóm thuế có được khi thiết lập biểu thuế bảo hiểm
Mau đầu ra của quá trình khai phá dữ liệu sừ dụng kỹ thuật này là các tập mẫu chứa dữ liệu có chung những tính chất nào đó được phân tách từ cơ sở dữ liệu Khi các mẫu được thiết lập, chúng có thể được sử dụng để tái tạo các tập dữ liệu dễ hiểu
Trang 16hơn, đồng thời cũng cung cấp các nhóm dữ liệu cho các hoạt động cũng như công việc phân tích Đối với cơ sở dữ liệu lớn, việc lấy ra các nhóm này là rất quan trọng.
1.2.1.5 Mạng nơron
Mạng nơron là một phương pháp khai phá dữ liệu phát triển trên cấu trúc toán học với khả năng học trên mô hình hệ thần kinh con người
Mạng nơron có thể đưa ra ý nghĩa từ các dữ liệu phức tạp hoặc không chính xác
và có thể được sừ dụng để chiết suất các mẫu và phát hiện xu hướng quá phức tạp
mà con người cũng như các kỹ thuật máy tính khác không thể phát hiện được
Một trong những ưu điểm phải kể đến các mạng nơron là khả năng tạo ra các mô hình dự đoán do có độ chính xác cao, có thể áp dụng được cho nhiều các bài toán khác nhau đáp ứng các nhiệm vụ đặt ra của khai phá dữ liệu như phân lớp, phân nhóm, mô hình hoá, dự báo,
Mau chiết suất bằng mạng nơron được thể hiện ở các nút đầu của mạng Mạng nơron sử dụng các hàm số chứ không sử dụng các hàm biểu tượng để tính mức tích cực của các nút đầu ra và cập nhật các trọng số của nó
Đặc điểm của mạng nơron là không cần gia công dữ liệu nhiều trước khi bắt đầu quá trình học như các kỹ thuật khác Tuy nhiên để có thể sử dụng mạng nơron có hiệu quả cần phải xác định các yếu tố khi thiết kế mạng như:
Kiến trúc mạng là gì?
Hàm học cần thực hiện?
Mạng cần bao nhiêu nút?
Khi nào thì việc học dừng?
Ngoài ra còn có rất nhiều bước quan trọng cần phải làm để tiền xử lý dữ liệu trước khi đưa vào mạng nơron để mạng có thể hiểu được
Trang 17Mạng nơron được đóng gói với những thông tin trợ giúp của các chuyên gia đáng tin cậy và được họ bảo đảm các mô hình này làm việc tốt Sau khi học, mạng có thể được coi là một chuyên gia trong lĩnh vực thông tin mà nó vừa được học.
1.2.1.6 Giải thuật di truyền
Đây là phương pháp không chỉ phục vụ phát hiện tri thức mà còn phục vụ rất nhiều bài toán khác Ví dụ bài toán tối ưu hoá hoặc lập lịch Tư tường của thuật toán
là áp dụng quy luật của sự chọn lọc tự nhiên Người ta mô phỏng tập họp dữ liệu ban đầu bằng ký tự nhị phân và gọi là những quần thể khởi tạo Bằng các thao tác lai ghép, đột biến chúng ta biến đổi quần thể gene trong quần thể là không thay đổi Một hàm thích nghi được xây dựng để xác định mức độ thích nghi của quần thể theo các giai đoạn Quá trình tiến hoá làm cho các quần thể thích nghi ngày càng cao v ề mặt lý thuyết giải thuật di truyền cho ta lời giải tối ưu toàn cục (Khác với phương pháp mạng nơron) Tuy nhiên, người ta cũng hạn chế lời giải với một mức
độ thích nghi nào đó đề hạn chế số lượng các bước xây dựng quần thể
Nói theo nghĩa rộng thì giải thuật di truyền mô phỏng lại hệ thống tiến hoá trong
tự nhiên, chính xác hơn là các giải thuật chỉ ra tập các cá thể được hình thành, được ước lượng và biến đổi như thế nào Ví dụ như xác định xem làm thế nào để lựa chọn các cá thể tạo giống và lựa chọn các cá thể nào để loại bỏ
Giải thuật di truyền là một giải thuật tối ưu hoá, nó được sử dụng rất rộng rãi trong việc tối ưu hoá các kỹ thuật khai phá dữ liệu trong đó có kỹ thuật mạng nơron
Sự liên hệ của nó với các giải thuật khai phá dữ liệu là ở chỗ tối ưu hoá là cần thiết
để xác định các giá trị tham số nào tạo ra các luật tốt nhất
1.2.2 Phân loại các hệ thống khai phá dữ liệu
Phân loại khai thác dữ liệu dựa trên các tiêu chí khác nhau
Phân loại dựa trên kiểu dữ liệu được khai thác: Cơ sở dữ liệu quan hệ, kho dữ liệu, cơ sở dữ liệu giao tác, cơ sở dữ liệu hướng đối tượng, cơ sở dữ liệu không gian, cơ sở dữ liệu đa phương tiện, cơ sở dữ liệu văn bản,
Trang 18Phân loại dựa trên dạng tri thức được khám phá: tóm tắt và mô tả, luật kết hợp,
phân lớp, phân cụm, khai phá chuỗi,
Phân loại dựa trên lĩnh vực được áp dụng: Thương mại, viễn thông, tài chính, y học, web,
Phân loại dựa trên kỹ thuật được áp dụng: Phân tích trực tuyến (Online Analytial Processing - OLAP), học máy (cây quyết định, mạng nơron nhân tạo, K-Means, giải thích di truyền, máy vector hỗ trợ - SVM, tập thô, tập mờ, ) Thông thường sử dụng tập mờ là thích hợp cho việc tìm ra và hiểu được sự liên quan của các mô hình
dữ liệu chưa đầy đủ, tạp nhiễu, thông tin hỗn tạp và tác động của con người, và tò
đó có thể cung cấp giải pháp xấp xỉ nhanh hơn Mạng nơron có khả năng tổng quát, không giới hạn, mạnh và học tốt trong môi trường dữ liệu giàu (data - rich), thuật toán di truyền cung cấp khả năng tìm các thuật toán để chọn mẫu từ các dữ liệu hỗn tạp dựa trên một số hàm tiêu chuẩn/ mục tiêu thường dùng Tập thô thì phù hợp cho tìm ra các mẫu khác nhau của tình trạng không rõ ràng trong dữ liệu Một số yêu cầu khai thác dữ liệu cần phải áp dụng phương pháp tính toán mềm (Tính toán mềm
là sự kết hợp của các phương pháp logic mờ, thuật toán di truyền)
1.2.3 Những vấn đề quan tâm trong hệ thống khai phá dữ liệu và lựa chọn các
kỹ thuật khai phả
Một số hướng nghiên cứu của khai thác dữ liệu hiện nay:
OLAM (Online Analytical Mining): Là sự tích hợp giữa cơ sở dữ liệu, kho dữ liệu, và khai thác dữ liệu Một số hệ cơ sở dữ liệu như Oracle MS SQL Server đã tích hợp tính năng xây dựng kho dữ liệu và phân tích trực tuyến (OLAP) Những tính năng này được hỗ trợ dưới dạng các công cụ đi kèm và người sử dụng phải mua nếu cần sừ dụng Các nhà nghiên cứu trong lĩnh vực cơ sở dữ liệu còn muốn có thêm sự tích hợp giữa cơ sở dữ liệu, kho dữ liệu, và khai thác dữ liệu Khám phá được nhiều tri thức khác nhau từ các kiểu dữ liệu khác nhau Tính chính xác và hiệu quả, khả năng mở rộng và tích hcrp, xử lý dữ liệu bị nhiễu không đầy đủ và tính có ích của tri thức được khám phá v ấn đề song song hóa và phân tán quá trình khai
Trang 19thác dữ liệu Vấn đề ngôn ngữ truy vấn trong Khai thác dữ liệu phải cung cấp cho người sử dụng một ngôn ngữ thuận tiện, gần gũi tương tự như SQL trong Cơ sờ dữ liệu quan hệ Biểu diễn các tri thức khai thác được sao cho trực quan và gần gũi với người sử dụng để người sử dụng tri thức có hiệu quả hơn.
Hiện nay người ta vẫn chưa đưa ra được một tiêu chuẩn nào trong việc quyết định sử dụng phương pháp nào vào trong trường hợp nào thì hiệu quả
Hầu hết các kỹ thuật khai phá dữ liệu đều là mới trong các lĩnh vực Hơn nữa lại
có rất nhiều kỹ thuật được sử dụng cho nhiều bài toán khác nhau Vì vậy câu hỏi dùng kỹ thuật nào để khai phá không phải là đơn giản M ỗi phương pháp đều có những điểm m ạnh và điểm yếu riêng của nó, nhưng đa số các điểm yếu đều có thể khắc phục được
Vậy phải làm thế nào để áp dụng kỹ thuật một cách đơn giản nhất, dễ sử dụng, để không cảm thấy sự phức tạp vốn có của kỹ thuật đó và vấn đề là tất cả các mẫu tìm được đều đáng quan tâm? Đây chính là vấn đề quan trọng đối với một hệ thống khai phá dữ liệu Hệ thống khai phá có thể sinh ra hàng nghìn mà thậm chí có thể hàng triệu mẫu hoặc luật, do vậy với câu hỏi trên thì câu trả lời là: Chỉ có một phần nhỏ trong các mẫu hay các luật là đảng quan tâm và hữu ích với người sử dụng
Có một vài câu hỏi thường đặt ra đối vófi một hệ thống khai phá dữ liệu là:
Cái gì tạo ra các m ẫu quan tâm?
Hệ thống khai phá có thể sinh ra được tất cả các mẫu quan tâm không?
Hệ thống khai phá có thể chỉ sinh các mẫu quan tâm không?
Để trả lời các câu hỏi này ta nên quan tâm đến sự gợi ý sau:
Đổi với câu hỏi 1: M au đáng quan tâm nếu: Dễ hiểu đối với con người, hợp lệ hoặc dữ liệu được kiểm tra với độ chắc chắn nào đó, có khả năng có ích, mới lạ
M au cũng là đáng quan tâm nếu nó là giả thiết hợp lệ được người dùng xác nhận
M ầu quan tâm luôn chứa đựng tri thức
Trang 20Có vài độ đo cho các mẫu quan tâm Nó dựa trên cấu trúc của mẫu đã khai phá và thống kê chúng Chẳng hạn độ đo của luật kết hợp dạng X —> Y là độ hỗ trợ và độ tin cậy của luật Cụ thể người ta định nghĩa là xác suất P(X u Y) và xác suất
P(X/Y)
N hìn chung các độ đo này được người dùng điều khiển
Đổi với câu hỏi thứ 2: Có thể tạo ra được tất cả các mẫu đáng quan tâm không?
V ấn đề này liên quan đến tính hoàn thiện của thuật toán khai phá Nó thường không thực hiện được và không có khả năng đối với các hệ thống khai phá dữ liệu để sinh
ra tất các các mẫu có thể có, có thể tồn tại Thay cho điều đó người ta tập trung vào mục tiêu tìm kiếm Ví dụ với Khai phá bằng luật kết hợp, người ta sử dụng các độ
đo có thể đảm bảo khai phá trọn vẹn, có nghĩa là xác định trước ngưỡng độ hỗ trợ
và độ tin cậy nhỏ nhất thì có thể tìm được
Đ ối với câu hỏi thứ 3: Hệ thống khai phá có thể chỉ sinh ra các mẫu cần quan tâm không? Đ ây chính là vấn đề tối ưu trong khai phá dữ liệu, v ấ n đề này là thách thức rất lớn đối với các nhà khoa học trong lĩnh vực khai phá dữ liệu
Trang 21C h ư ơ n g 2 KH AI PHÁ DỮ LIỆU LU Ậ T KÉT HỢP
Khai phá dữ liệu bằng luật kết hợp là một phương pháp quan trọng và phổ biến trong khai phá dữ liệu N ó được ra đòi và phát triển mạnh mẽ trong những năm gần đây Đến nay những nghiên cứu về luật kết hợp tập trung xây dựng thuật toán khai phá luật kết hợp mới, hiệu quả hoặc cải tiến, phát triển các thuật toán để hiệu quả hơn
2.1 Ý nghĩa của luật kết hợp[5]
Luật kết hợp là những luật có dạng như sau:
70% khách hàng mua đường thì mua thêm sữa, 30% giao dịch có mua cả đường lẫn sữa
75% bệnh nhân có hút thuốc lá và sổng ở ven vùng ô nhiễm thì bị ung thư phổi, trong đó 25% số bệnh nhân vừa hút thuốc lá, sống ven vùng ô nhiễm vừa bị ung thư phổi
Ở đây vế trái (tiền đề) của luật là: “M ua đường”, “hút thuốc lá và sống ven vùng
ô nhiễm”, còn “mua sữa” và “ung thư phổi” là vế phải (kết luận) của luật
N hững con số: 30%, 25% là độ hỗ ừ ợ của luật (support - s ố phần trăm giao dịch chứa cả vế trái lẫn vế phải), còn 70% và 75% là độ tin cậy của luật (cofidence - số phần trăm các giao dịch thoả m ãn vế ừái thì cũng thoả mãn vế phải)
Ta thấy tri thức đem lại bởi luật kết hợp ở dạng trên có một sự khác biệt cơ bản
so với thông tin thu được từ các câu lệnh truy vấn dữ liệu thông thường Đó thường
là những tri thức, những mối liên hệ chưa được biết trước và mang tính dự báo đang tiềm ẩn trong dữ liệu N hững tri thức này không đơn giản chỉ là kết quả của các phép nhóm, tính tổng, sắp xếp m à là kết quả của một quá trinh tính toán khá phức tạp và tốn nhiều thời gian
Tuy luật kết hợp là dạng luật khác đơn giản nhưng lại mang rất nhiều ý nghĩa Thông tin mà dạng luật này đem lại là rất đáng kể và hỗ trợ không nhỏ trong quả trình ra quyết định Tìm kiếm được những luật kết hợp “quý hiếm” và mang nhiều
Trang 22thông tin từ cơ sở dữ liệu tác nghiệp là một trong những hướng tiếp cận chính cùa lĩnh vực khai phá dữ liệu Đây chính là một động lực không nhỏ thúc đẩy việc tập trung nghiên cứu của nhiều nhà tin học.
2.2 Phát biểu bài toán [1] [5]
Cho I = {i[,i2, ,in} là tập gồm n mục (thuộc tính)
T - {ti,t2, ,tm} là tập gồm m giao dịch (bản ghi) M ỗi giao dịch được định danh bời TID (Transaction Identification)
N ếu mục i xuất hiện trong giao dịch t thì ta viết (i,t) e ổ
M ột cơ sở dữ liệu D, về mặt hình thức chính là một quan hệ nhị phân ổ như trên,
về ý nghĩa, một sơ sở dữ liệu là một tập các giao dịch, mỗi giao dịch t là một tập mục: t 6 21 (với 21 là tập các tập con của I)
Sau đây là một ví dụ về cơ sở dữ liệu quan hệ (dạng giao dịch):
I={A,C,D,T,W}, T={ 1,2,3,4,5,6} với thông tin về các giao dịch cho ở bảng sau:
Bảng 1: Ví dụ về một cơ sở dữ liệu giao dịch
ĐỊNH DANH CÁC
GIAO DỊCH (TDD)
TẬP MỤC (ITEMSET)
Trang 23X c l được gọi là tập mục (itemset) Độ hỗ trợ (support) của một tập mục X được
ký hiệu s(X) - là phần trăm số giao dịch trong cơ sở dữ liệu chứa X Một tập mục X được gọi là tập mục phổ biến nếu độ hỗ trợ của nó lớn hơn hoặc bằng ngưỡng
minsup nào đó được xác định bởi người sử dụng: s(X) > minsup
Bảng sau đây sẽ liệt kê tất cả các tập mục phổ biến (frequent - itemset) trong cơ
sở dữ liệu cho ờ bảng 1 với minsup bằng 50%
A, D, T, AC, AW, CD, CT, ACW 67%
AT, DW, TW, ACT, ATW, CDW, CTW, ACTW
50%
2.3 M ột số khái niệm cơ bản và các pha thực hiện [3] [4] [5]
Luật kết hợp (Association Rule): Một luật kết hợp là một phát biểu dạng X —» Y,
trong đó X và Y là các tập mục thoả mãn điều kiện: X c I , Y c I , X n Y = 0
Đối với luật kết hợp X -» Y, X gọi là tiền đề, Y được gọi là kết quả của luật
Độ hỗ trợ của một tập mục (itemset): Độ hỗ trợ (Support) của một tập mục X trong tập các tác vụ D, kí hiệu: supp(X) là tỉ số giữa số các tác vụ T (của D) chứa X
và tổng số các tác vụ của D (hay số phần trăm của các tác vụ trong D có chứa X)
\ { T & D \ T zd X \
Trang 24Độ hỗ trợ của một tập mục các giá trị giữa 0 và 1, tức là 0 < supp(X) < 1 với mọi tập mục X.
Tập mục phổ biến (frequent itemset): Tập mục X mà thoả điều kiện: supp(X) >
minsup (với minsup là một giá trị cho trước) được gọi là tập mục phổ biến với độ
hỗ trợ cực tiểu minsup
Độ hỗ trợ của một luật: Cho luật r = X -> Y, độ hỗ trợ của luật r kí hiệu là
supp(r) được xác định như sau: supp(r)=supp(X u Y).
Độ tin cậy của một luật (confidence)-. Luật r = X —> Y có độ tin cậy c trong D
nếu c là số phần trăm các tác vụ trong D mà chứa X thì cũng chứa Y Hay đó chính
là xác suất có điều kiện P(Y/X) Ta kí hiệu độ tin cậy của luật r là conf(f) Độ tin cậy của một luật r là conf(f) Độ tin cậy của một luật cũng có giá trị giữa 0 và 1
Supp(X -> Y) = P(X u Y)Conf(X -> Y) = P(Y/X) = supp(X u Y)/supp(X)
Luật kết hợp mạnh (strong) : Các luật thoả mãn cả hai ngưỡng là độ hỗ trợ cực
tiểu và độ tin cậy cực tiểu được gọi là luật kết hợp mạnh, tức là:
Supp(X -> Y) = P(X u Y ) > minsupConf(X —» Y) = P(X u Y ) = supp (X u Y)/supp(X) > minconfNgười ta thường biểu diễn bằng % thay cho các giá trị từ 0 đến 1
Bài toán khai phá luật kết hợp (ở dạng đơn giản nhất) có thể phát biểu như sau:Cho một cơ sở dữ liệu D; Độ hỗ trợ tối thiểu minsup; Độ tin cậy tối thiểu mincof Hãy tìm tất cả các luật kết hợp có dạng X —» Y thoả mãn độ hỗ trợ s(X u Y) > minsup và độ tin cậy của luật là:
c(X —>Y) = s(X u Y)/s(X) > minconf
Hầu hết các thuật toán được đề xuất để khai phá dữ liệu nhờ luật kết hợp đều theo hướng chia bài toán thành hai pha cụ thể:
Trang 25Pha 1: Tìm tất cả các tập mục phổ biến từ cơ sở dữ liệu, tức là tìm tất cả các tập
mục thỏa mãn s(X) > minsup Đây là pha tốn khá nhiều thời gian của CPU và thời gian vào ra ổ đĩa
Pha 2: Sinh các luật tin cậy từ các tập mục phổ biến đã tìm thấy ờ pha thứ nhất
Pha này tương đối đơn giản và tốn kém ít thời gian so với pha 1 Nếu X là tập phổ biến thì luật kết họp được sinh ra từ X có dạng: X —►x \x , với X là tập con khác rỗng của X, x \x là hiệu của 2 tập hợp, c là độ tin cậy của luật thỏa mãn điều kiện c
> minconf
2.4 M ột số tính chất của tập mục phổ biến và luật kết hợp
2.4.1 Một số tính chất của tập mục phổ biến
Tính chất 1 - Độ hỗ trợ của tập con
Nếu A e B với A,B là các tập mục thì supp(A) > supp(B)
Điều này là hiển nhiên vì tất cả các tảc vụ trong D hỗ trợ B thì cũng hỗ trợ ATính chất 2
Một tập chứa một tập không phổ biến thì cũng là tập không phổ biến
Nếu tập A không đủ độ hỗ trợ cực tiểu, tức là supp(A) < minsup thì tập B chứa A cũng không là tập phổ biến vì:
Supp(B) < supp(A)< minsup (theo tính chất 1)Tính chất 3
Các tập con của tập phổ biến cũng ỉà tập phổ biến
Nếu B là tập phổ biến trong D tức: supp(B) > minsup Khi đó mọi tập con A của
B cũng là phổ biến vì supp(A) > supp(B) > minsup (theo tính chất 1) Trường họp đặc biệt, nếu tập A = {i1,i2,- -,ik}là tập phổ biến thì mọi tập con có (k-1) mục của nó cũng là phổ biến Nhưng ngược lại không đúng
Trang 262.4.2 Một số tính chất của luật kết hợp
Tính chất 1 - K hông họp các luật kết hợp
Nếu X —> z và Y —> z trong D thì không nhất thiết X u Y —»■ z là đúng
Xét trường hợp X n Y = và các tác vụ trong D hỗ nếu chỉ nếu chúng hỗ trợ mỗi
X hoặc Y, khi đó luật X u Y —> z có độ tin cậy là 0%
Tương t ự : X —> Y n X —» Z = > X —> Y u Z
Tính chất 2 - Không tách luật
Nếu X u Y —> z thì X —> z và Y —>z chưa chắc xảy ra
Ví dụ: Trường hợp z có mặt trong một tác vụ chỉ khi cả hai X và Y cũng có mặt, tức là supp(X u Y)=supp(Z), nếu độ hỗ trợ của X và Y đủ lớn hơn supp(X u Y) hay supp(X) > supp(X u Y) và supp(Y) > supp(X u Y) thì hai luật riêng biệt sẽ không đủ độ tin cậy
Tuy nhiên, đảo lại: X - > Y u Z = > X - > Y n X - > Z
Tính chất 3 - Các luật kết hợp không có tính chất bắc cầu
Nếu X —* Y và Y —* z chúng ta không thể suy ra X —> z
Ví dụ: Giả sử T(X) c T(Y) e T(Z) tương ứng là tập các tác vụ chửa X,Y,Z và độ tin cậy cực tiểu là minconf,
conf(X —> Y) = conf(Y —* Z) = minconf
conf(X —> Z) = minconf2 < minconf vì minconf < 1, do đó luật X —*• z không đủ
Trang 27conf(B —*(L-B)) = <min con/
Luật kết hợp nhị phân: là các luật dựa trên các kiểu của các giá trị trong luật Hay
có nghĩa là luật kết hợp quan tâm tới sự có mặt hay không có mặt của các mục
Luật kết hợp định lượng: Là luật miêu tả sự quan hệ giữa các thuộc tính hoặc các
mục định lượng Trong luật loại này, các giá trị định lượng của các mục hoặc các thuộc tính được phân chia thành các khoảng
Luật kết hợp đơn chiều: là luật dựa trên chiều của dữ liệu chứa trong luật Cụ thể
là các mục hoặc các thuộc tính trong luật kết hợp tham chiếu đến chỉ một chiều
Luật kết hợp đa chiều: là ỉuật kết hợp dựa trên chiều của dữ liệu chứa trong luật
Nếu luật tham chiếu đến nhiều hơn một chiều thì được gọi là luật kết hợp đa chiều
Luật kết hợp với các mức trừu tượng khác nhau: Là các luật kết hợp dựa trên
mức độ trừu tượng chứa trong luật Một số phương pháp khai phá luật kết hợp có thể tìm các luật với các mức độ trừu tượng khác nhau
Trang 282.5 Các thuật toán khai phá dữ liệu nhờ luật kết họp
2.5.1 Khai phá luật kết họp nhị phân đơn chiều từ cơ sở dữ liệu tác vụ
Trong phần này sẽ xem xét các phương pháp khai phá dạng đơn giản nhất của luật kết hợp đó là luật kết hợp đơn chiều, đơn mức, hay luật kết hợp nhị phân Ta bắt đầu với thuật toán Apriori, một thuật toán kinh điển cơ sở cho việc tìm kiếm các tập mục phổ biến Phần này cũng nêu thủ tục sinh ra các luật két họp từ các tập mục phổ biến, đồng thời cũng nêu một số biến đổi của thuật toán Apriori để tăng hiệu quả của thuật toán
2.5.1.1 Thuật toán Apriori tìm tập mục phổ biến sử dụng phương pháp sinh
các ứng cử [5]
Apriori là thuật toán khai phá các tập mục phổ biến cho các luật kết hợp nhị phân Trong phần này trình bày thuật toán Apriori do Rakesh Agrawal, Tomasz Imeilinski, Arun Swami đề xuất lần đầu tiên vào năm 1993
Vấn đề phát hiện tất cả các luật kết hợp có độ hỗ trợ và độ tin cậy vượt qua ngưỡng xác định nào đó (ngưỡng này do người dùng đưa ra và khi ấy nó chính là độ
hỗ trợ cực tiểu minsup và độ tin cậy minconí) có thể được phân rã thành hai vấn đề con sau đây:
Tìm tất cả các tập mục phổ biến với minsupp nào đó Thuật toán Apriori nhằm giải quyết vấn đề này
Sử dụng các tập mục phổ biến để sinh ra các luật kết hợp với minconf nào đó
Ý tường chính ở đây là nếu s và X là tập mục phổ biến và X c s, khi đó ta có thể xem X —► Y (ở đây Y=S\X) có phải là luật mong muốn hay không bằng cách tính
độ hỗ trợ c=conf(X—* Y)=supp(S)/supp(X) Chỉ khi c > minconf thì X —» Y mới trở
thành luật mong muốn
Các thuật toán phát hiện các tập mục phổ biến thực hiện nhiều lần duyệt dữ liệu Trong lần duyệt thứ nhất, ta tính độ hỗ trợ của các mục riêng biệt và xác định các mục phổ biến trong chúng, tức là thỏa mãn độ hỗ trợ cực tiểu Trong mỗi lần duyệt
Trang 29sau, ta bắt đầu với tập hạt giống thu được trong lần duyệt trước đó Chúng ta sử dụng tập hạt giống này để sinh ra tập mục phổ biến tiềm năng - gọi là tập mục ứng
cử và tính độ hỗ trợ thực sự của các tập mục ứng cử này khi duyệt qua dữ liệu Ở cuối mỗi lần duyệt, ta xác định được tập mục nào trong các tập mục ứng cử là tập mục phổ biến thực sự và chúng trở thành hạt giống cho lần duyệt tiếp theo Quá trình này thực hiện cho đến khi không có một tập mục phổ biến mới nào nữa được tìm thấy
Thuật toán Apriori sinh ra các tập ứng cử để tính trong một lần duyệt bằng việc
sử dụng chi các tập mục đã được thấy là phổ biển trong lần duyệt trước mà không cần quan tâm đến các tác vụ trong cơ sở dữ liệu Cơ sở của điều đó là bất kỳ tập con nào của tập mục phổ biến phải ià phổ biến Vì vậy, các tập ứng cử có k-mục có thể được sinh ra bằng cách kết nổi các tập mục phổ biến có (k-1) mục, và xóa đi các tập ứng cử viên nếu có chứa bất kỳ một tập con nào mà không là phổ biến Thủ tục này nói chung dẫn đến một số nhỏ hơn nhiều các tập ứng cử viên, hay nói cách khác là khá hiệu quả trong việc tỉa gọn không gian tìm kiếm
Để dễ theo dõi, ta kí hiệu như sau: Giả sử các mục trong mỗi tác vụ được lưu giữ theo trật tự từ điển (điều này không làm mất đi tính chất tổng quát của bài toán nhưng lại rất quan trọng trong việc không sinh thừa các ứng cử) Gọi số các mục trong một tập mục là kích thước của nó và gọi tập mục có kích thước k là tập k- mục Các mục trong mỗi tập mục cũng được giữ ở trật tự từ điển Chúng ta sử dụng các kí hiệu sau:
Bảng 3: Các ký hiệu của thuật toán Apriori
biến tiềm năng)
Mỗi phần tử của tập này có 2 trường:
Trang 30_ ì - Độ hỗ trợ tương ưng với n ó _
Thuật toán Apriori sử dụng tiếp cận lặp lại, ờ đó tập (k-l)-mục được sử dụng cho việc tìm kiếm k-mục Ở lần duyệt đầu tiên, người ta tính độ hỗ trợ của các mục riêng lẻ (hay tập chỉ gồm 1 mục) và xác định xem trong chúng mục nào là phổ biến, tức là tìm được 1 mục phổ biến Đó chính là tập Li,L] được dùng để tìm L2 - L2 là các tập 2 mục phổ biến Quá trình lại tiếp tục L2 được dùng để tìm L3 Cứ như vậy cho tới khi không tìm được tập phổ biến lớn hơn tập k-mục phổ biến đã tìm thấy
Để tăng tính hiệu quả trong việc sinh ra tập mục phổ biến, các tính chất của tập mục phổ biến đã nêu ở trên được sừ dụng Một trong những tính chất quan trọng
nhất được gọi là tính chất Apriori để rút gọn không gian tìm kiếm đó là: Tất cả các
tập con khác rỗng của tập mục phổ biến đều là tập mục phổ biến Tức là nếu tập
mục I không thỏa mãn ngưỡng hỗ trợ cực tiểu thì I không phải tập mục phổ biến hay P(I) < minsup Nếu mục A được thêm vào tập mục I thì ta được tập mục (I u A) không thể là phổ biến hom I và do đó (I u A) không thể là phổ biến hơn I và do
đó (I u A) cũng không thể là tập mục phổ biến, hay P(I u A ) < minsup Tính chất
này còn có thể phát biểu dưới dạng khác là: Nếu một tập mục không là phổ biến thì
mọi tập mục chứa nó cũng không phải là phổ biến.
Để hiểu được rõ hơn tính chất này ta xét thuật toán sử dụng L|c-1 để tìm Lk sau đây Quá trình này bao gồm 2 bước đó là:
Bước kết nối
Bước tỉa
Bước kết nối: Bước này dùng để sinh tập các ứng cử c k
Đầu vào: là tập k-1 mục phổ biến Lk_i
Đầu ra: là tập các ứng cử gồm k mục c k
Phép toán sử dụng: phép kết nối
Tổng quát: tập các ứng cử k mục c k được sinh ra bởi việc kết nối Lk.j với chính
nó Giả sử li và 12 là các tập mục trong Lk.j Ta kí hiệu: lj[j] là mục thứ j trong lj
Trang 31Bằng quy ước, giả sừ các mục trong tác vụ hoặc tập mục có thứ tự từ điển Nối Lk_i với LU.1 được thực hiện như sau: các thành phần của Lk-1 được kết nối nếu (k-2) mục đầu tiên là chung, tức là thành phần 1] và 12 của Lk_! được nối nếu:
(1,[1] =12[ 1 ] ) a ( 1 , [ 2 ] =12[ 2 ] ) a A (lj[k -2 ] = l2[ k - 2 ] ) A ( l , [ k - l ] = l 2[ k - l ] ) Điều kiện (li[k-1 ] <l2[k-l]) đơn giản là để đảm bảo rằng không sinh thừa (không bị lặp) Dạng của tập mục nhận được bởi nối li và 12 là: 1)[1] li[2] lj[k-l]l2[k-l]
Bước tỉa:
Đầu vào: là tập các ứng cử gồm k mục c k
Đầu ra: là tập k mục phổ biến - Lk
Công việc phải làm: Quét cơ sở dữ liệu để tính độ hỗ trợ cho mỗi ứng cử và tỉa bớt những ứng cử không vượt quá minsup
Tổng quát: tập các ứng cử k mục c k luôn là tập chứa Lk, tức là các thành phần của c k có thể là phổ biến hoặc không nhưng tất cả các tập k-mục phổ biến đều chứa đầy đủ trong c k Quét cơ sở dữ liệu để tính độ hỗ trợ cho mỗi ứng cừ trong c k sẽ nhận được Lk (tức là tất cả các ứng cừ được tính độ hỗ trợ không nhỏ hom ngưỡng
hỗ trợ cực tiểu minsup là tập phổ biến được xác định, đó chính là Lk) Tuy nhiên, c k
có thể là rất lớn và do đó dẫn đến tính toán rất lớn Để rút gọn kích thước của Ck,
tính chất Apriori được sừ dụng như sau: Bất kỳ tập (k-1) mục nào không phổ biến
không thể là tập con của tập k mục phổ biến Do đó, nếu bất kỳ tập con (k-1) mục
của ứng cử k mục không có mặt trong Lk-1 thì ứng cử đó không thể là phổ biến và
do vậy có thể loại bỏ khỏi c k Kiểm tra tập con (k-1) mục này có thể làm nhanh bởi duy trì một cây băm của tất cả các tập mục phổ biến tìm thấy
Thuật toán Apriori
Mục đích của thuật toán: Tìm các tập mục phổ biến dựa trên cơ sở sinh các ứng
cử
Đầu vào: Cơ sở dữ liệu D
Trang 32Ngưỡng độ hỗ trợ cực tiểu của các tác vụ hay minsup
Đầu ra: Tập các tập mục phổ biến
Nội dung của thuật toán:
1 Quét cơ sở dữ liệu để tìm các tập 1 mục phổ biến Li
2 For(k=2; W ; k + + ) {
3 c k = apriorigeníLic.i, minsupp); //Sinh các ứng cừ từ Lk.t
4 For (mỗi tác vụ t trong D) {//Quét D để đếm
5 c t = subset (Ck,t); //lấy tập con của t mà là các ứng cử trong c k
Đầu vào: Tập phổ biến (k-l)-mục Lk_!
Ngưỡng độ hỗ ừợ cực tiểu của các tác vụ hay minsupp
Đầu ra: Ck
Nội dung thủ tục:
Procedure apriori_gen (Lk_i: tập phổ biến (k-1) mục; minsupp)
Trang 331 For mỗi mục lt e Lk_i
2 For mỗi mục l2e Lk-1 {
3 If (1,[1] =12[ 1 ] ) a ( 1 , [ 2 ] = l2[ 2 ] ) A A ( l , [ k - 2 ] = l 2[ k - 2 ] ) A ( l , [ k - l ] = l 2[ k - l ] )
4 then c = li o<i 12; //bước kết nối để sinh các ứng cử c
5 If has_infrequent_subset(c, Lk_i) then
7 Else thêm c vào Q ;
Đầu ra: Khẳng định c có là phổ biến hay không
Nội dung của thủ tục:
Procedure has_infrequent_subset (c: ứng cử k mục; Lk_i)
1 For mỗi tập con (k-1) mục s của c
2 If s Ể Lk-1 then
3 Return True;
4 Return False;
Trang 342.5.1.2 Nâng cao hiệu quả thuật toán Apriori [7] [8] [9]
Một số phương pháp cải tiến, biến đổi của thuật toán Apriori nhằm nâng cao hiệu quả của thuật toán
Dựa vào kỹ thuật băm:
Bước tỉa của thuật toán Apriori đòi hỏi kiểm tra tất vả các tập con (k-1) mục ứng
cử có phải là tập phổ biến hay không, tóc là có mặt trong tập phổ biến đã tìm được
ở bước trước là Lk„i không Để có thể kiểm tra nhanh chóng, người ta lưu các tập phổ biến trong các bảng băm tức lưu Lk.] trong bảng băm
Ta minh họa kỹ thuật này như sau: Cho tập các ứng cừ c k và một tác vụ T, chúng
ta cần tìm tất cả các ứng cử được chứa trong T Sau đây ta miêu tả một cẩu trúc dữ liệu cho phép thực hiện điều đó một cách hiệu quả
Các tập mục ứng cử c k được nêu trong một cây băm Một nút của cây băm hoặc
là chứa một danh sách các tập mục (nút lá) hoặc là một bảng băm (nút trong) Trong nút trong, mỗi cụm (bucket) của bảng băm chỉ tới một nút khác Gốc của cây băm được xác định có độ sâu 1 Một nút trong ở độ sâu d chỉ tới các nút ở độ sâu d+1 Các tập mục được nêu trong các nút lá Khi ta thêm một tập mục c, ta bắt đầu từ gốc
và đi xuống trên cây đến khi gặp một nút lá Tại một nút trong ở độ sâu d, ta quyết định theo nhánh tiếp theo bằng cách dùng một hàm băm tới mục thứ d của tập mục Tẩt cả các nút được tạo ra ban đầu là các nút lá Khi số các tập mục trong nút lá vượt ngưỡng
R út gọn tác vụ (Rút gọn số tác vụ cần quét trong các lần lặp sau): Một tác vụ
không chứa bất kỳ tập k mục phổ biến nào thì cũng không thể chứa bất kỳ tập (k+1) mục phổ biến Do đó, tác vụ đó có thể đánh dấu hoặc loại bỏ khỏi lần xét sau
Phân hoạch tức là phân chia dữ liệu để tìm tập mục ứng cử: Kỹ thuật phân
hoạch có thể sử dụng bởi nó chỉ đòi hỏi quét cơ sờ dữ liệu 2 lần để khai phá tập mục phổ biến Việc khai phá bằng phân hoạch dữ liệu gồm 2 giai đoạn, ứong giai đoạn
1, thuật toán chia các tác vụ D thành n vùng Neu ngưỡng hỗ trợ cực tiểu của D là minsupp thì ngưỡng hỗ trợ cực tiểu cần tính cho một vùng là tích của minsupp với
Trang 35số các tác vụ trong vùng đó Với mỗi vùng, tập mục phổ biến cho vùng đó được tìm,
có thể gọi đó là tập mục phổ biến địa phương (hay cục bộ) Một thủ tục dùng một cấu trúc dữ liệu đặc biệt, vói mỗi tập mục, ghi các định danh TID của các tác vụ chứa các mục trong tập mục Điều đó cho phép nó có thể tìm tất cả các tập k mục phổ biến (với k = 1,2, chỉ trong một lần duyệt cơ sở dữ liệu)
Các tập mục phổ biến địa phương có thể hoặc không là tập mục phổ biến của toàn bộ cơ sở dữ liệu D Nhưng bất kỳ tập mục nào là phổ biến tiềm năng của D cũng phải là tập mục phổ biến của ít nhất một vùng Do đó, tất cả các tập mục phổ biến địa phương là các tập mục ứng cử cho D Tập hợp các mục phổ biến địa phương từ tất cả các vùng sẽ được tập mục ứng cử cho D Trong giai đoạn 2, cơ sở
dữ liệu được duyệt lần thứ 2 để tính độ hỗ trợ cho mỗi ứng cử nhằm xác định tập mục phổ biến đích cần tìm Kích thước của một vùng có thể vừa khít với bộ nhớ chính và ngưỡng để chỉ đọc một lần trong mỗi giai đoạn
Lấy mẫu (khai phá trên tập con của dữ liệu): ý tưởng cơ bản của cách tiếp cận
này là lấy ngẫu nhiên s trên dữ liệu đã cho D và sau đó tìm tập mục phổ biến s thay cho D Trong cách này, độ phức tạp được cải thiện Kích thước của mẫu là đảm bảo tìm được các tập mục phổ biến trong s có thể thực hiện được bộ nhớ chính và chỉ cần một lần duyệt các tác vụ trong s Vì tìm tập phổ biến trong s dễ hơn trong D và
s nhỏ hơn D nên có thể bị mất một sổ tập phổ biến đích (mà tìm trong D sẽ thấy)
Để loại trừ khả năng này, người ta sử dụng ngưỡng độ hỗ trợ thấp hơn độ hỗ trợ cực tiểu minsupp để tìm tập mục phổ biến địa phương cho s (kí hiệu Ls) Cơ sở dữ liệu sau đó được dùng để tính độ hỗ trợ cho mỗi tập mục phổ biển trong Ls Nếu Ls chứa tất cả các tập mục phổ biến trong D thì chỉ cần một lần duyệt D, ngược lạo có thể duyệt D lần thứ 2 để tìm các tập mục phổ biến mà chúng không được tìm thấy trong lần duyệt thứ nhất Cách tiếp cận lấy mẫu này là đặc biệt có ích khi lấy tính hiệu quả là quan trọng nhất, như là trong các ứng dụng tính toán chuyên sâu phải thực hiện trên cơ sở rất phổ biến
Trang 362.5.1.3 Thuật toán sinh các luật kết họp từ tập mục phổ biến
Sau khi các tập mục phổ biến tò các tác vụ trong cơ sở dữ liệu đã được tìm thấy,
nó có thể sinh thẳng ra các luật kết hợp mạnh (tác là thoả mãn cả độ hỗ trợ cực tiểu
và độ tin cậy cực tiểu) Việc này có thể thực hiện bằng việc sử dụng tính độ tin cậy của luật Nhắc lại độ tin cậy của luật X -» Y là:
Conf(X -» Y) = P(X/Y) = supp(X u Y)/supp(X)
Trong đó: supp(X u Y) là độ hỗ trợ của X u Y
Supp(X) là độ hỗ trợ của X
Có thể coi tỉ số trên là tỉ số giữa: số các tác vụ chứa X u Y và số các tác vụ chứa
X Dựa trên biểu thức tính toán đó, các luật kết hợp có thể sinh ra như sau:
Với mỗi tập mục phổ biến i, sinh ra tất cả các tập con không rỗng của 1
Với mỗi tập con không rỗng a của 1, ta có luật a —> (1-a) nếu:
sup port(a)
Trong đó: minconf là ngưỡng độ tin cậy cực tiểu
Vì các luật được sinh ra từ các tập mục phổ biến nên độ hỗ trợ được thoả mãn một cách tự động, tức là độ hỗ ừợ của luật chính là supp(l)
Sau đây sẽ trình bày thuật toán tìm các luật kết hợp từ các tập mục phổ biến đãcó
Thuật toán đơn giản
Chúng ta cải tiến thủ tục xử lý bằng cách sinh ra các tập con của tập mục lớn theo kiểu đệ quy ưu tiên độ sâu Ví dụ: vói tập mục ABCD, đầu tiên chúng ta xét tập con ABC, sau đó đến AB,
Tiếp đến, nếu tập con a của tập mục lớn 1 không sinh ra được luật thì ta không cần xét đến các tập con của nó nữa Chẳng hạn, nếu luật ABC —» D không đủ độ tin cậy thì ta không xét đến luật AB —» CD
Trang 37Điều này có thể chứng minh như sau: Nếu luật a —> (1-a) không thoả mãn độ tin cậy, tức là: conf (a -> (1-a)) < minconf, lúc đó với bất kỳ tập con b nào của a ta có:
b c a nên supp(b) > supp(a) Do đó:
conf(b —> (1-b)) = -SUP ^ ^ < suPi f f l = Conf(a —> (1-a)) < m inconf
sup p(b) sup p(a)
Tức là độ tin cậy của luật b -> (1-b) cũng là nhỏ hơn conf Ta mô tả thuật toán như sau:
Thuật toán 1:
For all large itemsets lk,k > 2 do
Call genrulesỢiclk)
Procedure genrules (lk: large k-itemsets,am: large m-itemsets)
A= {(m-1 )-itemsets am_i| am.i c am};
For all am.! e A do again
Conf=supp(lk)/supp(am.i);
If(conf > minconí) then
Begin
Output the rule am-i => (lk - am_i),
With confidence = conf and support = support(lk)
If (m-l> i) then call genrules(lk,am.1);
//để sinh ra các luật với tập con của am_! là phần tiền đềend
Thuật toán nhanh hom:
Ở trên ta đã chi ra rằng nếu một luật không thoả mãn với tập cha a thì cũng không đủ độ tin cậy thì luật AB-> CD cũng không đủ độ tin cậy Điều đó có thể áp
Trang 38dụng theo hướng ngược lại như sau: Nếu xảy ra luật với tập con thì cũng xảy ra luật với tập cha VÍ dụ: nếu luật AB—> CD có đủ độ tin cậy thì luật ABC —» D cũng đủ
độ tin cậy
Thuật toán 2:
Forall itemsets lk, k> 2 do begin
H!={Các phần kết luận của các luật nhận được từ lk với 1-mục ở kết luận}; Call ap_genrules(lk,H1)
If (conf >minconf) then
Output the rule (lk - h m+i) —> hm+iElse
Delete hm+i from Hm+1end
Call ap_genrules(lk,Hm+i);
End
Sau đây ta sẽ phân tích tại sao thuật toán 2 lại nhanh hơn thuật toán 1
Trang 39Ví dụ: ta xét tập mục ABCDE, giả sử rằng ACDE —> B và ABCE —> D là các
luật có 1 mục ở phần kết luận thoả mãn độ hỗ trợ cực tiểu minconf
Trong thuật toán đơn giản ở trên, gọi đệ quy genrules(ABCDE,ACDE) sẽ kiểm tra các luật với 2 mục ở phần kết luận là: ACD —> BE, ADE —» BC, CDE —» BA,
ACE -> BD
Luật thứ nhất không xảy ra vì E c BE và ABCD —> E không thoả mãn độ tin cậy với lý do tương tự
Chi có một luật với 2-mục ở phần kết luận nhận được là ACE —> BD, ở đó B và
D là các kết luận của các luật hợp lệ có 1-mục ở phần kết luận Thuật toán nhanh hơn ở chỗ chi kiểm tra 1 luật này
2.5.1.4 Khai phá tập mục phổ biến không sinh ửng cử [3]
Thuật toán tìm tập mục phổ biến APRIORI trình bày ở trê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 thì thuật toán lại gặp phải hai chi phí lớn:
- Chi phí cho số lượng khổng lồ các tập ứng cử Ví dụ: nếu có 104 tập mục 1- itemset phổ biển thì thuật toán APRIORI sẽ sinh ra hơn 107 tập mục ứng cử 2- itemset và đồng thời phải tính tần xuất xuất hiện của chúng Hơn nữa, để khám phá một mẫu phổ biến có kích thước k, như là (ij, Ỉ2, ik) thì thuật toán phải kiểm tra] r Q = ( 2 k - l ) các mẫu phổ biến tiềm năng Ví dụ k= 100 thì phải sinh ra tổng sốhơn 2100 - 1 = 1030 tập ứng cử
- Đòi hỏi phải duyệt nhiều lần CSDL và kiểm tra một số lượng lớn các tập ứng
cử bằng việc xem xét các mẫu Đặc biệt trong trường hợp khai phá các tập mẫu dài
Thuật toán APRIORI chỉ thích hợp cho việc khai phá các CSDL thưa
Trang 40Với những nhược điểm trên của thuật toán APRIORI Thì một câu hỏi đặt ra là
“Chúng ta có thể thiết kế một phương pháp khai phá tất cả các tập mục phổ biến mà không cần sinh ứng cử không?”
[7] Năm 2000, Han, Jian Pei, và Yiwen đã đưa ra một thuật toán trả lời cho câu hỏi trên Thuật toán đã khắc phục được các nhược điểm của thuật toán APRIORI
với hướng tiếp cận không sinh ứng cừ Thuật toán có tên là “Frequent Patterm
Growth”, hay gọi tắt là FP-growth.
Thuật toán FP-growth sừ dụng một cấu trúc dữ liệu gọi là FP-tree (Frequent
Pattern tree) FP-tree là một thể hiện cô đọng của tất cả các thông tin có liên quan đến các thông tin thể hiện tính phổ biến của các tập mục trong CSDL Mỗi nhánh của cây FP-tree thể hiện một tập mục phổ biến, và các nút dọc theo các nhánh được lưu trữ theo thứ tự tăng dần của tính phổ biến tương ứng với các mục, các mục ở lá của cây có tính phổ biến thấp nhất
Cây FP-tree có một bảng Header kết hợp với nó Bảng Header lưu các mục cùng với số lần xuất hiện của nó trong CSDL theo Ihứ tự giảm dần của tính phổ biến (mỗi mục chiếm một dòng của bảng) Mỗi mục của bảng chứa một nút đầu của danh sách liên kết với tất cả các nút của cây FP-tree mà nút đó có tên mục trùng tên với nó.Phương pháp FP-growth chỉ cần duyệt CSDL 2 lần để khai phá tất cả các tập mục phổ biến Quét lần thứ nhất để xác định tần xuất của từng tập mục trong CSDL Quét lần thứ hai để xây dựng cây FP-tree
Ví dụ: Cây FP-tree với CSDL