Tên luận văn: “Nghiên cứu khai phá luật kết hợp và ứng dụng trong bài toán tư vấn học tập tại trường Đại học Giao thông vận tải Phân hiệu thành phố Hồ Chí Minh” Mục đích nghiên cứu: Đối
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI
NGUYỄN HỮU TÂN
NGHIÊN CỨU KHAI PHÁ LUẬT KẾT HỢP VÀ ỨNG DỤNG TRONG BÀI TOÁN TƯ VẤN HỌC TẬP TẠI TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI PHÂN HIỆU THÀNH PHỐ HỒ CHÍ MINH
LUẬN VĂN THẠC SỸ KỸ THUẬT
TP HỒ CHÍ MINH - 2019
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI
NGUYỄN HỮU TÂN
NGHIÊN CỨU KHAI PHÁ LUẬT KẾT HỢP VÀ ỨNG
DỤNG TRONG BÀI TOÁN TƯ VẤN HỌC TẬP TẠI TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI PHÂN HIỆU THÀNH PHỐ HỒ CHÍ MINH
NGÀNH: CÔNG NGHỆ THÔNG TIN
Trang 3TRÍCH YẾU LUẬN VĂN CAO HỌC
Họ và tên học viên: Nguyễn Hữu Tân Năm sinh:
Cơ quan công tác: Trường Đại học Giao thông vận tải – Phân hiệu Hồ Chí Minh Khóa: 25.1
Chuyên ngành: Công nghệ thông tin Mã số: 8.48.02.01
Cán bộ hướng dẫn: TS Nguyễn Quốc Tuấn Bộ môn: Mạng và Các HTTT
1 Tên luận văn: “Nghiên cứu khai phá luật kết hợp và ứng dụng trong bài toán tư vấn học tập tại trường Đại học Giao thông vận tải Phân hiệu thành phố Hồ Chí Minh”
Mục đích nghiên cứu: Đối tượng nghiên cứu là thông tin về học tập của các sinh viên Từ dữ liệu học tập của sinh viên thực hiện các kỹ thuật khai phá
dữ liệu để tìm ra mối liên hệ giữa kết quả học tập của các nhóm môn học chuyên ngành với kết quả tốt nghiệp của sinh viên để từ đó đưa ra những đánh giá và trợ giúp cho quá trình học tập của sinh viên
Phương pháp nghiên cứu và kết quả đạt được:
- Phương pháp nghiên cứu của đề tài: Nghiên cứu các kỹ thuật khai phá dữ liệu sử dụng luật kết hợp áp dụng cho việc phân tích
dữ liệu học tập của sinh viên
- Kết quả đạt được: Phân tích dữ liệu học tập của sinh viên để từ
đó tìm ra mối liên hệ giữa việc học tập các môn với kết quả đầu
ra của sinh viên
2 Điểm bình quân môn học:……… Điểm bảo vệ luận văn: ………
Ngày 20 tháng 07 năm 2019
TS Nguyễn Quốc Tuấn Nguyễn Hữu Tân
Trang 4LỜI CAM ĐOAN
Học viên cam kết đã tự nghiên cứu và thực hiện đề tài này, bằng những kiến thức thực tiễn và chuyên môn được đào tạo trong quá trình học Đại học
và Cao học tại trường Giao thông Vận tải, ngành Công nghệ thông tin khóa
25.1, cùng với sự quan tâm, hướng dẫn trực tiếp của thầy giáo TS Nguyễn Quốc Tuấn
Mọi tham khảo trong luận văn đều được trích dẫn nguồn rõ ràng và có
độ chính xác cao nhất trong phạm vi hiểu biết của tôi Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo hay gian lận, tôi xin hoàn toàn chịu trách nhiệm
Hà Nội, ngày 20 tháng 07 năm 2019
Học viên
Nguyễn Hữu Tân
Trang 5LỜI CẢM ƠN
Để hoàn thành bài luận văn này, ngoài sự cố gắng của bản thân, tôi đã nhận được sự giúp đỡ của các thầy giáo, cô giáo và các bạn đồng nghiệp
Trước hết, tôi xin bày tỏ lòng kính trọng và sự biết ơn sâu sắc tới Thầy
giáo TS Nguyễn Quốc Tuấn, Trường Đại học Giao thông Vận tải Hà Nội, người
đã luôn tận tình hướng dẫn, động viên và giúp đỡ tôi hoàn thành luận văn của mình
Tôi xin bày tỏ lòng biết ơn tới các thầy cô giáo trong khoa Công nghệ thông tin và khoa Sau Đại học – Trường Đại học Giao thông Vận tải đã tạo điều kiện thuận lợi nhất cho tôi trong quá trình học tập, nghiên cứu
Bên cạnh đó, tôi cũng xin được gửi lời cảm ơn chân thành tới Trường Đại học Giao thông vận tải nơi tôi đang công tác đã giúp đỡ nhiệt tình và tạo điều kiện thuận lợi để tôi hoàn thành bài luận văn
Cuối cùng, tôi xin bày tỏ lòng biết ơn tới những người thân trong gia đình, bạn bè và đồng nghiệp đã động viên tôi trong suốt quá trình hoàn thành khoá học
Xin trân trọng cảm ơn!
Hà Nội, ngày 20 tháng 07 năm 2019
Học viên
Nguyễn Hữu Tân
Trang 6MỤC LỤC
TRÍCH YẾU LUẬN VĂN CAO HỌC i
LỜI CAM ĐOAN ii
LỜI CẢM ƠN iii
MỤC LỤC 1
DANH MỤC HÌNH ẢNH 3
DANH MỤC TỪ VIẾT TẮT 4
PHẦN MỞ ĐẦU 5
CHƯƠNG 1 TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU VÀ LUẬT KẾT HỢP 8
1.1 Tổng quan về khai phá dữ liệu 8
1.1.1 Mở đầu 8
1.1.2 Định nghĩa khai phá dữ liệu 11
1.1.3 Quá trình khám phá tri thức 12
1.1.4 Kiến trúc hệ thống khai phá dữ liệu 14
1.1.5 Các hướng tiếp cận và kỹ thuật chính trong KPDL 16
1.1.6 Các dạng dữ liệu có thể khai phá 17
1.1.7 Một số ứng dụng của khai phá dữ liệu 18
1.2 Luật kết hợp (association rule) 19
1.2.1 Một số khái niệm cơ bản 20
1.2.2 Luật kết hợp là gì? 21
1.2.3 Bài toán khai phá luật kết hợp 22
1.2.4 Một số tính chất của tập mục phả biến và luật kết hợp 23
Trang 71.2.5 Các loại luật kết hợp 25
CHƯƠNG 2 MỘT SỐ PHƯƠNG PHÁP KHAI PHÁ LUẬT KẾT HỢP 29
2.1 Mở đầu 29
2.2 Thuật toán Apriori tìm các tập mục phổ biến 29
2.3 Khai phá tập mục phổ biến theo hướng tiếp cận không sinh ứng cử 35
2.3.1 Mở đầu 35
2.3.2 Thuật toán xây dựng cây FP_Tree 36
2.3.3 Khai phá tập mục phổ biến từ cây FP-Tree 38
2.4 Nhận xét về các thuật toán 41
2.5 Khai phá luật kết hợp từ tập mục phổ biến 42
CHƯƠNG 3 XÂY DỰNG ỨNG DỤNG TƯ VẤN HỌC TẬP 44
3.1 Mô tả bài toán 44
3.2 Xây dựng mô hình 45
3.3 Khai phá dữ liệu học tập của sinh viên 50
3.3.1 Phần mềm WEKA 50
3.3.2 Khai phá luật kết hợp từ dữ liệu điểm của sinh viên ngành CNTT 58
KẾT LUẬN 67
TÀI LIỆU THAM KHẢO 69
Trang 8
DANH MỤC HÌNH ẢNH
Hình 1 Quá trình khám phá tri thức [1] 12
Hình 2 Kiến trúc của một hệ KPDL 15
Hình 3 Sinh ra các tập mục ứng viên và các tập mục thường xuyên 34
Hình 4 Cây FP-Tree ghi đầy đủ thông tin mẫu thường xuyên 40
Hình 6 Kết quả học tập toàn khóa của 1 lớp ngành CNTT 47
Hình 7 Giao diện chính của phần mềm Weka 50
Hình 8 Minh họa Header và Data trong file ARFF 51
Hình 9 Các kiểu dữ liệu lưu trữ trong file ARFF 52
Hình 10 Tiền xử lý dữ liệu với Weka 53
Hình 11 Tìm tập phổ biến và luật kết hợp với Apriori 53
Hình 12 Các tham số của giải thuật Apriori 54
Hình 13 Kết quả chạy với giải thuật Apriori 55
Hình 14 Tìm tập phổ biến và luật kết hợp với FP_Growth 56
Hình 15 Các tham số của giải thuật FP_Growth 57
Hình 16 Kết quả chạy với giải thuật FP_Growth 58
Hình 17 Dữ liệu chuẩn hóa về dạng arff 59
Hình 18 Dữ liệu đầu vào khai phá dữ liệu 63 sinh viên với 15 học phần 60
Hình 19 Kết quả chạy giải thuật Apriori với điểm học phần tính theo hệ chữ 61
Hình 20 Hiển thị dữ liệu điểm ở 2 mức Đạt và Không đạt 62
Hình 21 Kết quả chạy giải thuật Apriori với điểm thi ở 2 mức Đạt và Không đạt 63
Hình 22 Dữ liệu điểm sinh viên với 2 mức đạt và không đạt 64
Hình 23 Hiển thị thống kê số liệu điểm theo thuật toán FP_Growth 65
Hình 24 Kết quả luật kết hợp tìm được theo thuật toán FP_Growth 65
Trang 9DANH MỤC TỪ VIẾT TẮT
Trang 10
PHẦN MỞ ĐẦU
1 Tính cấp thiết của đề tài
Khai phá dữ liệu (KPDL) khai thác các thông tin tiềm ẩn mang tính dự đoán từ những CSDL lớn, là một hướng tiếp cận mới và có khả năng giúp các đơn vị, tổ chức chú trọng vào những thông tin có nhiều ý nghĩa từ tập dữ liệu lớn (Databases, Data Warehouses, Data repositories) Các công cụ KPDL có thế dự đoán được những xu hướng trong tương lai và do đó các đơn vị, tố chức có thể đưa ra những quyết định mang tính định hướng kịp thời dựa trên những tri thức mà nó đem lại Sự phân tích dữ liệu một cách tự động mang tính dự báo của KPDL có ưu thế hơn hẳn so với các phương pháp phân tích thông thường dựa trên các sự kiện trong quá khứ của các hệ hỗ trợ ra quyết định truyền thống trước đây
Trong một những thập niên gần đây, khai phá dữ liệu (KPDL) đã trở thành một trong những hướng nghiên cứu được nhiều khoa học quan tâm trong lĩnh vực khoa học máy tính và công nghệ tri thức Trong quá trình phát triến đó với hàng loạt nghiên cứu, đề xuất được thử nghiệm và ứng dụng thành công vào đời sống, đã chứng tỏ rằng KPDL là một lĩnh vực nghiên cứu
ổn định, có nền tảng vững chắc
KPDL bao hàm rất nhiều hướng tiếp cận khác nhau Các kỹ thuật chính được áp dụng trong lĩnh vực này phần lớn được thừa kế từ lĩnh vực cơ sở dữ liệu (CSDL), học máy, trí tuệ nhân tạo, lý thuyết thông tin, xác xuất thống kê
và tính toán hiệu năng cao (hight performance computing) Các bài toán chủ yếu trong KPDL là khai phá luật kết hợp (Association rules mining), phân lớp/dự đoán classihcation/prediction), phân cụm (clustering), khai phá chuỗi (Sequence mining), Lĩnh vực này là điểm hội tụ và giao thoa của nhiều lĩnh vực khác nhau KPDL đã và đang được ứng dụng thành công trong thương mại, tài chính & thị trường chứng khoán, sinh học, y học, giáo dục, viễn thông,
Trang 11Đối với nước ta, hệ thống giáo dục đang dần chuyển từ đào tạo theo niên chế sang đào tạo theo tín chỉ Đào tạo tín chỉ có rất nhiều ưu điểm giúp sinh viên có thể tự quản lý quỹ thời gian của mình và tùy theo khả năng của mình sinh viên sẽ tự quyết định các môn học từng kỳ của mình, tạo điều kiện cho sinh viên đạt được kết quả cao nhất với khả năng của mình đồng thời sắp xếp thời gian tự hỗ trợ bản thân và có thể áp dụng lý thuyết học trên giảng đường để tiếp cận thực tế Vì thế việc xây dựng một hệ thống tư vấn môn học cho sinh viên tạo để sinh viên có thể lựa chọn môn học lựa chọn, chuyên ngành đạt hiệu quả cao là điều cần thiết và rất hữu ích
Khai phá luật kết hợp là một hướng quan trọng trong KPDL được đề xuất lần đầu tiên năm 1993 Đây là một lĩnh vực nghiên cứu có nhiều triển
vọng, vì vậy tôi đã chọn đề tài về “Nghiên cứu khai phá luật kết hợp và ứng dụng trong bài toán tư vấn học tập tại trường Đại học Giao thông vận tải Phân hiệu thành phố Hồ Chí Minh” Luận văn được xây dựng và
phát triển dựa trên nền tảng của một số nghiên cứu trong lĩnh vực khai phá luật kết hợp trong những năm gần đây
2 Đối tượng nghiên cứu
- Nghiên cứu các khái niệm cơ bản trong khai phá luật kết hợp như: Luật kết hợp, tập mục, tập mục phổ biến, độ hỗ trợ, độ tin cậy, các tính chất của luật kết hợp
- Nghiên cứu các thuật toán khai phá luật kết hợp, cài đặt các thuật toán
3 Mục tiêu nghiên cứu
- Tập trung nghiên cứu các thuật toán khai phá luật kết hợp: Apriori, FP- growth, thuật toán khai phá luật có thuộc tính định lượng
- Áp dụng các thuật toán để khai phá luật kết hợp trên CSDL
4 Phương pháp nghiên cứu
Phương pháp nghiên cứu của đề tài là sự kết hợp giữa nghiên cứu các
Trang 12khái niệm cơ bản trong khai phá luật kết hợp như: Luật kết hợp, tập mục, tập mục phổ biến, độ hỗ trợ, độ tin cậy, các tính chất của luật kết hợp với thực nghiệm trên thực tế
5 Kết cấu của luận văn
Ngoài phần mở đầu, kết luận và hướng phát triển, tài liệu tham khảo, nội dung chính của luận văn được trình bày trong 3 chương:
Chương 1: Tống quan về khai phá dữ liệu và luật kết hợp
Chương 2: Một số phương pháp khai phá luật kết hợp
Chương 3: Xây dựng ứng dụng tư vấn học tập
Trang 13CHƯƠNG 1 TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU
VÀ LUẬT KẾT HỢP
1.1 Tổng quan về khai phá dữ liệu
1.1.1 Mở đầu
1.1.1.1 Mục đích của khai phá dữ liệu
Mục đích của khai phá dữ liệu là chiết xuất ra các tri thức có lợi cho kinh doanh hay cho nghiên cứu khoa học, Dó đó, ta có thể xem mục đích của khai phá dữ liệu sẽ là mô tả các sự kiện và dự đoán Các mẫu khai phá dữ liệu phát hiện được nhằm vào mục đích này Dự đoán liên quan đến việc sử dụng các biến hoặc các đối tượng (bản ghi) trong CSDL để chiết xuất ra các mẫu, dự đoán được những giá trị chưa biết hoặc những giá trị tương lai của các biến đáng quan tâm 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
1.1.1.2 Nhiệm vụ chính của khai phá dữ liệu bao gồm
Phân lớp dữ liệu (phân loại - classification)
Là việc xác định một hàm ánh xạ từ một mẫu dữ liệu vào một trong số các lớp đã được biết trước đó Mục tiêu của thuật toán phân lớp là tìm ra mối quan hệ nào đó giữa thuộc tính dự báo và thuộc tính phân lớp Như thế quá trình phân lớp có thể sử dụng mối quan hệ này để dự báo cho các mục mới Các kiến thức được phát hiện biểu diễn dưới dạng các luật theo cách sau:
“Nếu các thuộc tính dự báo của một mục thoả mãn điều kiện của các tiền đề thì mục nằm trong lớp chỉ ra trong kết luận”
Ví dụ: Một mục biểu diễn thông tin về nhân viên có các thuộc tính dự
báo là: Họ tên, tuổi, giới tính, trình độ học vấn, và thuộc tính phân loại là trình độ lãnh đạo của nhân viên
Trang 14 Phân nhóm dữ liệu (clustering)
Là việc mô tả chung đế tìm ra các tập hay các nhóm, loại mô tả dữ liệu Các nhóm có thể tách nhau hoặc phân cấp hay gối lên nhau Có nghĩa là dữ liệu có thể vừa thuộc nhóm này lại vừa thuộc nhóm khác Các ứng dụng khai phá dữ liệu có nhiệm vụ phân nhóm như phát hiện tập các khách hàng có phản ứng giống nhau trong CSDL tiếp thị; xác định các quang phổ từ các phương pháp đo tia hồng ngoại, Liên quan chặt chẽ đến việc phân nhóm là nhiệm vụ đánh giá dữ liệu, hàm mật độ xác suất đa biến/ các trường trong CSDL
Hồi quy (regression)
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 Nhiệm vụ của hồi quy tương tự như phân lớp, điểm khác nhau chính là ở chỗ thuộc tính đế dự báo là liên tục chứ không phải rời rạc Việc dự báo các giá trị số thường được làm bởi các phương pháp thống kê cổ điển, chẳng hạn như hồi quy tuyến tính Tuy nhiên, phương pháp mô hình hoá cũng được sử dụng, ví dụ: Cây quyết định
Ứng dụng của hồi quy là rất nhiều, ví dụ: Dự đoán số lượng sinh vật phát quang hiện thời trong khu rừng bằng cách dò tìm vi sóng bằng các thiết
bị cảm biến từ xa; ước lượng sác xuất người bệnh có thể chết bằng cách kiểm tra các triệu chứng; dự báo nhu cầu của người dùng đối với một sản phẩm,
Tổng hợp (summarization)
Là công việc liên quan đến các phương pháp tìm kiếm một mô tả tập con dữ liệu Kỹ thuật tổng hợp thường áp dụng trong việc phân tích dữ liệu có tính thăm dò và báo cáo tự động Nhiệm vụ chính là sản sinh ra các mô tả đặc trưng cho một lớp Mô tả loại này là một kiểu tổng hợp, tóm tắt các đặc tính chung của tất cả hay hầu hết các mục của một lớp Các mô tả đặc trưng thể hiện theo luật có dạng sau: “Nếu một mục thuộc về lớp đã chỉ trong tiền đề thì mục đó có tất cả các thuộc tính đã nêu trong kết luận” Lưu ý rằng luật dạng
Trang 15này có các khác biệt so với luật phân lớp Luật phát hiện đặc trưng cho lớp chỉ sản sinh khi các mục đã thuộc về lớp đó
Mô hình hóa phụ thuộc (dependency modeling)
Là việc tìm kiếm một mô hình mô tả sự phụ thuộc giữa các biến, thuộc tính theo hai mức: Mức cấu trúc của mô hình mô tả (thường dưới dạng đồ thị) Trong đó, các biến phụ thuộc bộ phận vào các biến khác Mức định lượng mô hình mô tả mức độ phụ thuộc Những phụ thuộc này thường được biểu thị dưới dạng theo luật “nếu - thì” (nếu tiền đề là đúng thì kết luận đúng),
về nguyên tắc, cả tiền đề và kết luận đều có thể là sự kết hợp logic của các giá trị thuộc tính Trên thực tế, tiền đề thường là nhóm các giá trị thuộc tính và kết luận chỉ là một thuộc tính Hơn nữa hệ thống có thể phát hiện các luật phân lớp trong đó tất cả các luật cần phải có cùng một thuộc tính do người dùng chỉ ra trong kết luận
Quan hệ phụ thuộc cũng có thể biểu diễn dưới dạng mạng tin cậy Bayes Đó là đồ thị có hướng, không chu trình Các nút biểu diễn thuộc tính
và trọng số của liên kết phụ thuộc giữa các nút đó
Phát hiện sự thay đổi và độ lệch (change and deviation dectection)
Nhiệm vụ này tập trung vào khám phá hầu hết sự thay đổi có nghĩa dưới dạng độ đo đã biết trước hoặc giá trị chuẩn, phát hiện độ lệch đáng kể giữa nội dung của tập con dữ liệu thực và nội dung mong đợi Hai mô hình độ lệch hay dùng là lệch theo thời gian hay lệch theo nhóm Độ lệch theo thời gian là sự thay đổi có ý nghĩa của dữ liệu theo thời gian Độ lệch theo nhóm là
sự khác nhau của giữa dữ liệu trong hai tập con dữ liệu, ở đây tính cả trường hợp tập con dữ liệu này thuộc tập con kia, nghĩa là xác định dữ liệu trong một nhóm con của đối tượng có khác đáng kể so với toàn bộ đối tượng không? Theo cách này, sai sót dữ liệuhay sai lệch so với giá trị thông thường được phát hiện
Trang 16Vì những nhiệm vụ 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 phương pháp khai phá dữ liệu khác nhau Ví dụ như phương pháp cây quyết định tạo ra được một mô tả phân biệt được các mẫu giữa các lớp nhưng không có tính chất và đặc điểm của lớp
1.1.2 Định nghĩa khai phá dữ liệu
Khai phá dữ liệu được dùng để mô tả quá trình phát hiện ra tri thức trong CSDL Quá trình này kết xuất ra các tri thức tiềm ẩn từ dữ liệu giúp cho việc dự báo trong kinh doanh, các hoạt động sản xuất, Khai phá dữ liệu làm giảm chi phí về thời gian so với phương pháp truyền thống trước kia (ví dụ như phương pháp thống kê)
Sau đây là một số định nghĩa mang tính mô tả của nhiều tác giả về khai phá dữ liệu:
Định nghĩa của Ferruzza: “Khai phá dữ liệu là tập hợp các phương
pháp được dùng trong tiến trình khám phá tri thức để chỉ ra sự khác biệt các mối quan hệ và các mẫu chưa biết bên trong dữ liệu”
Định nghĩa của Parsaye: “Khai phá dữ liệu là quá trình trợ giúp quyết
định, trong đó chúng ta tìm kiếm các mẫu thông tin chưa biết và bất ngờ trong CSDL”
Định nghĩa của Fayyad: “Khai phá tri thức là một quá trình không tâm
thường nhận ra những mẫu dữ liệu có giá trị, mới, hữu ích, tiềm năng và có thể hiểu được”
Trang 171.1.3 Quá trình khám phá tri thức
nh 1 Quá trình khám phá tri thức [1]
Quá trình khám phá tri thức từ CSDL là một quá trình có sử dụng nhiều phương pháp và công cụ tin học nhưng vẫn là một quá trình mà trong đó con người là trung tâm Do đó, nó không phải là một hệ thống phân tích tự động
mà là một hệ thống bao gồm nhiều hoạt động tương tác thường xuyên giữa con người và CSDL, tất nhiên là với sự hỗ trợ của các công cụ tin học Người
sử dụng hệ thống ở đây phải là người có kiến thức cơ bản về lĩnh vực cần phát hiện tri thức để có thể chọn được đúng các tập con dữ liệu, các lớp mẫu phù hợp và đạt tiêu chuẩn quan tâm so với mục đích Tri thức mà ta nói ở đây là các tri thức rút ra từ các CSDL, thường để phục vụ cho việc giải quyết một loạt nhiệm vụ nhất định trong một lĩnh vực nhất định Do đó, quá trình pháthiện tri thức cũng mang tính chất hướng nhiệm vụ, không phải là phát hiện mọi tri thức bất kỳ mà là phát hiện tri thức nhằm giải quyết tốt nhiệm vụ
đề ra
Trang 18 Gom dữ liệu (Gathering)
Tập hợp dữ liệu là bước đầu tiên trong quá trình khai phá dữ liệu Đây
là bước được khai thác trong một CSDL, một kho dữ liệu và thậm chí các dữ liệu từ các nguồn ứng dụng Web
Chuyển đổi dữ liệu (Transformation)
Tiếp theo là giai đoạn chuyển đổi dữ liệu, dữ liệu được chuyển đối hay được hợp nhất về dạng thích hợp cho việc khai phá
Khai phá dữ liệu (Data Mining)
Đây là một tiến trình cốt yếu Ở giai đoạn này nhiều thuật toán khác nhau đã được sử dụng một cách phù họp để trích xuất thông tin có ích hoặc các mẫu điển hình trong dữ liệu
Đánh giá kết quả mẫu (Evaluation of Result)
Đây là giai đoạn cuối trong quá trình khai phá dữ liệu Ở giai đoạn này, các mẫu dữ liệu được chiết xuất, không phải bất cứ mẫu dữ liệu nào cũng đều
Trang 19hữu ích, đôi khi nó còn bị sai lệch Vì vậy, cần phải ưu tiên những tiêu chuẩn đánh giá để chiết xuất ra các tri thức cần thiết Từ quá trình khám phá tri thức trên chúng ta thấy được sự khác biệt giữa khám phá tri thức và khai phá dữ liệu
Trong khi khám phá tri thức là nói đến quá trình tổng thể phát hiện tri thức hữu ích từ dữ liệu Còn KPDL chỉ là một bước trong quá trình khám phá tri thức, các công việc chủ yếu là xác định được bài toán khai phá, tiến hành lựa chọn phương pháp KPDL phù hợp với dữ liệu có được và tách ra các tri thức cần thiết
1.1.4 Kiến trúc hệ thống khai phá dữ liệu
Trong kiến trúc này, các nguồn dữ liệu cho các hệ thống KPDL bao gồm hoặc CSDL, hoặc Kho dữ liệu, hoặc World Wide Web, hoặc kho chứa
dữ liệu kiểu bất kỳ khác, hoặc tổ hợp các kiểu đã liệt kê nói trên Cơ sở tri thức, bao chứa các tri thức hiện có về miền ứng dụng, được sử dụng trong thành phần KPDL để làm tăng tính hiệu quả của thành phần này Một số tham
số của thuật toán KPDL tương ứng sẽ được tinh chỉnh theo tri thức miền sẵn
có từ cơ sở tri thức trong hệ thống Cơ sở tri thức còn được sử dụng trong việc đánh giá các mẫu đã khai phá được xem chúng có thực sự hấp dẫn hay không, trong đó có đối chứng với các tri thức đã có trong cơ sở tri thức Nếu mẫu khai phá được thực sự hấp dẫn thì được bổ sung vào cơ sở tri thức để phục vụ cho hoạt động tiếp theo của hệ thống Như vậy, nguồn tri thức bổ sung vào cơ
sở tri thức ở đây không chỉ từ lập luận lôgic theo các hệ toán lôgic để có tri thức mới, không chỉ do con người hiểu biết thêm về thế giới khách quan để bổ sung vào mà còn tri thức được phát hiện một cách tự động từ nguồn dữ liệu
KPDL là một bước chính trong quá trình phát hiện tri thức từ số lượng lớn dữ liệu đã lưu trữ trong CSDL, kho dữ liệu hoặc các nơi lưu trữ khác Kết quả của bước này là những mẫu đáng quan tâm được đưa đến cho người dùng hoặc lưu giữ như là tri thức mới trong cơ sở tri thức
Trang 20Kiến trúc của hệ thống KPDL có thể có các thành phần chính sau:
nh 2 Kiến trúc của một hệ KPDL
+ CSDL, kho dữ liệu, WorldWideWeb, kho chứa dữ liệu khác: Đây là một hoặc một tập CSDL, kho dữ liệu, World Wide Web, hoặc kho chứa dữ liệu kiểu bất kỳ khác, hoặc tổ hợp các kiểu đã liệt kê nói trên Các kỹ thuật làm sạch dữ liệu và tích hợp dữ liệu có thể được thực hiện trên dữ liệu
+ Phục vụ CSDL/Kho dữ liệu: Có trách nhiệm lấy dữ liệu liên quan dựa trên yêu cầu của người KPDL
+ Cơ sở tri thức: Đây là tri thức miền được sử dụng để hướng dẫn việc tìm kiếm hoặc đánh giá sự thú vị của các mẫu thú vị Tri thức này có thể bao gồm các mức phân cấp khái niệm, được sử dụng để tổ chức các thuộc tính hoặc giá trị thuộc tính thành các cấp trừu tượng Tri thức như độ tin cậy của
Trang 21người sử dụng, có thể được sử dụng để đánh giá độ thú vị của mẫu cũng có thể được bao gồm Các ví dụ khác của tri thức miền là các ràng buộc thú vị bổ sung hoặc ngưỡng, và siêu dữ liệu (ví dụ, mô tả dữ liệu từ nhiều nguồn không đồng nhất)
+ Thành phần khai phá dữ liệu: Đây là thành phần cần thiết đối với hệ thống KPDL, bao gồm một tập các chức năng như mô tả, phân tích tính kết hợp và tính tương quan, phân lớp, dự báo, phân tích cụm, phân tích ngoại lai,
và phân tích sự tiến hóa
+ Đánh giá mẫu: Thành phần này thường sử dụng các độ đo và tương tác với thành phần KPDL để tập trung tìm kiếm các mẫu thú vị Nó có thể sử dụng các ngưỡng để lọc ra các mẫu phát hiện được Ngoài ra, thành phần đánh giá mẫu có thể được tích hợp với thành phần KPDL, phụ thuộc vào các phương pháp KPDL được sử dụng
+ Giao diện người dùng: Thành phần này là thành phần giao tiếp giữa người sử dụng và hệ thống KPDL, cho phép người dùng tương tác với hệ thống bằng cách xác định một truy vấn hoặc một nhiệm vụ KPDL, cung cấp thông tin để giúp tập trung tìm kiếm, thăm dò và KPDL dựa trên kết quả KPDL trung gian Ngoài ra, thành phần này cho phép người dùng tìm các lược đồ CSDL và kho dữ liệu hoặc các cấu trúc dữ liệu, đánh giá các mẫu khai phá
1.1.5 Các hướng tiếp cận và kỹ thuật chính trong KPDL
1.1.4.1 Các hướng tiêp cận của KPDL
Có thể được phân chia theo chức năng hay lớp các bài toán khác nhau Sau đây là một số hướng tiếp cận chính:
• Phân lớp và dự đoán (classification & predition): Xếp một đối tượng
vào một trong những lớp đã biết trước Ví dụ: Phân lớp vùng địa lý theo dữ liệu thời tiết Hướng tiếp cận này thường sử dụng một số kỹ thuật của machine learning như cây quyết định (decision tree), mạng nơ ron nhân tạo
Trang 22(neural network), v.v phân lớp còn được gọi là học có giám sát (học có thầy- supervised leaming)
• Luật kết hợp (association rules): Là dạng luật biểu diễn tri thức ở
dạng khá đơn giản Ví dụ: “60% nam giới và siêu thị nếu mua bia thì có tới 80% trong số họ sẽ mua thêm thịt bò khô” Luật kết hợp được ứng dụng nhiều trong lĩnh vực kinh doanh, y học, tin - sinh, tài chính và thị trường chứng khoán, v.v
• Khai phá chuỗi theo thời gian (sequential/temporal pattems): Tương
tự như khai phá luật kết hợp nhưng có thêm tính thứ tự và tính thời gian Hướng tiếp cận này được ứng dụng nhiều trong lĩnh vực tài chính và thị trường chứng khoán vì nó có tính dự báo cao
• Phân cụm (clustering/segmentation): Xếp các đối tượng theo từng
cụm (số lượng cũng như tên của cụm chưa được biết trước) Phân cụm còn được gọi là học không giám sát (học không thầy - unsupervised leaming)
• Mô tả khái niệm (concept description & summarization): Thiên về
mô tả, tổng hợp và tóm tắt khái niệm Ví dụ: Tóm tắt văn bản
1.1.4.2 Kỹ thuật chính trong KPDL
• Kỹ thuật KPDL mô tả: Có nhiệm vụ mô tả về các tính chất hoặc các
đặc tính chung của dữ liệu trong CSDL hiện có Nhóm kỹ thuật này gồm các phương pháp: Phân nhóm (Clustering), tổng hợp hóa (Summerization), phát hiện sự biến đổi và độ lệch (Change and deviation detection), phân tích luật kết hợp (Association Rules),
• Kỹ thuật KPDL dự đoán: Có nhiệm vụ đưa ra các dự đoán dựa vào
các suy diễn trên dữ liệu hiện thời Nhóm kỹ thuật này gồm các phương pháp: Phân lớp (Classiíĩcation), hồi quy (Regression),
1.1.6 Các dạng dữ liệu có thể khai phá
Do KPDL được ứng dụng rộng rãi nên nó có thể làm việc với rất nhiều
Trang 23kiểu dữ liệu khác nhau Sau đây là một số kiểu dữ liệu điển hình:
• CSDL quan hệ (relational databases): Là những CSDL được tổ chức
theo mô hình quan hệ Cơ sở dữ liệu tác nghiệp được tổ chức theo mô hình dữ liệu quan hệ Hầu hết các hệ quản trị cơ sở dữ liệu hiện nay đều hỗ trợ dạng này như MS SQL Server, Oracle, v.v
• CSDL đa chiều (multidimensional structures, data warehouses): Còn
được gọi là nhà kho dữ liệu, trong đó dữ liệu được chọn từ nhiều nguồn khác nhau và chứa nhũng đặc tính lịch sử thông qua thuộc tính thời gian tường minh hoặc ngầm định
• CSDL dạng giao dịch (transactional databases): Là loại dữ liệu được
sử dụng nhiều trong siêu thị, thương mại, ngân hàng,
• CSDL quan hệ - hướng đối tượng (object-relational databases): Mô
hình CSDL này là lai giữa mô hình hướng đối tượng và mô hình CSDL quan
hệ
• Dữ liệu không gian và thời gian (spatial and temporal data): Chứa
những thông tin về không gian địa lý hoặc thông tin theo thời gian
• CSDL đa phương tiện (multimedia databases): Là dạng dữ liệu âm
thanh (audio), hình ảnh (Images), phim ảnh (video), văn bản (text),… Dạng
dữ liệu này hiện đang rất phổ biến trên Internet do sự ứng dụng rộng rãi của
nó
1.1.7 Một số ứng dụng của khai phá dữ liệu
Khai phá dữ liệu có nhiều ứng dụng trong thực tế, chúng ta có liệt kê môt số ứng dụng theo lĩnh vực hoạt động:
Bảo hiểm, tài chính và thị trường chứng khoán: Phân tích tình hình tài chính và dự báo giá của các loại cố phiếu trong thị trường chứng khoán Danh mục vốn và giá, lãi suất, dữ liệu thẻ tín dụng, phát hiện gian lận,
Điều trị y học và chăm sóc y tế: Một số thông tin về chuẩn đoán
Trang 24bệnh lưu trong các hệ thống quản lý bệnh viện Phân tích mối liên hệ giữa các triệu chứng bệnh, chuẩn đoán và phương pháp điều trị (chế độ dinh dưỡng,
1.2 Luật kết hợp (association rule)
Khai phá dữ liệu bằng luật kết hợp là một phương pháp quan trọng trong khai phá dữ liệu Nó được ra đời và phát triển mạnh mẽ trong những năm gần đây Lần đầu tiên được Rakesh Agrawal, Tomasz Imielinski, Arun Swami đề xuất năm 1993 [2][3][6] Sau đó năm 1996 được Rakesh Agrawal, Heikki Mannila, Ramakrishnan Srikant, Hannu Toivonen, A.Inkeri Verkamo tiếp tục phát triển và cải tiến Đến nay những nghiên cứu về luật kết hợp tập trung xây dựng thuật toán khai phá luật kết hợp mới, hiệu quả hoặc cải tiến, phát triển các thuật toán để hiệu quả hơn Ứng dụng điển hình là trong siêu thị, người ta muốn biết rằng trong giỏ hàng mua hàng của khách hàng thì thường mua những món hàng nào đi cùng với nhau Nếu nhà kinh doanh siêu thị biết được thông tin này thì họ sẽ có chiến lược kinh doanh phù hợp để tăng thêm lợi nhuận Ví dụ nếu một luật được khám phá rằng “đa số người mua dao cạo râu thì sẽ mua kem cạo râu” Lúc đó nhà kinh doanh có thể sẽ đưa tủ chứa kem cạo râu lại gần với dao cạo râu hoặc có những hình thức khuyến mãi như mua nhiều kem cạo râu sẽ được tăng dao cạo râu…Không chỉ dừng lại nhưng ứng dụng trong thương mại, luật kết hợp đã có nhưng ứng dụng
Trang 25rộng rãi trong các lĩnh vực khác như y tế, tài chính, thiên văn,…
1.2.1 Một số khái niệm cơ bản
Giao tác
Tập T I được gọi là một giao tác (hay một bản ghi)
Độ hỗ trợ của một tập mục (itemset)
Gọi D là tập tất cả các giao tác
Độ hỗ trợ (Support) của một tập mục X trong tập các giao tác D,
kí hiệu: supp(X) là tỷ số giữa các giao tác T (của D) chứa X và tổng số các giao tác của D (hay số phần trăm của các giao tác trong D chứa X)
( ) |* | +|
Độ hỗ trợ của một tập mục có giá trị giữa 0 và 1, tức là 0≤supp(X)≤1 với mọi tập mục X
Tập mục phổ biến (frequent itemset)
Tập mục X mà thoả mãn điều kiện supp(X) ≥ minsup (với minsup là một giá trị cho trước) được gọi là tập mục phổ biến với độ hỗ trợ cực tiểu
minsup
Một số tính chất của tập mục phổ biến
i) 0 ≤ supp( X ) ≤ 1 (Độ hỗ trợ của một tập mục có giá trị nằm trong đoạn từ không đến một)
Trang 26ii) Giả sử X, Y là các tập mục nếu X Y thì supp(X) ≥ supp(Y) vì tất cả giao tác của D nếu chứa Y thì cũng chứa X
iii) Tập con của tập mục phổ biến cũng là tập mục phổ biến: nếu tập mục B là một tập mục phổ biến trên D, nghĩa là supp(B) ≥ minsup thì mọi tập con A của B cũng đều là tập mục phổ biến trên D vì mọi giao tác trong D chứa B thì chắc chắn sẽ chứa A
iv) Bao hàm của tập mục không phổ biến cũng là tập mục không phổ biến:
Nếu tập B không thỏa mãn độ hỗ trợ tối thiểu trên D, nghĩa là supp(B)<minsup thì mọi tập A chứa B đều là tập mục không phổ biến vì giao tác không chứa B thì chắc chắn không chứa A
1.2.2 Luật kết hợp là gì?
Một luật kết hợp là một phát biểu dạng XY, trong đó X và Y là tập mục thoả mãn điều kiện X,YI (X,Y≠ và XY Đối với luật kết hợp
XY, X gọi là tiên đề, Y gọi là kết quả của luật
Luật kết hợp có 2 thông số quan trọng là độ hỗ trợ và độ tin cậy
Độ hỗ trợ của một luật (Support):
Độ hỗ trợ của luật kết hợp XY, ký hiệu là supp(XY) được xác định như sau: supp(XY) = supp(XY)
Độ hỗ trợ của luật thể hiện phạm vi ảnh hưởng của luật trên toàn bộ cơ
sở dữ liệu
Ví dụ: khi ta nói độ hỗ trợ của luật là 30% có nghĩa là trong tổng giao
tác thì có 30% giáo tác chứa tập XY
Độ tin cậy của một luật (confidence):
Độ tin cậy của một luật kết hợpXY, ký hiệu conf(XY) là số phần
Trang 27trăm các giao tác trong D mà chứa X thì cũng chứa Y Hay đó chính là xác suất có điều kiện P(Y|X) Độ tin cậy của một luật cũng có giá trị giữa 0 và 1
conf(XY) = P(Y|X) = supp(XY) /supp(X)
Độ tin cậy của luật thể hiện độ chính xác, tính đúng đắn hay khả năng tin cậy của luật trong phạm vi ảnh hưởng của luật (xác định bởi độ hỗ trợ)
Độ tin cậy của luật cho biết mức độ đúng của luật
Ví dụ: khi ta nói luật XY có độ tin cậy 80% và độ hỗ trợ là 15% nghĩa là 80% các giao tác hỗ trợ cho X thì cũng hỗ trợ cho Y với tỉ lệ giao tác chứa cả X và Y trong cơ sở dữ liệu là 15%
1.2.3 Bài toán khai phá luật kết hợp
Vấn đề khó khăn nhất trong việc khai phá luật kết hợp chính là số lượng khổng lồ các luật cần phải xem xét về mặt lí thuyết với cơ sở dữ liệu và tập mục ngày càng lớn Chúng ta biết rằng số lượng luật tăng theo lũy thừa lực lượng của tập mục I Trên thực tế là không cần phải khai thác hết các luật, hay luật nào cũng sử dụng Các luật tạo ra cần phải được giới hạn bởi một ngưỡng hỗ trợ và một ngưỡng tin cậy nào đó Vì supp(XY ) = supp(XY) nên nếu đặt Z = XY thì supp(XY )≥ minsup Z là tập mục phổ biến
Hai giai đoạn cơ bản của thuật toán khai phá luật kết hợp
Input: I, D, minsupp, minconf
Output: Các luật thỏa minsupp, minconf
Thuật toán:
Pha 1: Tìm tất cả các tập mục phổ biến trong D (tìm tất cả các tập mục
có độ hỗ trợ lớn hơn hoặc bằng minsupp)
Pha 2: Sinh các luật từ các tập mục phổ biến sao cho độ tin cậy của luật lớn hơn hoặc bằng minconf
Trang 281.2.4 Một số tính chất của tập mục phả biến và luật kết hợp
1.2.4.1 Một sổ tính chất của tập mục phổ biến
Tính chất 1 (Độ hỗ trợ của tập con):
Với A và B là tập các mục, nếu A B thì sup(A) ≥ sup(B)
Điều này là rõ ràng vì tất cả các giao tác của D hỗ trợ B thì cũng hỗ trợ
A
Tính chất 2:
Một tập chứa một tập không phổ biến thì cũng là tập không phổ biến
Nếu một mục trong B không có độ hễ trợ tối thiểu trên D nghĩa là
sup(B)< minsup thì một tập con A của B sẽ không phải là một tập phổ biến vì
sup(B) ≤ sup(A) < minsup (theo tính chất 1)
Tính chất 3: Các tập con của tập phổ biến cũng là tập phổ biến
Nếu mục B là mục phổ biến trên D, nghĩa là sup(B) ≥ minsup thì mọi tập con A của B là tập phổ biến trên D vì sup(A) ≥ sup(B) > minsup
1.2.4.2 Một số tính chất của luật kết hợp
Tính chất 1 (Không hợp các luật kết hợp):
Giả sử có hai luật kết hợp mạnh X => Z và Y => Z thì X Y => Z chưa chắc đã là luật kết hợp mạnh Tương tự nếu có X=>Y và X=>Z thì X=>Y Z chưa chắc mạnh
Thật vậy xét: I = {x, y, z}, T = {xz, yz, xy, xyz}, minsup = 50%, minconf= 60% Dễ thấy x => z (50%, 67%), y => z (50%, 67%), x => y (50%, 67%) là mạnh Còn xy => z (25%, 50%) và x => yz (25%, 33%) không mạnh Dễ thấy x => z (50%, 67%), y => z (50%, 67%), x => y (50%, 67%) là mạnh Còn xy => z (25%, 50%) và x => yz (25%, 33%) không mạnh
Tính chất 2 (Không tách luật):
Trang 29Giả sử có luật kết hợp mạnh X Y => Z thì X => Z và Y => Z chưa chắc đã là luật kết hợp mạnh
Thật vậy xét: I = {x, y, z, t}, T = {xt, yt, xyz}, minsup = 30%, minconf
= 60% Dễ thấy xy => z (33%, 100%) là mạnh
Còn x => z (33%, 50%) và y => z (33%, 50%) không mạnh
Tuy nhiên nếu có luật kết hợp mạnh X => Y Z thì X => Y và X => Z chắc chắn là luật kết hợp mạnh
Thật vậy ta chỉ cần chứng minh X => Y là luật kết hợp mạnh
<=>sup(X Y) ≥ minsup và sup(X Y) / sup(X) ≥ minconf (*)
Xuất phát từ giả thiết: X => Y Z là luật kết hợp mạnh nên
sup(X Y Z)≥ minsup và sup(X Y Z) / sup(X) ≥ minconf
mà hiển nhiên sup(X Y) ≥ sup(X Y Z) nên (*) đã được chứng minh
Tương tự X => Z cũng là luật kết hợp mạnh
Tính chất 3 (Các luật kết họp không có tính bắc cầu):
Giả sử có các luật kết hợp mạnh X => Y và Y => Z thì X => Z chưa chắc đã là luật kết hợp mạnh
Thật vậy xét: I = {x, y, z}, T = {xy, yz}, minsup = 30%, minconf = 60% Dễ thấy x => y (50%, 100%) và y => z (50%, 100%) đều mạnh
Trang 30D cũng mạnh, trong đó D C L, D ≠ ∅
Thật vậy conf((L\D) => D) = sup(L)/sup(L\D)≥sup(L)/sup(L\C)≥ minconf Và hiển nhiên theo giả thiết sup(L) ≥ minsup nên (L\D) => D là mạnh
Các tính chất này của luật kết hợp sẽ được sử dụng trong các thuật toán
1.2.5.2 Luật kết hợp định lượng
Đối với loại này, ta không chỉ quan tâm tới sự có mặt hay không của các mục trong giao dịch mà còn quan tâm tới định lượng của từng mục trong luật
Ví dụ: “Mua bia 2-5 chai => Mua lạc 5-10 gói”,
“Tuổi 20-30, Mua quà $5-$10, Mua hoa $3-$8 => Tặng bạn thân”,
1.2.5.3 Luật kết hợp đơn chiều
Đối với loại này, các luật chỉ tham chiếu đến 1 chiều của dữ liệu
Ví dụ: “Mua bia=> Mua lạc”, “Mua quà, Mua hoa => Mua thiếp”,
Ở đây chỉ đề cập tới 1 chiều đó là Mua và ta có thể viết lại luật dưới
Trang 31dạng sau:
Mua(X, “bia”) => Mua(X, “lạc”),
Mua(X, “quà”) ^ Mua(X, “hoa”) => Mua(X, “thiếp”),
Trong đó X là biến biểu diễn khách hàng
1.2.5.4 Luật kết hợp đa chiều
Đối với loại này, các luật có thể tham chiếu đến nhiều hơn 1 chiều của
dữ liệu
Ví dụ: “Tuổi trung niên, Mua quà, Mua hoa => Tặng vợ”,
Ở đây ta đã đề cập tới Tuổi, Mua, và Tặng, ta có thể viết lại luật dưới dạng sau:
Tuổi(X, “trung niên”) ^ Mua(X, “quà”) ^ Mua(X, “hoa”) => Tặng(X,
“vợ”),
Trong đó X là biến biểu diễn khách hàng
1.2.5.5 Luật kết hợp đa mức
Đối với loại này, các luật dựa trên mức độ trừu tượng chứa trong luật
Ví dụ: “Mua bia=> Mua lạc”(Rl), “Mua bia=> Mua lạc rang”(R2),
Ở đây ta thấy “lạc rang” là một trường hợp cụ thể của “lạc” hay nói ngược lại “lạc” có mức trừu tượng cao hơn “lạc rang”, do đó (R1) có mức độ trừu tượng cao hơn (R2)
Trong thực tế khó có thể tìm được luật kết hợp mạnh trong các mục dữ liệu ở mức trừu tượng gốc, bởi tính thưa thớt của dữ liệu trong không gian đa chiều Khai phá các luật kết hợp mạnh ở mức khái niệm cao có thể mô tả tri thức có nghĩa phổ thông hơn Tuy nhiên, các luật tìm được có thể tầm thường với người này nhưng lại mới lạ, quan trọng đối với người khác Do vậy, các
hệ thống khai phá dữ liệu nên cung cấp khả năng khai phá các luật kết họp ở nhiều mức trừu tượng khác nhau
Trang 321.2.5.6 Luật kết hợp với thuộc tính có trọng số
Trong thực tế, các thuộc tính của CSDL không phải luôn có vai trò ngang bằng nhau Có một số thuộc tính được chú trọng và lúc đó ta nói những thuộc tính đó có mức độ quan trọng hơn các thuộc tính khác Ví dụ khi khảo sát về khả năng lây nhiễm của bệnh SARS thì thông tin về “thân nhiệt”,
“đường hô hấp” rõ ràng là quan trọng hơn thông tin về “tuổi ” Trong quá trình tìm kiếm luật, chúng ta sẽ gán cho các thuộc tính “thân nhiệt”, “đường
hô hấp” trọng số cao hơn thuộc tính “tuổi” Với luật kết họp có thuộc tính được đánh trọng số, chúng ta sẽ khai phá được những luật mang nhiều ý nghĩa hơn
1.2.5.7 Luật kết hợp mờ
Với những hạn chế gặp phải trong quá trình rời rạc hoá các thuộc tính
số, các nhà nghiên cứu đã đề xuất luật kết hợp mờ nhằm khắc phục nhũng hạn chế trên và chuyển luật kết hợp về một dạng tự nhiên hơn, gần gũi hơn với người sử dụng Hay nói cách khác vấn đề khai phá luật kết hợp nhị phân có một số hạn chế khi ta không chỉ cần quan tâm đến sự có mặt hoặc không có mặt của một thuộc tính nào đó Đối với các thuộc tính định lượng (quantitative) chúng ta cần phải làm trơn các điểm biên gãy và phương pháp khai phá luật kết hợp mờ đã đem lại hiệu quả đáng kể
Khai phá luật kết hợp mờ là phát hiện các luật kết hợp sử dụng khái niệm tập mờ đối với các thuộc tính định lượng Khi khai phá chúng ta cần phải định nghĩa và làm rõ những khái niệm như: Tập mờ, tập mức, số mờ, các phép toán mờ, độ ủng hộ, độ hỗ trợ, độ quan trọng và độ chắc chắn, trước khi
áp dụng các giải thuật cụ thế để khai phá dữ liệu Trong phạm vi khuôn khổ của luận văn, tôi không trình bày sâu tiếp về luật két hợp mờ mà dành nó cho phần phát triển tiếp theo
Trang 331.2.5.8 Luật kết hợp đóng
Trong thực tế, khi khai phá dữ liệu trên một CSDL lớn thường đòi hỏi một lượng tính toán khổng lồ, không những vậy số lượng luật sinh ra cũng cực lớn thậm chí vượt ra khỏi sự kiếm soát và trong đó tồn tại một lượng rất lớn những luật không cần thiết
Có nhiều công trình nghiên cứu đã chứng minh được chỉ cần tìm những tập mục phổ biến cực đại (maximal frequent intemsets) là đủ đại diện cho các tập mục phổ biến, hoặc tốt hơn là chỉ cần tìm tập các tập mục đóng phổ biến (closed frequent intemsets) và thực hiện sinh luật trên những tập mục này là
đủ Những thuật toán tương ứng với cách tiếp cận này như Charm, Closet cải thiện đáng kể về mặt tốc độ so với thuật toán kinh điển trước đó như Apriori hay FP-Growth
Trang 34
CHƯƠNG 2 MỘT SỐ PHƯƠNG PHÁP KHAI PHÁ
LUẬT KẾT HỢP
2.1 Mở đầu
Các thuật toán khai phá luật kết hợp được đưa ra đều thực hiện hai pha:
+ Pha 1: Tìm tất cả các tập mục phổ biến (độ hỗ trợ lớn hơn minsup),
đây là pha tốn khá nhiều thời gian
+ Pha 2: Tìm các luật kết hợp từ các tập mục phổ biến (độ tin cậy lớn
hơn minconf), pha này đơn giản và tốn ít thời gian hơn nhiều so với Pha 1
Các thuật toán khai phá luật kết hợp được đưa ra chủ yếu quan tâm đến Pha 1 Từ khi vấn đề khai phá tập mục phổ biến được đề cập, một số lượng lớn các thuật toán được đề xuất Các thuật toán khai phá tập mục phổ biến đi theo hai hướng tiếp cận chính sau :
+ Các thuật toán dựa trên hướng tiếp cận sinh ứng cử và kiểm tra
(Generate candidate - and - test), điển hình là thuật toán Apriori
+ Các thuật toán dựa trên hướng tiếp cận không sinh ứng cử, điến hình
là thuật toán FP - Growth
2.2 Thuật toán Apriori tìm các tập mục phổ biến
Thuật toán Apriori được Rakesh Agrawal, Tomaz Imielinski, Arun Swanmi đề xuất năm 1993[4][5][6], cho đến nay thuật toán này đã được nhiều nhà nghiên cứu phát triển để làm tăng tính hiệu quả của nó Tên thuật toán APRIORI được bắt nguồn từ “Algorithm PRIOR knowledgement of frequent Itemset properties” Thuật toán sử dụng chiến lược đi từ dưới lên (bottom-up)
và tìm kiếm theo chiều rộng (breath-first search)
Ký hiệu
k-tập mục: tập mục có k phân tử
Lk: tập các k-tập_mục phổ biến (frequent itemset) tức là các tập mục có
độ hỗ trợ lớn hơn hoặc bằng minsupp và có lực lượng bằng k
Trang 35 Ck: tập các k-tập_mục ứng cử (candidate itemset), là các tập mục có lực lượng bằng k
Ý tưởng
Thuật toán Apriori tìm tất cả các tập mục phổ biến Lk thỏa mãn một ngưỡng hỗ trợ minsupp (ngưỡng hỗ trợ tối thiểu) Cụ thể là trong giai đoạn đầu tiên thuật toán ta xác định các tập mục 1-tập_mục với độ hỗ trợ tương ứng của mỗi tập, nói cách khác ta xác định tập C1 là tập ứng cử của tập mục 1-tập_mục, sau đó lấy những tập mục có độ hỗ trợ lớn hơn hoặc bằng minsupp ta có được tập L1 là tập mục phổ biến 1-tập_mục Trong giai đoạn tiếp theo thuật toán sử dụng các tập mục phổ biến Lk-1 để tìm các tập mục ứng viên Ck bằng phương pháp kết nối và cắt tỉa sẽ được trình bày cụ thể trong thủ tục apriori_gen() dưới đây Sau đó lại dựa vào tập mục ứng viên Ck
để xác định các tập mục phổ biến Lk+1 (các tập mục phổ biến có tập_mục) bằng cách bỏ đi những tập mục không thỏa ngưỡng hỗ trợ Qúa trình tiếp tục cho đến khi không sinh ra được tập Lk mới nào nữa từ tập Ck-1
(k+1)-Thuật toán
Đối với thuật toán Apriori các tập mục phổ biến được tính toán thông qua các bước lặp Trong mỗi bước lặp, cơ sở dữ liệu được quét một lần và mọi tập mục phổ biến có cỡ giống nhau được tính toán và đưa vào tập Lk , với k tương ứng là kích cỡ của tập mục
Input: Cơ sở dữ liệu D, ngưỡng hỗ trợ minsup
Trang 36hỗ trợ lớn hơn hoặc bằng minsupp
- Các giai đoạn thứ k sau đó (k>1) chia làm 2 pha
o Pha 1: Sinh các tập mục ứng viên Ck từ tập mục phổ biến Lk-1
bằng hàm apriori_generate()
o Pha 2: Quét cơ sở dữ liệu D để tính độ hỗ trợ cho mỗi tập mục ứng viên trong Ck
- L 1 là tập mục phổ biến 1-tập_mục: Đầu tiên xác định mỗi mục riêng lẻ và
độ hỗ trợ tương ứng (tức là tìm C1) sau đó giữ lại những mục có độ hỗ trợ
lớn hơn hoặc bằng minsupp (chính là L1)
Trang 37- Hàm apriori_generate(): Sinh các tập mục ứng viên
Bước nối (join step): Giả sử các mục trong các tập mục đã được sắp
xếp theo thứ tự từ điển như đã nói ở trên
o Bước này sẽ nối 2 phần tử l1, l2 Lk-1 có k-2 mục đầu tiên giống nhau thành 1 tập mục có k-tập_mục bằng cách lấy k-2 phần tiền
tố giống nhau và hợp với 2 mục thứ k-1 của l1, và l2
o Sau đó có thể sắp xếp lại theo thứ tự từ điển, điều kiện là l11]<l2[k-1] nhằm tránh trường hợp hai tập mục l1 và l2 giống nhau được kết nối với nhau
[k- Bước thu gọn (prune step):
o Tập mục k-tập_mục sau khi sinh được từ bước nối, cần kiểm tra tất cả các tập mục con (k-1)-tập_mục của tập mục đó xem nó có thuộc Lk-1 không
o Nếu tồn tại một tập con như vậy không thuộc Lk-1 thì ta phải loại
bỏ tập mục k-tập_mục vừa kết nối được Vì tập mục đó chứa tập