Makine öğrenmesi algoritmaları ile yazılım hata kestirimi
Software defect prediction with machine learning algorithms
Yazar: ÖZGE ŞEN KAYA
Danışman: DR. ÖĞR. ÜYESİ SİNEM BOZKURT KESER
Eskişehir Osmangazi Üniversitesi / Fen Bilimleri Enstitüsü / Bilgisayar Mühendisliği Ana Bilim Dalı / Yapay Zeka Bilim Dalı
Derece: Yüksek Lisans, 2023
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control

Özet:
Bilgisayarları ve makineleri çalıştırmak, belirli fonksiyonların işletilebilmesi için
kullanılan komutlar bütünü yazılım olarak adlandırılmaktadır. Günümüzde birçok alanda
yapılan faaliyetler ve kullanılan uygulamalar, içerisinde farklı algoritmalarla tasarlanmış
yazılımlar barındırır. Bu yazılımların kusursuz ve ihtiyaçları doğru şekilde sağlaması büyük
önem teşkil etmektedir. Yazılımların kalitesi ve hata içermemesi hem yazılımı geliştiren
kişilerin hem de yazılımı kullanan son kullanıcıların önem verdiği konulardır. Yazılım hata
tahmini, doğası gereği dengesiz sınıf problemi içerir. Bu çalışmanın amacı, yazılım hata
tahmininde dengesiz sınıf problemi çözülerek kullanılan veri setlerinde en uygun
sınıflandırma algoritmasının belirlenmesi ve modellerinin oluşturulmasıdır. Bu doğrultuda,
dengesiz sınıf probleminin çözümünde farklı alt örnekleme ve üst örnekleme yöntemleri,
literatürde araştırmacıların kullanımına açık NASA'nın PROMISE veri deposundan alınan
13 farklı veri kümesinin üzerinde uygulanmıştır. Bu veri kümeleri CM1, JM1, KC1, KC2,
KC3, MC1, MC2, MW1, PC1, PC2, PC3, PC4 ve PC5 veri setleri olup açık kaynaklı veri
setleridir. Yazılım hata tahmini aşamasında ise önerilen model ile dengesiz sınıf problemine
çözüm bulunmuş, farklı sınıflandırma algoritmalarının performans değerleri karşılaştırılarak
her bir veri kümesi için en uygun sınıflandırma modeli belirlenmiştir. Deney sonuçlarında
on farklı örnekleme yöntemi ile veri kümelerindeki dengesiz sınıf problemi giderilmiş; on
üç farklı sınıflandırma algoritması ile sınıflandırma işlemi yapılmıştır. Veri setlerine bağlı
olarak en iyi performans sonuçlarının hangi örnekleme tipinde ve sınıflandırma
algoritmasında olduğunun analizi gerçekleştirilmiştir. Böylece yazılım hata tahmininde
örnekleme yöntemleri ve uygun sınıflandırıcılar ile hata tahmin modelinin performansı
iyileştirilmiştir.

Abstract:
The set of commands used to operate computers and machines and to operate certain
functions is called software. Today, activities and applications used in many fields contain
software designed with different algorithms. It is of great importance that these softwares
meet the needs perfectly and correctly. The quality of the software and the absence of defects
that both software developers and end users of the software care about. Software defect
prediction inherently involves an imbalanced class problem. In this study, first of all, the
imbalanced class problem was tried to be solved. In this direction, different undersampling
and oversampling methods were applied on the 13 different datasets taken from NASA's
PROMISE data repository, which is open to researchers in the literature. These datasets are
CM1, JM1, KC1, KC2, KC3, MC1, MC2, MW1, PC1, PC2, PC3, PC4 and PC5 are open
source and publicly available. In the software defect prediction phase,a solution to the
imbalanced class problem was found with the proposel model, the performance values of
different classification algorithms were checked against and the most appropriate
classification model was decided for each data set. In the experimental results, the
imbalanced class problem in the datasets was resolved with ten different sampling methods;
classification was done with thirteen different classification algorithms. Depending on the
data sets, the analysis of which sampling type and classification algorithm had the best
performance results was carried out. Thus, the performance of the defect prediction model
has been improved with sampling and appropriate classifiers in software defect prediction.