Báo cáo môn học : Công nghệ tri thức (cao học : Khoa học máy tính) Đề tài : XÂY DỰNG HỆ CHUYÊN GIA “HỆ HỖ TRỢ CHẨN ĐOÁN, PHÒNG NGỪA, CHỮA TRỊ MỘT SỐ BỆNH THƯỜNG GẶP TỪ CÁC TRIỆU CHỨNG LÂM SÀNG Ở TRẺ EM" Chương trình xin liên hệ : vuongthienminh@gmail.com
Trang 1A – LÝ THUYẾT
I TÌM HIỂU TỔNG QUAN VỀ DATA MINING
II CÁC PHƯƠNG PHÁP MÁY HỌC ỨNG DỤNG TRONG DATA MINING
1 Tìm luật kết hợp (Mining Association Rules)
2 Phân lớp (Classification)
3 Gom nhóm (Clustering)
III THUẬT TOÁN TÌM LUẬT KẾT HỢP ỨNG DỤNG TRONG DATA MINING
1 Giới thiệu – các định nghĩa liên quan
Các vấn đề về luật kết hợp
Support
Confidence
2 Tổng quan về các thuật toán tìm luật kết hợp
2.1 Thuật toán cơ sở
2.2 Các thuật toán tuần tự (Sequential)
Thuật toán AIS Thuật toán SETM Thuật toán Apriori Thuật toán Apriori-TID Thuật toán Apriori-Hybrid Một số thuật toán khác:
Off-line Candidate Determination (OCD)
Partitioning
Sampling
Dynamic Itemset Counting (Brin1997a)
CARMA (Continuous Association Rule Mining Algorithm)2.2 Các thuật toán song song và phân tán
Các thuật toán song song dữ liệu (Data Parallelism)
CD
PDM
DMA
CCPD Các thuật toán song song tác vụ (Task Parallelism)
DD
IDD
HPA
Trang 2 PAR Các thuật toán khác
Candidate Disstribution
SH
HD
3 So sánh các thuật toán
IV TỔNG KẾT
B – BÀI TẬP HỆ CHUYÊN GIA
XÂY DỰNG HỆ CHUYÊN GIA “HỆ HỖ TRỢ CHẨN ĐOÁN, PHÒNG NGỪA, CHỮA TRỊ MỘT SỐ BỆNH THƯỜNG GẶP TỪ CÁC TRIỆU
CHỨNG LÂM SÀNG Ở TRẺ EM”
I Xây dựng cơ sở trí thức cho bài toán
II Cài đ t chương trình DEMO ặt chương trình DEMO
Tài liệu tham khảo
Trang 3LỜI CẢM ƠN
Nhóm học viên thực hiện xin gửi lời cảm ơn chân thành đến Thầy Phan Huy Khánh,Thầy đã tận tình truyền đạt những kiến thức cần thiết cho chúng em trong suốt thờigian môn học Tuy đây là môn học mang tính trừu tượng cao nhưng qua các bài giảng
cụ thể và ví dụ thực tiễn sinh động của Thầy, chúng em đã nắm bắt được cơ bản nộidung môn học và đã có những định hướng chính xác hơn
Do thời gian và trình độ còn nhiều hạn chế cũng như số lượng lớn các thuật toán cầntrình bày, chắc chắn khóa luận còn có chỗ sai sót Nhóm chúng em rất mong nhậnđược ý kiến góp ý và động viên của Thầy cũng như tất cả các Anh/Chị và các bạn đểtiểu luận được hoàn thiện hơn nữa
Chúng em xin chân thành cảm ơn!
Trang 4A – LÝ THUYẾT
I TÌM HIỂU TỔNG QUAN VỀ DATA MINING
1. Data Mining là gì?
Data Mining (khai phá dữ liệu) là việc sử dụng những công cụ phân tích dữ liệu phứctạp để tìm ra những tri thức chưa được biết đến, những mô hình thích hợp, nhữngmối quan hệ trong những cơ sở dữ liệu lớn Về bản chất, khai phá dữ liệu liên quanđến 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 hình có tínhchính quy (regularities) trong tập dữ liệu Vì vậy, Data Mining không những tập hợp,quản lý dữ liệu mà còn phân tích, tiên đoán dữ liệu
Năm 1989, Fayyad, Piatestsky-Shapiro và Smyth đã dùng khái niệm Phát hiện tri thứctrong cơ sở dữ liệu (Knowledge Discovery in Database – KDD) để chỉ toàn bộ quátrình phát hiện các tri thức có ích từ các tập dữ liệu lớn Trong đó, khai phá dữ liệu làmột bước đặc biệt trong toàn bộ quá trình, sử dụng các giải thuật đặc biệt để chiếtxuất ra các mẫu (pattern) (hay các mô hình) từ dữ liệu
Data Mining có thể thao tác trên dữ liệu ở dạng định lượng, có cấu trúc hoặc đaphương tiện Những ứng dụng Data Mining có thể sử dụng các phương pháp khácnhau để khảo sát dữ liệu như:
- Mô hình kết hợp: một sự kiện này được kết hợp với một sự kiện khác, ví dụ:mua bút và mua giấy
- Mô hình phân tích đường đi: một sự kiện này dẫn đến một sự kiện khác, ví dụ:đứa trẻ ra đời dẫn đến việc mua tã lót
- Mô hình phân lớp: xác định những mô hình mới
- Mô hình gom nhóm: tìm kiếm và ghi lại thành nhóm những sự kiện chưa khámphá trước đây, như vị trí địa lý, mức độ ưu tiên
- Mô hình dự báo: khám phá những mô hình mà con người có thể tiên đoánđúng về những sự kiện tương lai
Data Mining được xem là một tiến trình của phát hiện tri thức (Knowledge
Discovery) trong cơ sở dữ liệu.
2 Hạn chế của Data Mining
Data Mining được xem là những công cụ rất mạnh nhưng bản thân nó cũng khôngthể là ứng dụng độc lập Data Mining đòi hỏi những chuyên gia phân tích và chuyên
Trang 5gia kỹ thuật có kỹ năng để phân tích và minh họa đầu ra dữ liệu Vì vậy, những hạnchế của Data Mining liên quan đến dữ liệu hoặc con người hơn là về mặt công nghệ.Mặc dầu Data Mining có thể khám phá ra những mô hình và quan hệ trong cơ sở dữliệu, nó không thể cho người dùng biết được giá trị và ý nghĩa của những mô hình đó,
mà đòi hỏi người sử dụng phải tự xác định nó Tương tự, giá trị của những mô hìnhđược khám phá tùy thuộc vào nó được so sánh với “thế giới thực” như thế nào.Một hạn chế khác của Data Mining là khi nó xác định sự liên quan giữa hành vi vàbiến, nó không cần thiết phải xác định nguyên nhân của quan hệ
3 Ứng dụng của Data Mining
Data Mining được ứng dụng cho nhiều mục đích khác nhau trong cả hai lĩnh vựcchung và riêng Những ngành như ngân hàng, bảo hiểm, y tế và buôn bán lẻ, DataMining được sử dụng để giảm chi phí, nâng cao việc tìm kiếm thị trường và tăngcường khả năng buôn bán Ví dụ, ngành bảo hiểm và ngân hàng sử dụng Data Mining
để kiểm tra sự gian lận và giúp đỡ trong việc đánh giá những rủi ro Sử dụng những
dữ liệu của khách hàng qua nhiều năm, công ty có thể phát triển những mô hình đểtiên đoán một khách hàng là có đáng tin cậy hay không hoặc một báo cáo về tai nạn
có thể là gian lận và nên được điều tra nghiên cứu lại
Trong lĩnh vực chung, những ứng dụng Data Mining không những được dùng như làmột phương tiện để kiểm tra sự gian lận và lãng phí mà còn được dùng cho nhữngmục đích như đo lường và cải tiến việc thực hiện chương trình Data Mining cũnggiúp đỡ chính phủ liên bang thu hồi hàng triệu đôla bị gian lận trong quĩ hỗ trợ chămsóc người già, giúp đỡ bộ tư pháp đưa ra những mô hình tội phạm và phân phốinguồn lực thích hợp, trợ giúp tiên đoán sự thay đổi nhân khẩu và ước lượng tốt hơn
về nhu cầu ngân sách,
Gần đây, Data Mining được xem là công cụ quan trọng trong vấn đề an ninh quốc gia.Một số người đề nghị rằng Data Mining nên được sử dụng như là phương tiện xácđịnh những hoạt động khủng bố như chuyển tiền và thông tin, và xác định định, đánhdấu những người khủng bố qua hồ sơ du lịch, di cư Hai ứng dụng Data Mining đầutiên gây được sự chú ý mạnh mẽ là dự án nhận biết thông tin khủng bố (TerrorismInformation Awareness-TIA) và hệ quan sát hành khách trước màn hình được máytính trợ giúp (Computer Assisted-Passenger Prescreening System II-CAPPS II) Cả 2 hệthống này ra đời sau sự kiện 11-09-2001, ngày nước Mỹ bị bọn khủng bố tấn công,nhằm đảm bảo an toàn cho các chuyến bay trước nguy cơ khủng bố Hiện tại, dự ánTIA không được tiếp tục và CAPPS II được thay thế bởi hệ thống Chuyến bay an toàn(Security Flight)
Trang 64 Một số vấn đề về Data Mining
a Chất lượng dữ liệu
Chất lượng dữ liệu là một thách thức lớn đối với Data Mining Chất lượng dữ liệuđược biết như là độ chính xác và toàn vẹn dữ liệu Chất lượng dữ liệu cũng có thể bịảnh hưởng bởi cấu trúc và sự nhất quán của dữ liệu đang được phân tích
Sự hiện diện của những bản ghi trùng nhau, sự thiếu dữ liệu chuẩn, dữ liệu được cậpnhật cùng một lúc và lỗi do con người có thể tác động đáng kể đến hiệu quả củanhững kỹ thuật Data Mining, cụ thể là sự khác nhau tinh vi có thể tồn tại trên dữ liệu
Để cải tiến chất lượng dữ liệu, đôi khi phải tinh chế dữ liệu như loại bỏ các bản ghitrùng nhau, hình thức hóa các giá trị biểu diễn trong cơ sở dữ liệu (ví dụ: “no” đượcthay thế thành 0 hay N ), tính toán những điểm dữ liệu bị thiếu, loại bỏ nhữngtrường dữ liệu không cần thiết,
b Tương tác giữa các thành phần
Đó là sự tương tác giữa các thành phần cơ sở dữ liệu và phần mềm Data Mining Sựtương tác ám chỉ khả năng của một hệ thống máy tính và/hoặc dữ liệu để làm việc vớinhững hệ thống khác, hoặc dữ liệu sử dụng những tiến trình hoặc tiêu chuẩn chung.Đối với Data Mining, sự tương tác giữa các thành phần cơ sở dữ liệu và phần mềmData Mining là quan trọng để cho phép việc tìm kiếm và phân tích nhiều cơ sở dữ liệucùng một lúc, và đảm bảo cho sự tương thích của Data Mining với các hoạt động củanhững trạm làm việc khác nhau
c Sứ mệnh cao cả (Mission Creep)
Mission Creep là một trong những rủi ro hàng đầu của Data Mining Mission creepđược biết như là việc sử dụng dữ liệu cho những mục đích khác hơn là thu thập dữliệu gốc, không quan tâm dữ liệu được cung cập là tùy chọn hay được thu thập quanhững phương tiện khác nhau
d Tính bảo mật (Privacy)
Khái niệm vấn đề bảo mật liên quan đến mục đích thực sự của dự án và tiềm năngcủa ứng dụng Data Mining để phát triển xa hơn mục đích ban đầu của nó Ví dụ, vàichuyên gia đề nghị ứng dụng Data Mining chống khủng bố cũng có thể ứng dụng đểkết hợp với những loại tội phạm khác
Trang 7II CÁC PHƯƠNG PHÁP MÁY HỌC
ỨNG DỤNG TRONG DATA MINING
1 Tìm luật kết hợp (Mining Association Rules)
Nhiệm vụ của tìm luật kết hợp là tìm các mối quan hệ giữa tập các đối tượng (còn gọi
là các phần tử ) trong một CSDL Các mối quan hệ này được diễn tả bởi luật kết hợp
và mỗi luật có hai phép đo: độ hỗ trợ (support) và độ tin cậy (Confidence) Tìm luật
kết hợp rất thích hợp cho các các ứng dụng như crossing-marketing và attachedmailing Ngoài ra nó còn được áp dụng trong thiết kế catalog, add-on sale, store layout
và phân đoạn khách hàng dựa trên đơn mua hàng Bên cạnh lĩnh vực kinh doanh, tìmluật kết hợp còn được áp dụng trong các lĩnh vực khác như chẩn đoán y học,
2 Phân lớp (Classification)
Phân lớp trong Data Mining đã được công nhận là một phương pháp máy học hiệu quảhiện đang áp dụng trong nhiều mặt của khoa học thống kê, ghi nhận mẫu, lý thuếtquyết định, máy học, mạng nơ-ron,…
Ba bước xử lý chính của phân lớp:
» Bước 1: xây dựng một mô hình sử dụng tập dữ liệu đã biết, được gọi là dữ
liệu tập huấn (Training data) hay các mẫu (Sample).
» Bước 2: đánh giá độ chính xác ước đoán của mô hình sử dụng dữ liệu thử
(test data).
» Bước 3: sử dụng mô hình để dự đoán dữ liệu chưa biết (nếu độ chính xác đãđược chấp nhận)
Chuẩn bị dữ liệu để phân lớp:
» Làm sạch dữ liệu: xóa nhiễu và các giá trị thất lạc
» Kiểm tra không thích hợp: loại bỏ các thuộc tính dư thừa hoặc không thíchhợp
» Chuyển đổi dữ liệu: dữ liệu được tổng quát hóa lên mức khái niệm cao hơnhoặc được chuẩn hóa
3 Gom nhóm (Clustering)
Gom nhóm là nhóm tập các đối tượng vào những nhóm tương đồng nhau,đích nhắm
là lớp có tính tương tự cao ở ngoài lớp và có tính tương tự thấp ở trong lớp Ví dụkhám phá các nhóm khách hàng khác biệt, phân loại gen theo chức năng tương tựnhau, nhận diện nhóm người mua bảo hiểm xe ô-tô có tỉ lệ yêu cầu trung bình cao, Gom nhóm khác phân lớp (Classification) ở chỗ nó không xác định trước các lớp vàcũng không đánh nhãn lớp cho tập mẫu tập huấn
Phân lớp là phương pháp học theo mẫu, học có giáo viên còn gom nhóm là học theo
sự quan sát, không có giáo viên
Trang 8III THUẬT TOÁN TÌM LUẬT KẾT HỢP ỨNG DỤNG TRONG DATA MINING
III.1 Giới thiệu – các định nghĩa liên quan
Một cơ sở dữ liệu (CSDL) giao tác D trên là tập các giao tác trên
Một luật kết hợp là một thể hiện có dạng X Y, trong đó X,Y I là itemset và X Y
= X được gọi là số hạng đứng trước trong khi Y được gọi là vế thứ hai Luật ở đây
nghĩa là X xác định Y.
Phủ của một tập X trong D gồm tập các định danh của giao tác trong D hố trợ X:
cover(X,D) := {tid | (tid,I) D, X I}.
Độ hỗ trợ (support) của một tập X trong D là số giao tác có trong phủ của X trong D:
support(X,D) := | cover(X,D) |
Hay nói cách khác, độ hỗ trợ của X là tỷ số các giao tác T hỗ trợ tập phần tử X trong
cơ sở dữ liệu D:
support(X) = |{TD | X T}| / |D|.
Trong [Agrawal1993] [Cheung1996c], support(s) của một luật kết hợp là tỉ số (tính
theo phần trăm) của các bản ghi có chứa X Y trên tổng số bản ghi của CSDL
Như vậy nếu ta nói, độ hỗ trợ của một luật là 5% thì có nghĩa là có 5% trên tổng sốbản ghi có chứa X Y
Độ hỗ trợ của luật X Y được định nghĩa như sau: support(XY) = support(XY).
Tính phổ biến của tập X trong D là khả năng xuất hiện của X trong một giao tác T D:
frequency(X,D) := P(X) = support(X,D) / |D|
Một tập phần tử được gọi là phổ biến nếu độ hỗ trợ của nó không nhỏ hơn trị tuyệt đối ngưỡng hỗ trợ tối thiểu (minimal support threshold) σabs với 0 σabs |D| Khi làm việc với các tập phổ biến, thay vì sử dụng support của chúng ta dùng một khái niệm liên quan là ngưỡng phổ biến tối thiểu (minimal frequency threshold) σrel với 0
σrel 1 Hiển nhiên σabs = [σrel |D| ].
Độ tin cậy (confidence) hay độ chính xác (accuracy) của luật kết hợp X Y trong D
được định nghĩa như sau:
confidence(X Y ,D):=P(Y|X) = support(X Y,D) / support(X,D)
Trang 9Một luật được gọi là tin cậy (confident) nếu P(Y|X) vượt quá ngưỡng tin cậy tối thiểu
γ với 0 γ 1.
Trong [Agrawal1993] [Cheung1996c], confidence() là tỉ số (tính theo phần trăm) của
số bản ghi có chứa X Y trên tổng số bản ghi của CSDL có chứa X
Nghĩa là nếu nói độ tin cậy là 85% thì 85% số bản ghi chứa X cũng chứa Y
Tiên đề:
Cho CSDL giao tác D trên , X,Y là hai itemset, khi đó:
X Y support(Y) ≤ support(X)
Chứng minh:
Điều này có được ngay từ cover(Y) cover(X) (ĐPCM)
III.2 Tổng quan về các thuật toán tìm luật kết hợp
1 Thuật toán cơ sở
Tìm các luật kết hợp từ một cơ sở dữ liệu bao gồm quá trình tìm tất cả các luật phù
hợp với ngưỡng support và confidence do người dùng ấn định Vấn đề này có thể được
phân thành 2 vấn đề nhỏ hơn [Agrawal1994] như được trình bày trong thuật toán 1.
Thuật toán 1 Thuật toán cơ sở.
Bước thứ nhất của thuật toán sẽ tìm các mục dữ liệu thường xuyên xuất hiện trong cơ
sở dữ liệu thoả ngưỡng minsupp (các tập phổ biến) Các mục dữ liệu khác được gọi là
small itemset – không phổ biến.
Một nhận xét đáng chú ý là: nếu một tập các mục dữ liệu X không thoả support s thì các tập lớn hơn của nó (superset) cũng sẽ không thoả s và ngược lại, nếu X thoả s thì
superset của X cũng thoả s.
Bước thứ hai của thuật toán 1 sẽ tìm các luật kết hợp sử dụng tập phổ biến đã tìm được
ở bước 1
Xem xét ví dụ sau
Ví dụ 1:
Giả sử có một cơ sở dữ liệu nhỏ với bốn mục dữ liệu I={Bánh mì, Bơ, Trứng, Sữa} và
có bốn giao dịch như trong bảng 1 Bảng 2 là các tập dữ liệu có thể có của I Giả sử rằng minsupp và minconf lần lượt là 40% và 60% Hãy xem bảng 3: đầu tiên ta phải tìm các luật thoả minsupp, sau đó phải xem xét các luật có độ tin cậy minconf tối thiểu
là 60% Các mục dữ liệu thoả mãn hai điều kiện trên là {Bánh mì, Bơ} và {Bơ, Trứng}.
Minsupp cho mỗi mục dữ liệu đơn tối thiểu là 40% (xem bảng 2), vì thế các mục dữ
liệu này là phổ biến Độ tin cậy của các luật được trình bày trong bảng 3, dễ dàng thấy
Trang 10rằng luật (Bánh mì Bơ) là hiển nhiên thoả Tuy nhiên luật thứ hai (Bơ Trứng) thì
không thoả vì có minconf nhỏ hơn 60%.
Bảng 1: cơ sở dữ liệu cho ví dụ 1 Transaction
Bảng 2: minsupp cho các tập phần tử của bảng 1
Ghi chú: Large: phổ biến
Small: không phổ biến
Mục dữ liệu Support, s (%) Large/Small
Bảng 3: các luật thoả minconf 60%
Việc tính toán các mục dữ liệu phổ biến rất tốn kém [Agrawal1994] Tuy nhiên, có
một thuật toán trực tiếp tìm các luật kết hợp như thuật toán 2 sau đây (thuật toán này
đã được trình bày trong [Agrawal1994])
Thuật toán 2 – Tìm các luật kết hợp dựa vào tập phổ biến
Trang 11Thuật toán
phổ biến, l L
nếu tỷ lệ tần số xuất hiện của l với tần số cuất hiện của x lớn hơn hoặc bằng ngưỡng tin cậy.
Ví dụ, giả sử ta cần xác định luật (Bánh mì Bơ) có được chọn trong ví dụ 1 Ở đây, l={Bánh mì, Bơ} và x={Bánh mì}, như vậy (l-x)={Bơ} Khi đó support(Bánh mì, Bơ)
với support(Bánh mì) là 100%, lớn hơn ngưỡng tin cậy đã cho, vậy luật này được chọn Để làm rõ thêm ta xét luật thứ 3 (Bơ Trứng), trong đó x = {Bơ} và (l-x) = {Trứng} Tỷ lệ support(Bơ, Trứng) và support(Bơ) là 50%, nhỏ hơn ngưỡng tin cậy tối
thiểu là 60% Như vậy ta nói không đủ cơ sở để kết luận rằng luật (Bơ Trứng) đạt
độ tin cậy 60%
Quá trình tìm các luật kết hợp trong các cơ sở dữ liệu cực lớn là rất tốn kém và đạthiệu suất thấp Vì vậy hầu hết các cải tiến sau này đều theo hướng tìm những thuậttoán hiệu quả hơn cho bước thứ nhất [Algrawal1994] [Cheung1996c][Klemettien1994] Phần tiếp theo sẽ trình bày các thuật toán này
2 Các thuật toán tuần tự (Sequential Algorithm)
Phần này sẽ trình bày một cách tổng quát về các thuật toán đã có để tìm luật kết hợp.Hầu hết các thuật toán được dùng để nhận dạng các tập phổ biến được phân thành 2lớp: tuần tự và song song Trong hầu hết các trường hợp, các thuật toán này giả thiếtrằng các tập phần tử được nhận dạng và sắp xếp theo thứ tự đồ thị lexico(lexicographic – đồ thị dựa trên tên của mục dữ liệu) Kiểu sắp xếp này cung cấp mộtcách quản lý logic mà theo đó các tập phần tử có thể được phát sinh và thống kê Đây
là hướng tiếp cận tiêu chuẩn với các thuật toán tuần tự On the other hand, các thuậttoán song song tập trung vào phương pháp sao cho xử lý song song tác vụ khi tìmkiếm các tập phổ biến Sau đây chúng ta sẽ thảo luận về các thuật toán loại này
2.1 Thuật toán AIS
AIS là thuật toán được công bố đầu tiên để nhận dạng tất cả các tập phổ biến trong một
cơ sở dữ liệu giao tác [Agrawal1993] Nó tập trung vào sự nâng cao các CSDL để xử
lý các câu hỏi hỗ trợ ra quyết định Thuật toán này là đích nhắm để khám phá các luậtkết hợp chất lượng (qualitative rule)
Thuật toán AIS duyệt cơ sở dữ liệu đầu vào nhiều lần và ở mỗi lần duyệt, AIS quét
qua mọi giao tác Trong lần duyệt đầu tiên, AIS đếm support của các mục dữ liệu riêng
biệt và xác định chúng thuộc tập phổ biến hay không Tập phổ biến của mỗi lần duyệtđược mở rộng để phát sinh tổ hợp các tập phần tử Sau khi quét một giao tác, các tậpphần tử chung của lần quét trước và các phần tử của giao tác hiện tại được xác định.Tập phần tử chung này được mở rộng với những phần tử khác trong giao tác nhằm tạo
ra tổ hợp mới Một tập mục dữ liệu phổ biến l được mở rộng chỉ với những mục dữliệu là phổ biến và xuất hiện trễ hơn trong thứ tự sắp xếp lexicographic của bất kỳ mục
dữ liệu nào có trong l Để đạt được hiệu quả trong tác vụ này, AIS sử dụng công cụ
ước lượng và kỹ thuật cắt tỉa (pruning) Các kỹ thuật ước lượng và cắt tỉa xác định các
tổ hợp bằng cách bỏ qua các tập phần tử không cần thiết từ tập tổ hợp Sau đó, support của mỗi tổ hợp sẽ được tính toán Các tổ hợp có support lớn hơn hoặc bằng minsupp
Trang 12được chọn là tập phổ biến Tập mục dữ liệu này được mở rộng để tạo các tổ hợp ở lầnduyệt kế tiếp Quá trình này sẽ dừng khi không có tập mục dữ liệu nào được tìm thấy.Thuật toán này bảo đảm rằng nếu tập phần tử nào không tồn tại trong toàn thể CSDLthì nó không bao giờ trở thành một tổ hợp cho tập phổ biến trong lần duyệt tiếp theo.Việc phát sinh số lượng lớn các tập tổ hợp thường là nguyên nhân dẫn đến tràn bộ nhớđệm Bởi vậy một sự phối hợp việc quản lý bộ nhớ đệm là cần thiết Thuật toán AIS đềxuất hướng giải quyết rằng các tập phổ biến không cần thiết phải lưu trong bộ nhớtrong suốt quá trình duyệt CSDL mà có thể được lưu trên đĩa Thuật toán quản lý bộnhớ đệm cho các tập tổ hợp được cung cấp trong [Agrawal1993].
Vấn đề chính của AIS là nó phát sinh quá nhiều tổ hợp mà sau này sẽ không thoảngưỡng cho phép [Agrawal1994] Nếu một cơ sở dữ liệu có m mục dữ liệu và mọimục dữ liệu đều xuất hiện trong mỗi giao tác thì sẽ có 2m trường hợp cần xét Nhưvậy,trong trường hợp xấu nhất, độ phức tạp của thuật toán này là hàm mũ theo m
2.2 Thuật toán SETM
Thuật toán SETM được đề xuất trong [Houtsma1995] và thích hợp cho SQL nhằm tínhtoán các tập phổ biến [Srikant1996] Trong thuật toán này, mỗi thành phần của tập phổbiến, L k , đều có khuôn dạng <TID, itemset> trong đó TID là định danh duy nhất
của giao tác Tương tự, mỗi thành phần của tập các tập tổ hợp, C k, cũng có dạng
<TID, itemset>.
Tương tự như AIS, SETM tiến hành duyệt nhiều lần trên cơ sở dữ liệu Trong lần
duyệt đầu tiên, nó đến support của các mục dữ liệu riêng lẻ và xác định xem chúng có
thoả ngưỡng đã đặt hay không Sau đó SETM sẽ phát sinh các tổ hợp bằng cách mở
rộng tập phổ biến của lần duyệt trước Thêm vào đo, SETM sẽ ghi nhớ các TID của
các giao tác đang phát sinh cùng các tập tổ hợp Trong quá trình phát sinh tổ hợp,
SETM lưu một bản sao của tập phổ biến cùng với TID quá trình phát sinh giao tác theo
dạng tuần tự (sequential manner) Sau này, các tổ hợp sẽ được lưu dưới dạng các tậpphần tử và các tập không thoả ngưỡng sẽ bị xoá bằng hàm kết hợp (aggregation
function) Nếu cơ sở dữ liệu được sắp xếp theo TID, tập phổ biến chứa trong một giao
tác ở bước kế tiếp sẽ được thu nhận bằng cách sắp xếp L k theo TID Theo cách này,
có nhiều lần duyệt CSDL sẽ được tạo ra và khi không còn tập phổ biến nào được tìmthấy, thuật toán sẽ dừng
Điểm bất lợi chính của SETM là chi phí phải trả cho số lượng các tập tổ hợp
[Agrawal1994] Vì mỗi tổ hợp có một TID tương ứng nên nó yêu cầu thêm không gian nhằm có thể lưu trữ được một số lượng lớn các TID Hơn nữa, khi support của một tổ
hợp được thống kê tại điểm cuối của lần duyệt, C k lại không được sắp theo thứ tự,
bởi vậy cần phải có một lần sắp xếp nữa trên các tập phần tử Sau đó, các tổ hợp được
tách (pruned) bằng cách loại bỏ các tập không thoả ngưỡng support Có một cách sắp xếp khác trên TID là cần thiết cho tập kết quả L k Sau này, L k có thể được dùng
để phát sinh các tổ hợp cho lần duyệt kế tiếp Trong thuật toán SETM [Agrawal1994],giả thiết rằng C k có thể chứa được trong bộ nhớ chính, vì vậy không cần phải quản
lý bộ đệm Hơn nữa, theo [Sarawagi1998], SETM là không có hiệu quả và mỗi khithực hiện trên CSDL quan hệ sẽ không thấy phần báo cáo kết quả
Trang 132.3 Thuật toán Apriori
Thuật toán Apriori được phát triển bởi [Agrawal1994] là thành tựu lớn nhất trong lịch
sử khi phá luật kết hợp [Cheung1996c] Chi tiết của thuật toán sẽ được trình bày trong[IV.1] Điểm khác biệt cơ bản giữa Apriori với AIS và SETM là cách thức tạo và chọn
tổ hợp để thống kê thoả ngưỡng hay không Như đã trình bày, cả trong AIS và SETM,các tập phần tử chung giữa tập phổ biến của lần duyệt trước và các phần tử của giaotác được xác định Các tập chung này được mở rộng với các phần tử riêng biệt tronggiao tác để tạo các tổ hợp Tuy nhiên, các phần tử riêng biệt này có thể là không phổbiến Ta đã biết rằng sự kết hợp của tập phổ biến và tập không phổ biến có thể lại tạo
ra tập không phổ biến nên kỹ thuật này phát sinh quá nhiều tổ hợp có thể không thoảngưỡng Thuật toán Apriori tạo các tổ hợp bằng cách kết nối các tập phổ biến của lầnduyệt trước và xoá các tập con không thoả trong lần duyệt trước mà không xét đến cácgiao tác trong CSDL Bằng cách chỉ xét đến tập phổ biến của lần duyệt trước, số lượng
tổ hợp giảm đi dáng kể
2.4 Thuật toán Apriori-TID
Apriori quét dữ liệu đầu vào cho mỗi lần duyệt nhằm thống kê support nhưng việc
quét dữ liệu đầu vào này không cần thiết phải thực hiện ở tất cả các lần duyệt Dựa vàođiều này, [Agrawal1994] đề xuất thuật toán khác gọi là Apriori-TID Tương tự nhưApriori, Apriori sử dụng hàm tạo tổ hợp của Apriori để xác định tập tổ hợp phần tửtrước mỗi lần duyệt Sự khác biệt chính so với Apriori là thuật toán này không dùng
CSDL để thống kê support sau lần duyệt đầu tiên Đúng hơn là nó dùng một bảng mã
của tập tổ hợp các phần tử, ký hiệu là C k, đã dùng trong lần duyệt trước Như trong
SETM, mỗi phần tử trong C k có dạng <TID, X k > với X k là khả năng hiện diện của
tập k phần tử trong giao tác có định danh TID Tại lần duyệt đầu tiên, C 1 tương ứng
với CSDL, tuy nhiên mỗi phần tử được thay bằng tập phần tử Trong các lần duyệtkhác, thành phần của C k tương ứng với giao tác T là <TID, c> với c là một tổ hợp
thuộc C k chứa trong T Bởi vậy kích thước của C k có thể nhỏ hơn số lượng giao
tác trong CSDL Hơn nữa, mỗi dòng vào trong C k có thể nhỏ hơn giao tác tương
ứng khi giá trị k đủ lớn Có điều này bởi vì rất ít tổ hợp có thể được chứa trong giao
tác Chi tiết thuật toán được trình bày trong [IV.3]
Điểm tiện lợi khi sử dụng hàm mã hoá trên là trong các lần duyệt tiếp sau, kích thướchàm sẽ trở nên nhỏ hơn so với CSDL, theo đó sẽ tiết kiệm được nhiều lần đọc dữ liệu.Apriori-TID cũng thực hiện tốt hơn hai thuật toán AIS và SETM
Trong Apriori-TID, tập tổ hợp các phần tử trong Ck được lưu trữ trong một mảng sắpxếp theo các TID Mỗi Ck lại được lưu theo cấu trúc tuần tự Tại lần duyệt thứ k,Apriori-TID cần có không gian bộ nhớ dành cho Lk-1 và Ck trong quá trình tạo tổ hợp.Không gian bộ nhớ là cần thiết cho Ck-1, Ck, C k và C k -1 ở tại pha thống kê Tại
thời điểm phát sinh tổ hợp, phân nửa bộ đệm được lấp đầy bằng các tổ hợp và điều nàycho phép các phần của Ck và Ck-1 được lưu trong bộ nhớ suốt trong pha tính toán Nếu
bộ nhớ không còn đủ để lưu trữ Lk, thuật toán khuyến cáo nên sắp xếp Lk ở thiết bị lưutrữ ngoài
Trang 14Apriori-TID sử dụng C k thay cho CSDL đầu vào sau lần duyệt đầu tiên nên nên nó
đạt hiệu quả cao ở các lần duyệt sau khi tập C k đã trở nên nhỏ hơn Tuy nhiên
Apriori-TID có cùng rắc rối với SETM khi C k có khuynh hướng lớn dần, nhưng
Apriori-TID thì phát sinh tập tổ hợp ít hơn đáng kể so với SETM Khi k lớn dần,một vấn đề nữa phát sinh là việc quản lý bộ đệm (buffer management) Đây là căn cứchứng tỏ Apriori –TID thực hiện tốt hơn Apriori khi số tập C k là đủ nhỏ để có thể
đưa vào bộ nhớ và sự phân bố các tập phổ biến là đủ lớn [Srikant1996b] Sự phân bổnày sẽ trở nên nhỏ hơn ngay sau khi vươn đến tột đỉnh và cứ tiếp tục trong một thờigian dài Điều này cho thấy hiệu suất của Apriori tốt hơn Apriori-TID đối với các tập
dữ liệu lớn [Agrawal1994] nhưng mặt khác Apriori-TID lại tốt hơn Apriori khi các tập
C k là tương đối nhỏ (vừa đủ trong bộ nhớ) Vì vậy xuất hiện kỹ thuật “Apriori-Lai”
được đề cập bởi [Agrawal994]
2.5 Thuật toán Apriori-Hybrid
Tư tưởng của thuật toán này là không nhất thiết phải sử dụng cùng một thuật toántrong tất cả các lần duyệt trên dữ liệu Như đã được đề cập trong [Agrawal1994],Apriori đạt hiệu suất tốt hơn trong những lần duyệt đầu tiên, và Apriori-TID thực hiệntốt hơn Apriori ở những lần duyệt sau Dựa trên những thí nghiệm quan sát được, kỹthuật Apriori-Hybrid đã được phát triển nhằm sử dụng Apriori ở những lần duyệt khởiđộng và chuyển sang Apriori-TID một khi cho rằng tập C k ở cuối lần duyệt sẽ lấp
vừa bộ nhớ Bởi vậy, sự tính toán C k khi nào đạt được trạng thái trên là cần thiết.
Mặt khác, việc chuyển từ Apriori sang Apriori-TID cũng phải mất một lượng chí phínhất định Hiệu năng của kỹ thuật này có thể đánh giá được bằng các thí nghiệm trêncác tập dữ liệu lớn Thuật toán này là tốt hơn Apriori ngoại trừ trường hợp việc chuyểntrạng thái (từ thuật toán này sang thuật toán kia) xảy ra tại thời điểm cuối cùng của mỗilần duyệt [Srikant1996b]
2.6 Một số thuật toán khác
Off-line Candidate Determination (OCD)
Kỹ thuật này được đề xuất trong [Mannila1994] dựa trên ý tưởng là các mẫu khôngphổ biến thường rất tốt để tìm các tập phổ biến Kỹ thuật OCD sử dụng kết quả phântích tổ hợp các thông tin nhận được từ lần duyệt trước nhằm loại ra các tập không
cần thiết Nếu một tập Y l là không phổ biến, có ít nhất (1-s) giao tác phải được
duyệt với s là ngưỡng support Bởi vậy khi s đủ nhỏ, gần như toàn bộ quan hệ đưa
vào được đọc Rõ ràng là đối với các CSDL rất lớn, điều này rất quan trọng để có thểtiến hành duyệt CSDL ít hơn
OCD là một cách tiếp cận khác từ AIS để xác định các tổ hợp OCD sử dụng tất cả cácthông tin sẵn có từ lần duyệt trước để chia tách các tập tổ hợp giữa các lần duyệtbằng cách giữ lại lần duyệt đơn giản nhất có thể Kết quả của OCD là tập Lk, là tập cácphần tử phổ biến có độ lớn k Tập tổ hợp Ck+1, chứa các tập có độ lớn (k+1), có thể cómặt trong Lk+1, nhận được từ tập Lk Chú ý rằng nếu X L k+e với e≥0 thì X bao gồm
Trang 15hay 3 tập từ L 2 Tương tự, mỗi mục của L 4 gồm 4 tập của L 3 và cứ thế tiếp tục
Ví dụ, với L 2 ={Táo, Chuối}, {Chuối, Cải bắp}, {Táo, Cải bắp}, {Táo, Trứng}, {Chuối, Trứng}, {Táo, Kem}, {Cải bắp, Sirô}} ta kết luận rằng {Táo, Chuối, Cải bắp} và {Táo, Chuối, Trứng} chỉ có thể là các thành phần thuộc L 3 Bởi vì chúng là các tập có kích
thước 3 của tất cả các tập con có kích thước 2 trong L 2 L 4 là rỗng vì bất kỳ thành phần
nào của L 4 đều phải có 4 phần tử thuộc L 3 , nhưng trong L 3 chỉ có 2 phần tử
Từ đó C k+1 được tính theo công thức sau:
C k+1 = {Y I với |Y|=k+1 và Y bao gồm (k+1) phần tử của L k } (1)
Để tìm C k+1 ta cần phải xét đến mọi khía cạnh, ở đó mọi tập con có kích thước k+1 đềuphải được xét đến Thủ tục này xét một tập rất lớn các tổ hợp không cần thiết, vì thếrất lãng phí Để giải quyết, OCD đề nghị hai hướng đi khác thay thế Một trong số đó
là tính tập C’ k+1 bằng cách tạo các hợp của L k có (k-1) phần tử theo công thức sau:
C’ k+1 = {YY’ với Y, Y’ L k và |YY’|=k+1} (2)
Như vậy C k+1 C’ k+1 và C k+1 có thể được tính bằng cách kiểm tra mỗi một tập trong
C’ k+1 mà các điều kiện định nghĩa C k+1 thoả mãn
Hướng đi thứ hai là xây dựng hợp của các tập từ L k và L 1 như trong (3)
Sau đó tính C k+1 bằng cách kiểm tra cả những điều kiện nằm trong công thức (1)
Ở đây, độ phức tạp tính toán C k+1 không phụ thuộc vào kích thước của CSDL, hay đúng
hơn là không phụ thuộc vào kích thước của L k Ngoài ra có thể tính được C k+1 , C k+2 ,
…,C k+e với e>1 trực tiếp từ L k
Độ phức tạp thời gian tính C k+1 từ C’ k+1 là O(k|Lk|3
) Nói cách khác, thời gian tính C k+1 từ
C’’ k+1 là tuyến tính theo kích thước của cơ sở dữ liệu (n) và hàm mũ theo kích thước
của tập phổ biến lớn nhất Bởi vậy thuật toán có thể rất chậm với giá trị n rất lớn Tập
phổ biến có thể được tính xấp xỉ bằng cách phân tích các mẫu nhỏ hơn của một CSDLlớn [Lee1998; Mannila1994] Lý thuyết phân tích này đã được [Mannila1994] trìnhbày và chứng tỏ rằng các mẫu nhỏ này rất tốt để tìm các tập phổ biến Theo
[Mannila1994], thậm chí khi ấn định giá trị thấp cho support, một cơ sở dữ liệu mẫu
Trang 16Duyệt D1 và D2 để tìm các Local Large Itemset.
C ={{Bánh mỳ}.{Bơ},{Trứng} {Bánh mỳ, Bơ},
{Bánh mỳ, Trứng},{Bơ, Trứng},{Bánh mỳ, Bơ, Trứng}, {Sữa},{Bơ, Sữa}, {Trứng, Sữa},{Bơ, Trứng, Sữa}}Duyệt D để thống kê support L ={{Bánh mỳ}, {Bơ},{Trứng}, {Bánh mỳ, Bơ},{Bơ, Trứng}}
Hình 1: Tìm các tập phổ biến dùng thuật toán PARTITION
OCD mang lại là khả năng ấn định ngưỡng support thấp [Mannila1994] Các tổ hợp
được phát sinh trong AIS là cao hơn đáng kể so với OCD AIS có thể tạo ra các tổ hợptrùng lặp trong khi duyệt, còn OCD phát sinh bất kỳ tổ hợp nào cũng chỉ một lần và
kiểm tra nếu các tập con của nó là phổ biến hay không trước khi đánh giá trong cơ sở
Giả sử có một CSDL được chia thành các phần nhỏ như sau: D 1 , D 2 ,…, D p Trong lần
duyệt đầu tiên, thuật toán tìm các tập phổ biến cục bộ L i (local large itemset) trong mỗi
phần chia D i (1 ≤ i ≤ p) nghĩa là {X | X.count ≥ s x |D i |}.
Tập phổ biến cục bộ, L i, có thể được xác định bằng thuật toán level-wise như Apriori
Một khi mỗi phần chia đều được lưu trữ vừa đủ trong bộ nhớ thì không cần thiết cầnthêm đọc/ghi đĩa cho nó sau khi nạp phần chia vào bộ nhớ chính Ở lần quét thứ hai,thuật toán sử dụng một đặc tính là một tập phổ biến trên toàn bộ CSDL thì cũng phảiphổ biến cục bộ trên ít nhất một phân vùng của CSDL Khi đó hợp của các tập phần tửphổ biến cục bộ tìm thấy trên mỗi phần chia được dùng như là các tổ hợp và đượcthống kê trên toàn CSDL nhằm tìm tất cả các tập phổ biến
Nếu CSDL được chia thành hai phần, phần thứ nhất chứa hai giao dich đầu tiên và
phần thứ hai là hai giao dịch còn lại Khi minsupp là 40% và chỉ có hai giao tác trong
mỗi phần chia thì một tập phần tử xuất hiện chỉ một lần sẽ thỏa ngưỡng Khi đó các tậpphổ biến cục bộ trên hai phân vùng vừa đúng bằng tất cả các tập con của các giao tác
Hợp của chúng là tập tổ hợp các phần tử cho lần duyệt thứ hai
Thuật toán Partition làm đồng nhất dữ liệu phân tán Có nghĩa rằng, thậm chí nếu sự
xuất hiện của một tập phần tử bị phân bố trên mỗi phân vùng thì hầu hết các tập phần
tử được thống kê ở lần quét thứ hai là phổ biến Tuy nhiên, đối với dữ liệu phân tán
lệch (skewed data distribution), hầu hết các tập phần tử trong lần quét thứ hai có thể
thành không phổ biến, do đó sẽ hao tổn rất nhiều thời gian của CPU để thống kê cáctập trên AS-CPA (Anti-Skew Counting Partition Algorithm) [Lin1998] là dòng thuậttoán anti-skew, đề xuất phương pháp cải tiển Partition khi dữ liệu là phân tán như sau:
trong lần duyệt đầu tiên, số lượng các tập phần tử được tìm thấy trong các phần chiatrước đó sẽ được tích luỹ lại và được tăng lên ở phần chia tiếp theo Số tích luỹ này
được dùng để lược bớt những tập phần tử không phổ biến Nhờ sử dụng kỹ thuật lược
Trang 17bỏ những tập phần tử không phổ biến trước mà số lượng các tập không thoả được đếm
sẽ giảm đi trong những lần duyệt tiếp theo
Sampling
Sampling[Toivonen1996] giảm thiểu số lượng CSDL cần được duyệt trong trường hợptốt nhất còn một và xấu nhất là hai CSDL Đầu tiên, một phần cơ sở dữ liệu có thể lưutrữ vừa đủ trong bộ nhớ chính được trích ra Sử dụng các thuật toán level-wise như
Apriori để tìm tập phổ biến PL của phần mẫu này Tập PL này được xem như là một
tập phổ biến và được dùng để phát sinh các tổ hợp mà chúng sẽ được kiểm tra lại trêntoàn CSDL
Các tổ hợp được phát sinh bằng hàm phủ định biên BD ¯ (Negative Border Function) trên PL Như vậy các tổ hợp là BD ¯ (PL) PL Phủ định biên của tập các phần tử PL
là tập tối thiểu của tập các phần tử không chứa trong PL nhưng mọi tập con của chúng lại thuộc PL Hàm phủ định biên là sự tổng quát hoá của hàm apriori_gen trong
Apriori Khi mọi tập phần tử trong PL có cùng kích thước, BD ¯ (PL)
=Apriori_gen(PL) Sự khác biệt ở đây là phủ định biên có thể được áp dụng cho các
tập phần tử có kích thước khác nhau, trong khi hàm apriori_gen () chỉ áp dụng khi kíchthước tập phần tử là một
Sau khi các tổ hợp được phát sinh, toàn bộ CSDL được quét một lần để xác định số
lượng các tổ hợp Nếu tất cả các tập phổ biến đều nằm trong PL, nghĩa là không có tập phần tử nào trong BD ¯ (PL) trở thành phổ biến, thì mọi tập phổ biến đã được tìm thấy
và thuật toán dừng Điều này được đảm bảo bởi vì BD ¯ (PL) PL thực tế chứa mọi tổ
hợp các tập phần tử của Apriori nếu PL bao hàm tất cả tập các phần tử L, nghĩa là L
PL
Dynamic Itemset Counting (Brin1997a)
DIC sẽ phát sinh và thống kê các tập phần tử trước, như vậy số lần duyệt CSDL sẽ giảm xuống DIC xem CSDL là các khoảng phân biệt (interval) của các giao tác, và các interval này được duyệt lần lượt Khi duyệt interval đầu tiên, các tập có 1 phần tử
được phát sinh và thống kê Tại điểm cuối của lần duyệt này, các tập có 2 phần tử có
khả năng thành tập phổ biến được phát sinh Khi duyệt interval thứ hai, tất cả tập gồm một và hai phần tử đã được phát sinh được thống kê Tại điểm cuối của interval thứ hai, các tập có ba phần tử có tiềm năng lại được phát sinh, và chúng được thống kê trong suốt quá trình duyệt interval thứ ba cùng với các tập gồm một và hai phần tử Tống quát, tại thời điểm kết thúc của interval thứ k, các tập (k-1) phần tử có tiềm năng thành phổ biến được phát sinh và được thống kê cùng với các tập phần tử trước đó tai các interval sau này Khi đạt đến giới hạn của CSDL, DIC quay lại đầu CSDL và thống kê các tập phần tử chưa được kiểm đầy đủ Số lần duyệt CSDL thực tế phụ thuộc vào kích thước của các interval Nếu kích thước này là đủ nhỏ, mọi tập phần tử
sẽ được phát sinh trong lần duyệt đầu tiên và được thống kê đầy đủ trong lần duyệt thứhai DIC cũng sẽ đồng nhất dữ liệu như thuật toán Partition
CARMA (Continuous Association Rule Mining Algorithm)
Với thuật toán CARMA [Hidb1999], việc tính toán các tập phổ biến được thực hiện
trực tuyến (online) Khi đó, CARMA hiển thị các luật kết hợp và cho phép người dùng
thay đổi các tham số (parameter), minsupp và minconf tại bất kỳ giao tác nào trong
suốt lần duyệt CSDL đầu tiên Thuật toán này cần nhiều nhất hai CSDL Tương tự