Quá trình khai phá dữ liệu: Tập mục thường xuyên trong cơ sở dữ liệu

MỤC LỤC

Kiến trúc của hệ thống khai phá dữ liệu

- CSDL, kho dữ liệu hoặc nơi lưu trữ thông tin khác (Databases, Data warehouse,..): Đây là một hay một tập các CSDL, các kho dữ liệu, các trang tính hay các dạng lưu trữ thông tin khác. - Máy KPDL (Data mining engine): Một hệ thống KPDL cần phải có một tập các môđun chức năng để thực hiện công việc như: đặc trưng hóa, kết hợp, phân lớp, phân cụm, phân tích sự tiến hóa.

Quá trình khai phá dữ liệu

Còn KPDL chỉ là một bước trong quá trình khám phá tri thức, các công việc chủ yếu là xác định được bài toán khai phá, tiến hành lựa chọn phương pháp KPDL phù hợp với dữ liệu có được và tách ra các tri thức cần thiết. Ở đây có thể gặp một số vấn đề: Dữ liệu phải được sao ra nhiều bản (nếu được chiết suất vào các tệp), quản lý tập các tệp dữ liệu, phải lặp đi lặp lại nhiều lần toàn bộ quá trình (nếu mô hình dữ liệu thay đổi,..).

Một số kỹ thuật khai phá dữ liệu

Điểm phân tách trong cây quyết định là một nút (không phải là nút lá) sẽ sử dụng một số điều kiện để quyết định dữ liệu sẽ được phân tách như thế nào. Các nút cuối cùng trong cây quyết định chứa đựng các bộ mẫu giống nhau. Lợi thế của cây quyết định là các thuật toán chạy khá nhanh, với kết quả khỏ tốt và cú thể giải thớch được rừ ràng. Tuy nhiờn, bất lợi mà cỏc thuật toỏn của cây quyết định có thể gặp phải đó là chúng có thể tìm ra các điểm tới hạn cục bộ, đưa ra các kết quả không đúng. b) K-láng giềng gần nhất (k-Nearest Neighbor). Thuật toán này tìm ra các láng giềng gần nhất của mẫu thử nghiệm và quy về các nhãn lớp của chúng dựa trên các nhãn đa số, điều đó có nghĩa là các mẫu được quy về cùng lớp khi chúng là lân cận của nhau. Kỹ thuật này cho rằng vị trí trong không gian đặc trưng hàm ý một quan hệ họ hàng gần gũi ở giữa các nhãn lớp. Lợi thế của các thuật toán K-Láng giềng gần nhất là dễ thực thi, và kết quả mà nó đem lại khả năng dễ dàng giải thích. Nhưng một điểm bất lợi là các thuật toán này đưa ra các mô hình rất lớn với một tập dữ liệu nhỏ. c) Mạng nơron (Neural networks). Từng phần riêng biệt của dữ liệu được đưa vào mạng nơron và các hàm - các trọng số trong mạng nơron bị thay đổi (học - huấn luyện) tùy theo tỷ lệ lỗi của đầu ra. Phương pháp này thường đưa đến một khoảng thời gian huấn luyện dài ngay cả khi tập dữ liệu nhỏ. Lợi thế của mạng nơron là đưa đến các kết quả khá chính xác, nhưng bất lợi của nó là thường đòi hỏi thời gian huấn luyện dài và đưa ra các kết quả khó hiểu, cứng nhắc, bị bao bọc trong một hộp đen, khó giải thích tường minh. d) Giải thuật di truyền (Genetic algorithms). Các giải thuật di truyền được sử dụng để đưa ra công thức giả thuyết về sự phụ thuộc giữa các biến. Đối với một giải thuật di truyền phải sử dụng các giải pháp như cạnh tranh, lựa chọn và kết hợp giữa các tập hợp cá thể. Lợi thế của Giải thuật di truyền là thường đưa đến các kết quả kiểm tra khá chính xác, nhưng bất lợi của nó là kết quả có được thông qua việc lập trình tiến hóa và các kết quả cũng thường cứng nhắc, khó hiểu. e) Mạng Bayesian (Bayesian networks).

Các cơ sở dữ liệu phục vụ cho khai phá dữ liệu

Tập trung vào khám phá hầu hết sự thay đổi có nghĩa dưới dạng độ đo đã biết trước hoặc giá trị chuẩn, phát hiện độ lệch đáng kể giữa nội dung của tập con dữ liệu thực và nội dung mong đợi. Độ lệch theo nhóm là sự khác nhau của dữ liệu trong hai tập con dữ liệu, ở đây xét cả trường hợp tập con dữ liệu này thuộc tập con kia.

Một số ứng dụng của khai phá dữ liệu [13]

Khai phá luật kết hợp [3]

Định nghĩa 1.1: Độ hỗ trợ của một tập mục X trong CSDL D là tỷ số giữa các bản ghi T⊆D có chứa tập X và tổng số bản ghi trong D (hay là phần trăm của các bản ghi trong D có chứa tập mục X), ký hiệu là support(X) hay supp(X). Bài toán thứ hai được giải quyết như sau : giả sử đã tìm được X là tập mục thường xuyên, ta sinh ra các luật kết hợp bằng cách tìm ∀ ⊂Y X, kiểm tra độ tin cậy của luật X Y\ →Y có thỏa mãn độ tin cậy tối thiểu không. Vì vậy các tập mục ứng viên gồm k mục có thể được sinh ra bằng cách kết nối các tập mục thường xuyên có (k-1) mục và loại bỏ tập mục ứng viên nếu nó có chứa bất kỳ một tập con nào không phải là thường xuyên.Giả sử các mục dữ liệu trong mỗi giao tác được lưu theo trật tự từ điển.

Khi duyệt CSDL lần thứ hai, với mỗi giao tác, loại các mục không thường xuyên, các mục còn lại sắp theo thứ tự giảm dần của số lần xuất hiện, dãy các mục thường xuyên đó được thêm vào cây cùng với thay đổi số đếm của các mục trên cây cho phù hợp. Trong lần duyệt thứ hai, với mỗi giao tác t, gọi thủ tục insert_tree (t’, T), với t’ là nội dung của giao tác t sau khi đã bỏ các mục không thường xuyên và sắp theo thứ tự giảm dần của độ hỗ trợ, T là gốc của cây). Bắt đầu từ dưới lên của bảng header và cây, với mỗi mục A: Dùng nút liên kết duyệt qua tất cả các nút trên cây mà xuất hiện A, với mỗi nút N mà N.itemname = A, xác định các tập mục thường xuyên có xuất hiện A, thực hiện bằng cách chỉ cần tìm các đường đi từ gốc tới N.

Bảng 1.4: Cơ sở dữ liệu giao tác minh họa thực hiện thuật toán Apriori
Bảng 1.4: Cơ sở dữ liệu giao tác minh họa thực hiện thuật toán Apriori

KHAI PHÁ TẬP MỤC THƯỜNG XUYấN ĐểNG TRONG CƠ SỞ DỮ LIỆU

    Do đó, để giảm thời gian trong công đoạn 1 trong khai thác luật kết hợp, chúng ta có thể đi tìm các tập thường xuyên đóng thay cho các tập thường xuyên, và thực hiện rút trích luật kết hợp trên các tập thường xuyên đóng. Khảo sát đồng thời tập mục dữ liệu và tập các giao tác thông qua cây tìm kiếm IT-Tree (Itemset-Tidset tree), điều này khác với đa số các phương pháp trước, việc khảo sát chỉ xét trên tập mục dữ liệu. Thuật toán CLOSET + sử dụng chiến lược duyệt theo chiều sâu và mô hình chia để trị cùng với việc áp dụng tính chất của tập thường xuyên đóng nên không cần phép Superset checking vẫn đảm bảo tính đóng của các tập thường xuyên tìm thấy.

    Tiếp đó, khi xét đến tập danh mục {TW:3} thì theo tính chất sub-itemset pruning thì do {TW} là tập con của tập thường xuyên đóng {TACW} vừa tìm thấy ở trên và lại có cùng độ hỗ trợ là 3, do đó không cần thực hiện phép chiếu với {TW}. Có thể nhận thấy, khi CSDL có tỷ lệ nén cao thì nhiều khả năng xuất hiện các FPtree cục bộ là đường đơn, và do đó tính chất item merging sẽ có cơ hội áp dụng nhiều lần để làm giảm không gian tìm kiếm. Khi bổ sung tập thường xuyên đóng mới vào cây, duyệt từ gốc nếu nút đã có thì lấy giá trị lớn nhất thay vì tính tích lũy, nếu nút chưa có thì tạo nút mới với độ hỗ trợ bằng độ hỗ trợ của tập đóng thêm vào cây.

    Hình 2.2: Cây IT-tree dùng Tidset với minSup =3
    Hình 2.2: Cây IT-tree dùng Tidset với minSup =3

    CHƯƠNG TRÌNH THỰC NGHIỆM ỨNG DỤNG TRONG LĨNH VỰC Y TẾ

    Bài toán phát hiện luật kết hợp trong dữ liệu y tế

    Sau khi thu thập và xử lý dữ liệu ta nhận thấy: Mỗi bệnh nhân gồm có rất nhiều thông tin khi đến khám như họ tên, giới tính, tuổi, địa chỉ, các triệu chứng của bệnh (mệt mỏi, khó thở, sốt…). Dữ liệu đầu vào: Tập dữ liệu y khoa của những bệnh nhân có độ tuổi từ 0 đến 70 tuổi được chuẩn đoán bị bệnh hen suyễn được lưu trữ tại kho dữ liệu của bệnh viện C – Thái Nguyên đã xử lý dữ liệu theo quy định khai phá dữ liệu đã được trình bày chi tiết trong 1.3. C# là một ngôn ngữ hướng đối tượng khá mạnh, đặc biệt nó hỗ trợ các Collection được sử dụng để xử lý các dạng dữ liệu kiểu mảng đối tượng và có cấu trúc luôn luôn thay đổi.

    • TransactionDatabase: Chứa các phương thức đọc dữ liệu đầu vào từ tập tin dạng text, chuyển đổi dữ liệu thành dạng dọc (cấu trúc có dạng Itemset x Danh_sach_transaction).

    Bảng 3.2: Lựa chọn thuộc tính khai phá
    Bảng 3.2: Lựa chọn thuộc tính khai phá

    Kết quả thực nghiệm

    Để thêm mới bản ghi ấn vào nút “THÊM MỚI”, một cửa sổ nhập liệu cho phép ta nhập thêm bản ghi mới. Để chỉnh sửa bản ghi ta chọn vào một dòng trong GridView và ấn nút “SỬA ĐỔI”. Để hiểu được ý nghĩa của các tập mục thường xuyên và các luật kết hợp tìm được, ta cần tra mã thuộc tính quay lại tên thuộc tính, ý nghĩa các thuộc tính đó.

    Các kết quả khai phá này rất hữu ích cho các nhà quản lý và các bác sĩ tham khảo trong quá trình chẩn đoán và điều trị bệnh.

    Nhận xét