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 mắc căn bệnh tim II. XÂY DỰNG CƠ SỞ DỮ LIỆU Cơ sở dữ liệu này chứa 13 thuộc tính (đã được chiết xuất từ một tập hợp lớn hơn 75) Thuộc tính Thông tin: ------------------------ - 1. tuổi - 2. giới tính - 3. đau ngực (4 giá trị) Đau thắt ngực điển hình Đau thắt ngực không điển hình Đau không phải đau thắt ngực Không có triệu chứng bệnh
HỌC VIỆN KỸ THUẬT QUÂN SỰ KHOA CÔNG NGHỆ THÔNG TIN -----------&---------- Đề tài: SỬ DỤNG PHẦN MỀM WEKA PHÂN LỚP CHO KHẢ NĂNG MẮC CĂN BỆNH TIM Giáo viên hướng dẫn: HỒ NHẬT QUANG Sinh viên thực hiện: TRẦN MINH LUÂN Lớp: HỆ THỐNG THÔNG TIN 6 HÀ NỘI - 10/2011 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 mắc căn bệnh tim II. XÂY DỰNG CƠ SỞ DỮ LIỆU Cơ sở dữ liệu này chứa 13 thuộc tính (đã được chiết xuất từ a larger set of 75) một tập hợp lớn hơn 75) Attribute Information: Thuộc tính Thông tin: ------------------------ ------------------------ -- 1. - 1. age tuổi -- 2. - 2. sex giới tính -- 3. - 3. chest pain type (4 values) đau ngực (4 giá trị) Đau thắt ngực điển hình Đau thắt ngực không điển hình Đau không phải đau thắt ngực Không có triệu chứng bệnh -- 4. - 4. resting blood pressure huyết áp -- 5. - 5. serum cholestoral in mg/dl cholestoral huyết thanh trong mg / dl -- 6. - 6. fasting blood sugar > 120 mg/dl độ đường trong máu lúc đói> 120 mg / dl -- 7. - 7. resting electrocardiographic results (values 0,1,2) nghỉ ngơi kết quả điện tâm đồ (các giá trị 0,1,2) -- 8. - 8. maximum heart rate achieved nhịp tim đập tối đa -- 9. - 9. exercise induced angina thực đau thắt ngực gây ra -- 10. - 10. oldpeak = ST depression induced by exercise relative to rest oldpeak độ lõm của sóng điện tim -- 11. - 11. the slope of the peak exercise ST segment độ dốc của đoạn cao nhất của sóng S -- 12. - 12. number of major vessels (0-3) colored by flourosopy số mạch chính được định màu (0-3) màu bởi flourosopy -- 13. - 13. Độ nhấp nháy cơ tim thal: 3 = normal; 6 = fixed defect; 7 = reversable defect 3 = bình thường, 6 = cố định khuyết tật, 7 = hồi phục khiếm khuyết Attributes types Các thuộc tính các loại: @relation heart @attribute Age integer @attribute Sex integer @attribute ChestPainType integer @attribute RestBloodPressure integer @attribute SerumCholestoral integer @attribute FastingBloodSugar integer @attribute ResElectrocardiographic integer @attribute MaxHeartRate integer @attribute ExerciseInduced integer @attribute Oldpeak real @attribute Slope integer @attribute MajorVessels integer @attribute Thal integer @attribute Class {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. - Chọn heart.arff - Sau khi đã tạo xong file heart.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: - Chuyển kiểu dữ liệu của các attribute từ numeric sang nominal. - Chọn choose trong cây filter NumericToNominal Chọn AddValus trong filter: Nhập thêm giá trị cho cột class: 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: + 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: == Run information === Scheme: weka.classifiers.trees.J48 -C 0.25 -M 2 Relation: heart-weka.filters.unsupervised.attribute.NumericToNominal-Rfirst-last- weka.filters.unsupervised.attribute.AddValues-C14-Lco,khong Instances: 270 Attributes: 14 Age Sex ChestPainType RestBloodPressure SerumCholestoral FastingBloodSugar ResElectrocardiographic MaxHeartRate ExerciseInduced Oldpeak Slope MajorVessels Thal Class Test mode: evaluate on training data === Classifier model (full training set) === J48 pruned tree ------------------ Thal = 3 | MajorVessels = 0: 1 (107.0/12.0) | MajorVessels = 1 | | Sex = 0: 1 (11.0) | | Sex = 1 | | | ChestPainType = 1: 1 (3.0/1.0) | | | ChestPainType = 2: 1 (1.0) | | | ChestPainType = 3: 1 (2.0) | | | ChestPainType = 4: 2 (9.0) | MajorVessels = 2 | | ExerciseInduced = 0: 1 (10.0/3.0) | | ExerciseInduced = 1: 2 (3.0) | MajorVessels = 3: 2 (6.0/1.0) Thal = 6 | MajorVessels = 0: 1 (7.0/1.0) | MajorVessels = 1: 2 (4.0) | MajorVessels = 2: 2 (2.0) | MajorVessels = 3: 2 (1.0) Thal = 7 | ChestPainType = 1: 1 (6.0/2.0) | ChestPainType = 2 | | ResElectrocardiographic = 0: 1 (5.0/2.0) | | ResElectrocardiographic = 1: 2 (0.0) | | ResElectrocardiographic = 2: 2 (2.0) | ChestPainType = 3 | | Slope = 1: 1 (7.0/1.0) | | Slope = 2: 2 (13.0/4.0) | | Slope = 3: 1 (1.0) | ChestPainType = 4: 2 (70.0/7.0) Number of Leaves : 21 Size of the tree : 30 Time taken to build model: 0.06 seconds === Evaluation on training set === === Summary === Correctly Classified Instances 236 87.4074 % Incorrectly Classified Instances 34 12.5926 % Kappa statistic 0.7429 Mean absolute error 0.1021 Root mean squared error 0.226 Relative absolute error 41.0457 % Root relative squared error 64.3055 % Coverage of cases (0.95 level) 100 % Mean rel. region size (0.95 level) 46.6667 % Total Number of Instances 270 === Detailed Accuracy By Class === TP Rate FP Rate Precision Recall F-Measure ROC Area Class 0.92 0.183 0.863 0.92 0.89 0.91 1 0.817 0.08 0.891 0.817 0.852 0.91 2 0 0 0 0 0 ? co 0 0 0 0 0 ? khong Weighted Avg. 0.874 0.137 0.875 0.874 0.873 0.91 === Confusion Matrix === a b c d <-- classified as 138 12 0 0 | a = 1 . NHẬT QUANG Sinh viên thực hiện: TRẦN MINH LUÂN Lớp: HỆ THỐNG THÔNG TIN 6 HÀ NỘI - 10/2011 I. ĐẶT VẤN ĐỀ Khai phá dữ liệu là một ngành khoa học thực nghiệm 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