Nghiên cứu mô hình máy học kết hợp trong dự đoán đoán lỗi phần mềm

 Dự đoán lỗi phần mềm là một nhiệm vụ quan trọng phát triển phần mềm giúp giảm thời gian

và tiết kiệm chi phí trong việc bảo trì phần mềm. Hiện nay, việc kết hợp nhiều kĩ thuật học máy được

áp dụng vào bài toán dự đoán lỗi đã được nghiên cứu để nâng cao chất lượng phần mềm. Trong đó mô

hình máy học kết hợp – ensemble learning đã trở thành một hướng nghiên cứu nổi bật trong lĩnh vực

dự đoán lỗi. Trong bài báo này, chúng tôi nghiên cứu và phân tích các thuật toán trong mô hình học

máy kết hợp được sử dụng trong dự đoán lỗi phần mềm như Bagging, AdaBoost, Vote, Stacking và so

sánh hiệu quả của chúng so với một thuật toán đơn được lựa chọn xem xét là NaiveBayes. Thực nghiệm

được tiến hành dựa trên các tập dữ liệu khai thác từ kho dữ liệu NASA’s Metric Data Program gồm các

tập CM1, PC1, KC1, KC2 và JM1. Từ kết quả thực nghiệm cho thấy các thuật toán trong mô hình máy

học kết hợp cho đạt hiệu quả cao hơn so với sử dụng một thuật toán đơn như NaiveBayes trong dự đoán

lỗi. Ngoài ra, Vote thì cho kết quả tốt hơn so với các thuật toán còn lại trong mô hình máy học kết hợp.

pdf7 trang | Chia sẻ: Thục Anh | Ngày: 11/05/2022 | Lượt xem: 502 | Lượt tải: 0download
Nội dung tài liệu Nghiên cứu mô hình máy học kết hợp trong dự đoán đoán lỗi phần mềm, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
KỶ YẾU HỘI THẢO KHOA HỌC QUỐC GIA CITA 2020 “CNTT VÀ ỨNG DỤNG TRONG CÁC LĨNH VỰC” Nghiên Cứu Mô Hình Máy Học Kết Hợp Trong Dự Đoán Đoán Lỗi Phần Mềm Hà Thị Minh Phương1, Phan Thị Quỳnh Hương2 1,2 Trường ĐH Công nghệ Thông tin và Truyền thông Việt Hàn, Đại học Đà Nẵng {htmphuong, ptqhuong}@vku.udn.vn Tóm tắt. Dự đoán lỗi phần mềm là một nhiệm vụ quan trọng phát triển phần mềm giúp giảm thời gian và tiết kiệm chi phí trong việc bảo trì phần mềm. Hiện nay, việc kết hợp nhiều kĩ thuật học máy được áp dụng vào bài toán dự đoán lỗi đã được nghiên cứu để nâng cao chất lượng phần mềm. Trong đó mô hình máy học kết hợp – ensemble learning đã trở thành một hướng nghiên cứu nổi bật trong lĩnh vực dự đoán lỗi. Trong bài báo này, chúng tôi nghiên cứu và phân tích các thuật toán trong mô hình học máy kết hợp được sử dụng trong dự đoán lỗi phần mềm như Bagging, AdaBoost, Vote, Stacking và so sánh hiệu quả của chúng so với một thuật toán đơn được lựa chọn xem xét là NaiveBayes. Thực nghiệm được tiến hành dựa trên các tập dữ liệu khai thác từ kho dữ liệu NASA’s Metric Data Program gồm các tập CM1, PC1, KC1, KC2 và JM1. Từ kết quả thực nghiệm cho thấy các thuật toán trong mô hình máy học kết hợp cho đạt hiệu quả cao hơn so với sử dụng một thuật toán đơn như NaiveBayes trong dự đoán lỗi. Ngoài ra, Vote thì cho kết quả tốt hơn so với các thuật toán còn lại trong mô hình máy học kết hợp. Từ khóa: mô hình học máy kết hợp; bagging, boosting; stacking; adaboost; vote. Abstract - Software fault prediction plays an important role in software engineering that reduces maintenance, development time, effort, and money. The combination of various machine learning tech- niques has been researched to improve software quality. In which, ensemble learning has become an outstanding research trend in fault prediction. In the paper, we conduct a comparative study of various ensemble methods in fault prediction such as Bagging, AdaBoost, Vote, and Stacking and we also compared their performance to the model used single classifier NaiveBayes. The experiment was con- ducted on NASA’s Metric Data Progam included CM1, PC1, KC1, KC2 and JM1. The experimental results show that ensemble learning achieve high performance than the model used single classifier. In addition, Vote is the best algorithm of ensemble learning. Keywords: ensemble learning, bagging, boosting, stacking, adaboost, vote. 1 Giới thiệu Một trong những yếu tố quan trọng nhất trong phát triển phần mềm là chất lượng của các hệ thống. Tuy nhiên, trong thực tế một số lượng lớn các hệ thống luôn phát sinh ra lỗi, đây là một trong những nguyên nhân chính gây ra sự thất bại của các hệ thống phần mềm. Việc phát hiện ra các lỗi phần mềm trong giai đoạn đầu của phát triển các hệ thống sẽ nâng cao chất lượng, giảm số lượng, thời gian cho công việc kiểm thử và tiết kiệm được chí phí cho việc bảo hành hệ thống. Vì vậy dự đoán lỗi phần mềm đã trở thành lĩnh vực nghiên cứu được quan tâm trong những năm gần đây. Các mô hình dự đoán lỗi có nhiệm vụ phân loại những mô-đun lỗi và không lỗi từ đó có thể xác định được ví trị xuất hiện của lỗi này. Các mô hình dự đoán lỗi này có thể áp dụng vào các hệ thống thực tế để phát hiện lỗi sớm. Dự đoán lỗi phần mềm dựa trên phương pháp thống kê và áp dụng các kỹ thuật máy học [8]. Các nghiên cứu trong những năm gần đây đã chứng minh các kỹ thuật máy học được áp dụng trong việc xây dựng các hệ thống dự đoán lỗi mang lại hiệu quả cao [8]. Một số các kỹ thuật máy học phổ biến được đề xuất để xây dựng các mô hình như đoán lỗi như Support Vector Machine [4], Unsupervised Hybrid SOM Algorithm [1], Neural Network [15], [11]. Tuy nhiên, các kết quả dự đoán lỗi với một các kỹ thuật máy học đơn sẽ không đạt kết quả tối ưu đối với các tập dữ liệu dư thừa các thuộc tính không liên quan hoặc thiếu những thuộc tính quan trọng [5]. Nguyên nhân do các kỹ thuật máy học khác nhau trên một tập tham số nào đó tương ứng đối với tập dữ liệu xác 158 Hà Thị Minh Phương, Phan Thị Quỳnh Hương định. Vì vậy, một số nghiên cứu đã đưa ra các giải pháp mô hình kết hợp nhiều các kỹ thuật máy học - ensemble learning sẽ mang lại hiệu quả trong phân loại lỗi và nâng cao tính chính xác cho bài toán dự đoán lỗi phần mềm. Trong bài báo này chúng tôi tiến hành nghiên cứu kỹ thuật máy học thường được sử dụng trong các mô hình máy học kết hợp bao gồm Bagging, Adaboost, Stacking, Vote và 1 thuật toán đơn Na- iveBayes để so sánh đánh giá hiệu quả trong việc dự đoán. Các thực nghiệm này được tiến hành trên trên tập dữ liệu của NASA bao gồm CM1, PC1, KC1, KC2 và JM1. Bài báo được tổ chức bao gồm phần 1 giới thiệu về dự đoán lỗi phần mềm và ensemble learning - mô hình máy học kết hợp, phần 2 trình bày về các nghiên cứu kỹ thuật học máy trong mô hình máy học kết hợp, phần 3 xây dựng thực nghiệm, kết quả thực nghiệm được trình bày trong phần 4 và cuối cùng tổng kết về các vấn đề đã nghiên cứu. 2 Các nghiên cứu liên quan Việc sử dụng mô hình máy học kết hợp- ensemble learning đã được các tác giả chứng minh mang lại hiệu quả cao và tính chính xác của việc dự đoán những lỗi phần mềm. Yohannese [14] đã sử dụng kết hợp các thuật toán Bagging, AdaBoost.M1 và J48 Decision Tree để xây dựng framework có hiệu quả cao trong dự đoán lỗi.Wahono [12] đã đề xuất kết hợp thuật toán Genetic và Bagging để nâng cao chất lượng của kết quả dự đoán lỗi. Một số các thuật toán máy học kết hợp được trình bày như sau: 2.1 Bagging Thuật toán Bagging được đề xuất bởi Breiman [2] và mục đích của nó là để cải thiện hiệu quả dự đoán đối với vấn đề mất cân bằng dữ liệu khi chỉ áp dụng một thuật toán đơn như Decision tree hoặc Neural Network. Thuật toán này được trình bày như sau: đầu tiên, cho một tập dữ liệu và một thuật toán đơn bất kỳ. Trong tập dữ liệu ban đầu, phương pháp Bootstrap được sử dụng để chia tập dữ liệu ban đầu thành các tập dữ liệu huấn luyện con có kích thước bằng nhau. Tiếp theo áp dụng một thuật toán đối với từng tập dữ liệu huấn luyện riêng tương ứng với một mô hình dự đoán. Cuối cùng kết quả dự đoán sẽ sử dụng giá trị trung bình "Mean" kết quả của các mô hình trên. Ngoài ra, sử dụng phương pháp "Voting" để tạo ra các kết quả phân lớp cho bài toán phân lớp. 2.2 Boosting Boosting được giới thiệu bởi [9] sử dụng thuật toán cây quyết định để tạo các mô hình mới. Boosting gán trọng số cho các mô hình dựa trên hiệu suất của chúng. Có nhiều biến thể của thuật toán Boosting như LogitBoost (LB) và AdaBoost (AB). Schapire đã chứng minh rằng các kỹ thuật học yếu (tốt hơn một chút so với đoán ngẫu nhiên) có thể được kết hợp với mục đích tạo ra một cụm hoặc một nhóm các kỹ thuật máy học yếu từ đó tạo thành một mô hình mạnh duy nhất. Kỹ thuật Boosting hoạt động như sau: • Gán trọng số bằng nhau cho tất cả các tập con trong tập dữ liệu • Với mỗi lần lặp m thực hiện: - Áp dụng kỹ thuật máy học vào các tập dữ liệu có trọng số và lưu trữ kết quả của từng mô hình lại. - Tính sai số error err cho mỗi mô hình. - Nếu giá trị của err bằng 0 hoặc lớn hơn hoặc bằng 0,5 thì dừng. - Đối với mỗi tập con trong tập dữ liệu: Nếu mỗi tập được dự đoán chính xác bởi mô hình thì nhân với trọng số err / (1-err) - Chuẩn hóa trọng số tương ứng cho từng trường hợp. 2.3 Adaboost Ý tưởng ban đầu của thuật toán Adaboost xuất phát từ thuật toán Boosting và nó là một thuật toán lặp được đề xuất bởi [3]. Ý tưởng chính của thuật toán này là tăng dần trọng số của lớp phân loại lỗi, tạo các phân loại mới trong mỗi lần lặp để bổ sung thiếu sót của các phân loại trước đó, và cuối cùng kết hợp, tạo ra các phân loại cùng với cơ chế bỏ phiếu "voting". Như vậy, bản chất của Adaboost là đưa các phân loại yếu 159 KỶ YẾU HỘI THẢO KHOA HỌC QUỐC GIA CITA 2020 “CNTT VÀ ỨNG DỤNG TRONG CÁC LĨNH VỰC” được thăng cấp lên phân loại mạnh. Vì thế, nó có hiệu quả có thể đảm bảo rằng tỷ lệ lỗi của phân loại có thể giảm khi số lượng tập dữ liệu đào tạo tăng lên. 2.4 Vote Thuật toán này được sử dụng với mục đích chính là kết hợp của nhiều bộ phân loại (classifier) khác nhau [6]. Ý tưởng chính của Vote là sử dụng các kết hợp khác nhau về ước tính của xác suất được sử dụng để phân lớp. Voting trong mô hình học kết hợp sẽ giảm thiểu ảnh hưởng của các thuộc tính không liên quan hoặc dư thừa. Việc giảm thiểu này được thực hiện bằng cách gán trọng số cao hơn cho các bộ phân lớp riêng lẻ hoạt động tốt trên các bộ dữ liệu thử nghiệm. Voting đảm bảo việc giảm thiểu hiệu ứng nhiễu từ đó làm tăng hiệu quả trong dự đoán lỗi [7]. 2.5 Stacking Stacking là một biến thể của mô hình máy học kết hợp - ensemble learning còn được gọi là phương pháp meta-learning, bao gồm một hệ thống phân cấp các bộ phân loại khác nhau. Mục tiêu của stacking là để xây dựng một bộ phân loại cấp độ meta có thể dự đoán nhãn đích của tập dữ liệu bằng cách kết hợp kết quả các dự đoán từ các bộ phân loại riêng biệt. Tương tự như Boosting, Stacking sử dụng các sơ đồ trọng số phức tạp so với bagging sử dụng các sơ đồ trọng số đồng nhất đơn giản [13]. Một số tài liệu nghiên cứu cho thấy rằng Stacking có thể tạo ra hiệu suất tốt hơn so với Voting [10]. 3 Xây dựng thực nghiệm 3.1 Thiết kế thực nghiệm Trong bài báo này, chúng tôi muốn phân tích các thuật toán trong mô hình máy học kết hợp trong bài toán dự đoán lỗi phần mềm. Câu hỏi nghiên cứu được chúng tôi phân tích “so sánh hiệu quả của những thuật toán trong mô hình máy học kết hợp trong việc dự đoán lỗi của phần mềm?” Các bước thực nghiệm được tiến hành như sau: · Lựa chọn các tập dữ liệu từ kho dữ liệu NASA. · Các thuật toán học máy được lựa chọn để phân tích gồm Bagging, AdaBoost, Vote, Stacking và 1 thuật toán đơn NaiveBayes. · Sử dụng các độ đo đánh giá accuracy và AUC để phân tích kết quả đạt được. · Từ kết quả đưa ra kết luận. 3.2 Tập dữ liệu Dự đoán lỗi phần mềm là giai đoạn quan trọng trong việc cải thiện chất lượng phát triển phần mềm. Để dự đoán, các độ đo khác nhau đã được sử dụng trong các công trình nghiên cứu khác nhau. Bộ dữ liệu có thể là công khai hoặc riêng tư; ở đây dữ liệu công khai có thể được sử dụng bởi mọi người và được sử dụng cho nhiều ứng dụng. Nhưng dữ liệu riêng tư không thể được truy cập và sử dụng bởi tất cả và nó có một số vấn đề và quy trình để sử dụng các bộ dữ liệu đó. Đối với các nghiên cứu này, dữ liệu được thu thập từ bộ dữ liệu độ đo NASA [8] bao gồm CM1, PC1, KC1 và KC2. · CM1 Dataset CM1 được tạo ra từ tập dữ liệu độ đo của NASA, được viết bằng ngôn ngữ C. Các tính năng của độ đo McCabe và Halstead được trích xuất từ mã nguồn. Các độ đo này dựa trên hàm hoặc phương thức. · KC1 Dataset KC1 được tạo ra từ tập dữ liệu độ đo của NASA. Nó được quản lý lưu trữ để nhận và xử lý dự án dữ liệu mặt đất, được viết bằng ngôn ngữ C ++. Các tính năng của độ đo McCabe và Halstead được trích xuất từ mã nguồn. · KC2 Dataset 160 Hà Thị Minh Phương, Phan Thị Quỳnh Hương KC2 cũng được tạo ra từ tập dữ liệu độ đo của NASA. Đó là một xử lý dữ liệu khoa học; đó là một phần khác của dự án KC1, được viết bằng ngôn ngữ C ++. Nó đã thêm các thư viện phần mềm của bên thứ ba với KC1. Dữ liệu bắt nguồn từ độ đo McCabe và Halstead được trích xuất từ mã nguồn. · PC1 Dataset PC1 cũng được tạo ra từ tập dữ liệu độ đo của NASA. Đó là phần mềm chuyến bay được thiết kế cho vệ tinh quay quanh trái đất, được viết bằng ngôn ngữ C. Dữ liệu bắt nguồn từ độ đo McCabe và Halstead được trích xuất từ mã nguồn. · JM1 Dataset JM1 được khai thác từ kho NASA Metrics Data Program được trích xuất với các độ đo của McCabe and Halstead. Thuộc tính goal dùng để xác định mô-đun lỗi hoặc không lỗi. 3.3 Độ đo đánh giá Phân loại độ chính xác có được bởi các độ đo đánh giá bao gồm True Positive rate, False Positive rate, Precision, Recall and F-measures. • True Positive (TP) True Positive, tỷ lệ được phân loại là lớp x / Tổng số thực tế trong lớp x. True Positive được dự đoán bởi các mô-đun được dự đoán là positive với kết quả thu được thực sự là positive. Ví dụ, nếu người được xác định là khỏe mạnh, mà kết quả được hiển thị thực sự là khỏe mạnh , thì đó là một kết quả True Positive thực sự. True Positive rate = True Positive / (True Positive + False Negative) • False Positive (FP) False Positive tỷ lệ không chính xác được phân loại là lớp x / Tổng số thực tế của tất cả các lớp, ngoại trừ x. Đó là dự đoán không chính xác so với kết quả ban đầu. Ví dụ: nếu người được xác định là không khỏe mạnh, nhưng kết quả được hiển thị là khỏe mạnh, thì đó là kết quả False Positive. False Positive rate = False Positive / (False Positive + True Negative) • Precision Số đoạn mã có lỗi được phân loại đúng trên tổng số đoạn mã được phân loại có lỗi. Tiêu chí này tượng trưng cho độ chính xác phân loại lỗi của mô hình. Precision càng lớn thì mô hình dự đoán lỗi càng chính xác: Precision = True Positive / (True Positive + False Positive) • Recall Số đoạn mã có lỗi được phân loại đúng trên tổng số đoạn mã có lỗi. Tiêu chí này tượng trưng cho độ nhạy với lỗi của thuật toán.. Recall = True Positive / (True Positive + False Negative) • F-Measure Giá trị trung bình giữa precision và recall. • Accuracy Độ chính xác được tính bằng số lượng phiên bản được dự đoán tích cực chia cho Tổng số trường hợp. Trong thí nghiệm, các giá trị của độ chính xác được đăng vào bảng trên cơ sở từ 0 đến 1, không phải từ 0 đến 100. • Receiver Operating Characteristic curve - Đường cong ROC: biểu diễn các điểm (FPR, TPR) trên đồ thị khi thay đổi threshold từ 0 tới 1 ta sẽ thu được một đường được gọi là Receiver Operating Characteristic curve hay ROC curve. Một mô hình hiệu quả khi có FPR thấp và TPR cao, tức tồn tại một điểm trên ROC curve gần với điểm có toạ độ (0, 1) trên đồ thị (góc trên bên trái). Curve càng gần thì mô hình càng hiệu quả. • Area under the ROC Curve –AUC là diện tích nằm dưới ROC Curve Receiver Operating Characteristic. Giá trị này là một số dương nhỏ hơn hoặc bằng 1. Giá trị này càng lớn thì mô hình càng tốt. 161 KỶ YẾU HỘI THẢO KHOA HỌC QUỐC GIA CITA 2020 “CNTT VÀ ỨNG DỤNG TRONG CÁC LĨNH VỰC” 4 Kết quả thực nghiệm 4.1 Thực nghiệm Trong bài báo này, để so sánh hiệu quả của các thuật toán trong mô trong mô hình kết hợp các kỹ thuật máy học - ensemble learning và đồng thời các thuật toán này so sánh với hiệu quả của dự đoán lỗi nếu chỉ dùng 1 thuật toán đơn, chúng tôi tiến hành thực nghiệm trên nhóm mà mỗi thuật toán trong mô hình học kết hợp bao gồm Bagging, AdaBoost, Vote, Stacking kết hợp với một thuật toán phân lớp cơ bản NaiveBayes và tiếp theo sẽ so sánh kết quả thực nghiệm của nhóm chỉ sử dụng một thuật toán đơn NaiveBayes. Các tập dữ liệu CM1, KC2 C1, PC1 và JM1 được khai thác từ kho dữ liệu NASA’s Metric Data Progam. Các tập dữ liệu này được kết hợp dựa trên tập hướng cấu trúc và tập hướng đối tượng. CM1, PC1 và JM1 được viết bằng ngôn ngữ C và KC1, KC2 được viết bằng C++. Các kết quả giá trị của Accuray, AUC của các thuật toán được thu thập từ công cụ Weka [16]. Các thực nghiệm sử dụng phương pháp 10-Fold Cross-Validation với các tập dữ liệu bạn đầu được chia ngẫu nhiên thành 10 tập con, trong đó 9 tập sẽ được sử dụng như tập huấn luyện và 1 tập còn lại là tập kiểm tra. Cuối cùng, kết quả cuối cùng là trung bình giá trị sau các lần lặp. Chúng tôi tiến hành so sánh giá trị trung bình của Accuracy (phạm vi giá trị từ 0 đến 1) và giá trị AUC của các thuật toán trên các tập dữ liệu. Bảng 1 mô tả các tập dữ liệu với số lượng các thuộc tính và số mẫu, số lượng mẫu trong mỗi tập dữ liệu được phân loại lỗi nhỏ hơn nhiều so với số lượng mẫu không lỗi. Bảng 1. Mô tả tập dữ liệu STT Tập dữ liệu Ngôn ngữ Số thuộc tính Số mẫu Số mẫu phân loại lỗi Tỷ lệ của số mẫu phân loại lỗi 1 CM1 C 41 505 48 9.5% 2 PC1 C 41 1109 77 6.94% 3 KC1 C++ 22 2019 326 15.45% 4 KC2 C++ 22 522 105 20.5% 5 JM1 C 22 10885 2106 19.35% 4.2 Kết quả thực nghiệm Sự so sánh và đánh giá hiệu quả của các thuật toán trong mô hình máy học kết hợp được thực hiện bao gồm Bagging, AdaBoost, Vote, Stacking kết hợp với thuật toán đơn NaiveBayes và mô hình chỉ có thuật toán đơn NaiveBayes trên các tập dữ liệu được thể hiện qua các bảng 2 và bảng 3. Bảng 2. So sánh kết quả của Accuracy của các thuật toán Tập dữ liệu Bagging AdaBoost Vote Stacking NaiveBayes CM1 0.89 0.90 0.90 0.90 0.85 PC1 0.94 0.93 0.93 0.92 0.89 KC1 0.86 0.84 0.85 0.84 0.82 KC2 0.83 0.81 0.84 0.79 0.83 JM1 0.81 0.80 0.82 0.80 0.80 162 Hà Thị Minh Phương, Phan Thị Quỳnh Hương Bảng 3. So sánh kết quả AUC của các thuật toán Tập dữ liệu Bagging AdaBoost Vote Stacking NaiveBayes CM1 0.69 0.70 0.78 0.74 0.65 PC1 0.84 0.80 0.85 0.77 0.66 KC1 0.80 0.78 0.82 0.82 0.79 KC2 0.82 0.72 0.82 0.76 0.80 JM1 0.74 0.71 0.75 0.69 0.67 Từ kết quả thực nghiệm của Bảng 2 và Bảng 3 đã cho thấy việc sử dụng các thuật toán trong mô hình máy học kết hợp với thuật toán đơn để dự đoán lỗi đạt hiệu quả cao hơn so với chỉ mô hình sử dụng một thuật toán đơn như NaiveBayes. Các giá trị Accuracy và AUC của 5 thuật toán mô hình máy học kết hợp đạt giá trị cao hơn hẳn so với 1 thuật toán NaiveBayes. Hơn nữa thuật toán Vote thì cho kết quả tốt hơn so với các thuật toán còn lại trong mô hình máy học kết hợp. 5 Kết luận Trong bài toán dự đoán lỗi phần mềm, vấn đề mất cân bằng dữ liệu như dữ liệu bị thiếu hoặc dư thừa những thuộc tính liên quan sẽ làm ảnh hưởng đến hiệu quả dự đoán của các thuật toán trong mô hình dự đoán lỗi. Bài báo này khai thác vai trò của mô hình máy học kết hợp – ensemble learning trong dự đoán lỗi, đưa ra các so sánh về hiệu quả của các thuật toán trong mô hình này so với các mô hình dự đoán chỉ gồm một thuật toán máy học đơn. Trong bài báo này, chúng tôi tiến hành thực nghiệm trên các thuật toán trong mô hình máy học kết hợp gồm Bagging, AdaBoost, Vote, Stacking kết hợp với 1 thuật toán đơn NaiveBayes và mô hình chỉ sử dụng 1 thuật toán đơn NaiveBayes trên tập dữ liệu NASA. Đầu tiên, kết quả các độ đo đánh giá Accuracy và AUC của với các thuật toán trong mô hình máy học kết hợp tốt hơn so với chỉ sử dụng NaiveBayes. Trong nghiên cứu tiếp theo, chúng tôi sẽ phân tích so sánh các ưu điểm, nhược điểm của các thuật toán mô hình máy học kết hợp từ đó áp dụng để xây dựng các mô hình dự đoán lỗi có hiệu quả cao. Tài liệu tham khảo 1. Alexandre Boucher and Mourad Badri. Predicting fault-prone classes in object-oriented software: an adaptation of an unsupervised hybrid som algorithm. In 2017 IEEE International Conference on Software Quality, Reliability and Security (QRS), pages 306–317. IEEE, 2017. 2. Leo Breiman. Bagging predictors. Machine learning, 24(2):123–140, 1996. 3. Yoav Freund and Robert E Schapire. A desicion-theoretic generalization of on-line learning and an application to boosting. In European conference on computational learning theory, pages 23–37. Springer, 1995. 4. David Gray, David Bowes, Neil Davey, Yi Sun, and Bruce Christianson. Using the support vector machine as a classification method for software defect prediction with static code metrics. In International Conference on En- gineering Applications of Neural Networks, pages 223–234. Springer, 2009. 5. Taghi M Khoshgoftaar, Kehan Gao, and Amri Napolitano. An empirical study of feature ranking techniques for software quality prediction. International journal of software engineering and knowledge engineering, 22(02): 161–183, 2012. 6. Ludmila I Kuncheva. Combining pattern classifiers: methods and algorithms. John Wiley & Sons, 2014 7. Issam H Laradji, Mohammad Alshayeb, and Lahouari Ghouti. Software defect prediction using ensemble learning on selected features. Information and Software Technology, 58:388–402, 2015. 8. Ruchika Malhotra and Ankita Jain. Fault prediction using statistical and machine learning methods for improving software quality. Journal of Information Processing Systems, 8(2):241–262, 2012. 9. Robert E Schapire. The strength of weak learnability. Machine learning, 5 (2):197–227, 1990. 10. Ljupˇco Todorovski and Saˇso Dˇzeroski. Combining classifiers with meta decision trees. Machine learning, 50(3):223–249, 2003. 163 KỶ YẾU HỘI THẢO KHOA HỌC QUỐC GIA CITA 2020 “CNTT VÀ ỨNG DỤNG TRONG CÁC LĨNH VỰC” 11. Vipul Vashisht, Manohar Lal, and GS Sureshchandar. Defect prediction framework using neural networks for software enhancement projects. Journal of Advances in Mathematics and Computer Science, pages 1–12, 2016. 12. RomiSatriaWahono,Nanna Suryana Herman, and Sabrina Ahmad. Neural network parameter optimization based on genetic algorithm for software defect prediction. Advanced Science Letters, 20(10-11):1951–1955, 2014. 13. David H Wolpert. Stacked generalization. Neural networks, 5(2):241–259, 1992. 14. Chubato Wondaferaw Yohannese, Tianrui Li, Macmillan Simfukwe, and Faisal Khurshid. Ensembles based com- bined learning for improved software fault prediction: A comparative study. In 2017 12th International Conference on Intelligent Systems and Knowledge Engineering (ISKE), pages 1–6. IEEE, 2017. 15. Pengyang Zong, Yichen Wang, and Feng Xie. Embedded software fault prediction based on back propagation neural network. In 2018 IEEE International Conference on Software Quality, Reliability and Security Companion (QRS-C), pages 553–558. IEEE, 2018. 16. Witten, Ian H., Eibe Frank, and M. A. Hall. "Data Mining: Practical machine learning tools and techniques. edi- tion." Morgen Kaufmann, San Francisco (2005). 164

Các file đính kèm theo tài liệu này:

  • pdfnghien_cuu_mo_hinh_may_hoc_ket_hop_trong_du_doan_doan_loi_ph.pdf