I. ĐẶT VẤN ĐỀ AutoUniv (AU) là một công cụ để tạo ra các mô hình phân loại mà sau đó có thể được được sử dụng để tạo ra các ví dụ được phân loại đánh giá học tập phân loại thuật toán. Động lực cho AU là để cung cấp một thay thế cho dữ liệu bộ có sẵn từ kho chẳng hạn như [1]. Kho cung cấp dữ liệu tập hợp nhiều nhất 'thực tế' một phần đã được hiến tặng của các doanh nghiệp hoặc các nhà nghiên cứu khoa học; một là nhân tạo chẳng hạn như [2]. Các kho này có phục vụ máy học tập tốt trong nhiều thập kỷ. Nó bây giờ là với tiêu chí là một thuật toán mới được đánh giá trên một số lượng đáng kể các dữ liệu này đặt ra trước khi xuất bản có thể được dự kiến. Có rất nhiều để nói cho các đánh giá của các thuật toán trên dữ liệu thực tế.Không ít nhất, có là một thực tế rằng dữ liệu đã không được chế tác để phục vụ mục đích của người thử nghiệm. Điều này tăng thêm sự tự tin rằng kết quả sẽ được nhân rộng trên các dữ liệu thực tế gặp phải trong tương lai. Ngược lại, với dữ liệu nhân tạo,có một cảm giác rằng bản chất giả tạo của nó làm cho kết quả thu được ít hữu ích một chỉ số về hiệu suất trong tương lai. Thường thì nó là quá đơn giản trong cấu trúc, sau một số quy tắc đơn giản, chức năng toán học, có thể với tiếng ồn thêm. Đó chắc chắn là các trường hợp đó đánh giá một thuật toán chỉ nhân tạo dữ liệu sẽ rút ra một phản ứng tiêu cực từ một nhà phê bình của báo. II. XÂY DỰNG CƠ SỞ DỮ LIỆU Đề tài sử dụng dataset AutoUniv cung cấp giá trị của 4 thuộc tính phân loại cho 1000 bộ dữ liệu. Thông tin chung của dataset AU 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, ... . @ATTRIBUTE att1 NUMERIC @ATTRIBUTE att2 NUMERIC @ATTRIBUTE att3 NUMERIC @ATTRIBUTE att4 NUMERIC @ATTRIBUTE att5 NUMERIC @ATTRIBUTE att6 NUMERIC @ATTRIBUTE att7 NUMERIC @ATTRIBUTE att8 NUMERIC @ATTRIBUTE att9 NUMERIC @ATTRIBUTE att10 NUMERIC @ATTRIBUTE att11 NUMERIC @ATTRIBUTE att12 NUMERIC @ATTRIBUTE att13 NUMERIC @ATTRIBUTE att14 NUMERIC @ATTRIBUTE att15 NUMERIC @ATTRIBUTE att16 NUMERIC @ATTRIBUTE att17 NUMERIC @ATTRIBUTE att18 NUMERIC @ATTRIBUTE att19 NUMERIC @ATTRIBUTE att20 NUMERIC @ATTRIBUTE class {class1,class2}
Trang 1BỘ 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: Sử dụng phần mềm Weka phân lớp cho dataset AutoUniv
Giáo viên hướng dẫn: Hồ Nhật Quang Sinh viên thực hiện: Vũ Anh Tú Lớp: Hệ thống thông tin 6
Trang 2I ĐẶT VẤN ĐỀ
AutoUniv (AU) là một công cụ để tạo ra các mô hình phân loại mà sau đó có thể được được sử dụng để tạo ra các ví dụ được phân loại đánh giá học tập phân loại thuật toán Động lực cho AU là để cung cấp một thay thế cho dữ liệu bộ có sẵn từ kho chẳng hạn như [1] Kho cung cấp dữ liệu tập hợp nhiều nhất 'thực tế' một phần đã được hiến tặng của các doanh nghiệp hoặc các nhà nghiên cứu khoa học; một là nhân tạo chẳng hạn như [2] Các kho này có phục vụ máy học tập tốt trong nhiều thập kỷ Nó bây giờ
là với tiêu chí là một thuật toán mới được đánh giá trên một số lượng đáng kể các dữ liệu này đặt ra trước khi xuất bản có thể được dự kiến Có rất nhiều để nói cho các đánh giá của các thuật toán trên dữ liệu thực tế.Không ít nhất, có là một thực tế rằng
dữ liệu đã không được chế tác để phục vụ mục đích của người thử nghiệm Điều này tăng thêm sự tự tin rằng kết quả sẽ được nhân rộng trên các dữ liệu thực tế gặp phải trong tương lai Ngược lại, với dữ liệu nhân tạo,có một cảm giác rằng bản chất giả tạo của nó làm cho kết quả thu được ít hữu ích một chỉ số về hiệu suất trong tương lai Thường thì nó là quá đơn giản trong cấu trúc, sau một số quy tắc đơn giản, chức năng toán học, có thể với tiếng ồn thêm Đó chắc chắn là các trường hợp đó đánh giá một thuật toán chỉ nhân tạo dữ liệu sẽ rút ra một phản ứng tiêu cực từ một nhà phê bình của báo.
Trang 3II XÂY DỰNG CƠ SỞ DỮ LIỆU
Đề tài sử dụng dataset AutoUniv cung cấp giá trị của 4 thuộc tính phân loại cho
Thông tin chung của dataset AU 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,
@ATTRIBUTE att1 NUMERIC
@ATTRIBUTE att2 NUMERIC
@ATTRIBUTE att3 NUMERIC
@ATTRIBUTE att4 NUMERIC
@ATTRIBUTE att5 NUMERIC
@ATTRIBUTE att6 NUMERIC
@ATTRIBUTE att7 NUMERIC
@ATTRIBUTE att8 NUMERIC
@ATTRIBUTE att9 NUMERIC
@ATTRIBUTE att10 NUMERIC
@ATTRIBUTE att11 NUMERIC
@ATTRIBUTE att12 NUMERIC
@ATTRIBUTE att13 NUMERIC
@ATTRIBUTE att14 NUMERIC
@ATTRIBUTE att15 NUMERIC
@ATTRIBUTE att16 NUMERIC
@ATTRIBUTE att17 NUMERIC
@ATTRIBUTE att18 NUMERIC
@ATTRIBUTE att19 NUMERIC
@ATTRIBUTE att20 NUMERIC
@ATTRIBUTE class {class1,class2}
Trang 4III PHÂN TÍCH YÊU CẦU BÀI TOÁN
AutoUniv tạo ra ba tập tin văn bản cho một mô hình: Prolog một đặc điểm kỹ thuật của mô hình được sử dụng để tạo ra các ví dụ ( Aupl), một tuyên bố thân thiện với người sử dụng các quy tắc phân loại trong một 'nếu sau đó 'định dạng (aurules.), một bản tóm tắt thống kê của các thuộc tính chính của mô hình, bao gồm cả tỷ lệ
Bayes (auprops.)
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 Ví dụ như hình dưới đây :
Sau khi đã tạo xong file arff thì tiến hành đọc dữ liệu vào weka
Ta thấy xuất hiện dữ liệu trên cửa số Preprocess của WEKA như sau:
Trang 5Bạ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
Trang 62 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:
Trang 7Để 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: au1
Instances: 1000
Attributes: 21
att1
att2
att3
att4
att5
att6
att7
att8
att9
att10
att11
att12
att13
att14
att15
att16
att17
att18
Trang 8att19
att20
class
Test mode: evaluate on training data
=== Classifier model (full training set) ===
J48 pruned tree
-att19 <= 0
| att2 <= 0
| | att4 <= 0: class2 (264.0/37.0)
| | att4 > 0
| | | att17 <= 0
| | | | att11 <= 0: class2 (28.0/3.0)
| | | | att11 > 0
| | | | | att5 <= 0: class2 (18.0/3.0)
| | | | | att5 > 0
| | | | | | att10 <= 0: class1 (4.0)
| | | | | | att10 > 0
| | | | | | | att3 <= 0: class1 (2.0)
| | | | | | | att3 > 0: class2 (6.0/1.0)
| | | att17 > 0
| | | | att13 <= 0
| | | | | att18 <= 0: class1 (3.0/1.0)
| | | | | att18 > 0: class2 (9.0/2.0)
| | | | att13 > 0: class1 (18.0/1.0)
| att2 > 0
| | att16 <= 0
| | | att14 <= 0
| | | | att5 <= 0: class2 (59.0/15.0)
| | | | att5 > 0
| | | | | att12 <= 0
| | | | | | att3 <= 0
| | | | | | | att4 <= 0
| | | | | | | | att8 <= 0
| | | | | | | | | att13 <= 0: class2 (3.0)
| | | | | | | | | att13 > 0
| | | | | | | | | | att7 <= 0: class2 (3.0/1.0)
| | | | | | | | | | att7 > 0: class1 (2.0)
| | | | | | | | att8 > 0: class1 (2.0)
| | | | | | | att4 > 0: class2 (3.0)
| | | | | | att3 > 0
| | | | | | | att7 <= 0
| | | | | | | | att15 <= 0: class1 (2.0)
| | | | | | | | att15 > 0: class2 (2.0)
| | | | | | | att7 > 0: class1 (6.0)
Trang 9| | | | | att12 > 0
| | | | | | att1 <= 0
| | | | | | | att10 <= 0: class1 (2.0)
| | | | | | | att10 > 0: class2 (4.0/1.0)
| | | | | | att1 > 0: class2 (16.0/3.0)
| | | att14 > 0
| | | | att6 <= 0
| | | | | att11 <= 0
| | | | | | att4 <= 0: class1 (35.0/3.0)
| | | | | | att4 > 0
| | | | | | | att9 <= 0: class1 (3.0)
| | | | | | | att9 > 0: class2 (3.0)
| | | | | att11 > 0
| | | | | | att18 <= 0
| | | | | | | att4 <= 0
| | | | | | | | att7 <= 0
| | | | | | | | | att8 <= 0
| | | | | | | | | | att3 <= 0: class2 (3.0)
| | | | | | | | | | att3 > 0: class1 (3.0/1.0)
| | | | | | | | | att8 > 0: class1 (2.0)
| | | | | | | | att7 > 0: class2 (10.0)
| | | | | | | att4 > 0: class1 (4.0)
| | | | | | att18 > 0: class1 (29.0/5.0)
| | | | att6 > 0
| | | | | att5 <= 0
| | | | | | att4 <= 0: class1 (3.0)
| | | | | | att4 > 0
| | | | | | | att9 <= 0
| | | | | | | | att8 <= 0: class1 (3.0/1.0)
| | | | | | | | att8 > 0: class2 (5.0)
| | | | | | | att9 > 0: class1 (4.0/1.0)
| | | | | att5 > 0: class2 (15.0/1.0)
| | att16 > 0
| | | att4 <= 0: class2 (124.0/22.0)
| | | att4 > 0
| | | | att17 <= 0
| | | | | att8 <= 0: class2 (16.0/1.0)
| | | | | att8 > 0
| | | | | | att13 <= 0: class1 (5.0/1.0)
| | | | | | att13 > 0: class2 (5.0/1.0)
| | | | att17 > 0
| | | | | att20 <= 0
| | | | | | att5 <= 0
| | | | | | | att8 <= 0: class1 (2.0)
| | | | | | | att8 > 0: class2 (3.0/1.0)
| | | | | | att5 > 0: class2 (3.0)
| | | | | att20 > 0: class1 (8.0/1.0)
att19 > 0
Trang 10| att4 <= 0: class2 (188.0/20.0)
| att4 > 0
| | att17 <= 0: class2 (46.0/6.0)
| | att17 > 0
| | | att13 <= 0
| | | | att6 <= 0: class1 (2.0)
| | | | att6 > 0
| | | | | att8 <= 0: class2 (6.0/1.0)
| | | | | att8 > 0
| | | | | | att12 <= 0: class2 (3.0/1.0)
| | | | | | att12 > 0: class1 (2.0)
| | | att13 > 0: class1 (9.0/1.0)
Number of Leaves : 50
Time taken to build model: 0.12 seconds
=== Evaluation on training set ===
=== Summary ===
Correctly Classified Instances 864 86.4 %
Incorrectly Classified Instances 136 13.6 %
Kappa statistic 0.5925
Mean absolute error 0.2272
Root mean squared error 0.337
Relative absolute error 59.1484 %
Root relative squared error 76.9312 %
Coverage of cases (0.95 level) 100 %
Mean rel region size (0.95 level) 96.5 %
Total Number of Instances 1000
=== Detailed Accuracy By Class ===
TP Rate FP Rate Precision Recall F-Measure ROC Area Class 0.537 0.022 0.897 0.537 0.671 0.813 class1 0.978 0.463 0.858 0.978 0.914 0.813 class2 Weighted Avg 0.864 0.349 0.868 0.864 0.851 0.813
=== Confusion Matrix ===
a b < classified as
139 120 | a = class1
16 725 | b = class2 Tóm tắt kết quả khi phân lớp:
+ Trường hợp phân lớp chính xác: 1740 chiếm 79.055%
+Trường hợp không chính xác: 461 chiếm 20.945%
Trang 11- Để xem kết quả cây dưới dạng hình ảnh tiến hành như sau:
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: au1
Instances: 1000
Trang 12Attributes: 21
att1
att2
att3
att4
att5
att6
att7
att8
att9
att10
att11
att12
att13
att14
att15
att16
att17
att18
att19
att20
class
Test mode: split 90.0% train, remainder test
=== Classifier model (full training set) ===
J48 pruned tree
-att19 <= 0
| att2 <= 0
| | att4 <= 0: class2 (264.0/37.0)
| | att4 > 0
| | | att17 <= 0
| | | | att11 <= 0: class2 (28.0/3.0)
| | | | att11 > 0
| | | | | att5 <= 0: class2 (18.0/3.0)
| | | | | att5 > 0
| | | | | | att10 <= 0: class1 (4.0)
| | | | | | att10 > 0
| | | | | | | att3 <= 0: class1 (2.0)
| | | | | | | att3 > 0: class2 (6.0/1.0)
| | | att17 > 0
Trang 13| | | | att13 <= 0
| | | | | att18 <= 0: class1 (3.0/1.0)
| | | | | att18 > 0: class2 (9.0/2.0)
| | | | att13 > 0: class1 (18.0/1.0)
| att2 > 0
| | att16 <= 0
| | | att14 <= 0
| | | | att5 <= 0: class2 (59.0/15.0)
| | | | att5 > 0
| | | | | att12 <= 0
| | | | | | att3 <= 0
| | | | | | | att4 <= 0
| | | | | | | | att8 <= 0
| | | | | | | | | att13 <= 0: class2 (3.0)
| | | | | | | | | att13 > 0
| | | | | | | | | | att7 <= 0: class2 (3.0/1.0)
| | | | | | | | | | att7 > 0: class1 (2.0)
| | | | | | | | att8 > 0: class1 (2.0)
| | | | | | | att4 > 0: class2 (3.0)
| | | | | | att3 > 0
| | | | | | | att7 <= 0
| | | | | | | | att15 <= 0: class1 (2.0)
| | | | | | | | att15 > 0: class2 (2.0)
| | | | | | | att7 > 0: class1 (6.0)
| | | | | att12 > 0
| | | | | | att1 <= 0
| | | | | | | att10 <= 0: class1 (2.0)
| | | | | | | att10 > 0: class2 (4.0/1.0)
| | | | | | att1 > 0: class2 (16.0/3.0)
| | | att14 > 0
| | | | att6 <= 0
| | | | | att11 <= 0
| | | | | | att4 <= 0: class1 (35.0/3.0)
| | | | | | att4 > 0
| | | | | | | att9 <= 0: class1 (3.0)
| | | | | | | att9 > 0: class2 (3.0)
| | | | | att11 > 0
| | | | | | att18 <= 0
| | | | | | | att4 <= 0
| | | | | | | | att7 <= 0
| | | | | | | | | att8 <= 0
| | | | | | | | | | att3 <= 0: class2 (3.0)
| | | | | | | | | | att3 > 0: class1 (3.0/1.0)
Trang 14| | | | | | | | | att8 > 0: class1 (2.0)
| | | | | | | | att7 > 0: class2 (10.0)
| | | | | | | att4 > 0: class1 (4.0)
| | | | | | att18 > 0: class1 (29.0/5.0)
| | | | att6 > 0
| | | | | att5 <= 0
| | | | | | att4 <= 0: class1 (3.0)
| | | | | | att4 > 0
| | | | | | | att9 <= 0
| | | | | | | | att8 <= 0: class1 (3.0/1.0)
| | | | | | | | att8 > 0: class2 (5.0)
| | | | | | | att9 > 0: class1 (4.0/1.0)
| | | | | att5 > 0: class2 (15.0/1.0)
| | att16 > 0
| | | att4 <= 0: class2 (124.0/22.0)
| | | att4 > 0
| | | | att17 <= 0
| | | | | att8 <= 0: class2 (16.0/1.0)
| | | | | att8 > 0
| | | | | | att13 <= 0: class1 (5.0/1.0)
| | | | | | att13 > 0: class2 (5.0/1.0)
| | | | att17 > 0
| | | | | att20 <= 0
| | | | | | att5 <= 0
| | | | | | | att8 <= 0: class1 (2.0)
| | | | | | | att8 > 0: class2 (3.0/1.0)
| | | | | | att5 > 0: class2 (3.0)
| | | | | att20 > 0: class1 (8.0/1.0)
att19 > 0
| att4 <= 0: class2 (188.0/20.0)
| att4 > 0
| | att17 <= 0: class2 (46.0/6.0)
| | att17 > 0
| | | att13 <= 0
| | | | att6 <= 0: class1 (2.0)
| | | | att6 > 0
| | | | | att8 <= 0: class2 (6.0/1.0)
| | | | | att8 > 0
| | | | | | att12 <= 0: class2 (3.0/1.0)
| | | | | | att12 > 0: class1 (2.0)
| | | att13 > 0: class1 (9.0/1.0)
Number of Leaves : 50
Trang 15Size of the tree : 99
Time taken to build model: 0.1 seconds
=== Evaluation on test split ===
=== Summary ===
Correctly Classified Instances 73 73 %
Incorrectly Classified Instances 27 27 %
Kappa statistic 0.1993
Mean absolute error 0.3447
Root mean squared error 0.4719
Relative absolute error 87.6686 %
Root relative squared error 104.9567 %
Coverage of cases (0.95 level) 96 %
Mean rel region size (0.95 level) 96.5 %
Total Number of Instances 100
=== Detailed Accuracy By Class ===
TP Rate FP Rate Precision Recall F-Measure ROC Area Class
0.25 0.083 0.538 0.25 0.341 0.583 class1
0.917 0.75 0.759 0.917 0.83 0.583 class2
Weighted Avg 0.73 0.563 0.697 0.73 0.693 0.583
=== Confusion Matrix ===
a b < classified as
7 21 | a = class1
6 66 | b = class2
Lần thứ ba: Lấy 85% dữ liệu để xây dựng cây, 15% để test: