Tải bản đầy đủ (.pdf) (97 trang)

Khai phá luật kết hợp

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (31.63 MB, 97 trang )

ĐẠI HỌC QUỐC GIA HÀ NỘI

KHOA CÔNG NGHỆ

NGUYỄN THỊ THU PHƯƠNG

KHAI PHÁ LUẬT KẾT HỢP

CHUYẼN NGHÀNH: CÔNG NGHỀ THÔNG TIN

MÃ SỐ: ...................

LUẬN VĂN THẠC SỸ KHOA HỌC

NGƯỜI HƯỚNG DẪN ĐTKH: TS. Đ ỗ VÁN THÀNH

ĐẠí n r v r a u Ó C G í A HÀ NÓ ;



TWÎrtGTÂM THÙNG r u a t ì M V lf:« ị

HÀ NỘI - 2001


1

M Ụ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


2

MỚ ĐẨ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.


3

Đượ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.



4

• 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át
hiệ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ủ


5

• 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.


6

Chưư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].


7

1.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.


8

-

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ính
hữ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Ệ U
Khai 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 n h ư 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àn g k h ô n g



9

v.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


10

-

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ế


11

ứ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



12

xế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


13


Luậ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.


14

Đố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.



15

Chươ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.



16

2.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ên

mỗ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.


17

Ví dụ 2 : Cho CSDL D eồm 5 tác vụ sau:
ID tác vụ
T,
t

2

C ác mục
A, c , D
B, E

t3


A, B, c, E

t4

B, E

t

5

B, D, F

Bảng 2.1 C SD LD
Độ hỗ trợ của của các mục (hay tập mục chi gổm một phần tử) được minh hoạ trong
bảng bảng 2.2; ở đây mục A xuất hiện trong 2 tác vụ Tj , T 3 của CSDL D (được mô tả
(rong bảng 2.1 ) nên supp(A) = 2/5 = 0.4 (40% ).
M ục

Số tác vụ

Độ hỗ trợ supp(X)

A

2

40%

B


4

80%

c

2

40%

D

2

40%

E

3

60%

F

1

20%

Bảng 2.2 Độ hỗ trợ của các mục

Tương tự bảng 2.3 tính độ hỗ trợ của một số tập mục trong CSDL D. V í dụ, tập mục
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% .


18

T ậ p mục

Sô tác vụ

Độ hỗ trợ supp(X)

A, c

2
1
1
1
1
1
1
1
1

40%
20%
20%
20%
20%
20%

20%
20%
20%

A, B
B, D

c, D
A, B, c
A, B, E
A, c, D
B, D ,F
A, B, c, E

Bảng 2.3 Độ hỗ trợ của các tập mục
Bảng 2.4 tính độ tin cậy của một số luật kết hợp sinh ra từ các tập mục trong bảng
2.3. Độ tin cậy 100% cho luật A -» c có nghĩa là trong mọi tác vụ trong đó A xuất hiện
thì c cũng xuất hiện. Độ tin cậy của luật này được tính bằng cách chia sô' tác vụ mà tập
mục AC xuất hiện là 2 cho sô' tác vụ mà mục A xuất hiện cũng bằng 2 (bảng 2 . 1).
L u ật kết hợp

Độ tin cậy con f(X -> Y )

A—» c

100%

A -> B

50%


B -» D

25%

A, B—> c

100%

A, C -» B

50%

B, E —► A

33%

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:


19

-

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 T H U Ậ T TOÁN A P R 1 0 R I VÀ A P R IO R IT ID
Hiệ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ật
toá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


20

—>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ụ


21

nà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 L k_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, = 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


22


V í dụ 4 : Đ ộ hổ trợ cực tiểu do người dùng xác định m insup = 4 0 % , khi đó phát sinh
tất cả các tập mục phổ biến với C S D L tác vụ như sau:

L ầ n duyệt 1

c 2

Tập mục X

A,D

SuppịX )
?
?
?

A ,E

7

B ,c

?

A ,B

A,c

B,D
B,E


7

C ,D

7

C ,E

?
?

D,E

7

Bảng 2.6 c 2


23



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

Tập mục X
AJB
A ,c

AJD
A,E
B ,c

B.D
B,E
C,D
C,E
D.E

L2 sau khi giư lại các tập mục phổ biến
Supp(X) Tập mục X
Supp(X)
60%
A,B
60%
100%

A,c

100%

80%
40%
60%

A.D
AJE

40%


B,D
C,D
C,E
D,E

80%
40%
60%
40%
80%
40%
40%

B,c

20%
80%
40%
Ỉ40%

!
1

Bảng 2.7 L 2 sau khi giữ lại các tập mục phổ biến

Lần duyệt 3


Để 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)

c

ì

c 3sau

\

kh i tỉa

Tập mục X

Supp(X)

Tập mục X

supp(X)

Kết nối A B với A C

A ,B,C

7

Kết nối A B với A D

A ,B,D


Kết nối A B với A E

A ,B ,E

?
0

A ,B,C
AJB,D
A ,C,D

?
?
?

Kết nối AC với A D

A ,C,D

;

A,C,E

7

Kết nối AC với A E

A ,C J E

7


A ,D ,E

Kết nối A D với A E

A ,D ,E

1

B ,C ,D

?
?

Kết nối BC với B D

fB,C,D

9

C ,D ,E

7

Kết nối CD với C E

Ị c ,D ,E

[/


!



Tỉa A B E vì B E là không phổ biến



Duvệt các giao dịch trong C SD L




24

L,

Tập mục X Supp(X)
A .B.C

60 %

A,B,D

40%

A.C,D

80%


A.CJE

40%

A,D,E

40%

B,C,D

40%

C,D,E

40%

Lần du vệt 4
• k - 2 đẩu tiên = 2 mục phải có mặt trons lần duyệt k - 4

c4



Kết nối A BC với ABD

Tập mục X SuppịX)
0
A .B.C .D

Kết nối Ạ C D với ACE


A .C D .E

7

Tia:


Đối với A BC D ta kiểm tra A BC, A BD , ACD, BC D là phổ biến hay
khỏng. Tất cà đều là phổ biến, do đó chúng ta không tỉa ABCD.



Đối với A C D E la kiểm tra ACD. A CE, A D E , C D E có phải là tập phổ
biến không. Tất cả đổu phổ biến, do dó chúna ta không tỉa ACDE.

u



Tập mục X

Supp(X)

A.B,C.D

40%

A,C.D ,E


40%

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.


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×