Tiểu luận Công nghệ tri thức
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)
Nhóm 4
Trang 2 CD
PDM
DMA
CCPD Các thuật toán song song tác vụ (Task Parallelism)
DD
IDD
HPA
PAR Các thuật toán khác
B – BÀI TẬP HỆ CHUYÊN GIA
XÂY DỰNG HỆ CHUYÊN GIA “HỆ HỖ TRỢ CHẨN ĐOÁN MỘT SỐ
BỆNH THÔNG THƯỜ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ài liệu tham khảo
Nhóm 4
Trang 3LỜI CẢM ƠN
Nhóm sinh 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 tốt nội dung mônhọc và đã có những định hướng chính xác hơn cho tương lai
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
Xin chân thành cảm ơn!
Nhóm 4
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ững mốiquan hệ trong những cơ sở dữ liệu lớn Về bản chất, khai phá dữ liệu liên quan đếnviệ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ính chínhquy (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ết xuấ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ông thể
là ứng dụng độc lập Data Mining đòi hỏi những chuyên gia phân tích và chuyên gia
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ạn chế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ệ
Nhóm 4
Trang 53 Ứ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ũng giúp
đỡ chính phủ liên bang thu hồi hàng triệu đôla bị gian lận trong quĩ hỗ trợ chăm sócngười già, giúp đỡ bộ tư pháp đưa ra những mô hình tội phạm và phân phối nguồn lựcthí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ầungâ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)
4 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ủa nhữ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ững trườ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
Nhóm 4
Trang 6Đố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ệugốc, không quan tâm dữ liệu được cung cập là tùy chọn hay được thu thập qua nhữngphươ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ăng củ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
Nhóm 4
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ámphá 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ậndiệ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
Nhóm 4
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) = |{T∈D | 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(X⇒Y) = support(X∪Y) 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:
Trang 9Độ 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)
Mộ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ở.
Phát sinh các luật thoả mãn độ tin cậy confidence α.
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
Nhóm 4
Trang 10Xem 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
rằ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
ID
Mục dữ liệu
T1 Bánh mì, Bơ, Trứng T2 Bơ, Trứng, Sữa
T4 Bánh mì, Bơ
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%
Trang 11Việc tính toán các mục dữ liệu phổ biến rất tốn kém [Agrawal 1994] 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
(l-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)
Nhóm 4
Trang 12Thuậ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ầnduyệ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áctập phầ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 đượ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ần duyệ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,
Nhóm 4
Trang 13có 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ởivậ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átsinh các tổ hợp cho lần duyệt kế tiếp Trong thuật toán SETM [Agrawal1994], giả thiếtrằ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 khi thực hiện trênCSDL quan hệ sẽ không thấy phần báo cáo kết quả
2.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ư trongSETM, 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ệt khá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 trongCSDL 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ị
Nhóm 4
Trang 14k đủ 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ày chophé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ưu trữngoài
Apriori-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ó đạthiệ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-TIDthì 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ữaphá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ời gian dài Điều nàycho 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ặtkhá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ên cáctậ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ủamỗi lần duyệt [Srikant1996b]
2.6 Một số thuật toán khác
Nhóm 4
Trang 15 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ànhduyệ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ệt bằngcá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ác phầ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ặttrong 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
tập từ L k Điều này có nghĩa rằng nếu e=1, k=2 và X ∈ L 3 thì X gồm có
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 = {Y∪Y’ với Y, Y’ ∈ L k và |Y∪Y’|=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)
Nhóm 4
Trang 16Ở đâ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
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ợp trùnglặ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ở dữ liệu.
Partitioning
Kỹ thuật này [Savasere1995] quy số lượng cơ sở dữ liệu cần phải duyệt chỉ còn 2 Nóchia CSDL thành những phần nhỏ hơn sao cho mỗi phần chia có thể lưu vừa đủ trong
bộ nhớ chính
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
Duyệt D để thống
kê support
Hình 1: Tìm các tập phổ biến dùng thuật toán PARTITION
Trang 17Nế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áctập phổ 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 giaotá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
bỏ 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)
Nhóm 4