I. ĐẶT VẤN ĐỀ 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. Cụ thể đề tài này em tìm hiểu về bài toán phân lớp trong weka và áp dụng trong bài toán khả năng xuất hiện các loại hoa Iris dựa trên các đặc điểm đài hoa, cánh hoa II. XÂY DỰNG CƠ SỞ DỮ LIỆU Đề tài sử dụng dataset IR cung cấp giá trị của 5 thuộc tính phân loại cho mỗi loại hoa Iris Các thuộc tính đó là: - Chiều dài của đài hoa - Chiều rộng của đài hoa - Chiều dài của cánh hoa - Chiều rộng của cánh hoa - Các loại hoa Giải quyết bài toán này để trả lời cho câu hỏi là làm thế nào loại hoa còn liên quan đến các thuộc tính khác. Mô tả các thuộc tính: @relation ''iris'' @attribute ''sepallength'' real @attribute ''sepalwidth'' real @attribute ''petallength'' real @attribute ''petalwidth'' real
Trang 1Báo cáo môn Khai phá dữ liệu
BỘ QUỐC PHÒNGHỌ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 khả năng xuất hiện các loại
hoa Iris dựa trên các đặc điểm đài hoa và cánh hoa
Giáo viên hướng dẫn: Hồ Nhật Quang Sinh viên thực hiện: Lê Huy Cường Lớp: Hệ thống thông tin 6
Trang 2Báo cáo môn Khai phá dữ liệ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 Cụ thể đề tài này em tìm hiểu về bài toán phân lớp trong weka và áp dụng trong bài toán khả năng xuất hiện các loại hoa Iris dựa trên các đặc điểm đài hoa, cánh hoa
II XÂY DỰNG CƠ SỞ DỮ LIỆU
Đề tài sử dụng dataset IR cung cấp giá trị của 5 thuộc tính phân loại cho mỗi loại hoa IrisCác thuộc tính đó là:
Trang 3Báo cáo môn Khai phá dữ liệu
@attribute 'sepallength' real
@attribute 'sepalwidth' real
@attribute 'petallength' real
@attribute 'petalwidth' real
@attribute 'class' {'Iris-setosa','Iris-versicolor','Iris-virginica'}Bảng dữ liệu
Sepal Length (Chiều dài của đài hoa ) L:Lớn(6.6 - 7.9)
M:Trung bình(5.5 - 6.5)S:Nhỏ(4.3 - 5.4)
Sepal Width (Chiều rộng của đài hoa ) L:Lớn(4.0 - 4.4)
M:Trung bình(3.0 - 3.9)S:Nhỏ(2.0 - 2.9)
Petal Length (Chiều dài của cánh hoa ) L:Lớn(5.0 - 6.9)
M:Trung bình(2.5 – 4.9)S:Nhỏ(1.0 - 2.4)
Petal Width (Chiều rộng của cánh hoa ) L:Lớn(2.0 - 2.5)
M:Trung bình(1.0 – 1.9)S:Nhỏ(0.1 - 0.9)
VersicolorVirginica
III PHÂN TÍCH YÊU CẦU BÀI TOÁN
WEKA
Setosa
Sepal Length
Trang 4Báo cáo môn Khai phá dữ liệu
Đọc dữ liệu vào sau đó áp dụng bài toán phân lớp dựa vào các thuộc tính chiều dài vàchiều rộng của đài hoa, cánh hoa để phân lớp khả năng xuất hiện các loại hoa Iris.Tạo racây quyết định về khả năng xuất hiện các loại hoa Iris nhằm để hỗ trợ cho việc có thểphân biệt được hoa Iris qua đài hoa & cánh hoa
IV 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áchcá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ệuthà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
Versicolor
Mục đích: Tạo một cây quyết định trong WEKA xem các loại hoa của hoa Iris có theo các thuộc tính khác hay không?
Virginica
Trang 5Báo cáo môn Khai phá dữ liệu
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 6Báo cáo môn Khai phá dữ liệu
Chuyển kiểu dữ liệu của các attribute từ numeric sang nominal: chọn choose trongcây filter chọnNumericToNominal
Trang 7Báo cáo môn Khai phá dữ liệu
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
Trang 8Báo cáo môn Khai phá dữ liệu
Thêm các giá trị L,M,S vào thuộc tính class Trong cây thư mục chọn AddValue.
Tiến hành nhập vào các giá trị tương ứng như sau:
Trang 9Báo cáo môn Khai phá dữ liệu
Hộp editor xuất hiện nhập các giá trị vào hộp labels và nhấn OK
Click chuột phải vào cột class chọn Replace Value With… gõ các giá trị tương ứngmuốn thay thế vào
Trang 10Báo cáo môn Khai phá dữ liệu
Nhập giá trị cũ
Nhập giá trị thay thế
Trang 11Báo cáo môn Khai phá dữ liệu
Kết quả sau khi thay đổi
Tương tự như vậy tiến hành chuyển đổi Sepallength thành L(6.6 - 7.9), M (5.5 - 6.5), S (4.3 - 5.4)
Tương tự tiến hành chuyển đổi Sepalwidth thành L(4.0 - 4.4), M (3.0 - 3.9), S(2.0 - 2.9)Tương tự tiến hành chuyển đổi Petallength thành L(5.0 - 6.9), M(2.5 – 4.9), S(1.0 - 2.4)Tương tự tiến hành chuyển đổi Petalwidth thành L(2.0 - 2.5), M(1.0 – 1.9), S(0.1 - 0.9)
Và đây là kết quả sau khi chuyển đổi dữ liệu
Trang 12Báo cáo môn Khai phá dữ liệu
2 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 để trainning cho cây:
Trang 13Báo cáo môn Khai phá dữ liệu
+ 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:
Để 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 như sau:
Trang 14Báo cáo môn Khai phá dữ liệu
Nội dung kết quả
=== Run information ===
Scheme: weka.classifiers.trees.J48 -C 0.25 -M 2
Relation: weka.filters.unsupervised.attribute.AddValues-C1-LL,M,S-
Trang 15Báo cáo môn Khai phá dữ liệu
Trang 16Báo cáo môn Khai phá dữ liệu
Time taken to build model: 0.11 seconds
=== Evaluation on training set ===
=== Summary ===
Correctly Classified Instances 142 94.6667 %
Incorrectly Classified Instances 8 5.3333 %
Kappa statistic 0.92
Mean absolute error 0.0644
Root mean squared error 0.1795
Relative absolute error 14.4928 %
Root relative squared error 38.0693 %
Total Number of Instances 150
=== Detailed Accuracy By Class ===
TP Rate FP Rate Precision Recall F-Measure ROC Area Class
1 0 1 1 1 1 Iris-setosa
0.96 0.06 0.889 0.96 0.923 0.96 Iris-versicolor
Trang 17Báo cáo môn Khai phá dữ liệu
Tóm tắt kết quả khi phân lớp:
+ Trường hợp phân lớp chính xác: 142 chiếm 94.6667%+Trường hợp không chính xác: 8 chiếm 5.3333%
- Để xem kết quả cây dưới dạng hình ảnh tiến hành như sau:
Trang 18Báo cáo môn Khai phá dữ liệu
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 95% dữ liệu để xây dựng cây, 5% để test:
Trang 19Báo cáo môn Khai phá dữ liệu
Lần thứ tư: Lấy 80% dữ liệu để xây dựng cây, 20% để test:
Trang 20Báo cáo môn Khai phá dữ liệu
Lần thứ năm: Lấy 55% dữ liệu để xây dựng cây, 45% để test:
Trang 21Báo cáo môn Khai phá dữ liệu
Lần thứ sáu: Lấy 96% dữ liệu để xây dựng cây, 4% để test:
Trang 22Báo cáo môn Khai phá dữ liệu
Lần thứ bảy: Lấy 65% dữ liệu để xây dựng cây, 35% để test:
Trang 23Báo cáo môn Khai phá dữ liệu
Lần thứ tám: Lấy 93% dữ liệu để xây dựng cây, 7% để test:
Trang 24Báo cáo môn Khai phá dữ liệu
Lần thứ chín: Lấy 97% dữ liệu để xây dựng cây, 3% để test:
Trang 25Báo cáo môn Khai phá dữ liệu
Lần thứ thứ 10: Lấy 92% dữ liệu để xây dựng cây, 8% để test:
Trang 26Báo cáo môn Khai phá dữ liệu
V ĐÁNH GIÁ VÀ KẾT LUẬN:
Sau khi thực hiện chạy 10 lần J48 để xây dựng cây với các tham số đầu vào khácnhau ta thấy ứng với lần chạy thứ 2 với các tham số lựa chọn là : bộ dữ liệu dùng khởi tạocây 90 %, bộ dữ liệu test là 10% đạt được tỉ lệ phân lớp chính xác là 100% Với số lượngmẫu test không quá bé (2201 mẫu) Nên ta chọn cây quyết định sinh ra tại lần chạy thứ 2
để sử dụng cho các mẫu thử bất kỳ sau này
Sau quá trình thực hành tạo cây quyết định trên WEKA bằng thuật toán J48 (C4.5) ta
có thể hình dung được quá trình khởi tạo và hoạt động của một cây quyết định như sau: