Đặt vấn đề: Thuật ngữ Khai thác dữ liệu (KTDL) được sử dụng từ cuối những năm 80 của thế kỷ trước. Mặc dù có nhiều định nghĩa về KTDL, tuy nhiên nó có thể được định nghĩa một cách đơn giản là quá trình tìm kiếm những tri thức tiềm ẩn và mang tính dự đoán trong các khối cơ sở dữ liệu lớn. Mục đích chính của KTDL là phát hiện tri thức từ dữ liệu, bao gồm sử dụng các giải thuật chuyên dụng của KTDL dưới một số quy định về tính hiệu quả của tính toán. KTDL giúp tìm ra các mẫu mới, thông tin tiềm ẩn mang tính dự đoán chưa được biết đến, có thể đem lại lợi ích cho người sử dụng và giúp tìm ra những mẫu quan trọng nhất đang tồn tại trong CSDL nhưng lại bị che giấu bởi lượng lớn dữ liệu.
Hiện nay, công nghệ thông tin đã phát triển đồng thời với sự phát triển của các phần mềm ứng dụng. Các phần mềm KTDL là một công cụ phân tích dữ liệu, cho phép người sử dụng phân tích dữ liệu theo nhiều góc độ khác nhau, phân loại dữ liệu theo quan điểm riêng biệt và tổng hợp các mối quan hệ đã được phân tích. Hiện nay, kỹ thuật KTDL được áp dụng rộng rãi trong nhiều lĩnh vực kinh doanh và đời sống khác nhau, bao gồm: 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…); 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. Những gì thu được từ KPDL rất có giá trị.
Điều này đã được chứng minh bằng những ví dụ sau: Trong lĩnh vực y tế, chẩn đoán bệnh dựa trên kết quả xét nghiệm KPDL giúp cho các bảo hiểm y tế phát hiện nhiều trường hợp xét nghiệm không hợp lý. Trong ngành viễn thông, KPDL đã giúp phát hiện những nhóm người thường xuyên gọi cho nhau bằng điện thoại di động và thu về hàng triệu USD. 9 IBM Suft-Aid đã sử dụng KPDL để phân tích các lần đăng nhập vào các trang web liên quan đến thị trường, từ đó đánh giá sở thích của khách hàng và cải thiện hoạt động của các trang web. Trong lĩnh vực mua bán trực tuyến, việc áp dụng KPDL vào phân tích sở thích của khách hàng đã giúp tăng doanh thu cho các trang web mua bán.2 Các bước khám phá trí thức và phương pháp chính trong khai phá dữ liệu 2.
Quá trình khai phá tri thức Bước 1 - Lựa chọn dữ liệu (data selection): Tại bước này, chọn lựa những tập dữ liệu cần thiết để khai thác từ các cơ sở dữ liệu hoặc kho dữ liệu lớn (databases, data warehouses). Bước 2 - Tiền xử lý dữ liệu (data preprocessing): Bước tiền xử lý này bao gồm việc làm sạch dữ liệu (loại bỏ dữ liệu không đầy đủ, dữ liệu nhiễu, dữ liệu không nhất quán.), rút gọn dữ liệu (thực hiện thu gọn dữ liệu, sử dụng histogram, lấy mẫu,.) và rời rạc hoá dữ liệu (dựa trên histogram, entropy, phân khoảng,. Sau bước này, dữ liệu sẽ trở nên nhất quán, đầy đủ, được rút gọn và rời rạc hoá. Bước 3 - Biến đổi dữ liệu (data transformation): Bước này bao gồm chuẩn hóa và làm mịn dữ liệu để đưa về dạng thuận tiện nhất cho các kỹ thuật khai thác dữ liệu ở bước tiếp theo.
Bước 4 - Khai thác dữ liệu (data mining): Đây là bước quan trọng và tốn nhiều thời gian nhất trong quá trình khai phá tri thức, sử dụng các kỹ thuật khai thác (chủ yếu là các kỹ thuật của machine learning) để khai thác, trích xuất các mẫu thông tin (pattern) và các mối quan hệ đặc biệt trong dữ liệu. Bước 5 - Đánh giá và biểu diễn tri thức (knowledge representation & evaluation): Sử dụng các kỹ thuật hiển thị dữ liệu để trình bày các mẫu thông tin (tri thức) và mối liên hệ đặc biệt trong dữ liệu đã được khai thác ở bước trước, biểu diễn theo dạng gần gũi với người sử dụng như đồ thị, cây, bảng biểu, luật,. Đồng thời, bước này cũng đánh giá các tri thức đã khai thác được theo các tiêu chí nhất định. Trong quá trình khai phá tri thức, có thể cần tương tác của người dùng để điều chỉnh và rút ra các tri thức cần thiết nhất.
Các tri thức thu được có thể được lưu và sử dụng lại. Các phương pháp chính trong khai phá dữ liệu * Phương pháp kết hợp luật Khai thác luật kết hợp là một trong những chủ đề phổ biến trong khai thác dữ liệu. Mục đích của khai thác luật kết hợp là xác định mối quan hệ, sự kết hợp giữa các mục dữ liệu (item) trong một Cơ sở dữ liệu lớn. * Khái niệm Khai thác luật kết hợp (KTLKH) là một kỹ thuật quan trọng của khai thác dữ liệu.
Mục tiêu nhằm phát hiện mối quan hệ giữa các mục dữ liệu trong Cơ sở dữ liệu. Mô hình đầu tiên của bài toán KTLKH là mô hình nhị phân (hay còn gọi là mô hình cơ bản) được R. Swami đề xuất vào năm 1993, xuất phát từ nhu cầu phân tích dữ liệu của cơ sở dữ liệu giao dịch, phát hiện các mối quan hệ giữa các tập mục hàng hóa (Itemsets) đã bán được tại các siêu thị. Việc xác định các quan hệ này không phân biệt vai trò khác nhau cũng như không dựa vào các đặc tính dữ liệu vốn có của các mục dữ liệu mà chỉ dựa vào sự xuất hiện cùng lúc của chúng.
* Khai thác luật kết hợp Bài toán KTLKH có thể phát biểu như sau: Cho cơ sở dữ liệu giao dịch DB, ngưỡng độ hỗ trợ tối thiểu minsup và ngưỡng độ tin cậy tối thiểu minconf. Yêu cầu: Tìm tất cả các luật kết hợp X→Y trên cơ sở dữ liệu DB sao cho sup(X→Y) > minsup và conf (X→Y) > minconf. KTLKH này được gọi là bài toán cơ bản hay bài toán nhị phân, vì ở đây, giá trị của mục dữ liệu trong cơ sở dữ liệu là 0 hoặc 1 (xuất hiện hay không xuất hiện). Bài toán KTLKH trong Cơ sở dữ liệu DB chia thành hai bài toán con: (1) Tìm tất cả các tập mục thường xuyên: Một tập mục là thường xuyên được xác định qua tính độ hỗ trợ và thoả mãn độ hỗ trợ cực tiểu.
(2) Sinh ra các luật kết hợp từ các tập mục. * Các cách tiếp cận khai phá tập mục thường xuyên Có nhiều cách tiếp cận để khai thác tập mục thường xuyên, bao gồm hai bài toán nhỏ là tìm các tập mục ứng viên và tìm các tập mục thường xuyên. Tập mục ứng viên được xác định bằng cách tính độ hỗ trợ để kiểm tra xem chúng có thể trở thành tập mục thường xuyên hay không. Trong khi đó, tập mục thường xuyên là tập mục có độ hỗ trợ lớn hơn hoặc bằng ngưỡng hỗ trợ tối thiểu cho trước.
Có thể phân loại các phương pháp khai thác tập mục thường xuyên thành hai tiêu chí: phương pháp duyệt qua không gian tìm kiếm và phương pháp xác định độ hỗ trợ của tập mục. Phương pháp duyệt qua không gian tìm kiếm có thể được thực 11 hiện bằng cách duyệt theo chiều rộng (BFS) hoặc duyệt theo chiều sâu (DFS). Duyệt theo chiều rộng thực hiện việc tính độ hỗ trợ của tất cả các tập mục ứng viên có (k- 1) mục trước khi tính độ hỗ trợ của các tập mục ứng viên có k mục. Duyệt theo chiều sâu thực hiện việc duyệt qua CSDL đã được chuyển đổi thành cấu trúc cây và gọi đệ quy theo chiều sâu của cây.
Với CSDL có n mục dữ liệu, không gian tìm kiếm có tất cả 2n tập con, đây là bài toán NP khó nên cần có phương pháp duyệt thích hợp và tối ưu để tìm kiếm nhanh các tập ứng viên. Phương pháp xác định độ hỗ trợ của tập mục có thể được thực hiện bằng cách đếm số giao tác chứa tập mục đó trong CSDL hoặc tính phần giao của các tập chứa định danh của các giao tác chứa tập mục đó. Đã có rất nhiều thuật toán tìm tập mục thường xuyên được công bố, có thể phân theo Hình 2.1 như sau: Hình 2.1: Phân tích các thuật toán khai phá tập mục thường xuyên * Các thuật toán điển hình khai phá tập mục thường xuyên Có hai thuật toán phổ biến để khai phá tập mục thường xuyên là Thuật toán Apriori và Thuật toán FP-Growth. Thuật toán Apriori được sử dụng để sinh ra các tập mục ứng viên và kiểm tra độ hỗ trợ của chúng, trong khi Thuật toán FP-Growth không sử dụng tập mục ứng viên mà nén cơ sở dữ liệu thành cấu trúc cây để khai phá mẫu trên cây.
* Thuật toán Apriori 12 Được đề xuất vào năm 1993 bởi R. Srikant và đã trở thành nền tảng cho nhiều thuật toán khai phá tập mục thường xuyên khác. Thuật toán sắp xếp các mục dữ liệu trong mỗi giao tác theo thứ tự từ điển và sử dụng các ký hiệu sau (xem bảng). Thuật toán Apriori hoạt động như sau: từ các tập mục thường xuyên đã được tìm ra ở bước trước, thuật toán sẽ sinh ra các tập mục ứng viên và sau đó áp dụng kỹ thuật "tỉa" để loại bỏ các tập mục ứng viên không đáp ứng được ngưỡng hỗ trợ đã cho trước.
Tính chất Apriori được sử dụng như là cơ sở cho kỹ thuật này: bất kỳ tập con nào của tập mục thường xuyên cũng phải là tập mục thường xuyên. Vì vậy, để tạo ra các tập mục ứng viên có k mục, ta sẽ nối các tập mục thường xuyên có k-1 mục và loại bỏ các tập mục ứng viên chứa ít nhất một tập con không phải là tập mục thường xuyên. Thuật toán Apriori duyệt cơ sở dữ liệu nhiều lần và thực hiện hai bước chính: bước nối và bước tỉa. Trong mỗi lần lặp thứ k, thuật toán sẽ nối các tập mục có k-1 mục để tạo ra các tập mục có k mục và sau đó áp dụng kỹ thuật "tỉa" để loại bỏ các tập mục ứng viên không đáp ứng được ngưỡng hỗ trợ đã cho.
13 * Thuật toán FP_growth Thuật toán Apriori có chi phí cao nhưng không hiệu quả. Để khắc phục điều này, J. Mao đã đề xuất thuật toán FP-growth. Thuật toán này sử dụng ba kỹ thuật chính:(1) Nén dữ liệu vào một cấu trúc cây gọi là cây FP- tree, (2) Thực hiện phương pháp khai phá phát triển từng đoạn dựa trên cây FP-tree, và (3) Sử dụng kỹ thuật "chia để trị" để phân rã nhiệm vụ khai phá thành các nhiệm vụ nhỏ hơn.