LỜI CẢM ƠN
Em xin chân thành cảm ơn thầy giáo, Phó giáo sư, Tiến sĩ
Phan T ng a, giám ă Đ đốc trung tâm máy tính trường Đại học
Bách Khoa Hà Nội; thầy giáo, Phó giáo sư, Tiến s Nguyĩ ễn Ngọc
Bình,, giám đốc trung tâm thư viện iđ ện tử trường Đại học
Bách Khoa Hà Nội ã tđ ận tình hướng dẫn và giúp đỡ, cung
cấp cho em những ý kiến óng góp, nhđ ận xét quý báu trong
quá trình thực hiện đồ án.
Em xin chân thành cảm ơn các thầy cô giáo trong khoa
Công nghệ thông tin c ng nhũ ư các thầy cô giảng dạy trong
trường Đại học Bách Khoa Hà Nội, những người ã truyđ ền thụ
cho em những kiến thức quí báu trong suốt thời gian học
tập và nghiên cứu tại trường, giúp em có được những iđ ều
kiện cần thiết để hoàn thành tốt đồ án này.
Sự quan tâm và giúp đỡ của Bố mẹ, cùng toàn thể gia
ình là mđ ột nguồn động viên rất lớn, tạo cho con sự yên
tâm về vật chất và tinh thần để con hoàn thành nhiệm vụ
của mình.
Cuối cùng xin cảm ơn sự quan tâm và óng góp ý kiđ ến
của tất cả các bạn.
Hà Nội ngày 15 tháng 05 năm 2004
Sinh viên
Hoàng Thị Minh Thu
Nghiên cứu các thuật toán khai phá luật kết hợp nhanh và ứng dụng
DANH MỤC TỪ VIẾT TẮT
Số TT Từ viết tắt Giải nghĩa
1 CD Count Distribution
2 CSDL cơ sở dữ liệu
3 DB Database
4 DBMS Database Management System
5 DD Data Distribution
6 DHP Direct Hashing and Puning
7 DIC Dynamic Itemset Counting
8 FDM Fast Distributed Mining of Association rules
9 FP-Tree Frequent Pattern Tree
10 KDD Knowledge Discovery from Data
11 K-NN K- Nearest Neighbor
12 MFCS maximum frequent candidate set
13 MFS maximum frequent set
14 SET set-enumeration-tree
15 SETM Set-Oriented Mining for Association Rules.
16 SP2 Scallable POWER parallel System
17 TID Transaction identifier
Hoàng Thị Minh Thu, CNPM K44
2
Nghiên cứu các thuật toán khai phá luật kết hợp nhanh và ứng dụng
DANH MỤC CÁC THUẬT NGỮ
Số TT Thuật ngữ Giải nghĩa
1 basket data dữ liệu các mặt hàng mua bán trong giao dịch
2 Candidate Distribution Phân phối candidate
3 candidate group
nhóm candidate được sử dụng trong thuật toán
MaxMiner
4 candidate itemset
Một itemset trong tập C
k
được dùng để sinh ra
các large itemset
5 confidence
tỷ số support(X ∪ Y) / support(X) phản ánh khả
năng giao dịch hỗ trợ X thì cũng hỗ trợ Y
6 Count Distribution phân phối số đếm
7 Data Distribution phân phối dữ liệu
8 frequent itemset itemset có giá trị support không nhỏ hơn minsup
9
frequent itemset
maximal
Itemset frequent mà không có bất kỳ superset nào
của nó là frequent itemset
10 Interesting itemset itemset đáng quan tâm
11 Itemset tập các item
12 k-itemset itemset có k phần tử
13 k-subset một tập con của một giao dịch có chứa k item
14 large itemset itemset có giá trị support không nhỏ hơn minsup
15 long frequent itemset Itemset frequent dài
16 maximum frequent set Tập các frequent itemset tối đa
17 minconf confidence tối thiểu
18 minsup support tối thiểu
19
p’s conditional pattern
base
Cơ sở pattern điều kiện của p là các cơ sở sub-
pattern của p
20 set-enumeration-tree Cây đánh số thứ tự tập
21 subset tập các phần tử là tập con của một tập cho trước
22 superset tập cha
23 support(X)
phần trăm giao dịch trong CSDL có chứa itemset
X
24 transaction một giao dịch trong cơ sở dữ liệu
25 Transaction identifier Định danh duy nhất của một giao dịch
26 trie
một cấu trúc dữ liệu dạng hash tree mà mỗi node
gắn trên nó có chứa các thông tin bổ sung.
Hoàng Thị Minh Thu, CNPM K44
3
Nghiên cứu các thuật toán khai phá luật kết hợp nhanh và ứng dụng
DANH MỤC HÌNH VẼ
Hình 1: Quá trình khai phá dữ liệu 11
Hình 2 : Cây quyết định với Temperature làm node gốc 17
Hình 3: Cây quyết định với Outlook làm node gốc 17
Hình 4: Các dạng biểu diễn khác nhau của I = {a,b,c,d,e} 24
Hình 5: Thủ tục sinh luật đơn giản 27
Hình 6: Thủ tục sinh luật nhanh 28
Hình 7: Thuật toán AIS 30
Hình 8: Thuật toán SETM 31
Hình 9: Thuật toán Apriori 32
Hình 10: Hàm sinh tập candidate của thuật toán Aprirori 33
Hình 11: Thuật toán AprioriTID 34
Hình 12: Chương trình chính của thuật toán DHP 38
Hình 13: Các thủ tục của thuật toán DHP 39
Hình 14: Ví dụ về bảng băm và phép sinh C2 40
Hình 15: Cắt tỉa đối với L2 41
Hình 16: Thuật toán DIC 44
Hình 17: Thủ tục tăng số đếm cho giao dịch 45
Hình 18: Thuật toán Pincer- Search 46
Hình 19: SET đầy đủ trên bốn item 47
Hình 20: Thuật toán Max-Miner 48
Hình 21: Minh hoạ kết quả giảm support từ việc mở rộng itemset I và Is với i 50
Hình 22: Sinh subset và tính toán với giới hạn dưới 51
Hình 23: Thuật toán sinh FP-Tree 52
Hình 24: Một ví dụ của FP-Tree 53
Hình 25: Xây dựng FP-Tree từ m “FP-Tree |m” 55
Hình 26: Thuật toán FPGrowth 57
Hình 27: So sánh tốc độ thực hiện giữa FPGrowth và Apriori 58
Hình 28: ReduceScatter and AllGather Communication 63
Hình 29:Thuật toán FDM-LP 77
Hình 30: Mô hình chung hệ thống 79
Hình 31: Kiến trúc hệ thống ARMiner 80
Hình 32: Biểu đồ phân cấp chức năng 81
Hình 33: Định dạng tệp giao dịch 82
Hình 34: Tệp dữ liệu đầu ra 82
Hình 35: Các môđun dùng trong hệ thống 84
Hình 36: Sơ đồ lớp mô tả các chức năng 84
Hình 37: Định dạng tệp từ điển cải tiến 86
Hình 38: Giao diện chính của chương trình 87
Hoàng Thị Minh Thu, CNPM K44
4
Nghiên cứu các thuật toán khai phá luật kết hợp nhanh và ứng dụng
DANH MỤC BẢNG
Bảng 1: Các thuộc tính 21
Bảng 2 : Ký hiệu 32
Bảng 3: Tập và Lk qua các giai đoạn 1, 2, 3 35
Bảng 4: Cơ sở dữ liệu giao dịch của ví dụ về FP-Tree 52
Bảng 5: Khai phá tất cả các pattern bởi tạo ra cơ sở (sub)-pattern điều kiện 55
Bảng 6: Bảng ký hiệu 71
Bảng 7: Large itemset cục bộ 71
Bảng 8: Large itemset toàn cục 72
Bảng 9: Số đếm support cục bộ 74
Bảng 10: Các tham số để sinh tập dữ liệu giả 85
Hoàng Thị Minh Thu, CNPM K44
5
Nghiên cứu các thuật toán khai phá luật kết hợp nhanh và ứng dụng
MỤC LỤC
LỜI CẢM ƠN 1
DANH MỤC TỪ VIẾT TẮT 2
DANH MỤC CÁC THUẬT NGỮ 3
DANH MỤC HÌNH VẼ 4
DANH MỤC BẢNG 5
MỤC LỤC 6
LỜI MỞ ĐẦU 8
Chương 1: TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU 10
1.1.Các bước của quá trình khai phá dữ liệu: 10
1.2.Nhiệm vụ chính của khai phá dữ liệu 12
1.3. Khai phá dữ liệu mô tả 13
1.3.1.Phân nhóm 13
1.4. Khai phá dữ liệu dự đoán 14
1.4.1.Bài toán phân loại 14
1.4.2.Cây quyết định 15
1.4.3.K – Láng giềng (K – Nearest Neighbor) [17] 19
1.5. Tại sao khai phá luật kết hợp lại quan trọng 20
Chương 2: KHAI PHÁ LUẬT KẾT HỢP 23
2.1.Các định nghĩa cơ bản: 23
2.1.1. Itemset: 23
2.1.2. Cơ sở dữ liệu [1], [15] 23
2.1.3. Support 24
2.1.4.Luật kết hợp: 25
2.2.Giới thiệu bài toán 26
1.2.1.Bài toán 1: Khai phá các large itemset: 26
1.2.2.Bài toán 2: Sinh luật từ các large itemset: 27
Chương 3: CÁC THUẬT TOÁN KHAI PHÁ LUẬT KẾT HỢP 29
3.1.Các thuật toán nguyên thuỷ 30
3.1.1.AIS [3] 30
3.1.2. SETM [3] 31
3.2. Các thuật toán Apriori [4] 32
3.2.1.Thuật toán Apriori 32
3.2.2.Thuật toán AprioriTID: 34
3.2.3.Thuật toán AprioriHybrid 36
3.3.Thuật toán DHP (Direct Hashing and Pruning) [16] 37
3.4.Thuật toán DIC (Dynamic Counting Itemset) [6] 42
3.5.Thuật toán Pincer-Search [10] 45
3.6.Thuật toán khai phá các mẫu dài từ CSDL (Max-Miner) [14] 46
3.6.1.Max-Miner hình thức 47
3.6.2.Cách sắp thứ tự item 48
3.6.3.Yêu cầu về tính chính xác và hiệu quả 49
3.6.4.Giới hạn dưới của support 49
3.7.Thuật toán FPGrowth [9] 51
3.7.1.Thuật toán xây dựng FP - Tree 51
3.7.2.Khai phá các frequent pattern sử dụng FP-Tree 53
3.7.3.Đánh giá mô hình 57
3.8.Kết luận 58
Chương 4: KHAI PHÁ LUẬT KẾT HỢP SONG SONG TRÊN CƠ SỞ DỮ LIỆU PHÂN TÁN 60
4.1.Kiến trúc không chia sẻ bộ nhớ [5] , [11] 60
Hoàng Thị Minh Thu, CNPM K44
6
Nghiên cứu các thuật toán khai phá luật kết hợp nhanh và ứng dụng
4.1.1.Thuật toán Count Distribution (Phân phối số đếm) 62
4.1.2.Thuật toán Data Distribution (Phân phối dữ liệu) 64
4.1.3. Thuật toán Candidate Distribution (Phân phối candidate) 65
4.1.4.Sinh luật song song 67
4.2.Kiểu kiến trúc chia sẻ bộ nhớ chung [8] 68
4.2.1.Các kỹ thuật khai phá dữ liệu phân tán 69
4.2.2.Thuật toán khai phá luật kết hợp phân tán 76
Chương 5: XÂY DỰNG GIẢI PHÁP VÀ THỬ NGHIỆM KẾT QUẢ 79
Tổng quan về hệ thống 79
5.1.1.Mô tả hệ thống 79
5.1.2.Kiến trúc hệ thống 80
5.1.3.Mô tả chức năng 80
5.1.4.Cấu trúc dữ liệu 81
Giải pháp, cài đặt 82
5.2.1.Môi trường, công cụ, ngôn ngữ sử dụng 82
5.2.2.Lựa chọn thuật toán 83
5.2.3.Thiết kế môđun 84
5.2.4.Sinh tập dữ liệu giả 85
5.2.5.Cải tiến 85
Kết quả thử nghiệm và đánh giá 87
5.3.1.Giao diện chương trình: 87
5.3.2.Cơ sở dữ liệu thử 89
5.3.3.Đánh giá kết quả 90
Thông tin rút ra từ dữ liệu thử 91
5.4.1.Teldata 92
5.4.2.Bảo Việt: 92
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 95
TÀI LIỆU THAM KHẢO 96
CHỈ MỤC TỪ 98
Hoàng Thị Minh Thu, CNPM K44
7
Nghiên cứu các thuật toán khai phá luật kết hợp nhanh và ứng dụng
LỜI MỞ ĐẦU
Ngày nay, cơ sở dữ liệu có kích thước lên tới Terabyte — hơn
1,000,000,000,000 byte dữ liệu. Bên trong khối lượng dữ liệu lớn như vậy còn ẩn
chứa rất nhều thông tin quan trọng. Khai phá dữ liệu (data mining) là một quá trình sử
dụng rất nhiều công cụ phân tích dữ liệu để phát hiện ra các mẫu và các mối quan hệ
trong dữ liệu để đưa ra được những dự đoán hiệu quả. Nhiệm vụ chính của data
mining là phát hiện ra các tri thức chưa được phát hiện hay còn ẩn chứa trong tập dữ
liệu lớn.
Những tiến bộ gần đây trong việc thu thập và lưu trữ dữ liệu đã được áp dụng
trong các công ty (kỹ thuật mã vạch), các cơ quan hành chính (dữ liệu điều tra) hay
các phòng thí nghiệm khoa học (CSDL phân tử trong hoá học hay sinh học) để lưu giữ
được một lượng lớn các dữ liệu liên quan đến hoạt động của các tổ chức này. Cùng
thời gian này, khả năng dùng nguồn năng lượng tính toán rẻ để trích rút tự động tri
thức có cấu trúc từ dữ liệu đã tập hợp được này một cách dễ dàng. Những hoạt động
như vậy đều được coi như khai phá dữ liệu. Khai phá dữ liệu bao gồm những lĩnh vực
như phân loại, chia nhóm, phân tích sự tương đồng, tóm tắt nội dung, khai phá luật kết
hợp và khai phá các mẫu tuần tự… Vấn đề khai phá luật kết hợp lần đầu tiên được đưa
ra giới thiệu vào năm 1993 nhưng đã nhanh chóng phát triển mạnh mẽ. Vậy lý do vì
sao ?
Hãy xem xét một CSDL lớn các mặt hàng, mỗi giao dịch bao gồm các mặt hàng
mua bán của khách hàng. Vấn đề khai phá luật kết hợp được áp dụng nhiều nhất trong
các quyết định kinh doanh, điển hình trong việc quản lý siêu thị như: mặt hàng gì cần
hạ giá, thiết kế phiếu mua hàng như thế nào hay sắp xếp các mặt hàng ra sao để có lợi
nhuận lớn nhất. Việc phân tích các dữ liệu trong quá khứ là cách tiếp cận thường được
sử dụng nhằm nâng cao chất lượng mua hàng. Tuy nhiên, gần đây chỉ những số liệu
tích luỹ theo định kỳ thời gian là được lưu lại trên máy tính. Sự tiến bộ trong kỹ thuật
mã vạch đã giúp lưu trữ các basket data - dữ liệu các mặt hàng mua bán trong mỗi
giao dịch một cách hiệu quả.
Luật kết hợp đã được sử dụng trong rất nhiều ứng dụng như: phân tích giao dịch
trong siêu thị, phân tích cách bố trí cách lưu trữ cũng như xu thế các mặt hàng, phân
tích số liệu tuyển sinh đại học, phân tích thói quen khách hàng, phân loại khách hàng
dựa vào mặt hàng mua bán, thiết kế catalog, phân tích sự xuất hiện của từ trong một
tài liệu văn bản, sự ghé thăm vào các trang WWW của người dùng, giao dịch chứng
khoán…
Sự hấp dẫn của việc phân tích tình hình thị trường bắt nguồn từ tính rõ ràng và
tính thiết thực của các kết quả được rút ra từ các luật kết hợp. Phân tích tình hình thị
Hoàng Thị Minh Thu, CNPM K44
8
Nghiên cứu các thuật toán khai phá luật kết hợp nhanh và ứng dụng
trường biểu diễn cách thức các sản phẩm và các dịch vụ liên quan với nhau, chúng có
xu hướng lập nhóm với nhau như thế nào. Một luật có dạng “Nếu khách hàng mua bột
giặt OMO thì khách hàng đó sẵn sàng trả tiền mua nước xả Comfor” là hoàn toàn rõ
ràng.
Hiện nay, khai phá luật kết hợp ngày càng được ứng dụng rộng rãi trong thực tế
và đã được đưa vào nghiên cứu trong lĩnh vực y tế và sinh tin học. Như các siêu thị có
thể áp dụng bài toán này để có quy cách trưng bày sản phẩm hợp lý. Viện Khoa học
công nghệ, viện công nghệ thông tin JAIST của Nhật đã ứng dụng luật kết hợp để
nghiên cứu và chẩn đoán triệu chứng của bệnh nhân đau dạ dày rất hiệu quả. Các nhà
kinh tế có thể dự đoán được xu thế kinh tế, tâm lý khách hàng…. Và gần đây, Carlos
Ordonez [12] , năm 2000 đã nghiên cứu về việc khai phá luật kết hợp có ràng buộc để
dự đoán bệnh đau tim ở người.
Chính vì những ý nghĩa thiết thực đó của bài toán khai phá luật kết hợp, em đã
quyết định chọn đề tài tốt nghiệp của mình là “Nghiên cứu các thuật toán khai phá
luật kết hợp nhanh và ứng dụng”.
Đồ án này sẽ tập trung vào tìm hiểu và nghiên cứu về các thuật toán khai phá
luật kết hợp.
Nội dung chính của đồ án được trình bày trong 5 chương :
Chương 1: Tìm hiểu tổng quan chung về các kỹ thuật khai phá dữ liệu. Đi sâu vào
các bài toán cụ thể như cây quyết định, K-láng giềng,
Chương 2: Nghiên cứu các vấn đề lý thuyết liên quan đến việc khai phá luật kết
hợp.
Chương 3: Các thuật toán khai phá luật kết hợp nhanh được xem xét và đánh giá
so sánh với nhau.
Chương 4: Nghiên cứu các thuật toán kết hợp song song trên cơ sở dữ liệu phân
tán
Chương 5: Xây dựng giải pháp và thử nghiệm kết quả với các thuật toán khai phá
luật kết hợp đã cài đặt.
Kết luận: Nêu ra các nhận xét, kết quả đạt được và một số phương hướng phát
triển tiếp theo của đề tài.
Hoàng Thị Minh Thu, CNPM K44
9
Nghiên cứu các thuật toán khai phá luật kết hợp nhanh và ứng dụng
Chương 1: TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU
Phần đầu của chương sẽ đề cập tới các bước thực hiện của quá trình khai phá
dữ liệu và tổng quan các kỹ thuật khai phá. Phần sau sẽ đi sâu vào một số kỹ thuật
khai phá được sử dụng phổ biến hiện nay cũng như những vấn đề mà các kỹ thuật này
còn chưa giải quyết được.
Khi điện tử và sóng điện từ đã trở thành vấn đề cốt lõi của công nghệ điển tử cổ
điển thì ta thấy rằng dữ liệu, thông tin, tri thức đang là lĩnh vực tập trung nhiều nghiên
cứu và ứng dụng – phát hiện tri thức và khai phá dữ liệu (knowledge discovery and
data mining: KDD).
Nói chung, ta thường biết dữ liệu là một chuỗi các bit, số hay ký tự hoặc đối
tượng cần quan tâm. Ta sử dụng các bít để đánh giá thông tin. Tri thức được xem như
là thông tin tổ hợp, bao gồm các sự thật và mối liên quan giữa chúng, có thể thu nhận,
khám phá và học được. Nói cách khác, tri thức là dữ liệu ở mức cao của sự trừu tượng
và tổng quát hoá.
KDD là lĩnh vực phát triển nhanh chóng, kết hợp với hệ quản trị CSDL, các lĩnh
vực thống kê, học máy và các lĩnh vực liên quan khác. Phát hiện tri thức là một quá
trình chỉ ra được các mô hình/mẫu hiểu được có giá trị và đáng quan tâm. Data mining
là một bước trong quá trình phát hiện tri thức, bao gồm các thuật toán khai phá dữ liệu
cụ thể với hiệu năng tính toán chấp nhận được để tìm ra các mẫu hay mô hình của dữ
liệu.
Nói cách khác, mục đích của khai phá và phát hiện tri thức là tìm ra các mẫu hay
mô hình đáng quan tâm có trong CSDL nhưng đang ẩn dấu trong một lượng lớn dữ
liệu.
1.1. Các bước của quá trình khai phá dữ liệu:
Các giải thuật khai phá dữ liệu thường được miêu tả như những chương trình
hoạt động trực tiếp trên tệp dữ liệu. Với các phương pháp máy học và thống kê trước
đây, thường thì bước đầu tiên là các giải thuật nạp toàn bộ tệp dữ liệu vào trong bộ
nhớ. Khi chuyển sang các ứng dụng công nghiệp liên quan đến việc khai phá các kho
dữ liệu lớn, mô hình này không thể đáp ứng được. Không chỉ bởi vì nó không thể nạp
hết dữ liệu vào trong bộ nhớ mà còn vì khó có thể chiết suất dữ liệu ra các tệp đơn
giản để phân tích được.
Quá trình xử lý khai phá dữ liệu bắt đầu bằng cách xác định chính xác vấn đề cần
giải quyết. Sau đó sẽ xác định các dữ liệu liên quan dùng để xây dựng giải pháp. Bước
tiếp theo là thu thập các dữ liệu có liên quan và xử lý chúng thành dạng sao cho các
giải thuật khai phá dữ liệu có thể hiểu được. Về lý thuyết thì có vẻ rất đơn giản nhưng
khi thực hiện thì đây thực sự là một quá trình rất khó khăn, gặp phải nhiều vướng mắc
Hoàng Thị Minh Thu, CNPM K44
10
Nghiên cứu các thuật toán khai phá luật kết hợp nhanh và ứng dụng
như : các dữ liệu phải được sao ra nhiều bản (nếu được chiết suất vào các tệp), quản lý
tập các tệp dữ liệu, phải lặp đi lặp lại nhiều lần toàn bộ quá trình (nếu mô hình dữ liệu
thay đổi),
Sẽ là quá cồng kềnh với một giải thuật khai phá dữ liệu nếu phải truy nhập vào
toàn bộ nội dung của CSDL và làm những việc như trên. Vả lại, điều này cũng không
cần thiết. Có rất nhiều giải thuật khai phá dữ liệu thực hiện trên những thống kê tóm
tắt khá đơn giản của CSDL, khi mà toàn bộ thông tin trong CSDL là quá dư thừa đối
với mục đích của việc khai phá dữ liệu.
Bước tiếp theo là chọn thuật toán khai phá dữ liệu thích hợp và thực hiện việc
khai phá để tìm được các mẫu (pattern) có ý nghĩa dưới dạng biểu diễn tương ứng với
các ý nghĩa đó (thường được biểu diễn dưới dạng luật kết hợp, cây quyết định, luật sản
xuất, biểu thức hồi quy, ).
Đặc điểm của các mẫu là phải mới (ít nhất là đối với hệ thống đó). Độ mới có thể
được đo tương ứng với độ thay đổi trong dữ liệu (bằng cách so sánh các giá trị hiện tại
với các giá trị trước đó hoặc các giá trị mong muốn), hoặc bằng tri thức (mối liên hệ
giữa các phương pháp tìm mới và phương pháp cũ như thế nào). Thường thì độ mới
của mẫu được đánh giá bằng các hàm logic hoặc hàm đo độ mới, độ bất ngờ của mẫu.
Ngoài ra, mẫu phải có khả năng sử dụng tiềm tàng. Các mẫu này sau khi được xử lý
và diễn giải phải dẫn đến những hành động có ích nào đó được đánh giá bởi một hàm
lợi ích. Ví dụ như trong dữ liệu các khoản vay, hàm lợi ích đánh giá khả năng tăng lợi
nhuận từ các khoản vay. Mẫu khai thác được phải có giá trị đối với các dữ liệu mới
với độ chính xác nào đó.
Hình 1: Quá trình khai phá dữ liệu
Với các giải thuật và các nhiệm vụ của khai phá dữ liệu rất khác nhau, dạng của
các mẫu chiết xuất được cũng rất đa dạng. Theo cách đơn giản nhất, sự phân tích cho
ra kết quả chiết xuất là một báo cáo về một số loại (có thể bao gồm các phép đo mang
tính thống kê về độ phù hợp của mô hình, các dữ liệu lạ ). Trong thực tế đầu ra phức
tạp hơn nhiều. Mẫu chiết suất được có thể là một mô tả xu hướng, có thể dưới dạng
Hoàng Thị Minh Thu, CNPM K44
11
Xác định
nhiệm vụ
Xác định
dữ liệu
liên quan
Thu thập
và tiền xử
lý dữ liệu
Dữ liệu
trực tiếp
Thống kê
tóm tắt
Giải thuật
khai phá
dữ liệu
Mẫu
Nghiên cứu các thuật toán khai phá luật kết hợp nhanh và ứng dụng
văn bản, một đồ thị mô tả các mối quan hệ trong mô hình, cũng có thể là một hành
động, ví dụ như yêu cầu của người dùng đối với những gì khai thác được trong CSDL.
Kỹ thuật khai phá dữ liệu thực chất không có gì mới. Nó là sự kế thừa, kết hợp
và mở rộng của các kỹ thuật cơ bản đã được nghiên cứu từ trước như máy học, nhận
dạng, thống kê (hồi quy, xếp loại, phân nhóm), các mô hình đồ thị, mạng Bayes, trí tuệ
nhân tạo, thu thập tri thức hệ chuyên gia Tuy nhiên, với sự kết hợp tài tình của khai
phá dữ liệu, kỹ thuật này có ưu thế hơn hẳn các phương pháp trước đó, đem lại nhiều
triển vọng trong việc ứng dụng phát triển nghiên cứu khoa học cũng như làm tăng
mức lợi nhuận trong các hoạt động kinh doanh.
1.2. Nhiệm vụ chính của khai phá dữ liệu.
Rõ ràng mục đích của khai phá dữ liệu là các tri thức chiết xuất được sẽ được sử
dụng cho lợi ích cạnh tranh trên thương trường và các lợi ích trong nghiên cứu khoa
học.
Do đó, có thể coi mục đích của khai phá dữ liệu [17] sẽ là mô tả (description) và
phân lớp, dự đoán (classification/prediction). Các mẫu mà khai phá dữ liệu phát hiện
được nhằm vào các mục đích này. Phân lớp/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 những giá trị trong tương lai của các biến đáng quan tâm, gồm các
bài toán nhỏ như: bài toán cây quyết định, mạng noron, luật quy nạp, máy hỗ trợ
vector, mô hình Markov ẩn…. Mô tả tập trung 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. Mô tả gồm có phân tích luật, phân nhóm, tóm
tắt…
Để đạt được hai mục đích này, nhiệm vụ chính của khai phá dữ liệu bao gồm như
sau:
• Phân lớp (Classification) : Phân lớp là việc học một hàm ánh xạ (hay
phân loại) một mẫu dữ liệu vào một trong số các lớp đã xác định.
• Hồi quy (Regression) : Hồi quy là việc học một hàm ánh xạ từ một mẫu
dữ liệu thành một biến dự đoán có giá trị thực.
• Phân nhóm (Clustering): Là việc mô tả chung để tìm ra các tập xác định,
các nhóm hay các loại để mô tả dữ liệu. Các nhóm có thể tách riêng nhau
hoặc phân cấp hoặc gối lên nhau. Có nghĩa là một dữ liệu có thể vừa thuộc
nhóm này, vừa thuộc nhóm kia.
• Khai phá luật kết hợp (Association Rule): tìm ra các large itemset, các
mối liên quan, kết hợp và cấu trúc nhân quả trong tập các khoản mục hay
đối tượng trong CSDL giao dịch, CSDL quan hệ hay từ các kho lưu trữ
thông tin khác.
Hoàng Thị Minh Thu, CNPM K44
12
Nghiên cứu các thuật toán khai phá luật kết hợp nhanh và ứng dụng
• Tóm tắt (Summarization) : Liên quan đến các phương pháp tìm kiếm
một mô tả tóm tắt cho một tập con dữ liệu.
• Mô hình hoá phụ thuộc (Dependency Modeling): Bao gồm việc tìm
kiếm một mô hình mô tả sự phụ thuộc đáng kể giữa các biến. Các mô hình
phụ thuộc tồn tại dưới hai mức : mức cấu trúc của mô hình xác định
(thường ở dạng đồ hoạ) các biến nào là phụ thuộc cục bộ với nhau, mức
định lượng của một mô hình xác định độ mạnh của sự phụ thuộc theo một
thước đo nào đó.
• Phát hiện sự thay đổi và lạc hướng (Change and Deviation Detection):
Tập trung vào khai thác những thay đổi đáng kể nhất trong dữ liệu từ các
giá trị chuẩn hoặc được đo trước đó.
Những nhiệm vụ khác nhau này yêu cầu số lượng và các dạng thông tin rất khác
nhau nên chúng thường ảnh hưởng đến việc thiết kế và chọn giải thuật khai phá dữ
liệu khác nhau.
1.3. Khai phá dữ liệu mô tả
1.3.1. Phân nhóm
Cân nhắc việc nhóm tập các đối tượng dựa trên độ tương đồng của chúng với các
thuộc tính và/ hoặc trạng thái gần kề của chúng trong một không gian véctơ. Phân
nhóm dữ liệu [13], [17] được gọi là học không giám sát. Một ứng dụng của lập nhóm
các khách hàng của ngân hàng sao cho việc cung cấp dịch vụ cho khách hàng là có
hiệu quả nhất. Ngân hàng có thể nhóm các nhóm khách hàng như sau:
+ đầu tư linh hoạt
+ đầu tư duy trì
+ đầu tư cân bằng.
Bài toán có ứng dụng rất nhiều trong phân nhóm tài liệu, phân nhóm thuật ngữ.
Hoàng Thị Minh Thu, CNPM K44
13
Lợi tức
Nợ
Đầu tư cân bằng
Đầu tư duy trì
Đầu tư linh hoạt
Nghiên cứu các thuật toán khai phá luật kết hợp nhanh và ứng dụng
Các thuật toán chính của bài toán phân nhóm là K-means, thuật toán phân nhóm
bậc tích luỹ.
Không nên nhầm lẫn phân nhóm với phân đoạn. Phân đoạn liên quan tới bài toán chỉ ra
các nhóm có đặc điểm chung. Phân nhóm là cách phân dữ liệu vào các nhóm chưa được định
nghĩa trước, còn phân loại sẽ phân dữ liệu vào thành các nhóm đã định nghĩa trước.
1.4. Khai phá dữ liệu dự đoán
Trước khi xây dựng được mô hình dự đoán hiệu quả, ta cần phải hiểu dữ liệu. Mục
tiêu của khai phá dữ liệu là tìm ra những tri thức ẩn chứa bên trong dữ liệu. Nhờ xây
dựng một mô hình thức tế dựa trên tập hợp dữ liệu từ nhiều nguồn khác nhau gồm cả
dữ liệu kinh doanh, thị hiếu khách hàng, thông tin nhân khẩu, điều khiển dữ liệu và
các cơ sở dữ liệu mở rộng có liên quan như thông tin thời tiết, thông tin văn phòng.
Kết quả của việc xây dựng mô hình là một bản mô tả các mẫu và mối quan hệ dữ liệu
có thể hỗ trợ cho việc dự đoán. Để tránh khó hiểu trong các khía cạnh khác nhau của
khai phá dữ liệu, cần đưa ra cấu trúc công việc cần thực hiện cho quá trình dự đoán
• Mục tiêu công việc
• Kiểu dự đoán
• Kiểu mô hình
• Thuật toán
Mức cao nhất cần quan tâm là công việc nhằm mục đích gì. Như tìm kiếm các
mẫu trong dữ liệu kinh doanh để dự đoán đối tượng khách hàng sẽ thu được lợi nhiều
nhất. Quyết định kiểu dự đoán phù hợp nhất: phân loại hay hồi quy. Kiểu mô hình:
mạng noron cho bài toán hồi quy hay một cây quyết đinh cho bài toán phân lớp. Có
các mô hình như suy diễn logic, phân tích rời rạc số hay mô hình tuyến tính. Có nhiều
thuật toán đã được công bố hiện nay, với cây quyết định ta có CART, C5.0 Quest hay
CHAID.
Mô hình dự đoán [17] được xây dựng hay huấn luyện sử dụng dữ liệu, trong đó
giá trị các biến tương ứng là đã biết. Kiểu huấn luyện này đôi khi được gọi là học có
giám sát.
1.4.1. Bài toán phân loại
Trong bài toán phân loại [13], mỗi đối tượng là được miêu tả bởi một tập các giá
trị thuộc tính và mỗi đối tượng sẽ thuộc về một lớp được xác định trước. Mục đích
của bài toán phân loại là thu được một tập các luật chỉ ra lớp mà đối tượng thuộc vào,
dựa trên một tập các mẫu huấn luyện. Do đó, phân loại dữ liệu được gọi là học có
giám sát. Một trong các ứng dụng của bài toán này là khi ngân hàng muốn phát triển
một cơ chế tự động có thể quyết định được rằng một ứng dụng sử dụng thẻ tín dụng có
được chấp nhận hay không dựa trên các bản ghi dữ liệu của các khách hàng đã có.
Hoàng Thị Minh Thu, CNPM K44
14
Nghiên cứu các thuật toán khai phá luật kết hợp nhanh và ứng dụng
Hay một ứng dụng khác là: Một bệnh viện muốn chẩn đoán một bệnh nhân có
thuộc về một nhóm có nguy cơ rủi ro cao hay không dựa trên tiền sử bệnh của bệnh
nhân.
Xét một ví dụ cho ở hình bảng dưới đây:
Các luật thu được sẽ có dạng như sau:
• If (trường = đại học, CĐ) và ~(lợi tức =cao), then mức độ tín nhiệm = thấp.
• Otherwise, mức độ tín nhiệm = cao.
Phần lớn các luật sinh ra là không đầy đủ. Nói cách khác, dung sai lỗi là không thể
tránh khỏi. Trong trường hợp này, độ chính xác là 7/9 =78%.
Dựa trên học instance-based, ta thực hiện trên k mẫu huấn luyện gần nhất của một
instance mới (v1, v2, …, vm) và gán instance mới đó cho lớp có nhiều instance trong k
mẫu gần nhất đó. Phương pháp này được gọi là phân lớp K láng giềng gần nhất.
Thuộc tính Lớp
Trường Lợi tức hàng năm Tuổi
Nhà
riêng
Giới tính
Mức độ tín
nhiệm
Đại học,
CĐ
Cao
Lớn tuổi
Có Nam Cao
Trung học Thấp Trung niên Không Nam Cao
Trung học Trung bình Trẻ Có Nữ Thấp
Đại học,
CĐ
Cao Lớn tuổi Có Nam Thấp
Trung học Cao
Lớn tuổi
Có Nữ Cao
Đại học,
CĐ
Trung bình Trẻ Không Nữ Cao
Trung học Thấp Trung niên Không Nam Thấp
Đại học,
CĐ
Trung bình Trung niên Nữ Cao
Trung học
Trung bình Trẻ Không Nam Thấp
1.4.2. Cây quyết định
Cây quyết định [17] là một biểu đồ phát triển có cấu trúc cây với tập các thuộc
tính cho trước, cần xác dịnh được giá trị của thuộc tính cuối cùng cần rút ra. Cây quyết
định có thể dễ dàng chuyển đổi sang dạng luật với cấu trúc if then.
Cấu trúc cây quyết định có dạng:
• Mỗi node trong ký hiệu cho một bộ dữ liệu thử cho một thuộc tính
• Mỗi nhánh đặc trưng cho một đợt dữ liệu thử
• Các node lá đại diện cho các lớp hoặc là phân phối lớp.
• Node trên đỉnh của cây là node gốc.
Quá trình dựng cây gồm hai bước:
Hoàng Thị Minh Thu, CNPM K44
15
Nghiên cứu các thuật toán khai phá luật kết hợp nhanh và ứng dụng
• Dựng cây: Phân đoạn dữ liệu cho trước hồi quy dựa trên các thuộc tính
được lựa chọn. Tai thời điểm bắt đầu, mọi đối tượng huấn luyện được đặt
tại node gốc.
• Tỉa cây: chỉ ra và loại bỏ những nhánh chịu nhiễu hoặc ngoài lề.
Ứng dụng: chia lớp một đối tượng. Kiểm thử các giá trị thuộc tính một lần nữa
trên cây quyết định.
Thuật toán dựng cây: tại mỗi node của cây tiến hành như sau:
1. Chọn ra thuộc tính tối ưu nhất căn cứ trên các đánh giá cho trước
2. Mở rộng cây bằng cách thêm nhánh mới cho mỗi giá trị thuộc tính
3. Sắp xếp các đối tượng huấn luyện trên các node lá.
4. Nếu các đối tượng trong một node thuộc về một đối tượng thì dừng, nếu
không lặp lại từ bước 1 đến bước 4 cho các node lá.
Xét ví dụ Play-tennis
Days Outlook Temperatur
e
Humidity Wind Class
D1 sunny hot high weak N
D2 sunny hot high strong N
D3 overcast hot high weak Y
D4 rain mild high weak Y
D5 rain cool normal weak Y
D6 rain cool normal strong N
D7 overcast cool normal strong Y
D8 sunny mild high weak N
D9 suny cool normal weak Y
D10 rain mild normal weak Y
D11 sunny mild normal strong Y
D12 overcast mild high strong Y
D13 overcast hot normal weak Y
D14 rain mild high strong N
Có 14 đối tượng thuộc về 2 lớp là {Y, N} được khảo sát dựa trên 4 thuộc tính
Dom(Outlook) = {sunny, overcast, rain}
Dom(Temperature) = {hot, mild, cool}
Dom(humidity) = {high, normal}
Dom(Wind) = {weak, strong}
Khi chọn Temperature làm node gốc, ta sẽ dựng được 1 cây như sau:
Hoàng Thị Minh Thu, CNPM K44
16
Nghiên cứu các thuật toán khai phá luật kết hợp nhanh và ứng dụng
Hình 2 : Cây quyết định với Temperature làm node gốc
Nhưng nếu chọn Outlook làm node gốc, cây thu được sẽ đơn giản hơn nhiều
Hình 3: Cây quyết định với Outlook làm node gốc
Vậy, chọn node gốc như nào thì tốt nhất?
Cách chọn lựa thuộc tính tốt nhất: sử dụng lý thuyết của độ đo thông tin Gain
và Entropy.
Entropy:đặc trưng cho mức độ pha tạp (hay đồng nhất) của một tập hợp các đối
tượng mẫu. Gọi S là tập hợp các đối tượng âm và dương , P
⊕
là phần các giá trị dương
trong S, P
Θ
là phần các giá trị âm trong S.
Entropy(S) = - P
⊕
log
2
P
⊕
- P
Θ
log
2
P
Θ
, 0 ≤ Entropy(S) ≤ 1
Hoàng Thị Minh Thu, CNPM K44
17
outlook
humidity
wind
true false
no
yes
high
normal
sunny o’cast
rain
yes
no yes
{D3, D7, D12, D13}
{D1, D2, D6 D9, D11}
{D4, D5, D10, D14}
{D1, D2, D8} {D9, 10} {D6, D14}
{D4, D5, D10}
Nghiên cứu các thuật toán khai phá luật kết hợp nhanh và ứng dụng
Tổng quát, Entropy(S) =
∑
=
c
i 1
-p
i
log
2
p
i
Với 14 đối tượng trong ví dụ Play-tennis, có 9 đối tượng dương và 5 đối tượng âm (ký
hiệu là [9+, 5-]).
Entropy([9+, 5-]) = - (9/14)log
2
(9/14) – (5/14)log
2
(5/14)
= 0.940
Lưu ý, Entropy bằng 0 nếu mọi phần tử của S đều thuộc vào cùng một lớp. Entropy
bằng 1 nếu S có số đối tượng dương và âm bằng nhau.
Information Gain:
Information Gain của một thuộc tính A trong tập S, ký hiệu là Gain(S,A) được định
nghĩa như sau:
Gain(S, A) = Entropy(S) =
∑
∈ )(
||
||
AValuev
v
S
S
Entropy(S
v
)
trong đó, Value(A) là tập các giá trị có thể của thuộc tính A; S
v
là một tập con của S
trong đó thuộc tính A có giá trị bằng v.
Values(Wind) ={Weak, Strong}, S = [9+, 5-]
Sweak , một node con có giá trị “weak”, bằng [6+, 2-]
Sstrong , một node con có giá trị “strong”, bằng [3+, 3-]
Gain(S, Wind) = Entropy(S) =
∑
∈ Strong} {Weak,
||
||
v
v
S
S
Entropy(S
v
)
= Entropy(S) -(8/14)Entropy(S
weak
) - (6/14)Entropy(S
strong
)
= 0.940 - (8/14)0.811 - (6/14)1.00
= 0.048
Gain (S, Outlook) = 0.246
Gain (S, Humidity) = 0.151
Gain (S, Wind) = 0.048
Gain (S, Temperature) = 0.029
Khi cần chọn thuộc tính tốt nhất, ta căn cứ vào lượng thông tin thu được lớn nhất. Ở
đây, ta chọn Outlook. Tiếp tục xây dựng cây quyết định, ta có
Hoàng Thị Minh Thu, CNPM K44
18
[3+,4-]
E = 0.985
[6+,1-]
E = 0.592
high normal
humidity
[6+,2-]
E = 0.811
[3+,3-]
E = 1.00
weak strong
wind
Gain(S, Humidity) = 0.940 – (7/14)0.985 – (7/14)0.592
= 0.151
Gain(S, Wind) = 0.940 – (8/14)0.811 – (6/14)1.00
= 0.048
Nghiên cứu các thuật toán khai phá luật kết hợp nhanh và ứng dụng
{D1,D2, …, D14} [9+,5-]
S
sunny
= {D1, D2, D3, D9, D11}
Gain(Ssunny, Humidity) = 0.970 - (3/5)0.0 - (2/5)0.0 = 0.970
Gain(Ssunny, Temperature) = 0.970 - (2/5)0.0 - (2/5)1.0 - (1/5)0.0 = 0.570
Gain(Ssunny, Wind) = 0.970 - (2/5)1.0 - (3/5)0.918 = 0.019
Ta chọn thuộc tính Humidity để dựng tiếp. Cứ tiếp tục như vậy đến khi đạt điều kiện
dừng. Cây quyết định được tăng trưởng theo các bước lặp để phân tách dữ liệu thành
các nhóm rời rạc nhau, mục tiêu là cực đại sự sai khác nhau giữa mỗi nhóm.
Điều kiện dừng:
1. Mọi thuộc tính đều đã có mặt trên cây.
2. Các đối tượng huấn luyện kết hợp với mỗi node lá có cùng giá trị thuộc tính
đích (như entropy của chúng cùng bằng 0)
Cây quyết định được dùng để dự đoán các đại lượng phân loại được gọi là cây phân
loại vì thay thế cho các loại hay các lớp. Cây quyết định dùng để dự đoán đại lượng
liên tục được gọi là cây hồi quy
Chuyển cây quyết định sang tập luật:
if (Outlook = sunny) and (Humidity = High)
then PlayTennis = No
if (Outlook = Sunny) and (Humidity = Normal)
then PlayTennis = Yes
1.4.3. K – Láng giềng (K – Nearest Neighbor) [17]
Khi giải quyết một bài toán mới, thường ta chỉ quan tâm đến lời giải cho các bài
toán tương tự nhau mà chúng đã được giải quyết trước đó. K-láng giềng (k-NN) là kỹ
thuật phân lớp sử dụng cùng phương pháp này. Thuật toán quyết định lớp nào cho một
đối tượng mới bằng việc kiểm tra lại “k” trong số k- láng giềng gần nhất. Một trường
hợp tương tự xét trong hình dưới đây. Đếm số trường hợp cho mỗi lớp, gán trường
hợp mới cho cùng lớp mà phần lớn các láng giềng của nó thuộc vào.
Điều đầu tiên phải áp dụng đối với k –NN là tìm ra một đơn vị đo khoảng cách
giữa các thuộc tính dữ liệu và tính toán nó. Trong khi điều này là rất đơn giản với dữ
Hoàng Thị Minh Thu, CNPM K44
19
{D3, D7, D12, D13}
[4+, 0-]
{D1, D2, D8, D9, D11}
[2+,3-]
High
overcast
outlook
sunny
rain
{D4, D5, D6, D10, D14}
[3+,2-]
??
Yes
Nghiên cứu các thuật toán khai phá luật kết hợp nhanh và ứng dụng
liệu số, biến phân loại cần phải được xử lý đặc biệt hơn. Như khoảng cách giữa màu
xanh và màu đỏ là gì? Phải có cách để tính tổng khoảng cách giữa các thuộc tính. Mỗi
khi tính toán khoảng cách giữa các trường hợp, phải chọn ra một tập các trường hợp
khác đã được phân lớp làm cơ sở cho quá trình phân loại trường hợp mới, quyết định
độ rộng của vùng lân cận so sánh và cách đếm láng giềng (có thể cung cấp nhiều
trọng số cho láng giềng gần hơn cho các láng giếng xa hơn). K-NN đưa một khối
lượng công việc lớn vào máy tính vì thời gian tính toán tăng theo hệ số tổng các điểm.
Trong khi xử lý nhanh hơn với cây quyết định hay mạng nơron đối với một trường
hợp mới, k-NN yêu cầu phép tính toán mới cho mỗi trường hợp mới. Để tăng tốc độ
cho k-NN, tất cả dữ liệu thường xuyên truy cập được lưu trong bộ nhớ. Mô hình k-NN
dễ hiểu khi chỉ có vài biến dự đoán, và cũng rất hữu ích khi tính toán với dữ liệu
không chuẩn hoá như văn bản. Chỉ có một yêu cầu đối với một kiểu dữ liệu là phải tồn
tại một ma trận thích hợp.
1.5. Tại sao khai phá luật kết hợp lại quan trọng
Hãy xét một ứng dụng trong việc khai phá dữ liệu y tế liên quan tới căn bệnh tim
[12] . Giả sử ta có một bảng mô tả các thuộc tính như sau và tập các mẫu thông tin liên
quan của bệnh nhân. Mục tiêu là phải chỉ ra được mối liên quan giữa độ đo perfusion
và mức độ rủi ro với mức độ mắc bệnh tim.
Đã có rất nhiều kỹ thuật khai phá dữ liệu được sử dụng, nhưng ta hãy xét xem tại
sao những kỹ thuật này lại không thể giải quyết hiệu quả bài toán đặt ra. Cây quyết
định đưa ra tập luật để phân loại các bản ghi từ một tập dữ liệu đã được tối thiểu hoá
các lỗi phân loại. Mục đích của việc sử dụng cây quyết định là chỉ ra lớp mà các bản
ghi thuộc vào. Trong trường hợp này, có thể phân loại bệnh nhân là khoẻ hay có bệnh.
Tuy nhiên, các bệnh nhân sẽ không thể được phân vào các lớp một cách dễ dàng bởi
có nhiều cấp độ khác nhau của “có bệnh”. Có thể sẽ có rất nhiều lớp được áp dụng để
chỉ ra các cấp độ bệnh khác nhau, nhưng điều này có thể chỉ ra được nếu ta tiến hành
kiểm tra động mạch và một vài phân tích nhất định. Bên cạnh đó, ta sẽ không thể bao
quát hết được tất cả các bệnh có liên quan tới động mạch. Một nhược điểm khác nữa
đối với kỹ thuật cây quyết định là việc tự động phân tách các giá trị số. Do hiệp hội y
tế thường thống nhất trong quan điểm đưa ra các ngưỡng chuẩn để phân tích dữ liệu số
(như huyết áp cao, béo phì, hàm lượng cholesteron cao…). Các điểm phân tách rất
nhỏ sẽ được kỹ thuật cây quyết định đưa ra khi có sự khác biệt so với đối tượng chuẩn,
điều này sẽ dẫn đến các kết quả thực nghiệm sẽ khó được diễn giải hơn.
Ghép nhóm là một kỹ thuật khác được xem xét. Với dữ liệu về bệnh tim thì kỹ
thuật này sẽ cho cách nhìn tổng quan đối với tập dữ liệu, tuy nhiên lại không đưa ra
đầy đủ tập các luật từ các tập con của tất cả các biến.
Hoàng Thị Minh Thu, CNPM K44
20
Nghiên cứu các thuật toán khai phá luật kết hợp nhanh và ứng dụng
Bảng 1: Các thuộc tính
STT Tên DT MI Mô tả
1 Age N R Tuổi bệnh nhân
2 LM N D Left Main artery
3 LAD N D Latero AnteriorDesc.
4 LCX N D Left CircumfleX
5 RCA N D Right Coronary Art.
6 AL N P Antero-Lateral
7 AS N P Antero-Septal
8 SA N P Septo-Anterior
9 SI N P Septo-Inferior
10 IS N P Infero-Septal
11 IL N P Infero-Lateral
12 LI N P Latero-Inferior
13 LA N P Latero-Anterior
14 AP N P Apical
15 Sex C R Giới tính
16 HTA C R Hyper-tension
17 Diab C R Diabetes
18 HYPLD C R Hyperlipidemia
19 FHCAD C R Fam. Hist. of
disease
20 Smoke C R Thói quen hút thuốc
21 Claudi C R Claudication
22 Pangio C R Previous angina
23 Pstroke C R Prior stroke
24 PcarSu
r
C R Prior carotid surgery
25 Chol N R Hàm lượng
Cholesterol
Với kỹ thuật khai phá luật kết hợp có ràng buộc ta có thể thu được tập các luật
rất có ý nghĩa liên quan tới cả việc xác định có bệnh hay không có bệnh và mức độ ra
sao.
Dự đoán không có bệnh:
1. [Sex = F]
⇒
([0.0 <=LCX < 50.0 ]), s =0.229, c = 0.728
2. [Smoke = n]
⇒
([not(70.0 <=RCA < 100.1)]), s = 0.290, c = 0.714
3. [0.0 <= CHO: < 200.0]
⇒
[not(70.0 <= LAD <100.1)], s = 0.078, c = 0.708
4. [0.0 <= Age < 40.0][Smoke = n]
⇒
[0.0 <= LCX <50.0], s = 0.008, c = 0.714
5. [0.0 <= Age < 40.0][Diab = n]
⇒
[0.0 <= LAD < 50.0], s = 0.027, c =0.818
6. [40.0 <= Age < 60.0] and [Sex = F][Diab = n]
⇒
[0.0 <= LCX <50.0], s = 0.084,
c = 0.917
Hoàng Thị Minh Thu, CNPM K44
21
Ghi chú:
DT: Data type (kiểu dữ liệu)
MI: Medical Information(thông tin y học):
’P’ thuộc tính tương ứng với độ đo
perfusion trên từng vùng cụ thể của
tim,
’R’ thuộc tính tương ứng với mức độ
rủi ro,
’D’ thuộc tính tương ứng với mức độ
bệnh tim
Nghiên cứu các thuật toán khai phá luật kết hợp nhanh và ứng dụng
7. [40.0 <= Age < 60.0] and [Sex = F][Diab = n]
⇒
[0.0 <= RCA <50.0], s = 0.073,
c = 0.800
Dự đoán có mắc bệnh:
1. [0.2 <= AP < 1.1][PCARSUR = y]
⇒
[not(0.0 <= LAD < 50.0)][not(0.0 <= RCA <
50.0)], s = 0.012, c = 0.800
2. [60.0 <= Age < 100.0][0.2 <= AP < 1.1][Smoke = y]
⇒
[not(0.0 <=LAD < 50.0)], s
= 0.107, c = 0.833
3. [0.2 <= LA < 1.1][Sex = M]and[250.0 <= CHOL < 500.1]
⇒
[not(0.0 <= LCX <
50.0)], s =0.014, c = 0.750
4. [60.0 <= Age <100.0][0.2 <= IL < 1.1][250.0 <= CHOL < 500.1]
⇒
[not(0.0 <=
RCA < 50.0)], s = 0.017, c = 0.917
5. [60.0 <= Age < 100.0][0.2 <= IS < 1.0][250.0 <= CHOL < 500.1]
⇒
[not(0.0
<=RCA < 50.0)], s = 0.015, c = 1.000
6. [60.0 <=Age < 100.0][0.2 <= SA < 1.0][FHCAD = y]
⇒
[not(0.0 <=LAD < 50.0)],
s = 0.015, c = 1.000
7. [0.2 <= SA < 1.0]and[PANGIO = y]
⇒
[not(0.0 <=LAD < 50.0)], s = 0.023, c =
0.938
8. [60.0 <= Age <100.0][0.2 <= AP < 1.1][Sex = F]
⇒
[not(0.0 <=LAD < 50.0)], s =
0.049, c = 0.941
9. [60.0 <= Age < 100.0][0.2 <= SA < 1.0][Claudi = y]
⇒
[not(0.0 <= LAD < 50.0)],
s = 0.029, c = 0.950
10. [60.0 <=Age < 100.0][0.2 <= SA < 1.0][HYPLPD = y]
⇒
[not(0.0 <= LAD <
50.0)], s = 0.070, c = 0.939
Phần lớn các luật tìm thấy đều liên quan tới bệnh nhân cao tuổi với phát hiện
perfusion cục bộ trong các vùng tim cụ thể. Luật 1 cho biết nếu một bệnh nhân có phát
hiện perfusion và đã từng phẫu thuật động mạch cảnh trước đó thì anh ta có nguy cơ
mắc bệnh tim rất cao. Số bệnh nhân giống như trong luật này có thể rất ít nhưng khả
năng mắc bệnh là rất cao. Các luật này còn liên quan tới các thông tin như độ tuổi, thói
quen hút thuốc, hàm lượng cholesterol. Các luật 5, 6, 7 được xác nhận có tỷ lệ rủi ro
mắc bệnh tim cao với độ chính xác cao. Về cơ bản nếu một bệnh nhân cao tuổi, hàm
lượng cholesterol cao và có phát hiện perfusion thì hầu như chắc chắn rằng người đó
có tình trạng tim mạch rất nguy hiểm…
Hoàng Thị Minh Thu, CNPM K44
22
Nghiên cứu các thuật toán khai phá luật kết hợp nhanh và ứng dụng
Chương 2: KHAI PHÁ LUẬT KẾT HỢP
Bài toán khai phá luật kết hợp được đưa ra trong [3]. Ta giả sử rằng một CSDL D
được cho trước, để đơn giản ta coi đó là một bảng quan hệ Boolean: mỗi hàng trong
bảng tương ứng với một bản ghi, mỗi cột tương ứng với một thuộc tính; vị trí thứ i
trong hàng chứa giá trị 1 hoặc 0 tuỳ thuộc vào thuộc tính thứ i có mặt trong bản ghi
tương ứng hay không. Một luật kết hợp mô tả một phạm vi mà ở đó sự có mặt của tập
X thuộc tính trong CSDL D sẽ dẫn tới sự có mặt của tập Y các thuộc tính phân biệt
khác trong cùng bản ghi. Trong mô hình gọi là support-confidence, một luật kết hợp
được đặc trưng bởi cặp hệ số. Hệ số support là phần trăm số bản ghi trong D chứa cả
X và Y. Hệ số confidence được định nghĩa là mức độ tin cậy của luật đối với mối quan
hệ ràng buộc lẫn nhau của các thuộc tính [3]. Từ ngưỡng support và confidence tương
ứng là s và c cho trước, liệt kê tất cả luật từ CSDL D có giá trị support và confidence
tương ứng lớn hơn s và c. Ví dụ, nếu D là CSDL kinh doanh, s = 40% và c = 90%, bài
toán sẽ được phát biểu thành (1) liệt kê tất cả các luật chỉ ra rằng sự có mặt của một
khoản mục này sẽ kéo theo sự có mặt của các khoản mục khác. (2) Chỉ xét những luật
có chiếm hơn 40% bản ghi mà có mức độ tin cậy vượt quá 90%.
2.1. Các định nghĩa cơ bản:
2.1.1. Itemset:
Gọi I là tập các item phân biệt nhau, I = { I
1
, I
2
, I
m
} với Ii là các item (khoản
mục). Không mất tính tổng quát, ta giả sử rằng bất kỳ tập con (subset) nào của I đều
có thể được biểu diễn dưới dạng chuỗi tuần tự các item sắp theo trật tự tên các item.
Ví dụ {a,c} và {c,a} biểu diễn cùng là tập con của {a,b,c} nhưng chỉ có một chuỗi
tuần tự duy nhất là ac.
Định nghĩa 1: Một Itemset X là một tập các item trong I, Itemset X được gọi là k-
itemset nếu chứa k item có trong I.
2.1.2. Cơ sở dữ liệu [1], [15]
CSDL D được xét như một bảng quan hệ Booolean (Hình 4.a) và có thể được tổ
chức vật lý theo chiều ngang (Hình 4.b) hoặc chiều dọc ( Hình 4.c). Tổ chức theo
chiều ngang gồm tập các cặp (TID, T) với TID là định danh duy nhất của giao dịch và
T là một giao dịch trong D – là một tập các item sao cho T ⊆ I. Tổ chức theo chiều
dọc gồm tập các cặp (a, list) với a là một item và list là một danh sách sắp thứ tự các
số nối tiếp.
Hoàng Thị Minh Thu, CNPM K44
23
Nghiên cứu các thuật toán khai phá luật kết hợp nhanh và ứng dụng
2.1.3. Support
Định nghĩa 2: Với một itemset X, ta ký hiệu λ(X) = {TID|<TID,T>∈D và X⊆T}
λ(X) được gọi là support của X, lực lượng của λ(X) , ký hiệu là |λ(X)| là số đếm của X
(support count) và sup(X) = |λ(X)| / |D| là hệ số support của itemset X trong D, được
hiểu là số giao dịch trong CSDL D mà có chứa itemset X.
Lưu ý rằng λ(φ) = { TID| <TID, T> ∈ D và φ⊆T} = D
Hình 4: Các dạng biểu diễn khác nhau của I = {a,b,c,d,e}
Định nghĩa 3: Một itemset X được gọi là large itemset hay frequent itemset trong D
nếu support của X lớn hơn hoặc bằng ngưỡng support tối thiểu -gọi là minsup, được
định nghĩa trước bởi người dùng, ngược lại thì X được gọi là small itemset.
Định nghĩa 4: Một large itemset đôi khi còn được gọi là itemset có support tối thiểu,
itemset thoả support, hay itemset đáng quan tâm (interesting itemset).
Các tính chất của large itemset:
Tính chất 1-1: Support cho các subset : Nếu A⊆B và A, B là các Itemset thì sup(A) ≥
sup(B) vì tất cả các giao dịch của D support B thì cũng support A
Tính chất 1-2: Nếu itemset A không có support tối thiểu trên D , nghĩa là sup(A) <
minsup thì mọi superset B của A sẽ không phải là một frequent vì supB) ≤ sup(A) <
minsup
Tính chất 1-3: Nếu itemset B là large trên D, nghĩa là sup(B) ≥ minsup thì mọi subset
A của B là large trên D vì sup(A) ≥ sup(B) ≥ minsup.
Hoàng Thị Minh Thu, CNPM K44
24
TIDT1→abde2→dce3
→abde4→abce5→abcd
e6→bcd
abcde11101120110131
101141110151111160
1110
Bảng quan hệ
Tổ chức theo chiều ngang Tổ chức theo chiều dọc
abcde↓↓↓↓↓112
1132432435535
4664 5 5 6
(c)
(b)
(a)
Nghiên cứu các thuật toán khai phá luật kết hợp nhanh và ứng dụng
Định nghĩa 5: Một frequent itemset là tối đa (maximal) nếu nó không có bất kỳ
superset nào là frequent itemset.
Định nghĩa 6: Tập các frequent itemset tối đa được gọi là maximum frequent itemset
(viết tắt là MFS).
Ví dụ 1-1 : Cho D được định nghĩa như Hình 4. Cho ngưỡng minsup = 0.5, ta tìm được
các frequent itemset với hệ số support như sau:
sup(b) = |{1, 2, 3, 4, 5, 6}| / 6 = 100%
sup(e) = sup(be) = |{1, 2, 3, 4, 5}| / 6 = 83%
sup(a) = sup(ab) = sup(ae) = sup(abe) = |{1, 3, 4, 5}| / 6 = 67%
sup(c) = sup(bc) = |{2, 4, 5, 6}| / 6 = 67%
sup(d) = sup(bd) = |{21, 3, 5, 6}| / 6 =67%
sup(ad)= sup(de) =sup(abd) = sup(bde) = sup(abde) = |{1, 3, 5}| / 6 = 50%
sup(ce) = sup(bce) = |{2, 4, 5}| / 6 = 50%
2.1.4. Luật kết hợp:
Định nghĩa 7: Gọi X và Y là hai itemset mà X⊂ I, Y⊂ I và X∩Y=φ, một luật kết
hợp sẽ có dạng X ⇒ Y trong đó X được gọi là tiền đề và Y được gọi là hệ quả của
luật. Lưu ý rằng mỗi luật X ⇒ Y đều gắn với một confidence conf,
conf =
)(sup
)(sup
X
YX ∪
.
Định nghĩa 8 : support của một luật X ⇒ Y, ký hiệu sup(X ⇒ Y) là khả năng mà tập
giao dịch hỗ trợ cho các thuộc tính trong cả X và Y.
sup(X ⇒ Y) = |λ (X ⇒ Y)| / |D| gọi là hệ số support của X ⇒ Y
sup(X ⇒ Y) = sup(X ∪ Y)
Định nghĩa 9: confidence của một luật X ⇒ Y, ký hiệu conf(X ⇒ Y) hiểu đơn giản
là xác suất có điều kiện để một giao dịch chứa Y nếu nó đã chứa X.
conf(X ⇒ Y) = p(Y⊆I| X⊆I) =
)(
)(
TXp
TXTYp
⊆
⊆∧⊆
=
)(sup
)(sup
X
YX ∪
= |λ (X ⇒ Y)| / |λ (X)|
Định nghĩa 10: Một luật kết hợp hợp lệ là một luật kết hợp mà với cặp hệ số
minsup, minconf do người dùng chọn trước: 0 ≤ minsup ≤ 1 và 0 ≤ minconf ≤ 1 thì
luật phải thoả các điều kiện sau:
1. sup(X ⇒ Y) ≥ minsup và
2. conf(X ⇒ Y) ≥ minconf
minsup được gọi là support tối thiểu và minconf là confidence tối thiểu
Hoàng Thị Minh Thu, CNPM K44
25