I. ĐẶT VẤN ĐỀ Tên miền này đơn giản có 7 thuộc tính Boolean, một cho mỗi diode phát sáng của một màn hình hiển thị 7-phân khúc. Nhiệm vụ là để xác định đó là chữ số được hiển thị trong màn hình. Các vấn đề sẽ được dễ dàng nếu không phải dành cho sự ra đời của tiếng ồn. Trong trường hợp này, mỗi giá trị thuộc tính có xác suất 10% có giá trị của nó đảo ngược. Điều này thiết lập dữ liệu là một mẫu của 500 trường hợp được thu được từ các máy phát điện dữ liệu gốc. II. XÂY DỰNG CƠ SỞ DỮ LIỆU Đề tài sử dụng dataset led7digit cung cấp giá trị của 13 thuộc tính phân loại cho 124 bộ dữ liệu. Thông tin chung của dataset led7digit gồm: Các thuộc tính có thể được rời rạc lên đến 10 giá trị liên tục hay. Một thuộc tính rời rạc có thể được danh nghĩa với các giá trị v1, v2, v3 ... hoặc số nguyên với giá trị 0, 1, 2, ... . III. TIẾN HÀNH THỰC NGHIỆM TRÊN WEKA 1. Tiền xử lý dữ liệu Tiến hành khởi chạy weka.Trong giao diện đồ họa của Weka,chọn Explorer. Trong weka lưu trữ dữ liệu bằng định dạng ARFF. File ARFF bao gồm danh sách các trường, và các giá trị thuộc tính cho mỗi trường được phân cách bằng dấu phẩy. Hầu hết các bảng tính và các chương trình cơ sở dữ liệu cho phép bạn chuyển dữ liệu thành một tập tin mà các giá trị của thuộc tính đều được tách nhau bằng dấu phẩy như trong định dạng của file arff.Bạn chỉ cần đưa file vào một trình soạn thảo văn bản hoặc từ bộ vi xử lý; thêm tên của tập dữ liệu bằng cách sử dụng các từ @relation, Khai báo tên các thuộc tính bằng từ khóa @attribute, và từ khóa @data để bắt đầu đưa dữ liệu vào .
BỘ QUỐC PHÒNG HỌC VIỆN KỸ THUẬN QUÂN SỰ ************* BÀI TẬP LỚN KHAI PHÁ DỮ LIỆU Đề tài: led7digit data set Giáo viên hướng dẫn: Hồ Nhật Quang Sinh viên thực hiện: Dương Hoàng Mạnh Tuấn Lớp: Hệ thống thông tin 6 Khai phá dữ liệu 1 I. ĐẶT VẤN ĐỀ Tên miền này đơn giản có 7 thuộc tính Boolean, một cho mỗi diode phát sáng của một màn hình hiển thị 7-phân khúc. Nhiệm vụ là để xác định đó là chữ số được hiển thị trong màn hình. Các vấn đề sẽ được dễ dàng nếu không phải dành cho sự ra đời của tiếng ồn. Trong trường hợp này, mỗi giá trị thuộc tính có xác suất 10% có giá trị của nó đảo ngược. Điều này thiết lập dữ liệu là một mẫu của 500 trường hợp được thu được từ các máy phát điện dữ liệu gốc. II. XÂY DỰNG CƠ SỞ DỮ LIỆU Đề tài sử dụng dataset led7digit cung cấp giá trị của 13 thuộc tính phân loại cho 124 bộ dữ liệu. Thông tin chung của dataset led7digit gồm: Khai phá dữ liệu 2 Các thuộc tính có thể được rời rạc lên đến 10 giá trị liên tục hay. Một thuộc tính rời rạc có thể được danh nghĩa với các giá trị v1, v2, v3 . hoặc số nguyên với giá trị 0, 1, 2, . . III. TIẾN HÀNH THỰC NGHIỆM TRÊN WEKA 1. Tiền xử lý dữ liệu Tiến hành khởi chạy weka.Trong giao diện đồ họa của Weka,chọn Explorer. Trong weka lưu trữ dữ liệu bằng định dạng ARFF. File ARFF bao gồm danh sách các trường, và các giá trị thuộc tính cho mỗi trường được phân cách bằng dấu phẩy. Hầu hết các bảng tính và các chương trình cơ sở dữ liệu cho phép bạn chuyển dữ liệu thành một tập tin mà các giá trị của thuộc tính đều được tách nhau bằng dấu phẩy như trong định dạng của file arff.Bạn chỉ cần đưa file vào một trình soạn thảo văn bản hoặc từ bộ vi xử lý; thêm tên của tập dữ liệu bằng cách sử dụng các từ @relation, Khai báo tên các thuộc tính bằng từ khóa @attribute, và từ khóa @data để bắt đầu đưa dữ liệu vào . Sau khi đã tạo xong file arff thì tiến hành đọc dữ liệu vào weka Khai phá dữ liệu 3 Ta thấy xuất hiện dữ liệu trên cửa số Preprocess của WEKA như sau: Bạn có thể chỉnh sửa dữ liệu bằng cách click vào , lúc đó bảng dữ liệu sẽ xuất hiện để bạn chỉnh sửa. Khai phá dữ liệu 4 2. Xây dựng cây quyết định: - Bước đầu tiên ta sử dụng tất cả dữ liệu để trainning cho cây: + Nhấn vào tab Classify chọn thuật toán sử dụng bằng cách nhấn vào nút Choose; khi cây thư mục hiện thư mục Trees/J48: Khai phá dữ liệu 5 Để tiến hành trainning trên toàn bộ dữ liệu ta chọn vào tùy chọn Use tranning set rồi nhấn Start. Ta thu được kết quả hiển thị ở khung Classifier Output: Nội dung kết quả === Run information === Scheme: weka.classifiers.trees.J48 -C 0.25 -M 2 Relation: led7digit Instances: 500 Attributes: 8 Led1 Led2 Led3 Led4 Led5 Led6 Led7 Number Test mode: evaluate on training data === Classifier model (full training set) === J48 pruned tree ------------------ Led2 <= 0 | Led7 <= 0 | | Led4 <= 0 Khai phá dữ liệu 6 | | | Led1 <= 0: 1 (37.0/8.0) | | | Led1 > 0: 7 (43.0/4.0) | | Led4 > 0 | | | Led5 <= 0 | | | | Led1 <= 0: 4 (5.0/1.0) | | | | Led1 > 0: 7 (6.0/3.0) | | | Led5 > 0: 2 (7.0/2.0) | Led7 > 0 | | Led6 <= 0: 2 (41.0/7.0) | | Led6 > 0 | | | Led3 <= 0 | | | | Led1 <= 0: 5 (3.0/1.0) | | | | Led1 > 0 | | | | | Led5 <= 0: 3 (5.0/3.0) | | | | | Led5 > 0: 6 (4.0/2.0) | | | Led3 > 0 | | | | Led4 <= 0 | | | | | Led5 <= 0: 1 (8.0/6.0) | | | | | Led5 > 0: 0 (4.0/1.0) | | | | Led4 > 0 | | | | | Led5 <= 0: 3 (38.0/3.0) | | | | | Led5 > 0: 8 (4.0/2.0) Led2 > 0 | Led5 <= 0 | | Led1 <= 0: 4 (50.0/9.0) | | Led1 > 0 | | | Led3 <= 0: 5 (48.0/7.0) | | | Led3 > 0: 9 (55.0/23.0) | Led5 > 0 | | Led3 <= 0: 6 (45.0/9.0) | | Led3 > 0 | | | Led4 <= 0: 0 (36.0/6.0) | | | Led4 > 0 | | | | Led7 <= 0 | | | | | Led1 <= 0: 4 (5.0) | | | | | Led1 > 0: 8 (3.0/1.0) | | | | Led7 > 0: 8 (53.0/18.0) Number of Leaves : 21 Size of the tree : 41 Time taken to build model: 0.04 seconds === Evaluation on training set === === Summary === Khai phá dữ liệu 7 Correctly Classified Instances 384 76.8 % Incorrectly Classified Instances 116 23.2 % Kappa statistic 0.7421 Mean absolute error 0.0734 Root mean squared error 0.1916 Relative absolute error 40.8548 % Root relative squared error 63.9187 % Coverage of cases (0.95 level) 97 % Mean rel. region size (0.95 level) 33.38 % Total Number of Instances 500 === Detailed Accuracy By Class === TP Rate FP Rate Precision Recall F-Measure ROC Area Class 0.733 0.015 0.825 0.733 0.776 0.96 0 0.838 0.03 0.689 0.838 0.756 0.978 1 0.765 0.02 0.813 0.765 0.788 0.961 2 0.649 0.014 0.86 0.649 0.74 0.944 3 0.962 0.022 0.833 0.962 0.893 0.987 4 0.827 0.018 0.843 0.827 0.835 0.966 5 0.809 0.024 0.776 0.809 0.792 0.96 6 0.737 0.016 0.857 0.737 0.792 0.971 7 0.736 0.047 0.65 0.736 0.69 0.923 8 0.653 0.051 0.582 0.653 0.615 0.896 9 Weighted Avg. 0.768 0.025 0.777 0.768 0.768 0.954 === Confusion Matrix === a b c d e f g h i j <-- classified as 33 1 1 0 0 0 2 0 5 3 | a = 0 0 31 1 0 1 1 0 3 0 0 | b = 1 0 0 39 0 0 0 2 2 7 1 | c = 2 0 3 5 37 1 0 0 2 2 7 | d = 3 0 0 0 0 50 0 0 0 0 2 | e = 4 0 0 1 1 2 43 2 0 0 3 | f = 5 1 0 0 1 0 3 38 0 3 1 | g = 6 1 9 1 1 0 0 0 42 0 3 | h = 7 3 0 0 1 1 1 5 0 39 3 | i = 8 2 1 0 2 5 3 0 0 4 32 | j = 9 Tóm tắt kết quả khi phân lớp: + Trường hợp phân lớp chính xác: 86 chiếm 81.1321% +Trường hợp không chính xác: 20 chiếm 18.8679% - Để xem kết quả cây dưới dạng hình ảnh tiến hành như sau: Khai phá dữ liệu 8 Cây quyết định sinh ra 3. Tiến hành chạy thử nhiều lần cây trên số lượng dữ liệu tranning khác nhau: Lần thứ hai: Lấy 90% dữ liệu để xây dựng cây, 10% để test: === Run information === Scheme: weka.classifiers.trees.J48 -C 0.25 -M 2 Relation: led7digit Instances: 500 Attributes: 8 Khai phá dữ liệu 9 Led1 Led2 Led3 Led4 Led5 Led6 Led7 Number Test mode: split 90.0% train, remainder test === Classifier model (full training set) === J48 pruned tree ------------------ Led2 <= 0 | Led7 <= 0 | | Led4 <= 0 | | | Led1 <= 0: 1 (37.0/8.0) | | | Led1 > 0: 7 (43.0/4.0) | | Led4 > 0 | | | Led5 <= 0 | | | | Led1 <= 0: 4 (5.0/1.0) | | | | Led1 > 0: 7 (6.0/3.0) | | | Led5 > 0: 2 (7.0/2.0) | Led7 > 0 | | Led6 <= 0: 2 (41.0/7.0) | | Led6 > 0 | | | Led3 <= 0 | | | | Led1 <= 0: 5 (3.0/1.0) | | | | Led1 > 0 | | | | | Led5 <= 0: 3 (5.0/3.0) | | | | | Led5 > 0: 6 (4.0/2.0) | | | Led3 > 0 | | | | Led4 <= 0 | | | | | Led5 <= 0: 1 (8.0/6.0) | | | | | Led5 > 0: 0 (4.0/1.0) | | | | Led4 > 0 | | | | | Led5 <= 0: 3 (38.0/3.0) | | | | | Led5 > 0: 8 (4.0/2.0) Led2 > 0 | Led5 <= 0 | | Led1 <= 0: 4 (50.0/9.0) Khai phá dữ liệu 10