Những thực tế khách quan và thách thức đặt ra như sau: • Các CSDL tãng trưởng rất nhanh; khả năng và cách thức truy vấn CSDL cổ điển để phán tích dữ liệu và hỗ trợ quyết định không đáp ứ
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI
Trang 2M ỤC LỤ C
Mờ đầu 2
Chương 1 Khai phá dữ liệu 6
1.1 Phát hiện tri thức 6
1.2 Các siai đoạn cúa quá trình phát hiện tri thức 7
1.3 Khai phá dữ liệu 8
Chương 2 Khai phá luật kết hợp 15
2.1 Bài toán xuất phát 15
2.2 Mô hình hình thức 16
2.3 Thuật toán Apriori và AprioriTid 19
2.4 Hệ thống các thuật toán 29
2.5 Khai phá luật kết hợp định lượng 39
Chương 3 Cơ sờ lý thuyết của luật kết h ợ p 44
3.1 Độ phức tạp cùa thuật toán khai phá luật kết hợp 44
3.2 Khai phá luật kết hợp đóng 47
3.3 Luật kết hợp nhìn theo quan điểm của modal lô g ic 58
Chương 4 Chương trình thử nghiệm khai phú luật kết hợp 66
4.1 Mô tà dữ liệu 66
4.2 Xây dựng chương trình 67
4.3 Kết quả thử n g h iệm 69
Kết lu ậ n 73
Phụ l ụ c 77
Trang 3MỚ ĐẨU
Mộl thực tế irons nhiều thập kỷ qua là con người có trong tay một luợng dữ liệu rất lớn nhtmg hiểu biết về nó thực sự chưa được bao nhiêu, hiện tượng giàu dữ liệu mà vẫn nahèo thông tin diễn ra khá phổ biến tronẹ các tổ chức, doanh nghiệp ứng dụng công
nghệ thòng tin
Tinh hình đó dẫn đến xu hướng là những nám gán đây người ta khai ihác cơ sờ dữ liệu (CSDL.) không chi nhằm tìm được nhữna dữ liệu đáp ứng các hoạt động manh tính tác nahiệp mà còn nhầm có được nhữns “tri thức” phục vụ các yêu cầu trợ giúp quyết iịnh
Các mô hình CSD L truyền thôns với cỏng cụ truy vấn dữ liệu không có khả nãng hực hiện được cỏna việc phát hiện “tri thức” từ CSDL đã cho, nhất lằ khi CSDL đó lớn Những thực tế khách quan và thách thức đặt ra như sau:
• Các CSDL tãng trưởng rất nhanh; khả năng và cách thức truy vấn CSDL cổ điển để phán tích dữ liệu và hỗ trợ quyết định không đáp ứng được;
• Tập dữ liệu thườnạ quá lớn đối với các phàn tích thống kê, các thuật toán tìm kiếm v.v vì khi đó sẽ gãp nhiều phức tạp về thời gian thực hiện và bộ nhớ máy tính;
• Việc phát triển rất nhanh của còng nghệ mạng và các phươna thức truy nhập dữ liệu trên mạna cho phép ngày càns thuộn tiện, dễ dàng hơn trons việc thu thập dữ liệu từ nhiều nguồn dược dựa trên nhiều hệ CSDL khác nhau;
• Nhiều dữ liệu được lựa chọn có thể chưa bao giờ được phản tích; gâv lãng phí v.v
« Những người sử dụng không phải là những nhà phân tích dữ liệu hay những nhà thống kè chuyên nghiệp;
« Nhu cầu nhận biết và làm chủ được thời cơ luôn được đặt ra trong mọi hoạt động kinh tế xã hội nhất là nhữna hoạt động có tính cạnh tranh, v.v
Các nhu cầu này đòi hòi các nhà nghiên cứu và ứng dụng tin học phải nghiên cứu,
tm kiếm các phươna pháp mới để phân tích và phát hiện được những “tri thức" có giá
tị từCSDL nhất là đối với các CSDL lớn
Trang 4Được nói đến lần đầu vào cuối nhữna năm 1980 [4], phát hiện tri thức trong các CSDL (Knowledge Discovery in Databases hay viết tắt là KDD) là quá trình phát hiện tri thức tiém án, không biết trước và tiém năng có lợi từ dữ liệu trong các CSDL lớn.KDD là một sự tiếp thu sừ dụng và phát triển các thành tựu của nhiéu lĩnh vực nahiẽn cứu ứng dụng tin học trước đó như: lý thuyết nhận dạng, hệ chuyên gia, trí tuệ nhàn tạo, thống ké, v.v.
Đặc điểm cơ bản để phân biệt KDD với những lĩnh vực nghiên cứu ứna dụne trước
đó là quá trình này nhảm phát hiện tri thức trực tiếp từ dữ liệu Trons KDD các tri thức phát hiện được ờ dans các mâu chưa được biết trước
Quá irình phát hiện tri thức gồm nhiều giai đoạn, trona đó giai đoạn khai phá dữ liệu (Data Mining hay viết tắt DM ) là giai đoạn chù yếu nhất của nó Khai phá dữ liệu bao hàm các kỹ thuật nhằm phát hiện các thông tin có giá trị tiềm án chưa được biết trước từ các CSDL lớn Các kỹ thuật khai phá dữ liệu được chia thành ba mána cơ bản: phàn lớp/phân cụm dữ liệu, các luật kết hợp và khai phá chuỏi
Nếu vấn đổ phân lớp/phàn cụm dữ liệu đã có lịch sử nghiên cứu, ứng dụng khá lâu dài thì vấn đề khai phá luật kết hợp mới được đề cập đến vài năm gần đây, hiện tại đã
và đang được nghiên cứu, phát triển rất mạnh, trờ thành một khuynh hướng quan trọrm cùa khai phá dữ liệu Luật kết hợp là luật ngầm định một số quan hệ kết hợp giữa một tập các đối tượng mà chúna có thê hoàn toàn độc lập với nhau
Khai phá luật kết hợp từ những CSDL lớn lần đầu xuất hiện vào năm 1993, sở dĩ nó đang được nahiên cứu và phát triển mạnh vì các luật được tìm thấy bộc lộ nhiều mẫu có ích để hỗ trợ quá trinh ra quyết định, lựa chọn chiến lược kinh doanh, dự báo tài chính, chấn đoán lâm sàns, và rất nhiều ứng dụng khác v.v
Dựa irên một số báo cáo khoa học trôna một số hội n£hị quốc tế và một số bài báo được công bố trên tạp chí chuyên ngành hoặc phổ biến trên Internet, luận văn này sê trình bày rõ vấn đề khai phá luật kết hợp Cụ thế luận văn tập trung trình bày những vấn
để sau:
• Bài toán ihực tế xuất phát và mô hình hình thức của luật kết hợp
Trang 5• Thuật toán khai phá luật kết hợp (được đề xuất lần đầu và mới nhất)
• Vấn để khai phá luật kết hợp định lượng
• Cơ sở lý thuyết của luật kết hợp: đánh giá độ phức tạp của các thuật toán khai phá luật kết hợp, khai phá luật kết hợp đóna
• Luật kết hợp nhìn từ quan điểm của modal logic
• Xây dựng chươna trình và khai phá luật kết hợp trên một vài CSDL thử nghiệm.Luận văn được chia làm bốn chương gồm 76 trang không kể phần phụ lục
Chương ỉ K h ai phá dữ liệu : nhằm tổng quan về các siai đoạn của quá trình pháthiện tri thức trong đó khai phá dữ ỉiệu là giai đoạn chủ yếu Các kỹ thuật khai phá dữ liệu, mục đích và vai trò cùa khai phá luật kết hợp
Chươns 2 K h ai phá luật kết họp : đi sâu tìm hiểu bài toán xuất phát, mô hình hình thức và một số thuật toán khai phá luật kết hợp Apriori, AprioriTid Phân loại các thuật toán khai phá luật kết hợp theo các cách tiếp cận và so sánh các thuật toán đã được xây dims theo các cách tiếp cận đó Khai phá luật kết hợp định lượng cũng là một hướng quan tâm nghiên cứu trong vấn đé khai phá luật kết hợp và là nội dung cuối cùng của chương
Chương 3 C ơ sở iý thuyết của luật kết hợp : trình bày kết quả đánh giá độ phức tạp của các thuật toán khai phá luật kết hợp Chứng minh tính đúng đắn của khai phá luật kết hợp đóng và trình bày thuật toán khai phá luật kết hợp đóng CHARM Đây là bước cải tiến thuật toán khai phá luật kết hợp dựa trên nghiên cứu về cơ sở lý thuyết của luật kết hợp Nội duns phần cuối cùng của chương đẻ cập đến vấn đề làm rõ bản chất logic của luật kết hợp theo quan điểm của modal logic
Chương 4 Chương trình thử nghiệm khai phá luật kết hợp trình bàv kết quả xây dựna chươnơ trình và kết quà chương trình khai phá luật kết hợp trên một vài CSDL thử nshiệm
Tác giả luận văn xin được cảm ơn sự giúp đỡ nhiệt tình của:
• Thầy hướng dẫn TS Đỗ Văn Thành - Văn Phòns chính phủ
Trang 6• Nhổm xê mi na “Khai phá tri thức trong các CSDL" của bộ môn Hệ thống thông tin Khoa công nghệ - Đại học Quốc Gia Hà Nội.
• Bộ môn Hệ thống thông tin khoa Công nghệ Đại học Quốc Gia Hà Nội
• Khoa Công nghệ thõng tin 1- Học viện Công nahệ Bưu chính viễn thông
Trang 7Chưưng 1
KH AI PHÁ D ừ L IỆ U
Phát hiện tri thức, khai phá dữ liệu là khái niệm ra đời vào những năm cuối thập kỷ
80 và đã trờ thành một lĩnh vực nghiên cứu sôi động trong những năm gần đây Lĩnh vực này nổi lên như một sự phát triển nhanh chóng của nhiều ngành hợp lại với nhau như: CSDL thống kè học máy, và các lĩnh vực liên quan khác nhằm phát hiện các tri thức từ dữ liệu Nội dung cúa chương bao gồm việc trình bày tổng quan các giai đoạn của quá trình phát hiện tri thức, các kỹ thuật khai phá dữ liệu và vai trò của khai phá luật kết hợp
1.1 PH Á T HIỆN T R I THỨC
Phát hiện tri thức trong các CSDL là quá trình phát hiện tri thức tiém ẩn không biết trước, và tiềm nâng có lợi từ dữ liệu trona các CSDL lớn Thực chất nó là quá trình tìm kiếm các mẫu tổn tại trong các CSDL, nhưng đang bị che dấu trong các khối dữ liệu.Khó có thể định nshĩa chính xác về tri thức, tuy nhiên có thể hiểu tri thức là một biểu thức trons một nsôn naữ nào đó diễn tả một (hoặc nhiểu) mối quan hệ giữa các thuộc tính trong các dữ liệu đó Các ngôn ngữ thường được đùng để biểu diễn tri thức trong việc phái hiện tri thức từ các CSDL là các khung (frames), các cây và đồ thị, các luật (rules), các cổng thức trong logic mệnh đề hoặc logic tán từ cấp một v.v
Tri thức nói ờ đây là tri thức được rút ra từ CSDL thường để giải quyết một loạt các nhiệm vụ nhất định trong một lĩnh vực nhất định Do vậv, quá trình phát hiện tri thức cũnạ mans tính chất hướng nhiệm vụ, không phải ỉà phát hiện mọi tri thức bất kv mà phát hiện tri thức nhằm giải quvết tốt nhiệm vụ đề ra V ì vậy, quá trình phát hiện tri thức là một quá trình hoạt động tương tác giữa người sử dụns hoặc chuyên gia phân tích với các công cụ tin học [2]
Trang 81.2 C Á C G IA I ĐOẠN CỦA QUÁ TRÌN H PH Á T HIỆN T R I THỨC
Mục đích cùa quá trình phát hiện tri thức là rút ra tri thức từ dữ liệu trong các CSDL lớn Quá trình KD D là quá trình gồm nhiều giai đoạn và lặp đi lặp lại, mà trong đó sự lặp lại có thể xuất hiện ở bất cứ bước nào Quá trình này có thể được mô tà theo một mô htnh sau [4, 5 Ị:
Hình 1.1 Mô hình mô tả quá trinh KDD Criai đoạn 1 : X á c định và định nahĩa vấn đề
- Tìm hiểu lĩnh vực ứng dụng và nhiệm vụ đặt ra, xác định các tri thức đã có và các mục tiêu của người sử dụng
- Tạo và lựa chọn CSDL
Giai đoạn 2 : Thu thập và tiền xứ lý dữ liệu
- Xử lý làm sạch dữ liệu trước: bỏ đi các dữ liệu tạp bao gổm các lỗi và các dạng khône bình thường Xử lý các giá trị bị mất, chuyển đổi dữ liệu phù hợp
Trang 9- Rút gọn kích thước dữ liệu và số chiểu: nhận được từ cách tìm các thuộc tínhhữu ích, siảm bớt số chiều và biến đổi dữ liệu để nhận được các bất biến.Giai đoạn 3 : Khai phá dừ liệu
- Chọn nhiệm vụ khai phá dữ liệu
- Lựa chọn các phương pháp khai phá dữ liệu
- Khai phá dữ liệu để rút ra các mẫu các mô hình
Giai đoạn 4 : Giải thích kết quả và đánh aiá các mẫu mô hình ờ giai đoạn 3
Giai đoạn 5 : Sử đụng các tri thức được phát hiện
- Các tri thức phát hiện được tích hợp chặt chẽ trong hệ thống, giải quyết các xung đột tiềm tàng và nghiên cứu những thay đổi trong hệ thống
Như vậy KD D là quá trình rút ra tri thức từ dữ liệu trong đó khai phá dữ liệu là giaiđoạn chù yếu
1.3 K H A I PHÁ D ừ L IỆ UKhai phá dữ liệu là khái niệm ra đời vào cuối những năm 80 nó bao gổm các kỹ thuật nhảm phát hiện ra các thông tin có giá trị tiềm ẩn từ dữ liệu chứa trong các CSDL lớn Khai phá dữ liệu là giai đoạn quan trọng tron? quá trình phát hiện tri thức; về bản chát nó liên quan đến việc phàn tích các dữ liệu và sử dụng các kv thuật để tìm ra các mẫu trong tập dữ liệu
Mục đích nguvên thuỷ của khai phá dữ liệu là mô tả và dự đoán [4]
- Dự đoán liên quan đến việc sử dụng các biến hoặc các trường trong CSDL để chiết xuất ra các mảu là các dự đoán những giá trị chưa biết hoặc các giá trị trong tương lai của các biến đáng quan tâm
- Mô tả tập truns vào việc tìm kiếm các mẫu mô tả dữ liệu mà con người có thể hiểu được
Hiện nay trên thế giới có rất nhiéu ngành công nghiệp sử đụnR kỹ thuật khai phá dữ liệu đê phục vụ cho hoạt động sản xuất kinh doanh của mình và đã bước đầu thành
c ô n g như n g à n h tài c h ín h , V h ọ c, g iá o d ụ c b ả o h iể m , c h ế tạ o g i a o t h ô n s , hàng k h ô n g
Trang 10v.v Các kết quả đã đạt được cho thấy mặc dù kỹ thuật khai phá dữ liệu hiện nay vẫn còn nhiều vấn để, nhưng với những tri thức mà chuvên gia con người cũng chưa cung cấp được thì khai phá dữ liệu có một tiêm nãna to lớn để khấc phục hạn ch ế này.
Các kỹ thuật khai phá dữ liệu được chia thành ba mảng chính: phân cụm/ phân lớp
dữ liệu, các luật kết hợp và khai phá chuỗi
1.3.1 Phân cụm phàn lớp dữ liệu
Một cách đcm giản phân cụm/phàn lớp dữ liệu cổ điển có thể xem là quá trình phân tích mộc tập dữ liệu và sình ra một tập nhóm các luật mà chúng có thể được sừ dụnR dể phân lớp dữ liệu trong tương lai Khi phân lớp dữ liệu naười ta phát triển việc mó tá hoặc mò hình cho mỗi lớp trong cơ sở dữ liệu, dựa trên những nét đặc trưng hiện diện trong tập dữ liệu huấn luvẹn được sắn nhãn Đã có nhiều phương pháp đế phàn lớp dữ liệu được nghiên cứu như:
- Các phươnsỉ pháp sinh cây quvết định
- Các phương pháp thống kẽ
- Các mạng nơ ron
- Các mạng xác suất Bayes
- Các tập thô
- Các thuật toán di truyền
- Phươnc pháp người láng giềng gần nhất
- Luật suy diễn
- Trực quan hoá dữ liệu v.v
Và chúng được phân thành 3 nhóm [1]:
a Các phương pháp phân lớp dữ liệu
- Phương pháp thốna kê: Các hệ thống phân tích thống kê như SA S và SPSS đã được các nhà phân tích dữ liệu sừ dụng để phát hiện ra những mẫu lạ và giải thích các mẫu bằng các mô hình thống kê chẳng hạn như các mô hình tuyến tính Các hệ thống phân tích thống kê như vậy có vị trí của nó và vẫn tiếp tục được sử dụng
I
Trang 11- Các mạng Nơ ron: các mạng Nơ ron nhân tạo bắt chước khả năng tìm mẫu của bộ não con người và vì vậy một sỏ' nhà nghiên cứu đã đề xuất áp dụng các thuật toán mạng Nơ ron để ùm ra các mẫu Các mạng Nơ ron đã được áp dụng thành công trong một số ứng dụng đòi hỏi cần có sự phân lớp
- Các thuật toán di truvển: các thuật toán tối ưu sử dụng các tiến trình như: di truyén biến dị, lựa chọn tự nhiên, được xây dựng dựa trên các khái niệm của tiến hoá tự nhiên
- Phương pháp người láng giềng gần nhất: đó là một kỹ thuật phân lớp mỗi bản ghi trong một tập dữ liệu dựa trên tổ hợp các lớp của k bản ghi tương tự với nó nhất trong tập dữ liệu có liên quan lịch sử Người ta còn gọi nó là kỹ thuật k người láng giềng gần nhất
- Luật qui nạp: việc chiết xuất các luật if-then có ích được dựa trên ỷ nghĩa thống kê
- Trực quan hoá dữ liệu: Diễn dịch trực quan các quan hệ phức tạp trong dữ liệu nhiều chiéu
b Trừu tượns hoá dữ liệu
Nhiều thuật toán đang tồn tại đề xuất trừu tượng hoá dữ liệu kiểm thử trước khi phân lớp nó thành các lớp khác nhau Có một số thuật toán thực hiện trừu tượng hoá trước khi phân lớp: một tập dữ liệu có thể được phát sinh đến hoặc là mức trừu tượng hoá được phát sinh tối thiểu, hoặc mức trừu tượng hoá trung gian, hoặc ỉà mức trừu tượng hoá ở mức cao hơn Với mức trừu tượng hoá quá thấp có thể dẫn đến các lớp rất thưa, cây phùn lớp có quá nhiều cành, và sẽ gập khó khăn khi cần diễn dịch ngán gọn súc tích; trong khi đó nếu ở mức quá cao có thể dẫn đến làm mất đi sự phân lớp hợp lý Nôn thống thường người ta áp dụng quá trình phân lớp nhiéu mức
c Học luật phân lớp
Học luật phân lớp đòi hỏi tìm các luật hoặc các cây quyết định nhằm phân chia dữ liệu đã cho thành các lớp được xác định trước Thực ra, độ phức tạp tính toán của việc tìm câv quvết định phân lớp tôi ưu là NP đầy đủ Đối với bất kỳ một lĩnh vực thực tế
Trang 12ứng dụna việc học luật phàn lớp, tập các cây quyết định có thể thườns ià quá rộng để thực hiện tìm kiếm vét cạn.
- Thuật toán ID3: Thuật loán ID3 do Quinlan đề xuất năm 1986 là thuật toán tạo cây quyết định xác định cách phân lớp các đối tượng bằng cách kiểm thử (test) giá trị các thuộc tính cùa nó Thuật toán này xây dựng cây từ trên xuống, bắt đầu từ một tập các đối tượng và từ một cách đặc tà các thuộc tính Tại mỗi nút của cây, một thuộc tính sẽ được kiểm thử và kết quà nhận được sẽ được sử dụng để phân chia tập đối tượng này Quá trình này được thực hiện một cách đệ qui cho đến khi tập trong cây con đã cho là đồns nhất trên cơ sở tôn trọng tiêu chuẩn phân lớp; nói cách khác
nó chứa các đối tượng thuộc cùng một loại Khi đó nó trờ thành nút lá Tại mỗi một nút thuộc tính để kiểm thử dược lựa chọn dựa trên tiêu chuẩn cùa lý thuyết thòng tin đó là tìm thòng tin có ích cực đại và entropy cực tiểu Nói đơn giản là thuộc tính được kiểm thử sẽ phân chia tập các ứne cừ viên thành các tập con đồng nhất
- Thuật toán c4.5: Thuật toán này cũng do Quilan để xuất (1993) Thuật toán sinh ra cây quyết định phân lớp đối với tập dữ liệu đã cho bằng cách phân chia dữ liệu một cách đệ qui Việc ra quyết định được tãng cường ahờ sử dụng chiến lược tìm kiếm theo chiều sâu Thuật toán quan tâm đến tất cả các kiểm thử đã có sẩn có thể phân chia được tập dữ liệu và lựa chọn một kiểm thử cho thông tin thu được nhiều nhất Đối với mỗi thuộc tính rời rạc, một kiểm thử với nhiều kết luận lô 2ÍC ứng với nhiều giá trị tách biệt của thuộc tính này được quan tâm Đối với mỗi thuộc tính liên tục, các kiểm thừ nhị phân đòi hỏi mọi giá trị tách biệt của thuộc tính là được quan tâm
Đế nhận được entropy của tất cả các kiểm thừ nhị phân này, tập dữ liệu huấn luyện thuộc vào nút quan tàm được lưu trữ các giá trị của thuộc tính liên tục và việc thu nhận iát cắt nhị phân dựa trẽn mỗi giá trị tách biệt được tính toán trong lát cắt của
dữ liệu được lưu aiữ Quá trình này được lặp đi lặp lại đối với các thuộc tính liên tục
- Thuật toán SLIQ: ( Học có giám sát trong cảu hỏi truy vấn (Quest)) là cây quyếi định phân loại được thiết kế để phân loại tập dữ liệu lớn Nó sử dụna kỹ thuật sắp
Trang 13xếp trước trone giai đoạn xúy dựng cây Điều đó tránh được phí tổn sấp xếp tại mỗi nút SLIQ năm giữ một danh sách được sắp xếp riêng biệt đối với thuộc tính giá trị liên tục và một danh sách riêng biệt được gọi là danh sách lớp Một mục ghi vào trons danh sách lớp tương ứng với một mục dữ liệu, và có nhãn lớp và tên của nút
mà nó thuộc vào trong cây quyết định Một mục ghi vào trong danh sách thuộc tính được sắp thứ tự có một giá trị thuộc tính và một chì mục cùa mục dữ liệu trong danh sách lớp SLIQ xây dựng cây quyết định theo phươna thức bề ngang Đôi với mỏi thuộc tính, nó quét danh sách được sắp thứ tự tương ứng và tính ạiá trị entropy của mỗi giá trị tách biệt của tất cả các nút một cách đổng thời ở phần giáp ranh của cây quyết định Sau đó các giá trị mục ghi vào được tính toán đòi với mỗi thuộc tính, một thuộc tính được chọn đế phân chia đối với mỗi nút tại gianh giới hiện tại và chúng được mở rộng đến một gianh giới mới Khi đó mỗi lán việc quét danh sách thuộc tính sắp thứ tự được thực hiện để cập nhật danh sách lớp đối với các nút mới Trons khi SLIQ làm chù dữ liệu (chúng thường là rất lớn so với khá năng bộ nhớ) lưu trong đĩa nó vẫn đòi hỏi một số thôn» tin thường trú trong bộ nhớ làm giảm đi số các bản ghi đưa vào đặt một hạn ch ế cứns về kích cỡ của dữ liệu huấn luyện,
d Các thuật toán song song
Hầu hết các thuật toán đang tổn tại đểu sử dụng tìm kiếm heuristic cục bộ để làm chú độ phức tạp tính toán Độ phức tạp tính toán của các thuật toán này thay đổi từ O(ANlogN) đến 0(A N (logN )2) với N là số mục (bản ghi) dữ liệu huấn luyện, A là số thuộc tính Các thuật toán này là đủ nhanh đối với các lĩnh vực ứng dụng ở đó N là nhỏ Tuy nhiên khi cẩn khai phá dữ liệu hàng triệu bán ghi và một số lớn các thuộc tính thì các thuật toán nàv có thể không thực hiện được Các thuật toán sons song do nhiều nhóm khác nhau đề xuất nhằm khắc phục tình trạng này
1.3.2 K hai phá luật kết hựp
Trang 14Luậl kết hợp lán đầu tiên do Rakesh Agrawal Tomasz Imielinski, Arun Swami để xuất năm 1993 Xuất phát từ mona muỏn tìm ra các mối quan hệ giữa các thuộc tính có thể hoàn toàn độc lập với nhau trong các CSDL.
Cho trước một CSDL quan hệ người ta mong muòn tìm được các luật đạna c% các thuộc tính X|, X , X n xuất hiện thì sẽ xuất hiện thuộc tính Y trong đó X, là các tập mục (tập các thuộc tính) của CSDL đã cho Các mối quan hệ như vậy được soi là các luật kết hợp Sau đó năm 1996 được Rakesh Agrawal Heikki Mannila, Ramakrishnan Srikant Hannu Toivonen, A.Inkeri Verkamo tiếp tục phát triển cải tiến [8], có dạna c% các thuộc tính X j, X 2, , x„ xuất hiện thì sẽ xuất hiện các thuộc tính Y), Y Ị, ,Yn Luật kết hợp nsầm định một số quan hô kết hợp giữa một tập các đối tượng mà các đối tượng
có thế hoàn toàn độc lập với nhau Ví dụ phát biểu dạng: “90% nhữnơ người mua bánh
mì và bơ cũng mua sữa và cà phê” [3]
Luật kết hợp đã được ứng dụng để hổ trợ quá trình ra quyết định cho các bài toán kinh doanh như: bài toán bán hàng trong các siêu thị dự báo tài chính, phàn phối các sán phûm bán lẻ V.V.; trong lĩnh vực y tế: chuẩn đoán lâm sàng; hoá học: phân tích các hợp chất hữu cơ, nguyên tó vi lượng trong các nguồn nước v.v [2]
Khai phá luật kết hợp khác so với kỹ thuật phân cụm phân lớp dữ liệu ở chỗ các luật kết hợp miêu tả được mối quan hệ của các đối tượng rất khác nhau trong khi đó phân cụm dữ liệu chi tìm ra được các mối quan hệ của các đối tượng gần nhau vẻ mặt nào đó.1.3.3 Khai phá chuỗi [7]
Luật chuỗi và khai phá chuỗi có thể được xem là một cách trừu xuất cúa luật kết hợp và phát hiện các luật kết hợp trên các tập dữ liệu phụ thuộc thời gian
Một chuỗi là một dãy các tập mục không rỗng được sắp thứ tự theo thời aian X| x 2
X n và được ký hiệu a = (X, —> x 2 - » X n.| X n) Độ dài của chuổi là tổng độlớn (số các phán tử) của các tập mục trong chuỗi Cơ sờ dữ liệu được phân chia ihành một bộ của tập các khách hàna ở đó mỗi một tập khách hàns chứa một tập các tác vụ
mà khách hàng tham gia vào theo thứ tự xuất hiện
Trang 15Đối với cơ sờ dữ liệu D và chuỗi a cho trước, độ hỗ trợ (tần suất) của chuỗi a trong
D là số khách hàng trons D mà các chuỗi của nó chứa cc như là chuỗi con Luật X =5> Y (X Y là các chuỗi) được nói là có độ tin cậy c nếu c% cùa các khách hàng chứa X cũng chứa Y
Già sử dữ liệu bán hàna được lưu theo chuỗi thòi sian (chẳng hạn theo tuần) vấn đề
là cẩn phát hiện ra nhữna tri thức ở dạng (80% những người mua bánh mì và bơ ờ tuần đáu cùa tháng, thường mua bia, rượu và mỹ phẩm ở tuần thứ 2 cùa tháng) v.v Phát biểu dạng như vậy là luật chuỏi Hướng nghiên cứu tìm tất cả các luật chuỗi (hay khai phá chuỗi) từ cơ sở dữ liệu phụ thuộc thời gian luôn được đổna hành, tuy có đi sau hơn so với hướng phát hiện các luật kết hợp
Như vậy việc khai phá chuỗi thực chất nhầm giải quyết vấn để phát hiện tri thức khi
dữ liệu xuất hiện trong các tác vụ tách biệt, trái lại phát hiện luật kết hợp là giải pháp khi dữ liệu xuất hiện trong tác vụ như nhau
Kết luận
Nội dung của chương đã tìm hiểu về quá trình phát hiện tri thức bao sồm năm giai đoạn cơ bản trong đó khai phá dữ liệu là giai đoạn quan trọng nhất Thực chất khai phá
dữ liệu ià việc phân tích các dữ liệu và sử dụng các kỹ thuật để tìm ra các mẫu trong tập
dữ liệu Các kv thuật khai phá dữ liệu được chia thành ba mảng chính: phàn cụm/phàn lớp dữ liệu, khai phá các luật kếl hợp, khai phá chuỗi Khai phá các luật kết hợp, khai phá chuỗi là các kỹ thuật mới đang được quan tâm nghiên cứu rất mạnh mẽ và sôi động
Trang 16Chương 2
K H A I PHÁ LU Ậ T K Ế T HỢP
Khai phá luật kết hợp là một kỹ thuật quan trọng cùa khai phá dữ liệu được ra đời và phát triển mạnh mẽ trong những năm gần đâv Lần đầu được Rakesh Agrawal, Tomasz Imielinski, Arun Swami để xuất năm 1993 [6] Sau đó năm 1996 được Rakesh Agravval, Heikki Mannila, Ramakrishnan Srikant Hannu Toivonen, A.Inkeri Verkamo tiếp tục phát triển cài tiến [8] Cho đế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 từ các thuật toán đã có
Chương này trình bày bài toán xuất phát ban đầu dẫn đến cần khai phá luật kết hợp,
mỏ hình hình thức của luật kết hợp; thuật toán khai phá luật kết hợp Apriori và AprioriTid Trong chương cũng sẽ trình bày hệ thống các thuật toán, so sánh các cách tiếp cận và hiệu quả của các thuật toán khai phá luật kết hợp Cuối cùng là phần trình bày vé khai phá luật kết hợp định lượng
2.1 B À I TOÁN X U Ấ T PH Á T [6]
Cho trước một lượng lớn dữ liệu lưu các thõng tin mua sắm của khách hảng, người
la mong muốn phát hiện dược những tri thức có giá trị nhằm phục vụ cho cửa hàng hoạch định các chiến lược bán hàng như: nén thiết k ế mẩu quáng cáo th ế nào? bô' tri sắp xếp hàng hoá ra sao? cấn b ổ sung thêm những hãng hoá gì? phản loại các đối tượng khách hàng của của hàng đ ể có chiến lược quảng cáo và kinh doanh phù hợp v.v.Nhầm đạt mục đích này người ta mong muốn nhận được từ các dữ liệu cho trước các phát biểu kiểu như: “30% những vụ mua sắm có mua bia, ruợu mạnh cũng mua lạp xườn”, hoặc “5% những vụ mua sắm mua cả 3 mặt hàng bia, rượu mạnh, lạp xườn”, v.v Những phát biểu dạng rihư vậy gọi là luật kết hợp, nó ngầm định một số quan hệ kết hợp giữa một tập các đối tượng
Trang 172.2 MÔ HÌNH HÌNH THỨC
Kí hiệu I = { i|, ị2 y là tập các thuộc tính nhị phân X c I gọi là tập mục (tênmỗi loại hàng được xem là một mục), D là cơ sở dữ liệu của các tác vụ (mỗi vụ mua hàng của một khách hàng nào đó được xem là một tác vụ), nói cách khác D c 21 Mỏi một tác vụ t được biểu diễn như một véc tơ nhị phân, với t[k] = 1 nếu t mua mục ik, ngược lại t[k] = 0
Luật kết furp (Association Rule) là biểu thức có dạng X - » Y trong đó X c I, Y c I
và X n Y = 0 Đối với luật kết hợp X -» Y, X được 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 (Support): Cho tập mục X , độ hỗ trợ của tập mục X (kí hiệu supp(A!)) là tỷ số giữa số các tác vụ mà tập mục đó xuất hiện trên tổng số các tác
vụ trong CSD L; supp(X) = { t e D I X 6 tl / IDI } trong đó I I là lực lượng của một tập, t là một tác vụ, D là CSDL
Độ hố trợ của một luật: Giả sử r = X - » F là luật kết hợp, độ hỗ trợ của luật r ký hiệu supp(r) được xác định như sau: supp(r) = supp(Xu Y).
Độ tin cậy của một luật : (Confidence) r = X - » Y, ký hiệu conf(X - » K) được định nghĩa conf(X - > 1 0 = supp(Xw Y) / supp(X)
Nhận xét conf(X - > Y) = P(YIX) độ tin cậy của luật X —>Y chính là xác suất có điểu kiện của các tác vụ chứa Y xét trong điều kiện chứa X; tương tự độ hỗ trợ của luật này chính là xác suất của X u Y
CSDL lưu trữ các dữ liệu tác vụ Dữ liệu tác vụ có thể được lưu trữ dưới dạng bảng
m X n.
Ví dụ 1: trong thực tế bán hàna thường ta nhận được các phát biểu kiểu như 30% nhữna người mua mua bia, ruợu mạnh cũng mua lạp xườn, hoặc 5% những người mua hàna mua cả 3 mảt hàng bia, rượu mạnh, lạp xườn Khi đó 30% là độ tin cậy 5% là độ
hỗ trợ cùa luật
Trang 18Ví dụ 2 : Cho CSDL D eồm 5 tác vụ sau:
AB xuất hiện chì 1 lần trong tác vụ Tị, do đó độ hỏ trợ của tập mục này là 20%
Trang 19L u ật kết hợp Độ tin cậy con f(X -> Y )
Bảng 2.4 Độ tin cậy của các luật
V í dụ 3: Đối với bài toán bán hàng trong các siêu thị các luật kết hợp làm tăng khả năna của CSDL với các chức năng xử ỉv câu hỏi dạng:
Trang 20- Tim tất cả các luật có “bia Hà Nội, nước uống Coca Cola” ở phần kết quả của luật Những luật dạng này có thể giúp bố trí sắp xếp gian hàng bàv bán nước uống Coca Cola, bia Hà Nội.
- Tim tất cả các luật kết hợp có “bánh mì 2ối bơ Pháp” ờ phần tiền đề Điều nàv có thể xác định được mặt hàng nào sẽ bị ảnh hưởng nếu như gian hàng không bày bán
“bánh mì gối, bơ Pháp”
- Tim tất cả các luật có “xúc xích, lạp xườn” trong phần tiền đề và “tương, bột canh” trong phần kết quà Câu hỏi dạng nàỵ có thể dùng để bố trí mặt hàng bày bán cùng xúc xích, lạp xườn để mặt hàng tương, bột canh sẽ cũng được bán
- Tìm tất cả các luật liên quan đến các mặt hàng bày bán trên giá A và B Các luật này cũng giúp bố trí và sắp xếp các mặt hàng bày bán trén giá A liên quan đến các mặt hàng bày bán trên giá B
- Tim k luật tốt nhất có “xúc xích, lạp xườn” ở mệnh đề kết quà Luật tốt nhất đượcđánh giá thòng qua độ tin cậv hoặc độ hỏ trợ của luật
2.3 TH U Ậ T TOÁN A P R 1 0 R I VÀ A P R IO R IT IDHiện tại có nhiều nhóm nghiên cứu khác nhau quan tâm đến lĩnh vực xây dựng thuậttoán hiệu quá để phát hiện các luật kết hợp Trong phần này trình bày thuật toán Apriori
và AprioriTid do Rakesh Agrawal, Tomasz Imielinski, Arun Swami [6, 8] đé xuất.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 quá ngưỡng xác định nào đó (phụ thuộc người dùng, ngưỡng của độ hỗ trợ và độ tin cậy khi ấy tươn« ứng được gọi là độ hỗ trợ cực tiểu minsup và độ tin cậy cực tiểu minconf) có thể được phân rã thành 2 vấn đề con [6]
i) Tìm tất cả tổ hợp của các mục có các tác vụ hỗ trợ lớn hơn minsup Người ta gọi
mỗi tổ hợp đó là tập mục phổ biến Các thuật toán Apriori và AprioriTid nhằm giải quyết vấn để này
ii) Sử dụng các tập mục phổ biến để sinh ra các luật mong muốn Ý tường chính ở
đâv là nếu S và X c s là các tập mục phổ biến, khi đó chúng ta có thể xem X
Trang 212 0
—>Y ( ở đây Y = S\X) có phải là luật mong muốn hay không bẳng cách tính s = supp(S)/supp(X) Chỉ khi s > 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, ở mỗi lán duvệt, người ta bắt đầu với một tập hạt giống của các tập mục phổ biến và sử dụng tập hạt giống này để sinh ra các tập mục phổ biến tiềm năng mới được gọi là các tập ứng cử viên Người ta tính độ hỗ trợ đối với các tập ứng cử viên này trong khi duyệt dữ liệu Ở cuối mỗi lần duyệt, người ta xác định được tập mục nào trong các tập ứng cử vièn thường là phổ biến và các tập này 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 nào nữa được
ùm thấy Ở 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 Điéu này có thể được xem như ỉà tìm kiếm un tiên theo chiều ngang (breadth-fist search) trong không gian cùa các tập mục phổ biến tiềm năng
Các thuật toán Apriori và AprioriTid sinh ra các tập ứng cử viên đó đượ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 Tính chất tổ hợp cơ bán được sử dụng là bất kỳ tập con nào của một tập mục p h ổ biến đêu là p h ổ biến. Vì vậy các tập ứng cử viên 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à xoá các tập ứng cử viên nếu nó chứa bất kỳ một tập con nào mà không phải 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 Lập ứng cử viên, nói cách khác nó khá hiệu quà trong việc “tỉa gọn” khỏng gian tìm kiếm
Thuật toán AprioriTid có thêm tính chất bổ sung là cơ sở dữ liệu không được sử dụng toàn bộ để tính độ hỗ trợ của các tập ứna cử viên sau lần duyệt đầu tiên Hơn nữa, việc mã hoá của các tập ứng cử viên được sử dụng ờ lần duyệt trước được dùng với mục đích này (việc mã hoá này cho ta biết những ứng cử viên nào có mặt trong những tác vụ
Trang 22nào), ở các lần duyệt sau đó, kích cỡ của việc mã hoá này sẽ có thể nhỏ hơn rất nhiều
so với cơ sở dữ liệu, vì vậy việc đọc được tiết kiệm rất nhiêu
2.3.1 T hu ật toán A priori [8]
Thuật toán được sử dụng để phát sinh tất cả các tập mục phổ biến Nhắc lại:
- Tập mục p h ổ biến là tập mục có độ hỗ trợ iớn hơn độ hỗ trợ cực tiểu do người dùng dưa vào (được gọi là độ hỗ irợ cực tiểu hay minsup) Ký hiệu Lk ỉà tập mục có kích thước k và ỉà tập mục phổ biến
- Tập í(ng cừ viên (hay còn gọi là ứng cừ viên): là tập mục có tiềm năng trở thành tập
m ục phổ biến; ký hiệu Q là ứng cử viên có kích thước k
Thuật toán A priori được mỏ tả như sau:
Lần duyệt 1
1 Phát sinh các ứng cử viên Cị
2 Ghi lại các tập mục phổ biến Lị
Lần duyệt k
1 Phát sinh các ứng cử viên Ck từ các tập mục phổ biến Lk_I
1 Kết hợp Lk.ị với Lk.ị, như sau:
insert into c k
select p.item (, c/.item j, , p.item*.!, f/.item*., from Lk.ị p, L*.,q
where p.item, = <?.itemt, , p.item*.! < r/.item*.,
2 Phát sinh tất cả (&-1) - tập con từ các ứng cử viên c k
3 Tỉa tất cả các ứng cử viên từ c k trong đó có tập con - (Ấ:-l) cùa tập ứng cử viên là không có trong tập mục phổ biến Lk.]
2 Duyệt CSDL để xác định độ hỗ trợ cho mồi ứng cử viên c k
3 Ghi lại các tập mục phổ biến Lk
Trang 24• Không có tập nào bị tỉa vì tất cả các tập con của các tập mục này đều phổ biến
l2 L2 sau khi giư lại các tập mục phổ biến Tập mục X Supp(X) Tập mục X Supp(X)
• Để tạo C3 chi cần nhìn vào các mục có cùng mục đầu tiên (trong lần duyệt k,
k - 2 mục đầu tiên được duyệt)
• Tỉa A B E vì B E là không phổ biến
• Duvệt các giao dịch trong CSD L
Trang 25• Cả hai tập trên đéu ỉà các tập phổ biến
Lần duyệt 5 Trong lần duyệt thứ 5 chúng ta không thể tạo bất kỳ tập ứng cử nào vì không có hai tập phổ biến 4-tập mục nào bắt đầu với 3 mục đầu tiên giống nhau
Trang 262.3.2 T h u ậ t toán AprioriTid [8]
Kí hiệu Ô k là tập của các k- tạp mục ứng cử viên khi các T ID (TĨD là giá trị củathuộc tính định danh của tác vụ) của các tác vụ sinh ra được liên kết với các ứng cừviên
Thuật toán AprioriTid được viết dans hình thức như sau:
6 For lất cá t e Ok.i do begin
7 // Xác định các ứng viên dược chứa trong tác vụ I.TID
Trang 272 6
mạt trong tác vụ được nhận biết bới TTD Đối với k = L Ô , ứng với c ơ sở dừ liệu D mặc
dù vé mặt khái niệm mỗi mục i được thay bằng tập mục { i } Đối với k > 1 , Ô k được sinh hời hước 10 của thuật toán này Phần tử của Ôk ứng với tác vụ t là c t.T ID {c e c kl c được chứa trong t } > Nếu tác vụ khồna chứa bất kỳ k-tập ứng cử viên nào, Ô k sẽ không
cỏ một mục đưa vào đối với tác vụ này Vì vậy số các mục đưa vào trong Ô k có thể nhó hơn số các tác vụ trons cơ sờ dữ liệu, đặc biệt khi k lớn Tuy nhiên đối với các giá trị k nhò sô các mục đưa vào có thể lớn hơn tác vụ tươna ứng do các mục dưa vào tron» C k bao 2 0m tất cá k - tập mục ứn2 cử viên được chứa trons tác vụ này
Ví dụ 5: Minh hoạ thuật toán AprioriTiđ với minsup = 0.5
2 0 0300
4 0 0
{ A C } }{ B C } { B E M C E } }{ A B Ị , { A C Ị { A E Ị ,
B C } , Í B E } { C E } }{ B E } }
LoTập mục Sô' tác vu
300
{ { B C E } }{ { B C E } }
Tập mục Số tác vu
Ị B C E ỉ ọ
Giãi thích: Xét cơ sờ dữ liệu đã cho và thừa nhận là độ hồ trợ cực tiểu minSup = 0.5
V iệc gọi hàm Apriori-gen với L| ở bước 4 cho các tập mục ứng cừ viên C l Trong các bước từ 6 đến 10 ta tính độ hỗ trợ của các Úrn2 cử viên trona C 2 bằng cách lạp trên các mục dưa vào trons Ô| và sinh ra Ồ 2 Các mục đưa vào đẩu tiên tronẹ Ô| là { Ị Ay {C }
Trang 28!D ; ỉ tươns ứns với tác vụ 100 c , tại bước 7 ứng với mục đưa vào nàv là {) A C } Ị bời
vì í A c ỷ là phần tử của c : và ( Ị A c í - { A } ) và ( { A c M C} ) là cúc phần tử cùa t
Việc aọi Apriori-sen với Lọ cho c , Thực hiện lần duyệt trên dữ liệu với Ồ 2 và c , sinh ra Ô- Lưu ý là khône có các mục vào nào trons Ô-Ị đối với các tác vụ với T ID là
100 và 4 0 0 vì chúng không chứa bất kỳ một tập mục nào trong Q Tập ứng cử viên { B
c E } trong c , là phổ biến và là phần tứ của L v Khi ta sinh ra C4 bàng cách sử dụna L,
nó trá lại tập rỗng và ta kết thúc
2.3.3 Sinh c á c luật [8]
Với mỗi tập mục phố biến 1, ta sinh ra tất cả các luật dạng a —> (1-a) ở đây a là tập con của I sao cho supp(l)/.supp(a) > minconf Do supp (a *) > supp (a) với bất kỳ a* c a
vì vậy độ tin cậy cùa luật a* —» (1-a*) khòníỉ thê lớn hơn độ tin cậy của luật a - » (l-a)
do dó nếu luật a - > (1-a) không được chấp nhận thì luật a* —> (1-a*) cũng vậy Điểu nàycũng dẫn đến kết luật là nếu luật (1-a) - » a được chấp nhận thì luật (1-a*) —> a* cũngdược chấp nhận với bất kỳ a* c a Vì thế từ một tập mục phổ biến, trước hết ta sinh ra tấl cá các luật có 01 mục ở vế phải, sau đó ta sử dụng các vế phải cùa các luật này và hàm Apriori -gen để sinh ra tất cả các vế phải có thể được hao gồm 2 mục, 3 mục, v.v.Thuật toán dưới đây mô tả ý tưởng này
/ For tất cà các k - tập mục p h ổ biến lk do begin
2 III - { các v ế phải của các luật từ 4 có 01 mục à v ế phải ị
3 Gọi thù tục Ap-ẹenluat (lk, Hi)
4 End
5 Procedure Ap-qenluai ( lk: k-tập mục p h ổ hiến, H„: tập các v ế phải gồm m mục)
6 I f( k > m +I ) then begin
7 Hw+I = Apriori-genị H j ;
8 For tất cá hm+ ! e Hm+I do begin
9 C onf = supp (Ụ / sitpp (lk
10 if C on f > minConf then
Trang 29lk = {A C, B C E } Tại bước 2 sinh ra các luật có 01 mục ở vế phái Gọi Ap-genluat(lk, H|) Bước 8 9 10 11 ta nhận được các luật với độ hỗ trợ và độ tin cậy tương ứng:{E Ị - > ( C Ị ( 0 5 , 0 6 6 6 6 6 6 7 )
Trang 302.4 HỆ T H Ố N G C Á C THliẬT T O Á N 117]
Cho đến thời điểm hiện nay các tác già đã xây dựng và phát triển được rất nhiều thuật toán phát hiện luật kết hợp Phần này sẽ hệ thống lại các thuật toán theo các cách tiếp cận xây dựng các thuật toán và sự khác nhau cơ bản siữa các cách tiếp cận
2.4.1 Duyệt trên không gian tìm kiếm
Khai phá luật kết hợp là việc tìm tất cả các luật kết hợp có độ hỗ trợ lớn hơn độ hồ trợ cực tiểu minsup Đối với các ứng dụng thực tế việc tìm tất cà các tập con của một tập I đòi hói một không gian tìm kiếm rất lớn Trẽn thực tế, cần xem xét trường hợp số các mục tăng theo hàm tuyến tính dẫn đến số lượng các tập mục tăng theo hàm mũ.Đối với trường hợp tập thuộc tính I = {1 2, 3 4 } không gian tìm kiếm được mỏ tà trẽn hình 2.1
ữ
Hình 2.1 Dàn cho tập I = {1, 2, 3, 4 }Các tập mục phổ biến nằm ờ phần trên của đường biên, còn các tập mục không phổ biến nằm phần dưới của đường biên (đường ké đậm trên hình 2.1 ) Một số thuật toán sử
Trang 31dụna đường biên đê tia bớt khôna gian tìm kiếm Cùng với việc xác định đườna biên ta
có thể hạn c h ế không gian tìm kiếm bans c á c h xác định giá trị độ hỗ trợ cho mỗi tập mục nằm phía trẽn đường biên và bỏ qua các lập mục nằm phía dưới đường biên
Cho I = { 1 III} là ánh xạ một -một tất cả cá c mục thành nhữna con số Các mụcđược sắp xếp theo thứ tự tăng dần Thèm nữa cho X ç l đặt x it e m : { 1 Ill}—» I: n i—>X.item,, ánh xạ với x it e m n là mục thứ n trona tập X đã được sắp xếp Với n < IXI được xác định bời p = {X itern m I 1 < m < n } Lớp E (P), p ÇZ I với E (p ) = {Xq I ỉ IXI — IPI+]
và p là tiền tố của X } là một nút của cây Hai nút được nối với nhau bởi một cạnh, nếu lất cá các tập mục cùa lớp E có thế được sinh ra bàng cách kết nòi hai tập mục của lớp cha E \ hình 2.2
Hình 2.2 Cây cho 1 = { 1 , 2 3, 4 }Thù tục sau ch o phép hạn ch ế một cách hiệu qua số cá c tập mục cần xét T a dẻ dàng xác định được giá trị của độ hỗ trợ cho các tập mục trong không gian tìm kiếm Sau đó
la xác định đường biên Có hai loại thuật toán tìm kiếm đường biên đó là B F S (Breadth First Search) và D F S (Depth First Search) Với B F S độ hỗ trợ của ( k - l ) tập mục được
Trang 32xác định trước khi tính độ hỗ trợ của k- tập mục Ngược lại, D FS thực hiện một cách đệ quy từ trên xuống theo cấu trúc cây trên.
Các tập mục có tiềm năng là tập mục phổ biến và chúng ta có thể xác định được độ
hỗ trợ cùa nó trong quá trình duyệt được gọi là các tập ứng cứ viên hay 2ỌÍ đơn gián là ứng cứ
Một cách tiếp cận phổ biên để xác định độ hỗ trợ của một tập mục là tính các thể hiện của nó trong CSDL Đáu tiên biến đếm được khởi tạo bằng 0 cho mỏi tập mục đantỉ được xét Sau đó duyệt các tác vụ và mỗi khi xác định được ứna cử viên là tập con eúa tác vụ thì tăng biến đếm lên một đơn vị
Cách tiếp cận khác ià xác định độ hỗ trợ của ứns cừ viên băng cách thiết lập các tập iỉiao Tid là định danh của tác vụ Đối với mục đơn tidlist là tập các định danh tương ứnạ với các tác vụ chứa mục này Theo tidlist cũns tổn tại cho mỗi tập mục một x.tidlist Tidlist của ứng cử c = X u Y là c.tidlist = x.tid list o Y tid list Độ hỗ trợ cùa lập ứníỉ cử sẽ là IC.tidìistl
2.4.3 Hệ thống các thuật toán
Trong phần này mô tả và hệ thốna lại các thuật toán Phần này không đi chi tiết vào các thuật toán mà chi đưa ra các thuật (oán cơ bản và sự khác nhau giữa các cách tiếp cặn
a) Hệ thõng các thuật toán
Các thuật toán xem xét trong mục này được hệ thống trên hình 2.3 Đầu liên ta phân loại theo chiến lược tìm kiếm: tìm kiếm theo chiểu rộng (B F S - Breadth First Search) và lìm kiếm theo chiểu sâu (D F S - Depth First Search) Sau đó tiếp tục phân loại theo cách xác định giá trị độ hỗ trợ cho các tập mục Các thuật toán có thể được phát triển để tối
ưu vẻ mặt tốc độ
Trang 33đêm / \ giao' / \ giao
DIC là sự kết hợp đa dạns của các thuật toán Apriori D IC hạn ch ế sự tách biệt giữí việc tính độ hỗ trợ và sự phát sinh các tập ứna cử viên Mỗi khi tập ứna cử viên đạ dược minsup, thậm chí ngay cả khi tập ứng cử viên nàv chưa duyệt hết các tác vụ, DIC hắt đầu phát sinh tập ứng cử viên tiếp dựa trên nó
c) B F S và tập giao T ĨD -List
Trang 34Thuật toán Partition là loại thuậi toán tựa Apriori sử dụng tập giao để xác định độ hỗ trợ Như đã trình bày ớ trên thuật toán Apríori xác định độ hỗ trợ của tất cá các ứne cử viên k-1 trước khi tính độ hỗ trợ của các k - ứng cử viên Vàn đế ở chỗ là thuật toán Partition sừ dụng tidlist của k-1 ứng cử viên phổ biến để phát sinh tidlist của k- ứng cử viên Để thực hiện thuật toán này người ta chia CSDL thành nhiều phần và thực hiện thuật toán trên các phần Sau khi xác định được các tập mục phổ biến trên mỗi phần thuậi toán thực hiện một lần duyệt mờ rộng để khầng định chắc chắn rằng các tập mục phổ biến cục bộ cũng chính là các tập mục phổ biến toàn bộ.
d) D F S và tính các biến đèm
Giá sử các tập ứng cử có kích thước hợp lý Đối với mỗi tập ứng cử cần phải duvệt CSDL Chẳng hạn thuật toán Apriori sử dụna tìm kiếm B F S cho việc duyệt CSDL cho mỗi tập ứns cử kích thước k Khi sử dụng DFS tập ứng cử bao gồm các tập mục cùa một nút của cày Duyệt C SD L cho mỗi nút đòi hỏi chi phí rất lớn Một cách kết hợp đơn gian cùa D FS với tính toán các biến đếm là không thích hợp với thực tế
Gần đây nạười ta đưa ra thuật toán FP-growth Trong bước tiền xử lý FP-growth tìm
ra các đại diện của các tác vụ dữ liệu, được gọi là FP-tree V iệc phát sinh FP-tree được thực hiện bằng c á ch tính các thể hiện và DFS Nsược lại đối với cách tiếp cận DFS, FP- growth khỏne đuvệt theo nút của cây trên hình 2.2 mà nó duyệt trực tiếp tới một phần nào đó của tập mục trong không gian tim kiếm Tron° bước thứ hai cúa thuật toán FP- growth sử dụng FP-tree để tính độ hỗ trợ của tất cả các tập mục phố biến
Trang 35dims mỗi phép giao ngay khi biết chác rằng nó không đạt được ngưỡng Eclat phát sinh chi tập mục phổ biến có kích thước lớn hơn 3 Ta sửa Eclat để khai phá các tậpl -2 mục
phò b iến b à n s c á c h 2ỌÍ n ó tron g lớ p b a o s ó m 1- lập m ụ c c ù n ạ với tập tidlist cù a ch ú n g
Tóm lại cách tiếp cận của thuật toán Eciat :
- X ây dựnsỉ dàn tập mục phổ biến
- Tiếp cặn iheo phân hoạch dọc tập định danh
Phân chia dàn thành các dàn con
Sứ đụng chiến lược ùm kiếm hiệu quà
: 1 A ỉ : v /
'X' \ A' IM 'W ACI A IV/,• m 1 1 w a::iw
các luât ket boprmacouf = 100%
Trang 36A C D v a c t ) A C W ; A D T A D W lA T W ; C O T I C D W ) C T W D T W
:'a> '"c) T -1 yv;
oCác tập m ục ph.0 biêa cực đại: CDW, A CTW
ỈD I - • u u w I ! n _ ■ t I w !
Hình 2.6 Phân chia dàn thành các dàn con
Trang 379 I 6
t
giao c & E3
e w1
2
34-
tàp dinh danh cùa các tác vu tld-list
- Theo cách tiếp cận Bottum up hình 2.8
- Theo cách tiếp cận top-down hình 2.9
Trang 38A C D T W
Các phân lớp
tLíơng dương
in [Muj _ J MUI, MUf* vv f
[ATI - i AT, ATW }
Các tập mục ptxố b iế a c ự c đại CDW- CTW
đâ được biêi
Hình 2.8 Theo cách tiếp cận bottom -up
I ACDTw)
Hình 2.9 Theo cách tiếp cận iop - down
Trang 39- Clique: bài toán tim clique lai cực đại và chiến lược tìm kiếm bottom - up
MaxClique : bài toán tìm clique lai cực đại và chiến lược tìm kiếm lai (hybrid)
- C H A R M : tim các tập mục phổ biến đóng Chi tiết thuật toán (xem chương 3)
Thuật toán dC H A R M là cái tiến của CHARM sử dụng diffset [13] Diffset là đạidiện cùa dữ liệu theo cách tiếp cặn phân hoạch dọc
Các thuật toán song song: song song vé mặt xử lý hoặc song song vé mặt dữ liệu hoặc song song lai (kết hợp của song song vé mật xử lý và dữ liệu) Một số ihuật toán sons sons điển hình như: ParClique ParEclat CouniDist, Pear [15] v.v
Thuật toán phân tán: điển hình ỉà voting M eta-learning, [15] v.v
Các thuật toán online [14]: điển hình là thuật toán C A R M A (Continues Association Rule Mining Algorithm) Các thuật toán dựa trên ý tưởng của thuật toán Apriori cơ bánthực hiện theo hai bước:
1 Tìm tất cả các tập mục phổ biến
2 Với mỗi tập mục phổ biến z tìm tất cả các tập con X cùa z mà độ tin cậy cùa luật
X => z \ x lớn hơn hoặc bằng minconf
Nếu ta đã hoàn thành được bước 1 thì bước 2 có thè tính toán trực tuvến Các thuật toán đang tồn tại tính toán các tập mục phổ biến không trực tuyến Thuật toán được gọi
là trực tuycn nếu nó đáp ứng được các yêu cầu sau:
- Trá lại các phản hồi liên tục
- Có thể điểu khiển được trong quá trình xử lý
- Cho lại kết quá xác định và chính xác
Thuật toán C A R M A gồm hai pha:
- Cho phép người sử dụns thay đổi độ hỏ trợ bất kỳ lúc nào
Trang 40- Cho lại phản hói trons quá trình thực hiện.
Phát hiện luật kết hợp định lượng (quantitive association rule) Rồm hai kỹ thuật chính :
Ánh xạ c á c thuộc tính nhận siá trị trong khoàna nào đó thành các thuộc tính nhị phân
- Chuvén thuộc tính giá trị sô thành một thuộc tính
X ét ví dụ về C S D L dữ liệu thống kê vế điểu tra dân số như sau:
Tìm hiểu thông tin trong các cột:
SSN#: là định danh ch o mỗi hàng, khi khai phá dữ liệu ta không quan tâm đến CỘInày