Kinh Tế - Quản Lý - Công Nghệ Thông Tin, it, phầm mềm, website, web, mobile app, trí tuệ nhân tạo, blockchain, AI, machine learning - Công nghệ thông tin 1 Phần 1. MỞ ĐẦU 1.1. Lý do chọn đề tài Chúng ta nhận thấy rằng, trong vài thập niên gần đây, cùng với sự thay đổi và phát triển không ngừng của ngành công nghệ thông tin, luồng thông tin được sinh ra và chuyển tải mau lẹ đến chóng mặt, ước tính cứ khoảng 20 tháng lượng thông tin trên thế giới lại tăng gấp đôi. Với sự việc đó dẫn đến sự bùng nổ thông tin, làm cho các nhà quản lý rơi vào tình trạng “ngập trong thông tin”. Chính vì vậy, các chuyên gia cho rằng, hiện nay chúng ta đang sống trong một xã hội “rất giàu về thông tin nhưng nghèo về tri thức”. Những người ra quyết định trong các tổ chức tài chính, thương mại, khoa học…không muốn bỏ sót bất cứ thông tin nào, họ thu thập, lưu trữ tất cả mọi thông tin vì cho rằng trong nó ẩn chứa những giá trị nhất định nào đó. Trước tình hình đó, giải pháp hiệu quả giúp phân tích khối lượng lớn dữ liệu đó là khai phá dữ liệu. Với kỹ thuật khai phá dữ liệu, em muốn nghiên cứu ứng dụng trong phân tích số liệu kinh doanh để phát hiện những tri thức về công tác tư vấn kinh doanh. Với mong muốn như vậy nên em đã chọn đề tài “Luật kết hợp trong khai phá dữ liệu và ứng dụng trong bài toán kinh doanh” để làm đề tài khóa luận tốt nghiệp cuối khóa của mình. 1.2. Mục tiêu của đề tài Mục tiêu của đề tài là tìm hiểu: - Tìm hiểu qui trình khám phá tri thức - Tìm hiểu quá trình khai phá dữ liệu - Tìm hiểu các luật kết hợp trong khai phá dữ liệu - Ứng dụng nội dung tìm hiểu được đưa vào trong bài toán kinh doanh 1.3. Đối tượng và phạm vi nghiên cứu - Các luật kết hợp trong khai phá dữ liệu. - Một số chương trình, mã nguồn mở ứng dụng khai phá dữ liệu. - Áp dụng các thuật toán khai phá dữ liệu trên cơ sở dữ liệu lưu trữ. 1.4. Phương pháp nghiên cứu + Phương pháp nghiên cứu lý thuyết: Tìm hiểu và lựa chọn các phương pháp khai phá dữ liệu, + Phương pháp nghiên cứu thực nghiệm: phân tích thiết kế hệ thống, triển khai xây dựng ứng dụng. 2 1.5. Lịch sử nghiên cứu - Nội dung đã dạy và học ở học phần khai phá dữ liệu - Có nhiều cá nhân cũng như nhóm nghiên cứu đã chọn kiến thức này làm nội dung cho đề tai nghiên cứu họ 1.6. Đóng góp của đề tài Đây là một đề tài khá hay và khá hữu ích đối với lĩnh vực giáo dục. Khi mà các trường đại học và cao đẳng hiện nay đang dần chuyển sang đào tạo theo hệ tín chỉ thì việc ứng dụng khai phá dữ liệu để tư vấn học tập sẽ giúp cho sinh viên có thể chọn lựa được một lộ trình học đạt kết quả tối ưu nhất, phù hợp với điều kiện và năng lực của mình. 1.7. Cấu trúc của đề tài - MỞ ĐẦU - NỘI DUNG Chương 1: Phát hiện tri thức và khai phá dữ liệu Chương 2: Thuật toán appriori và các thuật toán xuất phát từ appriori khai phá luật kết hơp Chương 3: Cài đặt thuật toán và ứng dụng 3 Phần 2. NỘI DUNG CHƯƠNG 1. PHÁT HIỆN TRI THỨC VÀ KHAI PHÁ DỮ LIỆU 1.1. Phát hiện tri thức 1.1.1. Khái niệm phát hiện tri thức Phát hiện tri thức trong cơ sở dữ liệu là một quy trình nhận biết các mẫu hoặc các mô hình trong dữ liệu với các tính năng: phân tích, tổng hợp, hợp thức, khả ích, và có thể hiểu được. Còn khai thác dữ liệu là một bước trong quy trình phát hiện tri thức gồm có các thuật toán khai thác dữ liệu chuyên dùng dưới một số qui định về hiệu quả tính toán chấp nhận được để tìm ra các mẫu hoặc các mô hình trong dữ liệu. Nói một cách khác, mục đích của phát hiện tri thức và khai phá dữ liệu chính là tìm ra các mẫu hoặc các mô hình đang tồn tại trong các cơ sở dữ liệu nhưng vẫn còn bị che khuất bởi hàng núi dữ liệu. 1.1.2. Quy trình phát hiện tri thức Việc khám phá tri thức thông thường có thể mô tả bằng sơ đồ sau: Tìm hiểu lĩnh vực ứng dụng Sử dụng các tri thức phát hiện được Thu thập và tiền xử lý dữ liệu Phân tích và kiểm định kết quả Khai phá dữ liệu rút ra các tri thức Hình1.1. Qui trình phát hiện tri thức 4 Trong đó, mỗi bước là một quy trình có vai trò và nhiệm vụ khác nhau, bao gồm: Bước thứ nhất: tìm hiểu lĩnh vực ứng dụng và hình thành bài toán, bước này sẽ quyết định cho việc rút ra được các tri thức hữu ích và cho phép chọn các phương pháp khai phá dữ liệu thích hợp với mục đích ứng dụng và bản chất của dữ liệu. Bước thứ hai: thu thập và xử lý thô, còn được gọi là tiền xử lý dữ liệu nhằm loại bỏ nhiễu, xử lý việc thiếu dữ liệu, biến đổi dữ liệu và rút gọn dữ liệu nếu cần thiết, bước này thường chiếm nhiều thời gian nhất trong toàn bộ quy trình phát hiện tri thức. Bước thứ ba: khai phá dữ liệu, hay nói cách khác là trích ra các mẫu hoặc các mô hình ẩn dưới các dữ liệu. Bước thứ tư: hiểu tri thức đã tìm được, đặc biệt là làm sáng tỏ các mô tả và dự đoán. Các bước trên có thể lặp đi lặp lại một số lần, kết quả thu được có thể được lấy trung bình trên tất cả các lần thực hiện. Bước thứ năm: Sử dụng tri thức đã được khai phá vào thực tế. Các tri thức phát hiện được tích hợp chặt chẽ trong hệ thống. Tuy nhiên để sử dụng được các tri thức đó đôi khi cần đến các chuyên gia trong lĩnh vực liên quan vì tri thức rút ra có thể chỉ mang tính chất hỗ trợ quyết định hoặc cũng có thể được sử dụng cho quá trình khám phá tri thức khác. Mặc dù được tóm tắt thành 5 bước nhưng thực chất quá trình xây dựng và thực hiện việc khám phá tri thức không chỉ tuân theo các bước cố định mà các quá trình này còn có thể được lặp đi lặp lại ở một hoặc một số giai đoạn trước và cứ tiếp tục như thế sẽ làm cho quá trình khai phá và tìm kiếm dữ liệu ngày càng hoàn thiện hơn. 5 1.2. Khai phá dữ liệu 1.2.1. Khái niệm khai phá dữ liệu Khai phá dữ liệu như là một khái niệm ra đời vào những năm cuối của thập kỷ 80. Nó bao hàm một loạt các kỹ thuật nhằm phát hiện ra các thông tin có giá trị tiềm ẩn trong các tập dữ liệu lớn (các kho dữ liệu). Về bản chất, khai phá dữ liệu liên quan đến việc phân tích các dữ liệu và sử dụng các kỹ thuật để tìm ra các mẫu hình có tính chính quy trong tập dữ liệu. Năm 1989, Fayyad, Piatestsky-Shapiro và Smyth đã dùng khái niệm phát hiện tri thức trong cơ sở dữ liệu để chỉ toàn bộ quá trình phát hiện các tri thức có ích từ các tập dữ liệu lớn. Trong đó, khai phá dữ liệu là một bước đặc biệt trong toàn bộ tiến trình, sử dụng và giải thuật đặc biệt để chiết xuất ra các mẫu (hay các mô hình) từ dữ liệu. Khai phá dữ liệu là một tiến trình sử dụng các công cụ phân tích dữ liệu AI khám phá ra các mẫu dưới nhiều góc độ khác nhau nhằm phát hiện ra các IP khác nhau để nhằm phát hiện ra các mối quan hệ giữa các dữ kiện, đối tượng bên trong cơ sở dữ liệu, kết quả của Gom dữ liệu Trích học dữ liệu Làm sạch và tiền xử lý dữ liẹu Chuyển đổi dữ liệu Khai phá dữ liệu Đánh giá kết quả Dữ liệu Dữ liệu theo mục tiêu Dữ liệu được làm sạch Dữ liệu được chuyển đổi Các mẫu được phát hiện Các trí thực được biểu diễn Internet các kho chứa dữ liệu Hình 1.2. Các bước trong quá trình phát tri thức Ví dụ: Các bước trong quá trình phát hiện tri thức 6 việc khai phá là xác định các mẫu hay các mô hình đang tồn tại bên trong, nhưng chúng nằm ẩn khuất ở các cơ sở dữ liệu. Để từ đó rút ra được các mẫu, các mô hình hay các thông tin và tri thức từ cơ sở dữ liệu. Do sự phát triển mạnh mẽ của khai phá dữ liệu về phạm vi các lĩnh vực ứng dụng trong thực tế và các phương pháp tìm kiếm nên có rất nhiều khái niệm khác nhau về khai phá dữ liệu. Tóm lại khai phá dữ liệu được định nghĩa như sau: “Khai phá dữ liệu là quá trình khám phá các tri thức mới và các tri thức có ích ở dạng tiềm năng trong nguồn dữ liệu đã có.” 1.2.2. Các phương pháp khai phá dữ liệu Với hai mục đích chính của khai phá dữ liệu là dự đoán và mô tả, người ta thường sử dụng các phương pháp sau cho khai phá dữ liệu: - Phân lớp (Classfication) - Hồi quy (Regression) - Trực quan hoá (Visualization) - 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) - Luật kết hợp (Associantion rules) - Phương pháp tìm kiếm (Search Method) 1.2.3. Các lĩnh vực ứng dụng trong thực tiễn Ta có thể đưa ra một số ứng dụng trong các lĩnh vực như: - Ngân hàng: Xây dựng mô hình dự báo rủi ro tín dụng, tìm kiếm tri thức, quy luật của thị trường chứng khoán và đầu tư bất động sản,.. - Thương mại điện tử: Công cụ tìm kiếm, định hướng, thúc đẩy, giao tiếp với khách hàng, phân tích khác hàng duyệt web, phân tích hành vi mua sắm trên mạng và cho biết thông tin tiếp thị phù hợp với loại khách hàng. 7 - Thiên văn học: Hệ thống SKICAT do JPLCaltech phát triển được sử dụng cho các nhà thiên văn để tự động xác định các vì sao và các dải thiên hà trong một bản khảo sát lớn để có thể phân tích và phân loại. - Sinh học phân tử: Hệ thống tìm kiếm các mẫu trong cấu trúc phân tử và trong các dữ liệu gen. - Mô hình hóa những thay đổi thời tiết: Các mẫu không thời gian như lốc, gió xoáy được tự động tìm thấy trong các tập lớn dữ liệu mô phỏng và quan sát được. 1.2.4. Các kỹ thuật áp dụng trong khai phá dữ liệu Các kỹ thuật khai phá dữ liệu thường được chia thành 2 nhóm chính: Kỹ thuật khai phá dữ liệu 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ó. Các kỹ thuật này gồm có: phân cụm (Clustering), tổng hợp (Summerization), trực quan hoá (Visualization), phân tích sự phát triển và độ lệch (Evolution and deviation analyst), luật kết hợp (Associantion rules). Kỹ thuật khai phá dữ liệu dự đoán: có nhiệm vụ đưa ra các dự đoán 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)... Trong đó có ba 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 và khai phá luật kết hợp. - Phân cụm dữ liệu: Mục tiêu chính của 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. Trong phương pháp này bạn sẽ không thể biết kết quả các cụm thu được sẽ như thế nào khi quá trình bắt đầu. 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òn là bước tiên xử lý cho các thuật toán khai phá dữ liệu khác. - 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 2 bước: xây dựng mô hình và sử dụng mô hình để phân lớp dữ liệu - Khai phá luật kết hợp: Mục tiêu của phương pháp này là phát hiện đưa ra 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 phá dữ liệu là luật kết hợp tìm được. 8 1.2.5. Quy trình khai phá dữ liệu 1.2. Một số hướng tiếp cận trong khai phá dữ liệu Lĩnh vực khai phá luật kết hợp cho đến nay đã được nghiên cứu và phát triển theo nhiều hướng khác nhau. Có những đề xuất nhằm cải tiến tốc độ thuật toán, có những đề xuất nhằm tìm kiếm luật có ý nghĩa hơn,... cụ thể: - Luật kết hợp nhị phân (binary association rule): là hướng nghiên cứu đầu tiên của luật kết hợp. Hầu hết các nghiên cứu ở thời kỳ đầu về luật kết hợp đều liên quan đến luật kết hợp nhị phân. Trong dạng luật kết hợp này, các mục, thuộc tính chi được quan tâm là có hay không xuất hiện trong giao tác của CSDL chứ không quan tâm về mức độ” xuất hiện. Thuật toán tiêu biểu nhất khai phá dạng luật này là thuật toán Apriori và các biến thể của nó. Đây là dạng luật đơn giản và các luật khác cũng có thể chuyển về dạng luật này nhờ một số phương pháp như rời rạc hóa, mờ hóa,... - Luật kết hợp có thuộc tính số và thuộc tính hạng mục (quantitative and categorial association rule): các thuộc tính của các CSDL thực tế có kiểu rất đa dạng như số nhị phận, giá trị định tính, định lượng,... Để phát hiện luật kết hợp với các thuộc tính này, các nhà nghiên cứu đã đề xuất một số phương pháp rời rạc hóa nhăm chuyên dụng luật này về dạng nhị phân để có thể áp dụng các thuật toán đã có. - Luật kết hợp tiếp cận theo hướng tập thô (mining association rules base on rough set): tìm kiếm luật kết hợp dựa trên lý thuyết tập thô. Xác định dữ liệu liên quan Thu thập và tiền xử lý dữ liệu Xác định nhiệm vụ DL trực tiếp Giải thuật khai phá dữ liệu Mẫu Thông kê tóm tắt Hình 1.3. Quá trình khai phá dữ liệu 9 - Luật kết hợp nhiều mức (multi - level association rules ): cách tiếp cận theo luật này sẽ tìm kiếm thêm những luật có dạng “mua máy tính PC = > mua hệ điều hành AND mua phần mềm tiện ích văn phòng,..” thay vì chỉ những luật quá cụ thể như “mua máy tính IBM PC - Windows AND mua phần mềm tiện ích văn phòng Microsoft mua hệ điều hành Microsol Office,...”. Như vậy dạng luật đầu là dạng luật tổng quát hóa của dạng luật sau và tổng quát theo nhiều mức khác nhau. - Luật kết hợp mờ (fuzzy association rules): với những hạn chế còn gặp phải trong quá trình rời rạc hóa các thuộc tínhsố (quantitave attributes), các nhà nghiên cứu đã đề xuất luật kết hợp mờ nhằm khắc phục các 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. - Luật kết hợp với thuộc tính được đánh trọng số (association rule with weighted items): trong thực tế, các thuộc tính trong CSDL không phải lúc nào cũng có vai trò như nhau. Có một số thuộc tính được chú trọng hơn và có mức độ quan trọng cao hơn các thuộc tính khác. Đây là hướng nghiên cứu rất thú vị và đã được một số nhà nghiên cứu đề xuất cách giải quyết bài toán này. Với luật kết hợp có thuộc tính được đánh trọng số, chúng ta sẽ khai thác được những luật “hiếm” (tức là có độ hỗ trợ thấp, nhưng có ý nghĩa đặc biệt hoặc mang rất nhiều ý nghĩa). - Luật kết hợp song song (parallel mining of association rule): bên cạnh khai thác luật kết hợp tuần tự, các nhà làm tin học “Alg tập trung vào nghiên cứu các thuật giải song song cho quá trình phát hiện luật kết hợp. Nhu cầu song song hóa và xử lý phân tán là cần thiết bởi kích thước dữ liệu ngày càng lớn hơn nên đòi hỏi tốc độ xử lý cũng như dung lượng bộ nhớ của hệ thống phải được đảm bảo. Có rất nhiều thuật toán song song khác nhau đã đề xuất để có thể không phụ thuộc vào phần cứng. Bên cạnh những nghiên cứu về các biến thể của luật kết hợp, các nha nghiên cứu còn chú trọng đề xuất những thuật toán nhằm tăng tốc quá trình tìm kiếm tập phổ biến từ CSDL. Ngoài ra, còn có một số hướng nghiên cứu khác về khai phá luật kết hợp như: khai phá luật kết hợp trực tuyến, khai phá luật kết hợp được kết nối trực tuyến đến các kho dữ liệu đa chiều thông qua công nghệ OLAP, MOLAP, ROLAP, ADO. 10 1.4. Một số bài toán có thể khai phá được - Microsoft Decision Tree: Thuật toán Microsoft Decision Tree hỗ trợ cả việc phân loại và hồi quy, và tạo rất tốt các mô hình dự đoán. Sử dụng thuật toán này có thể dự đoán cả các thuộc tính rời rạc và liên tục. Trong việc xây dựng mô hình, thuật toán này sẽ khảo sát sự ảnh hưởng của mỗi thuộc tính trong tập dữ liệu và kết quả của thuộc tính dự đoán.Và tiếp đến nó sử dụng các thuộc tính input (với các quan hệ rõ ràng) để tạo thành một nhóm phân hoá gọi là các node. Khi một node mới được thêm vào mô hình, một cấu trúc cây sẽ được thiết lập. Node đỉnh của cây sẽ miêu tả sự phân tích (bằng thống kê) của các thuộc tính dự đoán thông qua các mẫu. Mỗi node thêm vào sẽ được tạo ra dựa trên sự sắp xếp các trường của thuộc tính dự đoán, để so sánh với dữ liệu input. Nếu một thuộc tính input được coi là nguyên nhân của thuộc tính dự đoán (to favour one state over another), một node mới sẽ thêm vào mô hình. Mô hình tiếp tục phát triển cho đến lúc không còn thuộc tính nào, tạo thành một sự phân tách (split) để cung cấp một dự báo hoàn chỉnh thông qua các node đã tồn tại. Mô hình đòi hỏi tìm kiếm một sự kết hợp giữa các thuộc tính và trường của nó, nhằm thiết lập một sự phân phối không cân xứng giữa các trường trong thuộc tình dự đoán. Vì thế cho phép dự đoán kết quả của thuộc tính dự đoán một cách tốt nhất. - Microsoft Clustering: Thuật toán này sử dụng kỹ thuật lặp để nhóm các bản ghi từ một tập hợp dữ liệu vào một liên cung cùng có đặc điểm giống nhau. Sử dụng liên cung này có thể khám phá dữ liệu, tìm hiểu về các quan hệ đã tồn tại, mà các quan hệ này không dễ dàng tìm được một cách hợp lý thông qua quan sát ngẫu nhiên. Thêm nữa, có thể dự đoán từ các mô hình liên cung đã được tạo bởi thuật toán. Ví dụ : Xem xét một nhóm người sống ở cùng một vùng, có cùng một loại xe, ăn cùng một loại thức ăn và mua cùng một sản phẩm. Đây là một liên cung của dữ liệu, một liên cung khác có thể bao gồm những người cùng đến một nhà hàng, cùng mức lương, và được đi nghỉ ở nước ngoài hai lần trong năm. - Microsoft Naïve Bayes : Thuật toán này xây dựng mô hình khai thác nhanh hơn các thuật toán khác, phục vụ việc phân loại và dự đoán. Nó tính toán khả năng có thể xảy ra trong mỗi trường hợp lệ 11 của thuộc tính input, gán cho mỗi trường một thuộc tính có thể dự đoán. Mỗi trường này có thể sau đó được sử dụng để dự đoán kết quả của thuộc tính dự đoán dựa vào những thuộc tính input đã biết. Các khả năng sử dụng để sinh ra các mô hình được tính toán và lưu trữ trong suốt quá trình xử lý của khối lập phương (cube: các mô hình được dựng lên từ các khối lập phương). Thuật toán này chỉ hỗ trợ các thuộc tính hoặc là rời rạc hoặc liên tục, và nó xem xét tất cả các thuộc tính input độc lập. Thuật toán này cho ta một mô hình khai thác đơn giản (có thể được coi là điểm xuất phát của DataMining), bởi vì hầu như tất cả các tính toán sử dụng trong khi thiết lập mô hình, được sinh ra trong xử lí của cube (mô hình kích thước hợp nhất), kết quả được trả về nhanh chóng. Điều này tạo cho mô hình một lựa chọn tốt để khai phá dữ liệu khám phá các thuộc tính input được phân bố trong các trường khác nhau của thuộc tính dự đoán như thế nào? - Microsoft Time Series : Thuật toán này tạo ra những mô hình được sử dụng để dự đoán các biến tiếp theo từ OLAP và các nguồn dữ liệu quan hệ. Ví dụ : Sử dụng thuật toán này để dự đoán bán hàng và lợi nhuận dựa vào các dữ liệu quá khứ trong một cube. Sử dụng thuật toán này có thể chọn một hoặc nhiều biến để dự đoán (nhưng các biến là phải liên tục). Có thể có nhiều trường hợp cho mỗi mô hình. Tập các trường hợp xác định vị trí của một nhóm, như là ngày tháng khi xem việc bán hàng thông qua vài tháng hoặc vài năm trước. Một trường hợp có thể bao gồm một tập các biến (ví dụ như bán hàng tại các cửa hàng khác nhau). Thuật toán này có thể sử dụng sự tương quan của thay đối biến số (cross-variable) trong dự đoán của nó. Ví dụ: Bán hàng trước kia tại một cửa hàng có thể rất hữu ích trong việc dự báo bán hàng hiện tại tại những cửa hàng. - Microsoft Association : Thuật toán này được thiết kế đặc biệt để sử dụng trong phân tích giỏ thị trường (basket market). Market basket (chỉ số rổ thị trường: tức là ta sẽ dùng tất cả các loại hàng hoá đang có trên thị trường (một siêu thị chẳng hạn) ta nhân giá cả của nó với 12 chỉ số của hàng hoá (ví dụ gạo x 10, thịt x 20…) để tính chỉ số CPI (consumer price index). Nếu chỉ số CPI của ngày hôm nay cao hơn so với ngày hôm qua thì xảy ra lạm phát). Thuật toán này sẽ xem xét mỗi cặp biếngiá trị (như là sản phẩmxe đạp) là một item. Một Itemset là một tổ hợp các item trong một transaction đơn lẻ. Thuật toán sẽ lướt qua tập hợp dữ liệu để cố gắng tìm kiếm các itemset nhằm vào việc xuất hiện trong nhiều transaction. Tham chiếu Support sẽ định nghĩa có bao nhiêu transaction mà itemset sẽ xuất hiện trước khi nó được cho là quan trọng. Ví dụ: một itemset phổ biến có thể gồm{Gender="Male", Marital Status = "Married", Age="30-35"}. Mỗi itemset có một kích thước là tổng số của mỗi item mà nó có (ở ví dụ này là 3). Thường thì những mô hình kết hợp làm việc dựa vào các tập dữ liệu chứa các nếu một bảng ẩn tồn tại trong tập dữ liệu, mỗi khoá ẩn (như một sản phẩm trong bảng mua bán) được xem như một item. Thuật toán này cũng tìm các luật kết hợp với các Itemset. Một luật trong một mô hình kết hợp kiểu như A,B=>C (kết hợp với một khả năng có thể xảy ra ). Khi tất cả A, B, C là những Itemset phổ biến. Dấu “=>”nói rằng C được dự đoán từ A và B. Khả năng giới hạn là một biến mà xác định khả năng nhỏ nhất tức là khi một luật có thể đựơc xét đến. Khả năng này cũng được gọi là 1 “sự tin cậy” trong văn phong DataMining. Mô hình kết hợp rất hữu ích trong cross-sell và collaborative - filtering . Ví dụ : Bạn có thể sử dụng mô hình kết hợp để dự đoán các hạng mục mà khách hàng muốn mua dựa vào các danh mục hàng hoá khác trong basket của họ. - Microsoft Sequence Clustering: Thuật toán này phân tích các đối tượng dữ liệu có trình tự, các dữ liệu này bao các sự kiện của một trật tự rõ ràng. Bằng cách phân tích sự chuyển tiếp giữa các tình trạng của một chuỗi, thuật toán có thể dự đoán tương lai trong các chuỗi có quan hệ với nhau. Thuật toán này là sự pha trộn giữa thuật toán chuỗi và thuật toán liên cung. Thuật toán nhóm tất cả các sự kiện phức tạp với các thuộc tính trình tự vào một ...
Trang 1Phần 1 MỞ ĐẦU 1.1 Lý do chọn đề tài
Chúng ta nhận thấy rằng, trong vài thập niên gần đây, cùng với sự thay đổi và phát triển không ngừng của ngành công nghệ thông tin, luồng thông tin được sinh ra và chuyển tải mau lẹ đến chóng mặt, ước tính cứ khoảng 20 tháng lượng thông tin trên thế giới lại tăng gấp đôi Với sự việc đó dẫn đến sự bùng nổ thông tin, làm cho các nhà quản lý rơi vào tình trạng “ngập trong thông tin” Chính vì vậy, các chuyên gia cho rằng, hiện nay chúng
ta đang sống trong một xã hội “rất giàu về thông tin nhưng nghèo về tri thức” Những
người ra quyết định trong các tổ chức tài chính, thương mại, khoa học…không muốn bỏ sót bất cứ thông tin nào, họ thu thập, lưu trữ tất cả mọi thông tin vì cho rằng trong nó ẩn chứa những giá trị nhất định nào đó
Trước tình hình đó, giải pháp hiệu quả giúp phân tích khối lượng lớn dữ liệu đó là khai phá dữ liệu Với kỹ thuật khai phá dữ liệu, em muốn nghiên cứu ứng dụng trong phân tích số liệu kinh doanh để phát hiện những tri thức về công tác tư vấn kinh doanh
Với mong muốn như vậy nên em đã chọn đề tài “Luật kết hợp trong khai phá dữ liệu
và ứng dụng trong bài toán kinh doanh” để làm đề tài khóa luận tốt nghiệp cuối khóa của
mình
1.2 Mục tiêu của đề tài
Mục tiêu của đề tài là tìm hiểu:
- Tìm hiểu qui trình khám phá tri thức
- Tìm hiểu quá trình khai phá dữ liệu
- Tìm hiểu các luật kết hợp trong khai phá dữ liệu
- Ứng dụng nội dung tìm hiểu được đưa vào trong bài toán kinh doanh
1.3 Đối tượng và phạm vi nghiên cứu
- Các luật kết hợp trong khai phá dữ liệu
- Một số chương trình, mã nguồn mở ứng dụng khai phá dữ liệu
- Áp dụng các thuật toán khai phá dữ liệu trên cơ sở dữ liệu lưu trữ
1.4 Phương pháp nghiên cứu
+ Phương pháp nghiên cứu lý thuyết: Tìm hiểu và lựa chọn các phương pháp khai phá dữ liệu,
+ Phương pháp nghiên cứu thực nghiệm: phân tích thiết kế hệ thống, triển khai xây dựng ứng dụng
Trang 21.5 Lịch sử nghiên cứu
- Nội dung đã dạy và học ở học phần khai phá dữ liệu
- Có nhiều cá nhân cũng như nhóm nghiên cứu đã chọn kiến thức này làm nội dung cho đề tai nghiên cứu họ
1.6 Đóng góp của đề tài
Đây là một đề tài khá hay và khá hữu ích đối với lĩnh vực giáo dục Khi mà các trường đại học và cao đẳng hiện nay đang dần chuyển sang đào tạo theo hệ tín chỉ thì việc ứng dụng khai phá dữ liệu để tư vấn học tập sẽ giúp cho sinh viên có thể chọn lựa được một lộ trình học đạt kết quả tối ưu nhất, phù hợp với điều kiện và năng lực của mình
1.7 Cấu trúc của đề tài
- MỞ ĐẦU
- NỘI DUNG
Chương 1: Phát hiện tri thức và khai phá dữ liệu
Chương 2: Thuật toán appriori và các thuật toán xuất phát từ appriori khai phá luật kết hơp
Chương 3: Cài đặt thuật toán và ứng dụng
Trang 3Phần 2 NỘI DUNG CHƯƠNG 1 PHÁT HIỆN TRI THỨC VÀ KHAI PHÁ DỮ LIỆU
1.1 Phát hiện tri thức
1.1.1 Khái niệm phát hiện tri thức
Phát hiện tri thức trong cơ sở dữ liệu là một quy trình nhận biết các mẫu hoặc các mô hình trong dữ liệu với các tính năng: phân tích, tổng hợp, hợp thức, khả ích, và có thể hiểu được Còn khai thác dữ liệu là một bước trong quy trình phát hiện tri thức gồm có các thuật toán khai thác dữ liệu chuyên dùng dưới một số qui định về hiệu quả tính toán chấp nhận được để tìm ra các mẫu hoặc các mô hình trong dữ liệu Nói một cách khác, mục đích của phát hiện tri thức và khai phá dữ liệu chính là tìm ra các mẫu hoặc các mô hình đang tồn tại trong các cơ sở dữ liệu nhưng vẫn còn bị che khuất bởi hàng núi dữ liệu
1.1.2 Quy trình phát hiện tri thức
Việc khám phá tri thức thông thường có thể mô tả bằng sơ đồ sau:
Tìm hiểu lĩnh vực ứng dụng
Sử dụng các tri thức
phát hiện được Thu thập và tiền xử lý dữ liệu
Phân tích và kiểm
định kết quả Khai phá dữ liệu rút ra các tri thức
Hình1.1 Qui trình phát hiện tri thức
Trang 4Trong đó, mỗi bước là một quy trình có vai trò và nhiệm vụ khác nhau, bao gồm:
Bước thứ nhất: tìm hiểu lĩnh vực ứng dụng và hình thành bài toán, bước này sẽ quyết định cho việc rút ra được các tri thức hữu ích và cho phép chọn các phương pháp khai phá
dữ liệu thích hợp với mục đích ứng dụng và bản chất của dữ liệu
Bước thứ hai: thu thập và xử lý thô, còn được gọi là tiền xử lý dữ liệu nhằm loại bỏ nhiễu, xử lý việc thiếu dữ liệu, biến đổi dữ liệu và rút gọn dữ liệu nếu cần thiết, bước này thường chiếm nhiều thời gian nhất trong toàn bộ quy trình phát hiện tri thức
Bước thứ ba: khai phá dữ liệu, hay nói cách khác là trích ra các mẫu hoặc các mô hình
ẩn dưới các dữ liệu
Bước thứ tư: hiểu tri thức đã tìm được, đặc biệt là làm sáng tỏ các mô tả và dự đoán Các bước trên có thể lặp đi lặp lại một số lần, kết quả thu được có thể được lấy trung bình trên tất cả các lần thực hiện
Bước thứ năm: Sử dụng tri thức đã được khai phá vào thực tế Các tri thức phát hiện được tích hợp chặt chẽ trong hệ thống Tuy nhiên để sử dụng được các tri thức đó đôi khi cần đến các chuyên gia trong lĩnh vực liên quan vì tri thức rút ra có thể chỉ mang tính chất
hỗ trợ quyết định hoặc cũng có thể được sử dụng cho quá trình khám phá tri thức khác Mặc dù được tóm tắt thành 5 bước nhưng thực chất quá trình xây dựng và thực hiện việc khám phá tri thức không chỉ tuân theo các bước cố định mà các quá trình này còn có thể được lặp đi lặp lại ở một hoặc một số giai đoạn trước và cứ tiếp tục như thế sẽ làm cho quá trình khai phá và tìm kiếm dữ liệu ngày càng hoàn thiện hơn
Trang 51.2 Khai phá dữ liệu
1.2.1 Khái niệm khai phá dữ liệu
Khai phá dữ liệu như là một khái niệm ra đời vào những năm cuối của thập kỷ 80 Nó bao hàm một loạt các kỹ thuật nhằm phát hiện ra các thông tin có giá trị tiềm ẩn trong các tập dữ liệu lớn (các kho dữ liệu) Về bản chất, khai phá dữ liệu liên quan đến việc phân tích các dữ liệu và sử dụng các kỹ thuật để tìm ra các mẫu hình có tính chính quy trong tập dữ liệu
Năm 1989, Fayyad, Piatestsky-Shapiro và Smyth đã dùng khái niệm phát hiện tri thức trong cơ sở dữ liệu để chỉ toàn bộ quá trình phát hiện các tri thức có ích từ các tập dữ liệu lớn Trong đó, khai phá dữ liệu là một bước đặc biệt trong toàn bộ tiến trình, sử dụng và giải thuật đặc biệt để chiết xuất ra các mẫu (hay các mô hình) từ dữ liệu
Khai phá dữ liệu là một tiến trình sử dụng các công cụ phân tích dữ liệu AI khám phá
ra các mẫu dưới nhiều góc độ khác nhau nhằm phát hiện ra các IP khác nhau để nhằm phát hiện ra các mối quan hệ giữa các dữ kiện, đối tượng bên trong cơ sở dữ liệu, kết quả của
Dữ liệu được làm sạch
Dữ liệu được chuyển đổi
Các mẫu được phát hiện
Các trí thực được biểu diễn
Internet các
kho chứa dữ
liệu
Hình 1.2 Các bước trong quá trình phát tri thức
Ví dụ: Các bước trong quá trình phát hiện tri thức
Trang 6việc khai phá là xác định các mẫu hay các mô hình đang tồn tại bên trong, nhưng chúng nằm ẩn khuất ở các cơ sở dữ liệu Để từ đó rút ra được các mẫu, các mô hình hay các thông tin và tri thức từ cơ sở dữ liệu
Do sự phát triển mạnh mẽ của khai phá dữ liệu về phạm vi các lĩnh vực ứng dụng trong thực tế và các phương pháp tìm kiếm nên có rất nhiều khái niệm khác nhau về khai phá dữ liệu Tóm lại khai phá dữ liệu được định nghĩa như sau: “Khai phá dữ liệu là quá trình khám phá các tri thức mới và các tri thức có ích ở dạng tiềm năng trong nguồn dữ liệu đã có.”
1.2.2 Các phương pháp khai phá dữ liệu
Với hai mục đích chính của khai phá dữ liệu là dự đoán và mô tả, người ta thường sử dụng các phương pháp sau cho khai phá dữ liệu:
- Phân lớp (Classfication)
- Hồi quy (Regression)
- Trực quan hoá (Visualization)
- 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)
- Luật kết hợp (Associantion rules)
- Phương pháp tìm kiếm (Search Method)
1.2.3 Các lĩnh vực ứng dụng trong thực tiễn
| Ta có thể đưa ra một số ứng dụng trong các lĩnh vực như:
- Ngân hàng: Xây dựng mô hình dự báo rủi ro tín dụng, tìm kiếm tri thức, quy luật của thị trường chứng khoán và đầu tư bất động sản,
- Thương mại điện tử: Công cụ tìm kiếm, định hướng, thúc đẩy, giao tiếp với khách hàng, phân tích khác hàng duyệt web, phân tích hành vi mua sắm trên mạng và cho biết thông tin tiếp thị phù hợp với loại khách hàng
Trang 7- Thiên văn học: Hệ thống SKICAT do JPL/Caltech phát triển được sử dụng cho các nhà thiên văn để tự động xác định các vì sao và các dải thiên hà trong một bản khảo sát lớn để có thể phân tích và phân loại
- Sinh học phân tử: Hệ thống tìm kiếm các mẫu trong cấu trúc phân tử và trong các dữ liệu gen
- Mô hình hóa những thay đổi thời tiết: Các mẫu không thời gian như lốc, gió xoáy được tự động tìm thấy trong các tập lớn dữ liệu mô phỏng và quan sát được
1.2.4 Các kỹ thuật áp dụng trong khai phá dữ liệu
Các kỹ thuật khai phá dữ liệu thường được chia thành 2 nhóm chính:
Kỹ thuật khai phá dữ liệu 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ó Các kỹ thuật này gồm có: phân cụm (Clustering), tổng hợp (Summerization), trực quan hoá (Visualization), phân tích sự phát triển và độ lệch (Evolution and deviation analyst), luật kết hợp (Associantion rules)
Kỹ thuật khai phá dữ liệu dự đoán: có nhiệm vụ đưa ra các dự đoán 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)
Trong đó có ba 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
và khai phá luật kết hợp
- Phân cụm dữ liệu: Mục tiêu chính của 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 Trong phương pháp này bạn sẽ không thể biết kết quả các cụm thu được sẽ như thế nào khi quá trình bắt đầu 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òn là bước tiên xử lý cho các thuật toán khai phá dữ liệu khác
- 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 2 bước: xây dựng mô hình và sử dụng mô hình để phân lớp dữ liệu
- Khai phá luật kết hợp: Mục tiêu của phương pháp này là phát hiện đưa ra 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 phá dữ liệu là luật kết hợp tìm được
Trang 81.2.5 Quy trình khai phá dữ liệu
1.2 Một số hướng tiếp cận trong khai phá dữ liệu
Lĩnh vực khai phá luật kết hợp cho đến nay đã được nghiên cứu và phát triển theo nhiều hướng khác nhau Có những đề xuất nhằm cải tiến tốc độ thuật toán, có những đề xuất nhằm tìm kiếm luật có ý nghĩa hơn, cụ thể:
- Luật kết hợp nhị phân (binary association rule): là hướng nghiên cứu đầu tiên của luật kết hợp Hầu hết các nghiên cứu ở thời kỳ đầu về luật kết hợp đều liên quan đến luật kết hợp nhị phân Trong dạng luật kết hợp này, các mục, thuộc tính chi được quan tâm là có hay không xuất hiện trong giao tác của CSDL chứ không quan tâm về mức độ” xuất hiện Thuật toán tiêu biểu nhất khai phá dạng luật này là thuật toán Apriori và các biến thể của nó Đây là dạng luật đơn giản và các luật khác cũng có thể chuyển về dạng luật này nhờ một số phương pháp như rời rạc hóa, mờ hóa,
- Luật kết hợp có thuộc tính số và thuộc tính hạng mục (quantitative and categorial association rule): các thuộc tính của các CSDL thực tế có kiểu rất đa dạng như số nhị phận, giá trị định tính, định lượng, Để phát hiện luật kết hợp với các thuộc tính này, các nhà nghiên cứu đã đề xuất một số phương pháp rời rạc hóa nhăm chuyên dụng luật này về dạng nhị phân để có thể áp dụng các thuật toán đã có
- Luật kết hợp tiếp cận theo hướng tập thô (mining association rules base on rough set): tìm kiếm luật kết hợp dựa trên lý thuyết tập thô
Xác định dữ liệu liên quan
Thu thập
và tiền
xử lý
dữ liệu
dữ liệu
Mẫu Thông kê tóm tắt
Hình 1.3 Quá trình khai phá dữ liệu
Trang 9- Luật kết hợp nhiều mức (multi - level association rules ): cách tiếp cận theo luật này
sẽ tìm kiếm thêm những luật có dạng “mua máy tính PC = > mua hệ điều hành AND mua phần mềm tiện ích văn phòng, ” thay vì chỉ những luật quá cụ thể như “mua máy tính IBM PC - Windows AND mua phần mềm tiện ích văn phòng Microsoft mua hệ điều hành Microsol Office, ” Như vậy dạng luật đầu là dạng luật tổng quát hóa của dạng luật sau và tổng quát theo nhiều mức khác nhau
- Luật kết hợp mờ (fuzzy association rules): với những hạn chế còn gặp phải trong quá trình rời rạc hóa các thuộc tínhsố (quantitave attributes), các nhà nghiên cứu đã đề xuất luật kết hợp mờ nhằm khắc phục các 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
- Luật kết hợp với thuộc tính được đánh trọng số (association rule with weighted items): trong thực tế, các thuộc tính trong CSDL không phải lúc nào cũng có vai trò như nhau Có một số thuộc tính được chú trọng hơn và có mức độ quan trọng cao hơn các thuộc tính khác Đây là hướng nghiên cứu rất thú vị và đã được một số nhà nghiên cứu đề xuất cách giải quyết bài toán này Với luật kết hợp có thuộc tính được đánh trọng số, chúng ta sẽ khai thác được những luật “hiếm” (tức là có độ hỗ trợ thấp, nhưng có ý nghĩa đặc biệt hoặc mang rất nhiều ý nghĩa)
- Luật kết hợp song song (parallel mining of association rule): bên cạnh khai thác luật kết hợp tuần tự, các nhà làm tin học “Alg tập trung vào nghiên cứu các thuật giải song song cho quá trình phát hiện luật kết hợp Nhu cầu song song hóa và xử lý phân tán là cần thiết bởi kích thước dữ liệu ngày càng lớn hơn nên đòi hỏi tốc độ xử lý cũng như dung lượng bộ nhớ của hệ thống phải được đảm bảo Có rất nhiều thuật toán song song khác nhau đã đề xuất để có thể không phụ thuộc vào phần cứng
Bên cạnh những nghiên cứu về các biến thể của luật kết hợp, các nha ! nghiên cứu còn chú trọng đề xuất những thuật toán nhằm tăng tốc quá trình tìm kiếm tập phổ biến từ CSDL Ngoài ra, còn có một số hướng nghiên cứu khác về khai phá luật kết hợp như: khai phá luật kết hợp trực tuyến, khai phá luật kết hợp được kết nối trực tuyến đến các kho dữ liệu đa chiều thông qua công nghệ OLAP, MOLAP, ROLAP, ADO
Trang 101.4 Một số bài tốn cĩ thể khai phá được
- Microsoft Decision Tree:
Thuật tốn Microsoft Decision Tree hỗ trợ cả việc phân loại và hồi quy, và tạo rất tốt các mơ hình dự đốn Sử dụng thuật tốn này cĩ thể dự đốn cả các thuộc tính rời rạc và liên tục Trong việc xây dựng mơ hình, thuật tốn này sẽ khảo sát sự ảnh hưởng của mỗi thuộc tính trong tập dữ liệu và kết quả của thuộc tính dự đốn.Và tiếp đến nĩ sử dụng các thuộc tính input (với các quan hệ rõ ràng) để tạo thành một nhĩm phân hố gọi là các node Khi một node mới được thêm vào mơ hình, một cấu trúc cây sẽ được thiết lập Node đỉnh của cây sẽ miêu tả sự phân tích (bằng thống kê) của các thuộc tính dự đốn thơng qua các mẫu Mỗi node thêm vào sẽ được tạo ra dựa trên sự sắp xếp các trường của thuộc tính dự đốn, để so sánh với dữ liệu input Nếu một thuộc tính input được coi là nguyên nhân của
thuộc tính dự đốn (to favour one state over another), một node mới sẽ thêm vào mơ hình
Mơ hình tiếp tục phát triển cho đến lúc khơng cịn thuộc tính nào, tạo thành một sự phân tách (split) để cung cấp một dự báo hồn chỉnh thơng qua các node đã tồn tại Mơ hình địi hỏi tìm kiếm một sự kết hợp giữa các thuộc tính và trường của nĩ, nhằm thiết lập một sự phân phối khơng cân xứng giữa các trường trong thuộc tình dự đốn Vì thế cho phép dự đốn kết quả của thuộc tính dự đốn một cách tốt nhất
- Microsoft Clustering:
Thuật tốn này sử dụng kỹ thuật lặp để nhĩm các bản ghi từ một tập hợp dữ liệu vào một liên cung cùng cĩ đặc điểm giống nhau Sử dụng liên cung này cĩ thể khám phá dữ liệu, tìm hiểu về các quan hệ đã tồn tại, mà các quan hệ này khơng dễ dàng tìm được một cách hợp lý thơng qua quan sát ngẫu nhiên Thêm nữa, cĩ thể dự đốn từ các mơ hình liên
cung đã được tạo bởi thuật tốn
Ví dụ : Xem xét một nhĩm người sống ở cùng một vùng, cĩ cùng một loại xe, ăn cùng một loại thức ăn và mua cùng một sản phẩm
Đây là một liên cung của dữ liệu, một liên cung khác cĩ thể bao gồm những người cùng đến một nhà hàng, cùng mức lương, và được đi nghỉ ở nước ngồi hai lần trong năm
- Microsoft Nạve Bayes :
Thuật tốn này xây dựng mơ hình khai thác nhanh hơn các thuật tốn khác, phục vụ việc phân loại và dự đốn Nĩ tính tốn khả năng cĩ thể xảy ra trong mỗi trường hợp lệ
Trang 11của thuộc tính input, gán cho mỗi trường một thuộc tính có thể dự đoán Mỗi trường này có thể sau đó được sử dụng để dự đoán kết quả của thuộc tính dự đoán dựa vào những thuộc tính input đã biết Các khả năng sử dụng để sinh ra các mô hình được tính toán và lưu trữ trong suốt quá trình xử lý của khối lập phương (cube: các mô hình được dựng lên từ các khối lập phương)
Thuật toán này chỉ hỗ trợ các thuộc tính hoặc là rời rạc hoặc liên tục, và nó xem xét tất cả các thuộc tính input độc lập Thuật toán này cho ta một mô hình khai thác đơn giản (có thể được coi là điểm xuất phát của DataMining), bởi vì hầu như tất cả các tính toán sử dụng trong khi thiết lập mô hình, được sinh ra trong xử lí của cube (mô hình kích thước hợp nhất), kết quả được trả về nhanh chóng
Điều này tạo cho mô hình một lựa chọn tốt để khai phá dữ liệu khám phá các thuộc tính input được phân bố trong các trường khác nhau của thuộc tính dự đoán như thế nào?
- Microsoft Time Series :
Thuật toán này tạo ra những mô hình được sử dụng để dự đoán các biến tiếp theo từ OLAP và các nguồn dữ liệu quan hệ
Ví dụ : Sử dụng thuật toán này để dự đoán bán hàng và lợi nhuận dựa vào các dữ liệu quá khứ trong một cube Sử dụng thuật toán này có thể chọn một hoặc nhiều biến để dự đoán (nhưng các biến là phải liên tục) Có thể có nhiều trường hợp cho mỗi mô hình Tập các trường hợp xác định vị trí của một nhóm, như là ngày tháng khi xem việc bán hàng thông qua vài tháng hoặc vài năm trước Một trường hợp có thể bao gồm một tập các biến (ví dụ như bán hàng tại các cửa hàng khác nhau) Thuật toán này có thể sử dụng sự tương quan của thay đối biến số (cross-variable) trong dự đoán của nó Ví dụ: Bán hàng trước kia tại một cửa hàng có thể rất hữu ích trong việc dự báo bán hàng hiện tại tại những cửa hàng
- Microsoft Association :
Thuật toán này được thiết kế đặc biệt để sử dụng trong phân tích giỏ thị trường (basket market) Market basket (chỉ số rổ thị trường: tức là ta sẽ dùng tất cả các loại hàng hoá đang có trên thị trường (một siêu thị chẳng hạn) ta nhân giá cả của nó với
Trang 12chỉ số của hàng hoá (ví dụ gạo x 10, thịt x 20…) để tính chỉ số CPI (consumer price index)
Nếu chỉ số CPI của ngày hôm nay cao hơn so với ngày hôm qua thì xảy ra lạm phát) Thuật toán này sẽ xem xét mỗi cặp biến/giá trị (như là sản phẩm/xe đạp) là một item Một Itemset là một tổ hợp các item trong một transaction đơn lẻ Thuật toán sẽ lướt qua tập hợp dữ liệu để cố gắng tìm kiếm các itemset nhằm vào việc xuất hiện trong nhiều transaction Tham chiếu Support sẽ định nghĩa có bao nhiêu transaction mà itemset sẽ xuất hiện trước khi nó được cho là quan trọng
Ví dụ: một itemset phổ biến có thể gồm{Gender="Male", Marital Status =
"Married", Age="30-35"} Mỗi itemset có một kích thước là tổng số của mỗi item mà
nó có (ở ví dụ này là 3) Thường thì những mô hình kết hợp làm việc dựa vào các tập
dữ liệu chứa các nếu một bảng ẩn tồn tại trong tập dữ liệu, mỗi khoá ẩn (như một sản phẩm trong bảng mua bán) được xem như một item Thuật toán này cũng tìm các luật kết hợp với các Itemset Một luật trong một mô hình kết hợp kiểu như A,B=>C (kết hợp với một khả năng có thể xảy ra ) Khi tất cả A, B, C là những Itemset phổ biến Dấu “=>”nói rằng C được dự đoán từ A và B Khả năng giới hạn là một biến mà xác định khả năng nhỏ nhất tức là khi một luật có thể đựơc xét đến Khả năng này cũng được gọi là 1 “sự tin cậy” trong văn phong DataMining Mô hình kết hợp rất hữu ích trong cross-sell và collaborative - filtering
Ví dụ : Bạn có thể sử dụng mô hình kết hợp để dự đoán các hạng mục mà khách hàng muốn mua dựa vào các danh mục hàng hoá khác trong basket của họ
- Microsoft Sequence Clustering:
Thuật toán này phân tích các đối tượng dữ liệu có trình tự, các dữ liệu này
bao các sự kiện của một trật tự rõ ràng Bằng cách phân tích sự chuyển tiếp giữa các tình trạng của một chuỗi, thuật toán có thể dự đoán tương lai trong các chuỗi có quan
hệ với nhau Thuật toán này là sự pha trộn giữa thuật toán chuỗi và thuật toán liên cung Thuật toán nhóm tất cả các sự kiện phức tạp với các thuộc tính trình tự vào một phân đoạn dựa vào sự giống nhau của những chuỗi này Một đặc trưng sử dụng chuỗi
sự kiện cho thuật toán này là phân tích khách hàng web của một cổng thông tin (portal site) Một cổng thông tin là một tập các tên miền liên kết như: tin tức, thời
Trang 13tiết, giá tiền, mail, và thể thao…Mỗi khách hàng được liên kết với một chuỗi các click web trên các tên miền này
Thuật toán này có thể nhóm các khách hàng web về một hoặc nhiều nhóm dựa trên kiểu hành động của họ Những nhóm này có thể được trực quan hoá, cung cấp một bản chi tiết để biết được mục đích sử dụng trang web này của khách hàng
- Microsoft Neural Network:
Trong MS SQL server 2005 AS, thuật toán này tạo các mô hình khai thác hồi quy và phân loại bằng cách xây dựng đa lớp perception của các neuron Giống như thuật toán cây quyết định, đưa ra mỗi tình trạng của thuộc tính có thể dự đoán Thuật toán này tính toán khả năng có thể của mỗi trạng thái có thể của thuộc tính input Thuật toán sẽ xử lý toàn thể các trường hợp Sự lặp đi lặp lại so sánh các dự đoán phân loại của các trường với sự phân loại của các trường đã biết
Sai số từ sự phân loại ban đầu (của phép lặp ban đầu) của toàn bộ các trường hợp được trả về network và được sử dụng để thay đổi sự thực thi của network cho các phép lặp kế theo,v.v Có thể sau đó sử dụng những khả năng này để dự đoán kết quả của các thuộc tính dự đoán, dựa trên thuộc tính input Một sự khác biệt chính giữa thuật toán này và thuật toán Cây quyết định là các kiến thức xử lí là những tham
số network tối ưu nhằm làm nhỏ nhất các lỗi có thể trong khi cây quyết định tách các luật, mục đích để cực đại hoá thông tin có lợi Thuật toán này hỗ trợ cả các thuộc tính rời rạc và liên tục
Trang 14Chương 2: THUẬT TOÁN APPRIORI VÀ CÁC THUẬT TOÁN
XUẤT PHÁT TỪ APPRIORI KHAI PHÁ LUẬT KẾT HỢP
2.1 Thuật toán Appriori
Apriori là thuật toán khả sinh được đề xuất bởi R Agrawal và R Srikant vào năm
1993 để khai thác các tập item đối với các luật kết hợp kiểu bool Tên của thuật toán dựa
trên việc thuật toán sử dụng tri thức trước (prior knowledge) của các thuộc tính tập item
phổ biến, chúng ta sẽ thấy sau đây Apriori dùng cách tiếp cận lặp được biết đến như tìm kiếm level-wise, với các tập kitem được dùng để thăm dò các tập (k+1) item Đầu tiên, tập các tập một item phổ biến được tìm thấy bằng cách quét cơ sở dữ liệu để đếm số lượng từng item, và thu thập những item thỏa mãn độ hỗ trợ tối thiểu Tiếp theo, được dùng để tìm, tập các tập hai item phổ biến, nó được dùng để tìm L, và cứ thế tiếp tục, cho tới khi tập kitem phổ biến không thể tìm thấy Việc tìm kiếm cho mỗi L đòi hỏi một lần quét toàn bộ cơ sở dữ liệu Trước khi đi vào chi tiết của thuật toán Apriori đầu tiên chúng ta sẽ tìm hiểu xác định một vài thuật ngữ phổ biến được sử dụng trong thuật toán
Tính chất Apriori: Tất cả các tập con không công của một tập item phổ biến cũng phải là phổ biến Tính chất Apriori này dựa theo nhận xét sau Theo định nghĩa, nếu một tập item không thỏa ngưỡng ngang độ hỗ trợ tối thiểu, thì không là phổ biến, do đó Nếu một item A được thêm vào tập item, thi tập item được tạo thành (vd, IU A) không thể xuất hiện thường xuyên hơn một Tính chất này thuộc về loại đặc biệt của các thuộc tính gọi là không đơn điệu (antimonotone) trong nghĩa rằng nếu một tập không thể qua một cuộc kiểm tra, tất
cả các tập cha (superset) của nó cũng sẽ thất bại với một cuộc kiểm tra tương tự Đó gọi là không đơn điệu là vì thuộc tính này là đơn điệu (monotonic) trong ngữ cảnh của việc tham bại một cuộc kiểm tra Thuật toán Apriori:
Apriori dùng cách tiếp cận lặp được biết đến như tìm kiếm level-wise, với các tập kitem được dùng để thăm dò các tập (k+1) item Đầu tiên, tập (frequent môt- itemsets) phổ biến một được tìm thấy ký hiệu là C Bước tiếp theo là tính support có nghĩa là sự xuất hiện của các item trong cơ sở dữ liệu Điều này đòi hỏi phải duyệt qua toàn bộ cơ sở dữ liệu Sau
đó, bước cắt tỉa được thực hiện trên C trong đó những item được so sánh với thông số minimum support Những item thỏa điều kiện minimum support mới được xem xét cho tiến trình tiếp theo ký hiệu là L Sau đó, bước phát sinh các bộ ứng viên được thực hiện trong đó tập phổ biến hai được tạo ra ký hiệu là C Một lần nữa, cở sở dữ liệu được duyệt để tính toán
Trang 15support của hai tập phổ biến Theo support, các bộ ứng viên tạo ra được kiểm tra và chỉ những tập phổ biến nào thỏa điều kiện minimum support thì tiếp tục được sử dụng tạo ra bộ ứng viên tập phổ biến ba Bước trên tiếp tục cho đến khi không có tập phổ biến hoặc bộ ứng viên có thể được tạo ra
Vi dụ 1: Cho CSDL ( Dữ liệu mẫu của AllElectronices) với 9 giao dịch và độ hỗ trợ (minsup = 2/9 ) được thể hiện trong bảng sau:
TID List of item_ids T100 |1, |2, |5
T200 |2, |4 T300 |2, |3 T400 |1, |2, |4 T500 |1, |3 T600 |2, |3 T700 |1, |3 T800 |1, |2, |3, |5 T900 |1, |2, |3
Duyệt qua cơ sở dữ liệu để tìm tập mục thường xuyên và sắp xếp giảm dần
theo độ hỗ trợ L = {|2:7, |1:6, |3:6, |4:2, |5:2}
Trang 16itemset
C3 sau khi tỉa các itemset sẽ không là frequet
itemset Sup.count Support
{|1, |2, |5} 2 {|1, |2, |3} 2
Trang 17Ví dụ 2: Minh họa thuật toán Apriori
Cho CSDL giao tác D và I = { A, B, C, D, E } Tìm các tập phổ biến thỏa minsup = 50%
Áp dụng thuật toán Apriori: ta thực hiện từng bước như sau:
- Quét toàn bộ D: ta tính được độ hỗ trợ của các mục
- Xóa bỏ các mục có support < minsup: ta được tập L1 với các 1-itemset phổ biến
Bảng2.3 Bảng L1 với các 1-itemset phổ biến
Trang 18Bảng2.4 Bảng tập C2 với các 2-itemset ứng cử
2-itemset
{ A, B } { A, C } { A, E } { B, C } { B, E}
{ C, E }
- Thực hiện cắt tỉa: ta tiếp tục thu được tập C2 với các 2-itemset ứng cử
Bảng2.5 Bảng C2 sau khi tỉa
2-itemset
{ A, B } { A, C } { A, E } { B, C } { B, E}
{ C, E }
- Quét toàn bộ D: ta tính được độ hỗ trợ của các các 2-itemset ứng cử
Bảng2.6 Độ hỗ trợ của mỗi tập ứng cử trong bảng C2
Trang 19Bảng2.7 L2 với các 2-itemset phổ biến
- Thực hiện cắt tỉa: ta được tập C3 với các 3-itemset ứng cử sau Khi bỏ đi hai tập mục ứng cử không thỏa mãn ngưỡng hỗ trợ tối thiểu cho trước
Bảng2.9 Bảng C3 sau khhi tỉa
3-itemset { B, C, E}
- Quét toàn bộ D: ta tính được độ hỗ trợ của các 3-itemset ứng cử
Bảng2.10.Độ hỗ trợ của mỗi tập ứng cử trong bảng C3
3-itemset Count-support
{ B, C, E} 2 – 50%