I. Giới thiệu Khai phá dữ liệu là một ngành khoa học thực nghiệm. Nó được thiết kế sao cho bạn có thể nhanh chống thử nghiệm những cách thức hiện tại trên cơ sở dữ liệu mới một cách linh hoạt. Nó cung cấp nhiều sự hỗ trợ cho toàn bộ quá trình xử lý số liệu thực nghiệm, bao gồm chuẩn bị dữ liệu đầu vào, việc ước lượng học những sơ đồ thống kê, và hình dung dữ liệu ra và kết quả của việc học. Weka được phát triển bởi đại học Waikato bang New Zealand, và có tên là Waikato Environment for Knowledge Analysis. Hệ thống được viết bởi java và phân phối dưới thuật ngữ GNU. Nó cung cấp một giao diện tương tự cho nhiều giải thuật học khác nhau với nhiều phương thức chho quá trình xử lý để ước lượng kết quả bằng sơ đồ cho bất kì một dữ liệu nào. Workbenh bao gồm những phương thức chuẩn cho các vấn đề của khai phá dữ liệu như: phân lớp,hồi quy, phân nhóm, phân cụm, luật kết hợp, và các thuộc tính kết hợp. Tập dữ liệu này chứa các chi tiết về lá cờ của các quốc gia, từ tập dữ liệu này ta có thể dự đoán tôn giáo của 1 quốc gia thông qua kích thước và màu sắc trong lá cờ. II. Xây dựng cơ sở dữ liệu Đề tài sử dụng dataset Flags cung cấp giá trị của 30 thuộc tính phân loại cho mỗi lá cờ của mỗi quốc gia. Thông tin về các thuộc tính: 1. Tên: Tên quốc gia. 2. Lãnh thổ: thuộc châu lục nào trong 6 châu lục, 1= Châu Bắc Mỹ, 2= Châu Nam Mỹ, 3 = Châu Âu, 4 = Châu Phi, 5 = Châu Á, 6 = Châu Đại Dương. 3. Khu vực: địa lý góc phần tư, 1= NE, 2 = SE, 3 = SW, 4 = NW. 4. Diện tích: tính đơn vị nghìn km2. 5. Dân số: tính đơn vị là triệu dân. 6. Ngôn ngữ: 1= tiếng Anh, 2= tiếng Tây Ban Nha, 3 = tiếng Pháp, 4= tiếng Đức, 5= Slavic, 6=Indo-Châu Âu, 6 = Trung quốc. 7. Tôn giáo: 0 = Công giáo, 1 = khác Kitô giáo, 2 = Hồi giáo, 3 = Phật giáo, 4 = Hindu, 5 = dân tộc, 6 = chủ nghĩa Mác, 7 = khác. 8. Thanh: Số lượng các thanh dọc trong lá cờ. 9. Sọc: Số các đường sọc ngang trong lá cờ 10. Màu sắc: Số lượng màu sắc khác nhau trong cờ 11. Màu đỏ: 0 nếu không có màu đỏ, 1 nếu có màu đỏ. 12. Màu xanh lá cây: tương tự màu đỏ 13. Màu xanh: tương tự màu đỏ 14. Màu vàng: tương tự màu đỏ 15. Màu trắng: tương tự màu đỏ 16. Màu đen: tương tự màu đỏ 17. Màu cam: tương tự màu đỏ 18. Màu chính: màu chiếm ưu thế trong lá
Trang 1I Giới thiệu
Khai phá dữ liệu là một ngành khoa học thực nghiệm.Nó được thiết kế sao cho bạn
có thể nhanh chống thử nghiệm những cách thức hiện tại trên cơ sở dữ liệu mới một cách linh hoạt Nó cung cấp nhiều sự hỗ trợ cho toàn bộ quá trình xử lý số liệu thực nghiệm, bao gồm chuẩn bị dữ liệu đầu vào, việc ước lượng học những sơ đồ thống kê,
và hình dung dữ liệu ra và kết quả của việc học.Weka được phát triển bởi đại học Waikato bang New Zealand, và có tên là Waikato Environment for Knowledge Analysis Hệ thống được viết bởi java và phân phối dưới thuật ngữ GNU Nó cung cấp một giao diện tương tự cho nhiều giải thuật học khác nhau với nhiều phương thứcchho quá trình xử lý để ước lượng kết quả bằng sơ đồ cho bất kì một dữ liệu nào.Workbenh bao gồm những phương thức chuẩn cho các vấn đề của khai phá dữ liệu như: phân lớp,hồi quy, phân nhóm, phân cụm, luật kết hợp, và các thuộc tính kết hợp.Tập dữ liệu này chứa các chi tiết về lá cờ của các quốc gia, từ tập dữ liệu này ta có thể
dự đoán tôn giáo của 1 quốc gia thông qua kích thước và màu sắc trong lá cờ
II Xây dựng cơ sở dữ liệu
Đề tài sử dụng dataset Flags cung cấp giá trị của 30 thuộc tính phân loại cho mỗi lá cờ của mỗi quốc gia
Thông tin về các thuộc tính:
1 Tên: Tên quốc gia
2 Lãnh thổ: thuộc châu lục nào trong 6 châu lục, 1= Châu Bắc Mỹ, 2= Châu Nam
Mỹ, 3 = Châu Âu, 4 = Châu Phi, 5 = Châu Á, 6 = Châu Đại Dương
3 Khu vực: địa lý góc phần tư, 1= NE, 2 = SE, 3 = SW, 4 = NW
4 Diện tích: tính đơn vị nghìn km2
5 Dân số: tính đơn vị là triệu dân
6 Ngôn ngữ: 1= tiếng Anh, 2= tiếng Tây Ban Nha, 3 = tiếng Pháp, 4= tiếng Đức, 5=Slavic, 6=Indo-Châu Âu, 6 = Trung quốc
7 Tôn giáo: 0 = Công giáo, 1 = khác Kitô giáo, 2 = Hồi giáo, 3 = Phật giáo, 4 = Hindu, 5 = dân tộc, 6 = chủ nghĩa Mác, 7 = khác
8 Thanh: Số lượng các thanh dọc trong lá cờ
9 Sọc: Số các đường sọc ngang trong lá cờ
10 Màu sắc: Số lượng màu sắc khác nhau trong cờ
11 Màu đỏ: 0 nếu không có màu đỏ, 1 nếu có màu đỏ
12 Màu xanh lá cây: tương tự màu đỏ
13 Màu xanh: tương tự màu đỏ
14 Màu vàng: tương tự màu đỏ
15 Màu trắng: tương tự màu đỏ
16 Màu đen: tương tự màu đỏ
17 Màu cam: tương tự màu đỏ
18 Màu chính: màu chiếm ưu thế trong lá
Trang 219 Vòng tròn: Số vòng tròn trong lá cờ
20 Đi qua: Số (thẳng đứng) đi qua
21 saltiers: Số lượng đi qua đường chéo
22 khu: Số phần làm tư
23 sunstars: Số lượng mặt trời hoặc các biểu tượng ngôi sao
24 Lưỡi liềm: 1 nếu một mặt trăng lưỡi liềm biểu tượng hiện tại, khác 0
25 Tam giác: 1 nếu có hình tam giác hiện nay, 0 nếu ngược lại
26 Biểu tượng: 1 nếu một hình ảnh vô tri vô giác (ví dụ, một chiếc thuyền), nếu không 0
27 Động: 1 nếu một hình ảnh động (ví dụ, một con đại bàng, một cái cây, một bàn tay con người), 0 nếu ngược lại
28 văn bản:Là 1: nếu có chữ viết trên lá cờ (ví dụ, một phương châm, khẩu hiệu), 0 nếu ngược lại
29 topleft: màu sắc ở góc trên bên trái
30 botright: Màu sắc ở góc dưới bên phải
1 Tiền xử lý dữ liệu
- Khởi động Weka Explorer
- Chọn CSDL Flags bằng cách chọn OpenFile chọn kiểu dữ liệu (*.arff) rồi chọn đường dẫn tới file cơ sở dữ liệu Acute Inflammations.csv
Trang 3- Xuất hiện dữ liệu trên cửa sổ PreProcess của Weka như sau:
Trang 4- Nếu thuộc tính bạn đang chọn có kiểu dữ liệu là Nominal thì bạn sẽ nhìn thấy trong vùng này một table gồm có các trường số thứ tự (NO.), tên các giá trị (lable), số lượng mỗi giá trị (Count) như sau:
- Nếu thuộc tính bạn đang chọn có kiểu dữ liệu là numeric thì table có hai trường là số liệu thống kê (Statistic) và giá trị tương ứng (Value) Ở trường Statistic có các giá trị Minimum (Giá trị nhỏ nhất), Maximum (Giá trị lớn nhất), mean (Giá trị trung bình), Độ lệch chuẩn (StdDev) như hình sau:
Trang 5- Chuyển kiểu dữ liệu của các thuộc tính từ numeric sang nominal.
Chuyển đổi kiểu dữ liệu của thuộc tính area
- Ta chuyển đổi thuộc tính area với các giá trị tương ứng: Nho(<300), Binh
thuong(300<=area<1000), Lon(1000<=area <=22402)
- Chọn Choose trong cây thư mục Filters chọn unsupervised , chọn attribute, chọn MathExpression
- Click vào để hoàn thành Tiếp đó click vào để thực hiện
- Chọn Choose trong cây thư mục Filters chọn
unsupervised/attribute/NumericToNominal rồi click để thực hiện chuyển đổi kiểu dữ liệu
Trang 6- Chọn Choose trong cây thư mục Filters chọn
unsupervised/attribute/AddValues và thiết lập các thông số như sau:
- Click vào button ở phía trên vùng Filter, sẽ xuất hiện một bảng dữ
liệu như sau:
Trang 7- Click chuột phải vafp hearder area rồi chọn Replace Value Width…Xuất hiện
hộp thoại , gõ 1 rồi thay thế “ Nho” rồi click OK, gõ 2 rồi thay thế “ Binh Thuong” rồi Click OK, gõ 3 rồi thay thế “Lon” rồi Click OK.
Trang 8Chuyển đổi kiểu dữ liệu của thuộc tính Population
- Thuộc tính Population được chuyển đổi tương ứng với các giá trị:
It(Population< 10), BT(10<=Population<60),
Dong(60<=Population<=1008)
- Làm tương tự đối với thuộc tính trên
Trang 10- Kết quả sau khi chuyển đổi và thay thế ta thấy ở cột Population chứa các giá trị It,TB,Dong.
Trang 11- Sau khi đã xử lý xong dữ liệu click vào button để lưu lại bảng dữ liệu
Ta nhận thấy rằng ở các thuộc tính area và population sau khi xử lý xong có
một số giá trị sẽ không được sử dụng đến là 1, 2, 3, để loại bỏ những giá trị
này ta lưu bảng dữ liệu lại với định dạng CSV rồi mở lại một lần nữa, lúc này
các giá trị 1,2,3 đã bị loại bỏ.
IV Xây dựng cây quyết định bằng J48.
Bước đầu tiên ta sử dụng tất cả dữ liệu để training 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 12- Để 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.
- Nội dung kết quả:
=== Run information ===
Scheme: weka.classifiers.trees.J48 -C 0.25 -M 2
Relation: flag1
Instances: 194
Trang 13Test mode: evaluate on training data
=== Classifier model (full training set) ===
Trang 14| | | area = Lon: green (0.0)
| | | area = Nho: white (2.0)
| | | area = Binh thuong: green (2.0)
| | topleft = orange: green (1.0)
| | topleft = gold: gold (2.0)
| | | topleft = black: red (0.0)
| | | topleft = red: red (0.0)
| | | topleft = green: red (0.0)
Trang 15| | | topleft = blue: red (3.0)
| | | topleft = white: white (5.0/1.0)
| | | topleft = orange: red (0.0)
| | | topleft = gold: red (0.0)
| mainhue = orange: green (2.0/1.0)
| mainhue = black: blue (0.0)
| mainhue = brown: blue (1.0)
Time taken to build model: 0.07 seconds
=== Evaluation on training set ===
=== Summary ===
Correctly Classified Instances 157 80.9278 %
Incorrectly Classified Instances 37 19.0722 %
Kappa statistic 0.7381
Mean absolute error 0.0693
Root mean squared error 0.1861
Relative absolute error 36.2374 %
Root relative squared error 60.3701 %
Total Number of Instances 194
=== Detailed Accuracy By Class ===
TP Rate FP Rate Precision Recall F-Measure ROC Area Class
0.825 0.019 0.917 0.825 0.868 0.98 green 0.942 0.224 0.699 0.942 0.802 0.914 red 0.412 0.011 0.778 0.412 0.538 0.913 white 0.667 0.005 0.857 0.667 0.75 0.962 black 0.894 0.02 0.933 0.894 0.913 0.989 blue 0.444 0 1 0.444 0.615 0.952 gold
0 0 0 0 0 0.959 orange
0 0 0 0 0 0.897 brown
Weighted Avg 0.809 0.09 0.818 0.809 0.796 0.95
=== Confusion Matrix ===
Trang 16- Đọc nội dung kết quả:
- Kết quả được trả về theo 3 vùng dữ liệu:
Vùng Run Information: cho biết thông tin về dữ liệu nguồn
whiteblackorangemainhuecirclescrossessaltiresquarterssunstarscrescent
triangle icon animate text topleft botright
Chế độ kiểm tra : evaluate on training data
+ chế độ phân lớp: toàn bộ dữ liệu
+ Cây J48 sau khi tiến hành trainning:
Trang 17| | | area = Lon: green (0.0)
| | | area = Nho: white (2.0)
| | | area = Binh thuong: green (2.0)
| | topleft = orange: green (1.0)
| | topleft = gold: gold (2.0)
| | | topleft = black: red (0.0)
| | | topleft = red: red (0.0)
| | | topleft = green: red (0.0)
Trang 18| | | topleft = blue: red (3.0)
| | | topleft = white: white (5.0/1.0)
| | | topleft = orange: red (0.0)
| | | topleft = gold: red (0.0)
| mainhue = orange: green (2.0/1.0)
| mainhue = black: blue (0.0)
| mainhue = brown: blue (1.0)
Mean absolute error 0.0693
Root mean squared error 0.1861
Relative absolute error 36.2374 %
Root relative squared error 60.3701 %
Total Number of Instances 194
Trang 19 Tiến hành chạy thử nhiều lần cây trên số lượng dữ liệu trainning khác nhau:
- Lần thứ 2: Lấy 95% dữ liệu để xây dựng cây, 5% để test
=== Run information ===
Scheme: weka.classifiers.trees.J48 -C 0.25 -M 2
Relation: weka.filters.unsupervised.attribute.AddValues-C11-Lco,khong-
Trang 20Test mode: split 95.0% train, remainder test
=== Classifier model (full training set) ===
Trang 21| | topleft = black: green (6.0)
| | | | gold = co: black (0.0)
| | | | gold = khong: black (0.0)
| | | | red = co: red (6.0/2.0)
| | | | red = khong: green (2.0/1.0)
| | | bars = 5: green (0.0)
| | topleft = blue: green (0.0)
| | topleft = white
| | | area = Lon: green (0.0)
| | | area = Nho: white (2.0)
| | | area = Binh thuong: green (2.0)
| | topleft = orange: green (1.0)
| | topleft = gold: gold (2.0)
| green = khong: red (36.0/13.0)blue = 1
Trang 22| | | topleft = black: red (0.0)
| | | topleft = red: red (0.0)
| | | topleft = green: red (0.0)
| | | topleft = blue: red (3.0)
| | | topleft = white: white (5.0/1.0)
| | | topleft = orange: red (0.0)
| | | topleft = gold: red (0.0)
| | red = khong: blue (5.0/2.0)
| mainhue = orange: green (2.0/1.0)
| mainhue = black: blue (0.0)
| mainhue = brown: blue (1.0)
Number of Leaves : 58
Size of the tree : 76
Time taken to build model: 0.05 seconds
=== Evaluation on test split ===
=== Summary ===
Trang 23Correctly Classified Instances 5 50 %
Incorrectly Classified Instances 5 50 %
Kappa statistic 0.3056
Mean absolute error 0.1286
Root mean squared error 0.295
Relative absolute error 65.661 %
Root relative squared error 93.3508 %
Total Number of Instances 10
=== Detailed Accuracy By Class ===
TP Rate FP Rate Precision Recall F-Measure ROC Area Class
flag1-weka.filters.unsupervised.attribute.NumericToNominal-Rfirst-last-
weka.filters.unsupervised.attribute.AddValues-C12-Lco,khong-
Trang 24weka.filters.unsupervised.attribute.AddValues-C14-Lco,khongInstances: 194
Test mode: split 90.0% train, remainder test
=== Classifier model (full training set) ===
J48 pruned tree
Trang 25
| | | | gold = co: black (0.0)
| | | | gold = khong: black (0.0)
| | | | red = co: red (6.0/2.0)
| | | | red = khong: green (2.0/1.0)
| | | bars = 5: green (0.0)
| | topleft = blue: green (0.0)
| | topleft = white
| | | area = Lon: green (0.0)
| | | area = Nho: white (2.0)
| | | area = Binh thuong: green (2.0)
| | topleft = orange: green (1.0)
| | topleft = gold: gold (2.0)
| green = khong: red (36.0/13.0)blue = 1
Trang 26| | | topleft = black: red (0.0)
| | | topleft = red: red (0.0)
| | | topleft = green: red (0.0)
| | | topleft = blue: red (3.0)
| | | topleft = white: white (5.0/1.0)
| | | topleft = orange: red (0.0)
| | | topleft = gold: red (0.0)
| | red = khong: blue (5.0/2.0)
| mainhue = orange: green (2.0/1.0)
| mainhue = black: blue (0.0)
| mainhue = brown: blue (1.0)
Number of Leaves : 58
Size of the tree : 76
Time taken to build model: 0.02 seconds
Trang 27=== Evaluation on test split ===
=== Summary ===
Correctly Classified Instances 9 47.3684 %
Incorrectly Classified Instances 10 52.6316 %
Kappa statistic 0.2989
Mean absolute error 0.143
Root mean squared error 0.3267
Relative absolute error 74.7531 %
Root relative squared error 105.9867 %
Total Number of Instances 19
=== Detailed Accuracy By Class ===
TP Rate FP Rate Precision Recall F-Measure ROC Area Class
Trang 28Scheme: weka.classifiers.trees.J48 -C 0.25 -M 2
Relation: weka.filters.unsupervised.attribute.AddValues-C11-Lco,khong-
Trang 29=== Classifier model (full training set) ===
| | | | gold = co: black (0.0)
| | | | gold = khong: black (0.0)
| | | | red = co: red (6.0/2.0)
| | | | red = khong: green (2.0/1.0)
| | | bars = 5: green (0.0)
| | topleft = blue: green (0.0)
| | topleft = white
| | | area = Lon: green (0.0)
| | | area = Nho: white (2.0)
| | | area = Binh thuong: green (2.0)
| | topleft = orange: green (1.0)
| | topleft = gold: gold (2.0)
| green = khong: red (36.0/13.0)
blue = 1
| mainhue = green
| | religion = 0: green (1.0)
| | religion = 1: green (3.0)
Trang 30| | | topleft = black: red (0.0)
| | | topleft = red: red (0.0)
| | | topleft = green: red (0.0)
| | | topleft = blue: red (3.0)
| | | topleft = white: white (5.0/1.0)
| | | topleft = orange: red (0.0)
| | | topleft = gold: red (0.0)
| | red = khong: blue (5.0/2.0)
| mainhue = orange: green (2.0/1.0)
| mainhue = black: blue (0.0)
| mainhue = brown: blue (1.0)Number of Leaves : 58
Trang 31Size of the tree : 76
Time taken to build model: 0.02 seconds
=== Evaluation on test split ===
=== Summary ===
Correctly Classified Instances 13 44.8276 %
Incorrectly Classified Instances 16 55.1724 %
Kappa statistic 0.2927
Mean absolute error 0.1503
Root mean squared error 0.3078
Relative absolute error 77.1205 %
Root relative squared error 97.6856 %
Total Number of Instances 29
=== Detailed Accuracy By Class ===
TP Rate FP Rate Precision Recall F-Measure ROC Area Class
Trang 320 0 0 0 0 0 0 0 | h = brown
Lần thứ 5: 50% 50%
- Lần thứ 6: 96% 4%
Trang 33Tương tự đến cho đến lần thứ 10…
V Kết Luận
Sau khi thực hiện chạy 10 lần J48 ta nhận thấy rằng việc chọn cây quyết định còn phụthuộc vào nhiều yếu tố khác nhau