Sử dụng KnowledgeFlow trong Weka để xây dựng mô hình Khai phá dữ liệu
Nguyễn Văn Chức – chuc1803@gmail.com
Weka là công cụ rất mạnh trong xây dựng các mô hình khai phá dữ liệu. Weka Tools triển khai hầu hết các kỹ thuật khai phá dữ liệu như Classification, Clustering, Association Rule,.. Trong mỗi kỹ thuật, Weka triển khai rất nhiều thuật toán cho phép lựa chọn thuật toán phù hợp với yêu cầu và dữ liệu trong việc khai phá dữ liệu.
Trong phần này, tôi sẽ trình bày công cụ KnowledgeFlow (KF) của Weka trong việc xây dựng các mô hình khai phá dữ liệu. KF là công cụ rất quan trong đối với việc xây dựng mô hình khai phá dữ liệu vì KF cho phép người xây dựng mô hình có thể điều chỉnh từng giai đoạn (phase) cũng như điều chỉnh các tham số tương ứng với từng thuật toán qua từng bước để có một mô hình khai phá với kết quả tốt hơn.
Trong ví dụ sau, tôi sẽ trình bày cách sử dụng KF trng Weka để xây dựng mô hình phân lớp (Classification Model) trên Dataset Iris. (Xem mô tả chi tiết và Download Dataset Iris xem tại đây: http://bis.net.vn/forums/t/369.aspx).
Về cơ bản, Các bước xây dựng một KF gồm các bước sau:
1. Xác định nguồn dữ liệu (Data Sources)
2. Xác định các kỹ thuật Train và Test Mô hình (Evaluation)
3. Xác định các thuật toán sử dụng trong mô hình (Classification, Clustering, Association Rule,…). Chúng ta có thể sử dụng nhiều thuật toán để so sánh và chọn mô hình có kết quả tốt nhất
4. Hiển thị kết quả mô hình (Visualization)
Trong KF dưới đây, xây dựng mô hình phân lớp trên hoa Iris sử dụng 3 thuật toán phân lớp là J48, Simple CART (Cây hồi qui đơn giản) và Multiplayer Perceptron (Mô hình mạng Neuron nhiều lớp).
Chọn KnowledgeFlow khi khởi động Weka
Xác định nguồn và định dạng dữ liệu (DataSources): Chọn Arff Loader để nạp file dữ liệu iris.arff
Chọn tab Evaluation và chọn ClassAssigner để xác định thuộc tính phân lớp (Category Variable) của mô hình. Để nạp dữ liệu từ dataset vào mô hình, bấm phải chuột vào Iris dataset và chọn dataset, kéo và thả kến ClassAssigner
Chọn kỹ thuật Train và Test Mô hình (ở đây sử dụng kỹ thuật CV – CrossValidation). Trong Tab Evaluation chọn CrossValidation FoldMaker. Nạp dữ liệu vào CV giống như nạp dữ liệu từ Iris Dataset vào ClassAssigner
Chọn Tab Classifiers và chọn các thuật toán để xây dựng mô hình (trước tiên chọn thuật toán J48). Sau đó nạp dữ liệu để train và Test mô hình, bấm phải chuột vào CrossValidation FoldMaker chọn TrainingSet nối với J48, sau đó chọn TestSet (chú ý là phải chọn TraningSet trước)
Hiệu chỉnh tham số của thuật toán bằng cách double click và thuật toán
Chọn Tab Evaluation chọn ClassifierPerformanceEvaluator để đánh giá hiệu quả của mô hình phân lớp
Chọn Tab: Visualization và chọn Text Viewer hoặc GraphViewer để xem kết quả của mô hình dưới dạng Text hay dưới dạng trực quan quan bằng hình ảnh.
Sau khi thiết lập đầy đủ các bước và tham số cho các bước của mô hình. Thực hiện mô hình bằng cách bấm phím phải chuột vào Iris Dataset và chọn Start Loading
Xem kết quả mô hình bằng cách bấm phait chuột vào TextViewer và chọn Show Results
Kết quả mô hình phân lớp xây dựng trên thuật toán J48
Tương tự, ta có thể xây dựng mô hình trên nhiều thuật toán để chọn thuật toán tốt nhất cho mô hình. KF dưới đây sử dụng 3 thuật toán phân lớp là J48, SimpleCART (Cây hồi qui đơn giản) và Multiplayer Perceptron (Mô hình mạng Neuron nhiều lớp).
Kết quả của mô hình theo 3 thuật toán, trong đó mô hình phân lớp dựa trên thuật toán Multiplayer Perceptron có độ chính xác cao nhất (97.3333 %), sau đó là thuật toán J48 với độ chính xác là 96% và cuối cùng là thuật toán SimpleCART với độ chính xác là 95.3333%.
Chú ý, chúng ta có thể thay đổi các tham số trong các bước của KF để thấy sự khác nhau trong kết quả phân lớp của các thuật toán.
KnowledgeFlow của Weka là công cụ rất thuận lợi cho việc xây dựng các mô hình khai phá dữ liệu. Với KF bạn có thể từng bước hiểu chỉnh các tham số của mô hình, lựa chọn nhiều kỹ thuật, thuật toán khác nhau để xây dựng mô hình. Từ đó có thể chọn ra mô hình tốt nhất cho công việc khai phá trên dữ liệu cụ thể của bạn.
PS. All comments please send to chucnv@ud.edu.vn. Thank you and Welcome!