Chương 2: Sử dụng giàn giao trong ẩn các tập mục nhạy cảm Chương này trình bày một số khái niệm và tính chất cơ bản của ánh xạ đóng, vai trò của AXĐ trong việc ứng dụng giải quyết các b
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HCM
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi Các số liệu, kết quả nêu trong Luận văn là trung thực và chưa từng được ai công bố trong bất kỳ công trình nào khác
Tôi xin cam đoan rằng mọi sự giúp đỡ cho việc thực hiện Luận văn này đã được cảm ơn và các thông tin trích dẫn trong Luận văn đã được chỉ rõ nguồn gốc
Học viên thực hiện Luận văn
Phạm Văn Khanh
Trang 4LỜI CẢM ƠN
Trong suốt quá trình học tập và hoàn thành luận văn này, tôi đã nhận được
sự hướng dẫn, giúp đỡ quý báu của quý thầy cô, gia đình, bạn bè và đồng nghiệp Với lòng kính trọng và biết ơn sâu sắc tôi xin được bày tỏ lời cảm ơn chân thành tới:
Khoa Công Nghệ Thông Tin, Phòng quản lý khoa học - Đào tạo sau đại học trường Đại Học Công Nghệ Thành Phố Hồ Chí Minh đã tạo mọi điều kiện thuận lợi giúp đỡ tôi trong quá trình học tập và hoàn thành luận văn này
Thầy hướng dẫn Phó giáo sư - Tiến sĩ Khoa học Nguyễn Xuân Huy, thầy đã
truyền đạt những kiến thức rất bổ ích cho tôi trong quá trình học tập, đã hết lòng tạo điều kiện cũng như giúp đỡ tôi trong quá trình hoàn thành luận văn này
Phó giáo sư - Tiến sĩ Lê Hoài Bắc, thầy đã truyền đạt những kiến thức rất bổ
ích cho tôi trong quá trình học tập, thầy đã hết lòng giúp đỡ và cung cấp cho tôi những tài liệu nghiên cứu cần thiết liên quan đến luận văn này
Thầy Cao Tùng Anh, thầy đã hết lòng giúp đỡ, chỉ bảo, động viên và tạo mọi
điều kiện thuận lợi cho tôi trong suốt quá trình học tập và hoàn thành luận văn này Toàn thể quý thầy cô đã nhiệt tình giảng dạy và truyền đạt những kiến thức bổ ích cho tôi trong suốt khóa học vừa qua
Cuối cùng xin cảm ơn đến tất cả những người thân trong gia đình, bạn bè và đồng nghiệp đã giúp đỡ tôi trong suối quá trình học tập và thực hiện luận văn này
Phạm Văn Khanh
Trang 5MỤC LỤC
MỞ ĐẦU 1
Chương 1 TỔNG QUAN VỀ KHÁM PHÁ TRI THỨC VÀ KHAI THÁC DỮ LIỆU 4
1.1 Khám phá tri thức và khai thác dữ liệu 4
1.2 Quá trình khám phá tri thức 6
1.3 Quá trình khai thác dữ liệu 8
1.4 Các phương pháp khai thác dữ liệu 9
1.5 Các lĩnh vực ứng dụng thực tiễn của khai thác dữ liệu 10
1.6 Các phương pháp, và kỹ thuật áp dụng trong khai thác dữ liệu 11
1.7 Các thách thức – khó khăn trong khám phá tri thức và khai thác dữ liệu 13
1.8 Khai thác tập phổ biến, luật kết hợp và tương quan 15
1.8.1 Bài toán kinh điển dẫn đến việc khai thác luật kết hợp 15
1.8.2 Tập phổ biến và luật kết hợp 18
1.8.3 Các phương pháp khai thác tập phổ biến 19
1.9 Khai thác dữ liệu bảo đảm tính riêng tư 26
1.9.1 Bài toán khai thác dữ liệu bảo đảm tính riêng tư 26
1.9.2 Phân loại các phương pháp PPDM 27
1.9.3 Các phương pháp giấu dữ liệu nhạy cảm 30
1.9.3.1 Làm xáo trộn (Perturbation) 30
1.9.3.2 Ngăn chặn (Blocking) 30
1.9.3.3 Gom hoặc trộn (Aggregation / Merging) 30
1.9.3.4 Đổi chỗ (Swapping) 30
1.9.3.5 Lấy mẫu 32
Chương 2 ÁNH XẠ ĐÓNG VÀ GIÀN GIAO ÁNH XẠ ĐÓNG 37
2.1 Ánh xạ đóng 37
2.1.1 Các khái niệm và tính chất ánh xạ đóng 37
Trang 62.1.2 Phép hạn chế của ánh xạ đóng 39
2.2 Các phép toán hội và hợp thành trên ánh xạ đóng 39
2.2.1 Phép toán hội 40
2.2.2 Phép hợp thành các ánh xạ đóng 40
2.3 Giàn giao ánh xạ đóng 45
2.3.1 Điểm bất động 45
2.3.2 Giàn giao ánh xạ đóng 45
Chương 3 ẨN CÁC TẬP MỤC NHẠY CẢM 49
3.1 Giàn giao AXĐ và bài toán ẩn tập mục nhạy cảm 49
3.2 Phát biểu bài toán 50
3.3 Giàn giao 52
3.4 Các tính chất của tập mục thường xuyên 53
3.5 Thuật toán ẩn tập mục nhạy cảm 56
3.6 Ví dụ minh họa cho thuật toán 57
Chương 4 CHƯƠNG TRÌNH THỰC NGHIỆM 61
4.1 Giới thiệu 61
4.2 Các chức năng chính của chương trình 62
KẾT LUẬT 66
TÀI LIỆU THAM KHẢO 68
Trang 7DANH MỤC CÁC KÝ HIỆU, CHỮ CÁI VIẾT TẮT
Trang 8DANH MỤC CÁC BẢNG
Bảng 1.1 Dấu dữ liệu bằng phương pháp đổi chỗ 36
Bảng 3.1 Bảng trị T và các tập mục thường xuyên theo ngưỡng 4 56
Bảng 3.2 Các tập mục thường xuyên theo ngưỡng 4 62
Bảng 3.3 Sửa giá trị của E trong các bộ chứa ADE 64
Bảng 3.4 Sửa giá trị của E trong các bộ chứa ABE 65
Trang 9DANH MỤC CÁC HÌNH MINH HOẠ
Hình 1.1 Quá trình khám phá tri thức 12
Hình 1.2 Quá trình khai thác dữ liệu 14
Hình 2.1 Ví dụ thuật toán Apriori 29
Hình 2.2 Ví dụ thuật toán Apriori 30
Hình 3.1 Đồ thị của giàn các tập mục thường xuyên P 58
Hình 3.2 Giàn giao đầy đủ của Poset(ABE) 59
Hình 4.1 Giao diện chính chương trình 63
Hình 4.2 Giao diện chương trình khi tính độ hỗ trợ của tất cả các tập mục 64
Hình 4.3 Giao diện chương trình khi tìm tất cả tập mục thường xuyên 65
Hình 4.4 Giao diện chương trình hiển thị các tập mục thường xuyên mới 66
Trang 10MỞ ĐẦU
Ngày nay, dữ liệu chứa thông tin của người dùng được lưu trữ lại thông qua rất nhiều hoạt động hằng ngày như giao dịch, mua hàng, khám bệnh, tìm kiếm thông tin, truy cập web,… Các dữ liệu này đóng vai trò ngày càng quan trọng trong sự phát triển của xã hội như làm đầu vào cho quá trình phân tích tìm ra các thông tin hữu ích cho các hệ hỗ trợ ra quyết định, phát hiện dịch bệnh hay hoạch định kế hoạch kinh doanh,… Tuy nhiên, các thông tin hữu ích chỉ có thể được rút trích từ tập dữ liệu rất lớn trong quá trình thu thập dữ liệu lớn từ đầu rất khó khăn Chính vì vậy, chia sẻ dữ liệu đóng vai trò rất quan trọng trong quá trình phát triển xã hội Tuy nhiên, chia sẽ dữ liệu có thể vô tình làm tiết lộ thông tin nhạy cảm của người dùng gây nguy hại cho các cá nhân, tổ chức trong xã hội Một vấn đề thường gặp là khi cung cấp dữ liệu cho các trung tâm khai thác tri thức, một số cơ sở, cá nhân không muốn công bố các luật vi phạm đến tính riêng tư của cá nhân hoặc doanh nghiệp Thí dụ, nếu X là tập mục về thương hiệu xe máy Honda, Y là tập mục về số vụ tai nạn xe máy thì việc công bố tương quan giữa X và Y sẽ mang đến
sự bất lợi cho việc kinh doanh xe máy Honda Các tập mục X và Y như trên được gọi là các tập mục nhạy cảm Một lẽ đương nhiên là cơ sở cung cấp dữ liệu sẽ phải
loại bỏ hai tập mục nhạy cảm X và Y khỏi danh mục cần cung cấp Tuy nhiên, việc làm này đôi khi lại vi phạm luật về cung cấp thông tin Giải pháp thứ hai thường được các cơ sở lách luật chọn là vẫn công bố đầy đủ các tập mục nhưng tìm cách sửa tần suất xuất hiện của các tập mục nhạy cảm xuống dưới ngưỡng thường xuyên
Khi đó các tập mục nhạy cảm sẽ trở thành các tập mục không thường xuyên và
do đó chúng không thể trở thành các thành phần trong bất kỳ luật nào Giải pháp
thứ hai này được gọi là ẩn các tập mục nhạy cảm (và thường xuyên) Vậy, hướng
nghiên cứu của luận văn là cần thiết cho trường hợp cần bảo vệ bí mật và tính riêng
tư của các tình huống hợp pháp, đồng thời có thể phát hiện giả mạo, lách luật trong các tình huống cần ngăn chặn
Trang 11Luận văn đề xuất một tiếp cận cho bài toán ẩn các tập mục nhạy cảm Vận dụng lý thuyết giàn giao ta có thể xác định một cận trên đúng và một cận dưới đúng đối với một tập mục nhạy cảm cho trước Hướng tiếp cận này có những điểm mới sau đây Thứ nhất, chứng minh rằng họ các tập mục thường xuyên tạo thành một giàn giao Thứ hai, nhờ vận dụng các tính chất của giàn giao đã chỉ ra rằng có thể vận dụng lý thuyết đồ thị để xác định các tập mục gây ảnh hưởng và các tập mục chịu ảnh hưởng trực tiếp khi sửa giao tác trên tập mục nhạy cảm cần ẩn do đó làm giảm thời gian truy xuất các giao tác và không gây ra các hiệu ứng phụ theo nghĩa là
ẩn nhầm các tập mục khác
Bố cục luận văn
Ngoài các phần Mở đầu, Mục lục, Danh mục các ký hiệu, chữ cái viết tắt, Danh mục bảng, Danh mục hình, Kết luận, Tài liệu tham khảo Luận văn chia làm 4 chương
Chương 1: Tổng quan về khám phá tri thức và khai thác dữ liệu
Chương này giới thiệu tổng quát về quá trình khám phá tri thức nói chung và khai thác dữ liệu nói riêng Các phương pháp, lĩnh vực, các hướng tiếp cận trong khai thác dữ liệu Giới thiệu các khái niệm về mẫu phổ biến, luật kết hợp và các mối tương quan, các phương pháp khai thác tập phổ biến
Chương 2: Sử dụng giàn giao trong ẩn các tập mục nhạy cảm
Chương này trình bày một số khái niệm và tính chất cơ bản của ánh xạ đóng, vai trò của AXĐ trong việc ứng dụng giải quyết các bài toán về khai thác dữ liệu Trình bày về lý thuyết giàn giao và ứng dụng lý thuyết giàn giao trong thuật toán ẩn các tập mục nhạy cảm
Chương 3: Ẩn các tập mục nhạy cảm
Chương này mô tả chi tiết bài toán ẩn các tập mục nhạy cảm, đi sâu vào việc giải quyết bài toán
Trang 12Chương 4 Chương trình thực nghiệm
Chương này đưa ra đề xuất phương pháp cài đặt thuật toán với ứng dụng là CSDL thực tế So sánh kết quả đạt được với những công trình nghiên cứu liên quan, đưa ra hướng cải tiến của đề tài
Trang 13Chương 1
TỔNG QUAN VỀ KỸ THUẬT KHÁM PHÁ TRI THỨC
VÀ KHAI THÁC DỮ LIỆU 1.1 Khám phá tri thức và khai thác dữ liệu
Trong thời đại công nghệ thông tin như hiện nay, các công nghệ lưu trữ dữ liệu ngày càng phát triển tạo điều kiện cho các đơn vị thu thập dữ liệu ngày một thuận tiện Với hàng triệu cơ sở dữ liệu đã được lưu trữ và sử dụng trong các hoạt động sản xuất, kinh doanh, quản lí , trong số đó có nhiều cơ sở dữ liệu rất lớn cỡ Gigabyte, thậm chí là Terabyte Sự bùng nổ này đã làm cho các phương pháp quản trị và khai thác cơ sở dữ liệu truyền thống ngày càng không đáp ứng được thực tế dẫn tới một yêu cầu cấp thiết là cần có những kỹ thuật và công cụ mới để tự động chuyển đổi lượng dữ liệu khổng lồ kia thành các tri thức có ích đó là kỹ thuật phát hiện tri thức và khai thác dữ liệu (KDD - Knowledge Discovery and Data mining) Thông thường, chúng ta coi dữ liệu như là một chuỗi các bits, hoặc các số và các ký hiệu hay là các “đối tượng” với một ý nghĩa nào đó khi được gửi cho một chương trình dưới một dạng nhất định Các bits thường được sử dụng để đo thông tin, và xem nó như là dữ liệu đã được loại bỏ phần tử thừa, lặp lại, và rút gọn tới mức tối thiểu để đặc trưng một cách cơ bản cho dữ liệu Tri thức được xem như là các thông tin tích hợp, bao gồm các sự kiện và mối quan hệ giữa chúng, đã được nhận thức, khám phá, hoặc nghiên cứu Nói cách khác, tri thức có thể được coi là dữ liệu ở mức độ cao của sự trừu tượng và tổng quát
Khám phá tri thức là quá trình tìm ra những tri thức, đó là những mẫu tiềm ẩn, trước đó chưa biết và là thông tin hữu ích đáng tin cậy Còn khai thác dữ liệu (KPDL) là một bước quan trọng trong quá trình khám phá tri thức, sử dụng các thuật toán KPDL chuyên dùng với một số qui định về hiệu quả tính toán chấp nhận được để chiết xuất ra các mẫu hoặc các mô hình có ích trong dữ liệu Nói một cách khác, mục đích của khám phá tri thức và KPDL chính là tìm ra các mẫu hoặc mô
Trang 14hình đang tồn tại trong các cơ sở dữ liệu (CSDL) nhưng vẫn còn bị che khuất bởi hàng núi dữ liệu
Khám phá tri thức từ CSDL là một quá trình sử dụng các phương pháp và công cụ tin học, trong đó con người là trung tâm của quá trình Do đó, con người cần phải có kiến thức cơ bản về lĩnh vực cần khám phá để có thể chọn được tập con
dữ liệu tốt, từ đó phát hiện các mẫu phù hợp với mục tiêu đề ra Đó chính là tri thức, được rút ra từ 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 Tuy vậy, quá trình khám phá tri thức mang tính chất hướng nhiệm vụ vì không phải là mọi tri thức tìm được đều có thể áp dụng được vào thực tế
Để có được những thông tin quý báu chúng ta phải tìm ra các mẫu có trong tập CSDL trước Việc đánh giá các mẫu được tìm thấy cũng là một điều thú vị và tất yếu có tính chất quyết định đến sự sử dụng hay không sử dụng chúng Đầu ra của một chương trình là khám phá những mẫu có ích được gọi là tri thức Tri thức được khám phá có các đặc điểm chính:
- Kiến thức cao cấp: Ngày càng có nhiều câu hỏi mang tính chất định tính cần phải trả lời dựa trên một khối lượng dữ liệu khổng lồ đã có Quá trình để tìm ra kiến thức như vậy không phải từ những phương pháp thống kê cổ điển mà nó được đúc kết từ các kinh nghiệm đã có, được thể hiện trong dữ liệu, những kết quả đó có thể lĩnh hội được
- Độ chính xác: Dù cho những mẫu khai thác thật sự có trong CSDL hay không thì việc đo lường trị giá của chúng là bắt buộc phải có Chúng ta sẽ chỉ sử dụng những mẫu nào có độ chính xác càng cao thì hiệu quả công việc đạt được càng lớn, những mẫu có độ chính xác chưa được xác định rõ ràng hoặc không cao thì không nên sử ụng chúng
- Tính hấp dẫn: Khám phá tri thức được coi là lý thú vì nó có thể vạch ra các
xu hướng một cách hoàn thiện Đó là những điều mới lạ hay những quy trình tiềm năng, hữu ích ẩn chứa từ trong dữ liệu trước đó
Trang 15- Tính hiệu quả: thời gian chạy của thuật toán khám phá tri thức trên CSDL lớn có thể dự tính và chấp nhận được
Dữ liệu là tập hợp những bộ thông tin chính xác và quá trình khám phá tri thức được xem là sự loại bỏ các dư thừa, được rút gọn tới mức tối thiểu chỉ để lại các đặc trưng cơ bản cho dữ liệu Tri thức được tìm thấy là các thông tin tích hợp, bao gồm các sự kiện và các mối quan hệ trong chúng Các mối quan hệ này có thể được hiểu ra, có thể được phát hiện, hoặc có thể được học
Nếu khám phá tri thức là toàn bộ quá trình chiết xuất tri thức từ các CSDL thì KPDL là giai đoạn chủ yếu của quá trình đó KPDL là một quá trình phát hiện các mẫu mới, thường bao gồm việc thử tìm mô hình phù hợp với tập dữ liệu và tìm kiếm các mẫu từ tập dữ liệu theo mô hình đó Sử dụng các kỹ thuật và các khái niệm của các lĩnh vực đã được nghiên cứu từ trước như: học máy, nhận dạng, thống
kê, hồi quy, xếp loại, phân nhóm, các mô hình đồ thị, các mạng Bayes,… Nói cách khác, mục tiêu của khai thác dữ liệu là tìm kiếm các mẫu hoặc mô hình tồn tại trong
cơ sở dữ liệu nhưng ẩn trong khối lượng lớn dữ liệu
1.2 Quá trình khám phá tri thức
Hình 1.1 Quá trình khám phá tri thức
Trang 16Bắt đầu của quá trình là kho dữ liệu thô và kết thúc với tri thức được chiết xuất ra Về lý thuyết thì có vẻ rất đơn giản nhưng thực sự đây là một quá trình rất khó khăn gặp phải rất nhiều vướng mắc như : quản lý các tập dữ liệu, phải lặp đi lặp lại toàn bộ quá trình, v.v
Quá trình khám phá trí thức tiến hành qua 6 giai đoạn sau đây:
1 Gom dữ liệu: Tập hợp dữ liệu là bước đầu tiên trong quá trình khai thác dữ liệu Đây là bước được khai thác trong một cơ sở dữ liệu, một kho dữ liệu và thậm chí các dữ liệu từ các nguồn ứng dụng Web
2 Trích lọc dữ liệu: Ở giai đọan này dữ liệu được lựa chọn hoặc phân chia theo một số tiêu chuẩn nào đó phục vụ mục đích khai thác, ví dụ chọn tất cả những
em học sinh có điểm Trung bình học kỳ lớn hơn 8.0 và có giới tính nữ
3 Làm sạch, tiền xử lý và chuẩn bị trước dữ liệu: Giai đoạn thứ ba này là giai đoạn hay bị sao lãng, nhưng thực tế nó là một bước rất quan trọng trong quá trình khai thác dữ liệu Một số lỗi thường mắc phải trong khi gom dữ liệu là tính không đủ chặt chẽ, logic Vì vậy, dữ liệu thường chứa các giá trị vô nghĩa
và không có khả năng kết nối dữ liệu Ví dụ: Điểm Trung bình = 12.4 Giai đoạn này sẽ tiến hành xử lý những dạng dữ liệu không chặt chẽ nói trên Những dữ liệu dạng này được xem như thông tin dư thừa, không có giá trị Bởi vậy, đây là một quá trình rất quan trọng vì dữ liệu này nếu không được
“làm sạch – tiền xử lý – chuẩn bị trước” thì sẽ gây nên những kết quả sai lệch nghiêm trọng
4 Chuyển đổi dữ liệu: Tiếp theo là giai đoạn chuyển đổi dữ liệu, dữ liệu đưa ra
có thể sử dụng và điều khiển được bởi việc tổ chức lại nó, tức là dữ liệu sẽ được chuyển đổi về dạng phù hợp cho việc khai thác bằng cách thực hiện các thao tác nhóm hoặc tập hợp
5 Khai thác dữ liệu: Đây là bước mang tính tư duy trong khai thác dữ liệu Ở giai đoạn này nhiều thuật toán khác nhau đã được sử dụng để trích ra các mẫu
Trang 17từ dữ liệu Thuật toán thường dùng là nguyên tắc phân loại, nguyên tắc kết, v.v
6 Đánh giá các luật và biểu diễn tri thức: Ở giai đoạn này, các mẫu dữ liệu được chiết xuất ra bởi phần mềm khai thác dữ liệu Không phải bất cứ mẫu dữ liệu nào cũng đều hữ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 chiết xuất ra Đánh giá sự hữu ích của các mẫu biểu diễn tri thức dựa trên một số phép đo Sau đó
sử dụng các kỹ thuật trình diễn và trực quan hóa dữ liệu để biểu diễn tri thức khai thác được cho người sử dụng
Trên đây là 6 giai đoạn của quá trình khám phá tri thức, trong đó giai đoạn 5- khai thác dữ liệu (hay còn gọi đó là Data Mining) là giai đoạn được quan tâm nhiều nhất
1.3 Quá trình khai thác dữ liệu
Khai thác dữ liệu (KPDL) là một giai đoạn quan trọng trong quá trình khám phá tri thức (KPTT) Về bản chất, nó là giai đoạn duy nhất tìm ra được thông tin mới, thông tin tiềm ẩn có trong CSDL chủ yếu phục vụ cho mô tả và dự đoán
Mô tả dữ liệu là tổng kết hoặc diễn tả những đặc điểm chung của những thuộc
tính dữ liệu trong kho dữ liệu mà con người có thể hiểu được
Dự đoán là dựa trên những dữ liệu hiện thời để dự đoán những quy luật được
phát hiện từ các mối liên hệ giữa các thuộc tính của dữ liệu trên cơ sở đó 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 quan tâm
Quá trình KPDL bao gồm các bước chính được thể hiện như hình 1.2 sau:
Trang 18Xác định nhiệm vụ: Xác định chính xác các vấn đề cần giải quyết
Xác định các dữ liệu liên quan: Dùng để xây dựng giải pháp
Thu thập và tiền xử lý dữ liệu: Thu thập các dữ liệu liên quan và tiền xử lý
chúng sao cho thuật toán KPDL có thể hiểu được Đây là một quá trình rất khó khăn, có thể gặp phải rất nhiều các vướng mắc như: dữ liệu phải được sao ra nhiều bản (nếu được chiết xuất vào các tệp), quản lý tập các dữ liệu, phải lặp đi lặp lại nhiều lần toàn bộ quá trình (nếu có mô hình dữ liệu thay đổi), v.v…
Thuật toán khai thác dữ liệu: Lựa chọn thuật toán KPDL và thực hiện việc
KPDL để tìm được các mẫu có ý nghĩa, các mẫu này được biểu diễn dưới dạng luật kết hợp, cây quyết định… tương ứng với ý nghĩa của nó
1.4 Các phương pháp khai thác dữ liệu
Với hai mục đích khai thác dữ liệu là Mô tả và Dự đoán, người ta thường sử dụng các phương pháp sau cho khai thác dữ liệu:
- Luật kết hợp (association rules)
- Phân lớp (Classfication)
- Hồi qui (Regression)
- Trực quan hóa (Visualiztion)
- Phân cụm (Clustering)
- Tổng hợp (Summarization)
- Mô hình ràng buộc (Dependency modeling)
- Biểu diễn mô hình (Model Evaluation)
- Phân tích sự phát triển và độ lệch (Evolution and deviation analyst)
- Phương pháp tìm kiếm (Search Method)
Trang 19Có nhiều phương pháp khai thác dữ liệu được nghiên cứu ở trên, trong đó có
ba phương pháp được các nhà nghiên cứu sử dụng nhiều nhất đó là: Luật kết hợp, Phân lớp dữ liệu và phân cụm dữ liệu
1.5 Các lĩnh vực ứng dụng thực tiễn của KPDL
Ở thập kỷ 90 của thế kỷ XX, người ta coi khai thác dữ liệu là quá trình phân tích cơ sở dữ liệu nhằm phát hiện ra các thông tin mới và giá trị, thường thể hiện dưới dạng các mối quan hệ chưa biết đến giữa các biến số Những phát hiện này được sử dụng nhằm tăng thêm tính hiệu quả của doanh nghiệp trong khi phải cạnh tranh trên thương trường Nhờ phân tích các dữ liệu liên quan đến khách hàng, doanh nghiệp có khả năng dự báo trước một số hành vi ứng xử của khách hàng Những năm gần đây, người ta quan niệm khai thác dữ liệu (Đôi khi còn dùng thuật ngữ khám phá dữ liệu hay phát hiện tri thức) là một quá trình phân tích dữ liệu
từ các viễn cảnh khác nhau và rút ra các thông tin bổ ích – những thông tin có thể dùng để tăng lợi nhuận, cắt giảm chi phí hoặc cả hai mục đích Phần mềm khai thác
dữ liệu là một công cụ phân tích dùng để phân tích dữ liệu Nó cho phép người sử dụng phân tích dữ liệu theo nhiều góc nhìn khác nhau, phân loại dữ liệu theo những quan điểm riêng biệt và tổng kết các mối quan hệ đã được bóc tách Xét về khía cạnh kỹ thuật, khai thác dữ liệu là một quá trình tìm kiếm các mối tương quan giữa các mẫu ẩn chứa trong hàng chục trường dữ liệu của một cơ sở dữ liệu quan hệ cỡ lớn
Hiện nay, kỹ thuật khai thác dữ liệu đang được áp dụng một cách rộng rãi trong rất nhiều lĩnh vực kinh doanh và đời sống khác nhau như:
- Thương mại: Phân tích dữ liệu bán hàng và thị trường, phân tích đầu tư, quyết định cho vay, phát hiện gian lận, …
- Thông tin sản xuất: Điều khiển và lập kế hoạch, hệ thống quản lý, phân tích kết quả thử nghiệm, …
Trang 20- Thông tin khoa học: Dự báo thời tiết, CSDL sinh học: Ngân hàng gen, … khoa học địa lý: dự báo động đất,…
- Trong y tế, marketing, ngân hàng, viễn thông, du lịch, internet…Giáo dục
1.6 Các phương pháp, và kỹ thuật áp dụng trong KPDL
Các kỹ thuật KPDL được chia làm 2 nhóm chính:
- Kỹ thuật khai thác dữ liệu 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 cơ sở dữ liệu hiện có Các kỹ thuật này gồm có: Phân cụm (clustering), tóm tắt (summerization), trực quan hóa (visualiztation), phân tích sự phát triển và độ lệch (evolution and deviation analyst), phân tích luật kết hợp (association rules)…
- Kỹ thuật khai thác dữ liệu 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 Các kỹ thuật này gồm có: Phân lớp (classification), hồi quy (regression)…
Tuy nhiên, chỉ có một số phương pháp thông dụng nhất là: Phân cụm dữ liệu, phân lớp dữ liệu, phương pháp hồi quy và khai thác luật kết hợp
a Phân cụm dữ liệu: Mục tiêu chính của phương pháp phân cụm dữ liệu là
nhóm các đối tượng tương tự nhau trong tập dữ liệu vào các cụm sao cho các đối tượng thuộc cùng một lớp là tương đồng còn các đối tượng thuộc các cụm khác nhau sẽ không tương đồng Phân cụm dữ liệu là một ví dụ của phương pháp học không có thầy Không giống như phân lớp dữ liệu, phân cụm dữ liệu không đòi hỏi phải định nghĩa trước các mẫu dữ liệu huấn luyện Vì thế có thể coi phân cụm dữ liệu là một cách học bằng quan sát (learning by observation), trong khi phân lớp dữ liệu là học bằng ví dụ (learning by example) Trong phương pháp này bạn không thể biết kết quả các cụm thu được sẽ thế nào khi bắt đầu quá trình Vì vậy, thông thường cần
có một chuyên gia về lĩnh vực đó để đánh giá các cụm thu được Phân cụm
dữ liệu được sử dụng nhiều trong các ứng dụng về phân đoạn thị trường,
Trang 21phân đoạn khách hàng, nhận dạng mẫu, phân loại trang Web… Ngoài ra phân cụm dữ liệu còn có thể được sử dụng như một bước tiền xử lý cho các thuật toán khai thác dữ liệu khác
b Phân lớp dữ liệu: Mục tiêu của phương pháp phân lớp dữ liệu là dự đoán
nhãn lớp cho các mẫu dữ liệu Quá trình phân lớp dữ liệu thường gồm hai bước: Xây dựng mô hình và sử dụng mô hình để phân lớp dữ liệu
- Bước 1: Một mô hình sẽ được xây dựng dựa trên việc phân tích các mẫu
dữ liệu sẵn có Mỗi mẫu tương ứng với một lớp, được quyết định bởi một thuộc tính gọi là thuộc tính lớp Các lớp dữ liệu này còn được gọi là lớp
dữ liệu huấn luyện (training data set) Các nhãn lớp của tập dữ liệu huấn luyện đều phải được xác định trước khi xây dựng mô hình
- Bước 2: Sử dụng mô hình để phân lớp dữ liệu Trước hết, chúng ta phải tính độ chính xác của mô hình Nếu độ chính xác là chấp nhận được, mô hình sẽ được sử dụng để dự đoán nhãn lớp cho các mẫu dữ liệu khác trong tương lai
Trong kỹ thuật phân lớp chúng ta có thể sử dụng các phương pháp như: Cây quyết định (Decision Tree), K-Láng giềng gần nhất (k-Nearest Neighbor), Mạng Nơron (Neural networks), Giải thuật di truyền (Genetic algorithms), Mạng Bayesian (Bayesian networks), Tập mờ và tập thô (Rough and Fuzzy Sets)
c Phương pháp hồi quy: 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 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 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 hóa cũng có thể được sử dụng như cây quyết định
d Luật kết hợp (Association Rules): Mục tiêu của phương pháp này là phát hiện
và đưa ra các mối liên hệ giữa các giá trị dữ liệu trong cơ sở dữ liệu Mẫu đầu ra của giải thuật khai thác dữ liệu là luật kết hợp tìm được Chẳng hạn,
Trang 22trong một hiệu sách lưu lại các phiếu mua sách, người ta phát hiện ra rằng:
Trong số những người mua quyển "Các khái niệm và kỹ thuật khai thác dữ liệu" thì có 40% số người đó mua thêm quyển "Hệ quản trị cơ sở dữ liệu", và 25% mua thêm quyển "Kho dữ liệu"
Trong ví dụ trên, tìm được hai luật kết hợp:
- Có 40% số người mua quyển "Các khái niệm và kỹ thuật khai thác dữ liệu" thì đồng thời mua quyển "Hệ quản trị cơ sở dữ liệu"
- Có 25% số người mua quyển "Các khái niệm và kỹ thuật khai thác dữ liệu" thì đồng thời mua quyển "Kho dữ liệu"
Với những quy tắc được khám phá trên, ta có thể sắp xếp các quyển sách có liên quan với nhau ở vị trí gần nhau để giúp cho người mua sách thuận tiện hơn Những quy tắc đó cũng giúp cho nhà sách có chiến lược kinh doanh tốt hơn
Luật kết hợp được sử dụng rộng rãi trong nhiều lĩnh vực khác nhau như: Kinh doanh, sản xuất, giao thông, viễn thông, giáo dục, quản lý thị trường, …
Luật kết hợp cho biết phạm vi mà trong đó, sự xuất hiện của tập các thuộc tính
A nào đó trong các bản ghi của CSDL D sẽ kéo theo sự xuất hiện của tập các thuộc tính khác B, cũng trong những bản ghi đó, có dạng A ⇒ B Mỗi luật kết hợp được đặc trưng bởi một cặp tỷ lệ đó, là độ hỗ trợ và độ tin cậy
- Kích thước lớn của các tập dữ liệu cần xử lý Các tập dữ liệu trong KPDL thường có kích thước cực kỳ lớn Trong thực tế, kích thước của các tập dữ liệu trong KPDL thường ở mức tera-byte Với kích thước như thế, thời gian
Trang 23xử lý thường rất dài Thêm vào đó, các giải thuật học truyền thống thường yêu cầu tập dữ liệu được tải toàn bộ lên trên bộ nhớ để xử lý Mặc dù kích thước
bộ nhớ trong của máy tính đã gia tăng đáng kể trong thời gian gần đây, việc gia tăng này cũng không thể đáp ứng kịp với việc tăng kích thước dữ liệu Vì vậy, việc vận dụng các kỹ thuật xác suất, lấy mẫu, đệm, song song và tăng dần vào các giải thuật để tạo ra các phiên bản phù hợp với yêu cầu của KPDL trở nên ngày càng quan trọng
- Dữ liệu động: Đặc điểm cơ bản của hầu hết các cơ sở dữ liệu là nội dung của chúng thay đổi liên tục Chẳng hạn như các biến trong cơ sở dữ liệu của ứng dụng đã cho chúng có thể bị thay đổi, bị xóa hoặc là tăng lên theo thời gian Dữ liệu có thể thay đổi theo thời gian và việc khai thác dữ liệu bị ảnh hưởng bởi thời điểm quan sát dữ liệu, do đó có thể làm cho mẫu khai thác được trước đó mất giá trị Vấn đề này được giải quyết bằng giải pháp tăng trưởng để nâng cấp các mẫu và coi những thay đổi như là cơ hội để khai thác bằng cách sử dụng nó để tìm kiếm các mẫu bị thay đổi
- Các trường dữ liệu không phù hợp: Một đặc điểm quan trọng khác là tính không thích hợp của dữ liệu – nghĩa là mục dữ liệu trở thành không thích hợp với trọng tâm hiện tại của việc khai thác Bên cạnh đó, tính ứng dụng của một thuộc tính đối với một tập con của cơ sở dữ liệu cũng là một vấn đề đôi khi cũng liên quan đến độ phù hợp
- Các kỹ thuật trong KPDL là hướng tác vụ và hướng dữ liệu Thay vì tập trung vào xử lý tri thức dạng kí hiệu và khái niệm như trong máy học, mọi phát triển trong KPDL thì kết chặt vào các ứng dụng thực tế và đặc tính dữ liệu cụ thể trong các ứng dụng đó Ví dụ, luật kết hợp là kỹ thuật KPDL nhằm tìm kiếm những mối liên kết giữa các món hàng trong các hóa đơn ở siêu thị Giải thuật học trong kỹ thuật này được phát triển dựa trên đặc tính về dữ liệu rất đặc thù là ở dạng nhị phân
Trang 241.8 Khai thác tập phổ biến, luật kết hợp và tương quan
Mẫu phổ biến (Frequent pattern): là mẫu (tập mục - itemsets, dãy mục – itemlists, dãy con – subsequence, hoặc cấu trúc con – substructures…) mà xuất hiện phổ biến trong một tập dữ liệu
Agrawal, Imielinski, Swami – 1993 – trong ngữ cảnh bài toán tập phổ biến và luật kết hợp
Ví dụ, một tập các mục như là sữa và bánh mì thường xuyên suất hiện cùng
nhau trong một tập dữ liệu thì ta gọi là một tập phổ biến
Một dãy tuần tự các hành vi, chẳng hạn như “mua máy tính trước, sau đó là mua máy camera kỹ thuật số, rồi đến thẻ nhớ”, nếu điều này thường gặp trong cơ sở
dữ liệu của cửa hàng, thì nó là một dãy tuần tự phổ biến Một cấu trúc như đồ thị, cây, giàn (Graph, Tree, lattices), hay có thể kết hợp với tập phổ biến (itemsets) hay tập phổ biến con (subsequences) Nếu cấu trúc đó xuất hiện thường xuyên, nó được gọi là mẫu cấu trúc phổ biến Tìm kiếm những mẩu phổ biến như vậy đóng vai trò rất quan trọng trong việc khai thác các luật kết hợp, các mối tương quan và nhiều quan hệ thú vị khác từ cơ sở dữ liệu Hơn thế nữa, nó còn giúp giải quyết các bài toán như phân loại, phân nhóm và nhiều bài toán khác Chính vì vậy, khai thác mẫu phổ biến hiện nay là một bài toán rất quan trọng trong lĩnh vực khai thác dữ liệu và
là một chủ đề đáng quan tâm khi nghiên cứu về khai thác dữ liệu
1.8.1 Bài toán kinh điển dẫn đến việc khai thác luật kết hợp
Bài toán giỏ mua hàng trong siêu thị
Giả định chúng ta có rất nhiều mặt hàng, ví dụ như “bánh mì”, “sữa”,…(coi
là tính chất hoặc trường) Khách hàng khi đi siêu thị sẽ bỏ vào giỏ mua hàng của
họ một số mặt hàng nào đó, và chúng ta muốn tìm hiểu các khách hàng thường mua các mặt hàng nào đồng thời, thậm chí chúng ta không cần biết khách hàng cụ thể là
ai
Trang 25Khai thác các tập phổ biến sẽ dẫn đến việc tìm ra những mối kết hợp và sự tương quan trong số những item trong giao dịch lớn hoặc những tập dữ liệu quan
hệ Với một số lượng đồ sộ của dữ liệu một cách liên tục bắt đầu được tập hợp và lưu trữ, nhiều công nghệ đang bắt đầu được quan tâm trong việc khai thác như những hình mẫu từ bộ dữ liệu của nó Sự khám phá ra những mối quan hệ tương quan thú vị trong một số lượng khổng lồ các báo cáo giao dịch của công ty có thể giúp trong việc nhiều công ty trong quá trình tạo ra quyết định, như là biểu diễn mục lục, tiếp thị chéo, và phân tích thói quen của những người mua hàng
Một ví dụ điển hình về khai thác tập phổ biến là bài toán phân tích giỏ hàng Quá trình phân tích thói quen mua hàng của khách bằng việc tìm kiếm các luật kết giữa các items khác nhau mà khách mua chung Việc khám phá các luật kết hợp có thế giúp các của hàng có thể đề ra chiến thuật tiếp thị vì có thêm cái nhìn sâu về các items mà thường được mua chung Cho ví dụ, nếu khách hàng mua sữa, thì liệu họ thích mua bánh mì như thế nào? Những thông tin này có thể hướng dẫn cách để tăng doanh số bán hàng bằng việc giúp những người bán lẻ có kế hoạch chọn lựa và sắp xếp các mặt hàng
Phân tích giỏ hàng
Giả dụ, là quản lý của một chi nhánh công ty AllElectronic, bạn muốn biết
thêm về những thói quen mua hàng của khách hàng Đặc biệt, bạn ngạc nhiên rằng,
“Những nhóm hay tập item nào mà khách hàng thích sở hữu sau khi đi dạo một vòng quanh cửa hàng?”
Để trả lời cho câu hỏi của bạn, thì việc phân tích giỏ hàng có thể được thực hiện trên dữ liệu các giao dịch bán lẻ của khách tại cửa hàng của bạn Sau đó bạn có thể sử dụng kết quả để lên kế hoạch bán hàng hoặc chiến lược quảng cáo, hoặc là trình bày một catalog mới Ví dụ, việc phân tích giỏ hàng có thể giúp bạn thiết kế lại các kệ Trong chiến lược của bạn, những item mà thường được mua cùng nhau có thể được đặt gần nhau để có thể khuyến khích người dùng mua những item đó cùng một lúc Nếu những khách hàng mà muốn sở hữu máy tính và cũng có khuynh
Trang 26hướng mua phần mềm diệt virus cùng lúc, vậy thì bạn sẽ trưng bày phần cứng gần nơi trưng bày phần mềm có thể giúp tăng doanh số bán của cả 2 mặt hàng đó
Trong một chiến lược thay thế, đặt phần cứng và phần mềm tại hai góc cuối đối lập nhau của cửa hàng có thể lôi kéo khách hàng nào muốn mua cả 2 sản phẩm phải đi một quảng đường dài Ví dụ, sau khi quyết định mua một chiếc máy tính đắt tiền, một khách hàng có thể quan sát thấy hệ thống bảo mật đang được bán khi đang hướng về nơi trưng bày phần mềm để có thể mua được phần mềm diệt virus và có thể quyết định mua một hệ thống bảo mật tốt Phân tích giỏ hàng cũng có thể giúp những người bán lẻ lên những mặt hàng sẽ bán giảm giá Nếu khách hàng có khuynh hướng mua máy tính và máy in cùng nhau, khi đó việc bán máy in có thể sẽ
có doanh thu như là máy tính
Nếu chúng ta nghĩ rằng vạn vật như một tập các item có thể được lưu trữ, khi
đó mỗi item có một giá trị Boolean miêu tả sự hiện hiện hay vắng mặt của item đó Mỗi giỏ có thể được xuất hiện bởi một vector Boolean của giá trị gán cho những biến này Những vector Boolean có thể được phân tích cho những mẫu bán hàng mà phản ánh những item được kết hợp thường xuyên hoặc được chọn mua cùng nhau Những mẫu này có thể được xuất hiện trong hình thức của luật kết hợp Ví dụ, thông tin mà những khách hàng lựa chọn máy tính có khuynh hướng mua chung phần mềm diệt virus được xuất hiện trong luật kết (1.1) hợp dưới đây :
computer ⇒ antivirus_software [support = 2%, confidence = 60%] (1.1)Hai độ đo Support và Confidence là hai độ đo dùng để đo lường xem luật có đáng quan tâm hay là không Chúng thể hiện mức độ hữu ích và độ tin cậy của các luật được khám phá Độ support 2% cho luật trên nghĩa là 2% trong tổng số các giao dịch được phân tích cho thấy máy tính và phần mềm diệt virus được mua cùng nhau Độ confidence 60% nghĩa là 60% khách hàng đã mua máy tính thì sẽ mua luôn phần mềm, nó thể hiện cho mức độ chính xác của luật Các luật được xem là đáng qua tâm nếu chúng thỏa mãn cả hai ngưỡng là min_sup và min_conf Hai ngưỡng này sẽ được đặt bởi người dùng hay các chuyên gia trong lĩnh vực Thêm
Trang 27vào phân tích có thể được thực hiện để phát hiện ra những thống kê tương quan thú
vị giữa những item được kết hợp
1.8.2 Tập phổ biến và luật kết hợp
Cho I = {I1, I2,….,Im} là một tập các items Cho D là bộ dữ liệu có liên quan đến bài toán, và là một tập trong CSDL giao dịch Mỗi giao dịch T là một tập các items và T I Mỗi giao dịch có một định danh, được gọi là TID Cho A là tập các items Một giao dịch T được gọi là chứa A khi và chỉ khi A T
Một luật kết hợp có dạng A⇒B, với A I, B I và A B = Ø Luật A⇒B ngầm chứa trong D với độ đo support s, trong đó s là tỷ lệ các giao dịch trong D chứa A B, được diễn tả bằng xác suất P(A B) Luật A⇒B có độ đo confidence c trong tập D, thì c là tỷ lệ giữa các giao dịch trong D chứa A thì chứa luôn B, được diễn tả bằng xác suất P(B | A) nghĩa là:
support (A ⇒ B) = P( A B) (1.2)
confidence (A ⇒ B) = P( B|A ) (1.3) Những luật thỏa mãn cả hai ngưỡng hỗ trợ tối thiểu (minsup) và ngưỡng tin cậy tối thiểu (minconf) cho trước được gọi là mạnh Chúng ta qui ước, chúng ta viết độ đo giữa 0% và 100% thay vì 0 đến 1.0
Một tập các items được gọi là itemset Một itemset chứa k items được gọi là itemset Chẳng hạn tập {computer, antivirus_software} là 2-itemset Độ phổ biến của một itemset là số lượng các giao dịch có chứa itemset Thường được biết với các tên là support count, hay count của itemset
k-Nếu độ đo support count của một itemset I thỏa ngưỡng min_sup cho trước thì
I là một tập phổ biến Một tập phổ biến gồm k-items được ký hiệu là
Từ (1.3), ta có:
Phương trình (1.4) chứng tỏ rằng độ đo confidence của luật A⇒B có thể thu được từ độ đo support count của A và của A B Do đó, một khi độ đo support
Trang 28counts của A, B và A B được tìm thấy, ta có thể kiểm tra 2 luật kết hợp A⇒B và B⇒A xem chúng có mạnh hay không Như vậy, vấn đề khai thác các luật kết hợp có thể chuyển về bài toán khai thác các tập phổ biến
1.8.3 Các phương pháp khai thác tập phổ biến
Phát biểu bài toán:
Cho một tập các mục I, một cơ sở dữ liệu giao dịch D, ngưỡng hỗ trợ minsup, ngưỡng tin cậy minconf Tìm tất cả các luật kết hợp X ⇒Y trên CSDL D sao cho: sup(X ⇒ Y) ≥ minsup và conf(X ⇒ Y) ≥ minconf Bài toán khai thác luật kết hợp
có thể được chia ra làm 2 bài toán con được phát biểu trong thuật toán sau:
Nội dung thuật toán
Vào: I, D, minsup, minconf
Ra: Các luật kết hợp thỏa mãn minsup và minconf
Phương thức:
(1) Tìm tất cả các tập mục phổ biến từ CSDL D tức là tìm tất cả các
tập mục có độ hỗ trợ lớn hơn hoặc bằng minsup
(2) Sinh ra các luật từ các tập mục phổ biến (large itemsets) sao cho độ
tin cậy của luật lớn hơn hoặc bằng minconf
Tùy theo ngữ cảnh các thuộc tính dữ liệu, cũng như phương pháp sử dụng trong các thuật toán; người ta có thể phân bài toán khai thác luật kết hợp ra nhiều nhóm khác nhau Chẳng hạn, nếu giá trị của các thuộc tính có kiểu boolean thì ta gọi là khai thác luật kết hợp Boolean (Mining Boolean Association Rules) …
Thuật toán Apriori
Apriori là thuật toán khai thác luật kết hợp do RaKesh Agrawal, Tomasz Imielinski, Anin Sawami đưa ra vào năm 1994, là nền tảng cho việc phát triển những thuật toán sau này Thuật toán sinh tập mục ứng cử từ những tập mục phổ
Trang 29biến ở bước trước, sử dụng kĩ thuật “tỉa” để bỏ đi tập mục ứng cử không thỏa mãn ngưỡng hỗ trợ cho trước
Thuật toán Apriori
Input: D, cơ sở dữ liệu của các giao tác; min_sup, ngưỡng độ hỗ trợ tối thiểu Output: L, các tập item phổ biến trong D
Method:
(1) L1 = find_frequent_1-itemsets(D);
(2) for (k = 2;L k-1 0;k++) {
(3) C k = apriori_gen(L k-1);
(4) for each giao tác t D { // quét D để đếm
(5) C t = subset(C k , t); // lấy các tập con của t mà là các ứng viên
(6) for each ứng viên c Ct
procedure apriori_gen(Lk-1:tập (k-1) item phổ biến)
(1) for each tập item l1 L k-1
(2) for each tập item l2 L k-1
(3) if (l1[1] = l2[1]) (l1[2] = l2[2]) … (l1[k-2] = l2[k-2]) (l1[k-1]
< l2[k-1]) then {
(4) c = l1 kết l2; // bước kết: phát sinh các ứng viên
(5) if has_infrequent_subset(c, L k-1) then
Trang 30(6) delete c; // bước xén tỉa: loại bỏ các ứng viên không đạt
Trong thuật toán này, giai đoạn đầu đơn giản chỉ là việc tính độ hỗ trợ của các
mục Để xác định L 1, ta chỉ giữ lại các mục có độ hỗ trợ lớn hơn hoặc bằng minsup Trong các giai đoạn thứ k sau đó (k > 1), mỗi giai đoạn gồm có 2 pha:
Pha thứ 1: Các (k-1)-itemset phổ biến trong tập L k-1 tìm được trong giai đoạn
thứ k-1 được dùng để sinh ra các tập mục ứng cử C k bằng cách thực hiện hàm
apriori_gen()
Pha thứ 2: CSDL D sẽ được quét để tính độ hỗ trợ cho mỗi tập mục ứng cử trong Ck Các tập mục ứng cử trong C k mà được chứa trong giao dịch t có thể được xác định một cách hiệu quả bằng việc sử dụng cây băm
Hàm apriori_gen() thực hiện hai bước:
Bước kết nối (Join step): Để tìm L k , một tập ứng viên các tập k item được sinh bởi việc kết L k-1 với nó Tập các ứng viên này được đặt là C k Gọi l1 và l2 là các tập
item trong L k-1 Ký hiệu l i [j] chỉ tới item thứ j trong l i (vd, l1[k–2] chỉ tới item cuối thứ 2 trong l1) Với quy ước, Apriori giả sử các item trong một giao tác hay tập
item đã được sắp xếp theo thứ tự từ điển Đối với tập (k–1) item, li, nghĩa là các
item được sắp xếp thành li [1] < l i [2] < … < l i [k-1] Phép kết, L k-1 kết L k-1, được thực
Trang 31hiện, với các phần tử của L k-1 là khả kết nếu (k–2) items đầu tiên của chúng là chung Do đó, các phần tử l1 và l2 của L k-1 được kết nếu (l1[1] = l2[1]) (l1[2] =
l2[2]) … (l1[k–2] = l2[k–2]) (l1[k–1] < l2[k–1]) Điều kiện l1[k–1] < l2[k–1] đơn
giản là bảo đảm rằng không có các bản sao được phát sinh Tập item tạo ra bởi việc
kết l1 và l2 là l1[1], l1[2] , … , l1[k-2], l2[k-1]
Bước cắt tỉa (Prune step): C k là tập cha của L k, do đó, những phần tử của nó có thể hoặc không thể phổ biến, nhưng tất cả các tập k item phổ biến thuộc Ck Việc quét cơ sở dữ liệu để xác định số lượng của mỗi ứng viên trong Ck sẽ cho kết quả
trong việc xác định của L k (vd, tất cả ứng viên có số lượng không nhỏ hơn độ hỗ trợ
tối thiểu là phổ biến theo định nghĩa, và do đó thuộc về L k ) Tuy nhiên, C k có thể
khổng lồ, và nó có thể đòi hỏi việc tính toán cực nhọc Để giảm kích thước của C k,
tính chất Apriori được sử dụng như sau Vài tập (k–1) items là không phổ biến thì không thể là tập con của một tập k items phổ biến Sau đó, nếu vài tập con (k–1) items của ứng viên tập k items không thuộc L k-1, thì ứng viên cũng không thể là phổ
biến và có thể loại bỏ khỏi C k Việc kiểm tra tập con này có thể hoàn thành một cách nhanh chóng bằng cách giữ một cây băm (hash tree) của tất cả các tập item phổ biến
Trang 32Ví dụ minh hoạ thuật toán Apriori
Ví dụ 1: Cho cơ sở dữ liệu giao dịch D, I = {A, B, C, D, E} Áp dụng thuật toán
Apriori để tìm các tập phổ biến thỏa minsup = 2
Hình 2.1: Ví dụ thuật toán Apriori
Sau khi áp dụng thuật toán Apriori các tập mục phổ biến thu được trong hình 2.1 L = L1 ∪ L2 ∪ L3 = {{A}; {B}; {C}; {E}; {A, C}; {B, C}; {B, E}, {C, E},{B,
C, E} }
Trang 33Ví dụ 2: Cho cơ sở dữ liệu giao dịch D, I = {bánh mì, bơ, trứng, sữa, đông sương,
kem} Áp dụng thuật toán Apriori để tìm các tập phổ biến thỏa minsup = 60%
200 {sữa, bánh mì, trứng, đường, bơ} Quét D {bơ} 100%
Kết nối L 1 và L 2 2-itemset
{bánh mì, bơ}
{bánh mì, sữa}
{bánh mì} 100% {bánh mì, bơ, sữa} {bánh mì, bơ, sữa}
1-itemset Độ hỗ trợ {bánh mì, bơ, sữa} 75%
Hình 2.2: Ví dụ thuật toán Apriori
Trang 34Sau khi áp dụng thuật toán Apriori các tập mục phổ biến thu được chỉ ra trong hình 2.2 L = L1 ∪ L2 ∪ L3 = {{bánh mì}; {bơ}; {sữa}; {bánh mì, bơ}; {bánh mì, sữa}; {bơ, sữa}; {bánh mì, bơ, sữa}}
Thuật toán Apriori-TID
Điểm khác nhau chủ yếu của thuật toán này so với thuật toán Apriori là: nó không sử dụng cơ sở dữ liệu để tính độ hỗ trợ trong các giai đoạn k > 1 Thay vào
đó nó sử dụng mã khóa của các tập mục ứng cử đã sử dụng trong giai đoạn trước Nhiều thí nghiệm trên nhiều cơ sở dữ liệu chỉ ra rằng thuật toán Apriori cần ít thời gian hơn giải thuật Apriori-TID trong các giai đoạn đầu, nhưng mất nhiều thời gian cho các giai đoạn sau
Thuật toán Apriori-Hybrid
Thuật toán này dựa vào ý tưởng “không cần thiết phải sử dụng cùng một thuật toán cho tất cả các giai đoạn lên trên dữ liệu” Như đã đề cập ở trên, thuật toán Apriori thực thi hiệu quả ở các giai đoạn đầu, thuật toán Apriori-TID thực thi hiệu quả ở các giai đoạn sau Phương pháp của thuật toán Apriori-Hybrid là sử dụng thuật toán Apriori ở các giai đoạn đầu và chuyển sang sử dụng thuật toán Apriori-TID ở các giai đoạn sau
Thuật toán FP-Growth
Ý tưởng: Dùng đệ quy để gia tăng độ dài của mẫu phổ biến dựa trên cây
FP-Tree và các mẫu được phân hoạch
Phương pháp thực hiện:
- Với mỗi phần tử phổ biến trong Header Table, xây dựng cơ sở điều kiện và cây điều kiện của nó
- Lặp lại tiến trình trên với mỗi cây điều kiện mới được tạo ra
- Cho tới khi cây điều kiện được tạo ra là cây rỗng hoặc chỉ bao gồm một đường đi đơn thì ngừng Mỗi tổ hợp con các phần tử trên đường đi đơn được tạo ra sẽ là một tập phổ biến
Trang 35Tuy luật kết hợp là một dạng luật khá đơn giản nhưng lại mang rất nhiều ý nghĩa Thông tin mà dạng luật này đem lại rất có lợi trong các hệ hỗ trợ ra quyết định Tìm kiếm được những luật kết hợp đặc trưng và mang nhiều thông tin từ CSDL tác nghiệp là một trong những hướng tiếp cận chính của lĩnh vực khai thác
dữ liệu
1.9 Khai thác dữ liệu bảo đảm tính riêng tư
1.9.1 Bài toán khai thác dữ liệu bảo đảm tính riêng tư
Khai thác dữ liệu là phát hiện tri thức từ cơ sở dữ liệu Nói chung, dữ liệu dùng để khai thác liên quan đến một cá nhân hoặc một tổ chức Bản thân dữ liệu là thông tin nhạy cảm hoặc quá trình phân tích dữ liệu cho ra tri thức có tính nhạy cảm Ngoài ra, một số tổ chức muốn chia sẻ dữ liệu theo kiểu cùng khai thác trên
dữ liệu chung, nhưng mỗi người lại muốn đảm bảo tính riêng tư cho dữ liệu của
chính mình Khai thác dữ liệu đảm bảo tính riêng tư PPDM (Privacy Preserving Data Mining) là hướng nghiên cứu nhằm đề ra giải pháp bảo vệ tính riêng tư của
dữ liệu lẫn tri thức trước và sau khi thực hiện khai thác trên dữ liệu
Ví dụ 1: Dữ liệu về định danh, tên, địa chỉ, điện thoại, thu nhập, … của một
cá nhân cần phải được sửa đổi hoặc loại bỏ bớt theo cách nào đó để cho người sử dụng dữ liệu không thể vi phạm tính riêng tư của họ
Ví dụ 2: Siêu thị A có một cơ sở dữ liệu về các giao dịch bán hàng A biết
rằng cơ sở dữ liệu này chứa dựng một số tri thức rất có lợi cho hoạt động kinh doanh Siêu thị B mong muốn cùng được chia sẻ dữ liệu với A Vì mối quan hệ, A đồng ý nhưng vì liên quan đến chiến lược kinh doanh, trước khi gửi cơ sở dữ liệu cho B, A đã thay đổi dữ liệu theo chiều hướng giấu đi những tri thức nhạy cảm mà A cho là quan trọng và không muốn tiết lộ
Ví dụ 3: Cơ quan tình báo của một nước A quan sát họat động X = (x1, x2,
…, xn) trong một thời gian dài Cơ quan tình báo của B cũng quan sát một họat động Y (y1, y2, …, ym) trong một thời gian dài Họ muốn tìm ra những hoạt động của Y có tương quan với bất kỳ hoạt động nào của X hay không
Trang 36Kết quả của sự cộng tác có thể giúp cả 2 nước hiểu ra khuynh hướng hoạt động của các đối tượng, như các hành vi của các tổ chức bị nghi ngờ là khủng bố, những hoạt động quân sự Tuy nhiên cả A lẫn B đều không muốn tiết lộ những thông tin của nó cho những nước khác vì họ không hoàn toàn tin tưởng lẫn nhau Rất có thể rằng B có thể sử dụng các thông tin tình báo của A, chẳng hạn như đem bán, để làm hại lại A
Trường hợp đầu tiên liên quan đến vấn đề giấu dữ liệu nhạy cảm Trường hợp thứ hai là bài toán thay đổi dữ liệu để việc chia sẻ dữ liệu không làm mất đi một số tri thức nhạy cảm Ở ví dụ sau cùng, hai hay nhiều tổ chức đều có dữ liệu riêng và cùng muốn khai thác trên dữ liệu của chung, nhưng không ai muốn tiết lộ dữ liệu của mình Vấn đề này gọi là khai thác dữ liệu đảm bảo riêng tư nhiều thành phần, là một trường hợp cụ thể của bài toán tổng quát là Bảo mật tính toán đa thành phần (SMC - Secure Multi-Party Computation) Đây là một số vấn đề mà bài toán PPDM phải giải quyết
1.9.2 Phân loại các phương pháp PPDM
Có nhiều cách tiếp cận dùng cho PPDM Có nhiều cách phân loại khác nhau Mỗi cách phân loại giúp ta hiểu vấn đề ở một khía cạnh khác nhau
Cách 1: Có thể phân loại chúng dựa trên các tiêu chí như sau:
1 Sự phân bố dữ liệu (Data distribution): dữ liệu tập trung hoặc dữ liệu phân tán Trong trường hợp dữ liệu là phân tán thì phân tán ngang hoặc phân tán dọc
2 Phương pháp sửa đổi dữ liệu (Data modification): sửa đổi các giá trị nguyên thủy của CSDL trước khi gửi cho nhiều người nhận nhằm bảo vệ tính riêng tư Kỹ thuật sửa đổi này phải phù hợp với chính sách riêng tư đang được sử dụng Có thể liệt kê các phương pháp như sau:
a) Thay giá trị thực sự thành giá trị mới (ví dụ đổi 1 thành 0 hoặc làm nhiễu dữ liệu)
Trang 37b) Làm cản trở quá trình phân tích dữ liệu bằng cách thay thế giá trị đã
có thành “?”
c) Gom lại hoặc trộn lại, là sự kết hợp nhiều giá trị thành một phân loại thô hơn
d) Đổi chỗ giữa các giá trị trong từng record
e) Tạo mẫu: chỉ cho chia sẻ những dữ liệu mang tính chất chung
3 Thuật toán khai thác (Data mining Algorithm): Các thuật toán khai thác gồm: phân lớp, cây quyết định, tìm tập phổ biến và luật kết hợp, gom nhóm, tập thô và mạng Bayesian
4 Giấu dữ liệu hoặc giấu luật (Data or rule hiding): gồm việc giấu dữ liệu thô hoặc dữ liệu kết hợp dạng luật Có nhiều heuristics dùng cho việc giấu dữ liệu kết hợp dưới dạng luật vì độ phức tạp cao hơn Giảm bớt dữ liệu khi chia sẻ sẽ làm cho việc suy diễn yếu hơn hoặc cho ra giá trị suy diễn có độ tin cậy thấp Quá trình này gọi là rule confusion
5 Bảo vệ riêng tư (Privacy preservation): là quan trọng nhất, liên quan đến các kỹ thuật bảo vệ tính riêng tư dùng để sửa đổi dữ liệu có chọn lọc Sửa đổi dữ liệu có chọn lọc nhằm cho dữ liệu vẫn có tính thiết thực cao nhưng không ảnh hưởng đến tính riêng tư Các kỹ thuật này gồm có:
a) Kỹ thuật dựa trên Heuristic (Heuristic-based techniques) như là chỉnh sửa thích nghi, tức là chỉ chỉnh sửa một cách có chọn lọc để giảm thiểu việc mất đi tính thiết thực của dữ liệu sau khi đã chỉnh sửa b) Kỹ thuật dựa trên phương pháp mã hóa (Cryptographic-based techniques) chẳng hạn như kỹ thuật bảo mật tính toán đa thành phần SMC (Secure multiparty computation), trong đó có nhiều người tham gia vào một hệ thống phân tán, mỗi người có một dữ liệu đầu vào (input) và tham gia quá trình tính toán dựa trên một/ một số dữ liệu đầu vào khác để cho ra kết quả cuối cùng (output) Từng người tham gia chỉ biết giá trị input của người đó và kết quả trả về, ngoài ra không biết gì hơn
Trang 38c) Kỹ thuật dựa trên sự tái tạo (Reconstruction-based techniques): Sự phân bố của dữ liệu nguyên thủy được tái tạo lại từ dữ liệu ngẫu nhiên
Cách 2: Có thể chia các kỹ thuật PPDM ra làm 2 nhóm:
1 Chia sẻ dữ liệu (Data-sharing techniques): gồm các thuật toán làm thay đổi dữ liệu ban đầu để giấu đi dữ liệu nhạy cảm Có thể chia ra làm 3 loại:
a) Xóa bớt item (item restriction – based): là làm giảm độ hỗ trợ hoặc độ tin cậy (trong bài toán tìm luật kết hợp) của luật bằng cách xóa giao tác hoặc một/ một số item của một giao tác để giấu luật nhạy cảm b) Thêm item (item addition-based): thêm item ảo vào các giao tác nhằm giấu đi một số luật nhạy cảm (và phát sinh tri thức không có thật) c) Thay bằng giá trị unknown (?): để giấu tri thức nhạy cảm
2 Chia sẻ tri thức khám phá được từ dữ liệu (Pattern-sharing techniques): gồm các thuật toán giấu luật khai thác được chứ không phải giấu dữ liệu Các giải pháp thuộc loại này tìm cách loại bỏ các luật nhạy cảm trước khi chia sẻ luật hoặc chia sẻ theo kiểu bảo mật tính toán đa thành phần SMC
Cấp độ 3: gồm các kỹ thuật áp dụng trên kết quả của quá trình khai thác nhằm đạt được cùng mục đích như ở cấp độ 1