<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Yazılım Hata Kestiriminde Kolektif Sınıflandırma Modellerinin Etkisi</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Deniz Kılınç</string-name>
          <email>deniz.kilinc@cbu.edu.tr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Emin Borandağ</string-name>
          <email>emin.borandag@cbu.edu.tr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Fatih Yücalar</string-name>
          <email>fatih.yucalar@cbu.edu.tr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Akın Özçift</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Fatma Bozyiğit</string-name>
          <email>fatma.bozyigit@cbu.edu.tr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği Bölümü</institution>
          ,
          <addr-line>Manisa</addr-line>
          ,
          <country country="TR">Türkiye</country>
        </aff>
      </contrib-group>
      <fpage>113</fpage>
      <lpage>121</lpage>
      <abstract>
        <p>Özet. Yazılım hatalarının tespiti karmaşık ve maliyetli bir süreçtir. Yazılım projelerinde ortaya çıkan hataların önceden tespit edilip düzeltilmesi, öngörülen maliyeti ve proje süresini aşma risklerini azaltır. Hataların tespiti için “yazılım ölçütleri” etkili kullanılarak, erken yazılım geliştirme aşamalarında kod analiz edilip, hata yatkınlığıyla ilgili fikir sahibi olunabilir. Yazılımların ölçümünde kullanılmak üzere çeşitli yazılım ölçütleri üretilmiştir. Bu çalışmada, "Chidamber and Kemerer (CK)" ve "Object Oriented (OO)" yazılım ölçütlerine sahip 4 veri seti üzerinde, 4 tane temel sınıflandırıcı ile bunların AdaBoost ve Rotation Forest kolektif sınıflandırma modelleri kullanılarak, yazılım hata kestirimi yapılmıştır. Temel sınıflandırıcılar seçilirken farklı kategorilerden olmasına dikkat edilmiştir. Genel olarak değerlendirildiğinde, kolektif sınıflandırma yöntemlerini kullanmak, temel sınıflandırıcıların başarımına göre yaklaşık %70 oranla daha iyi sonuç vermektedir. Anahtar Kelimeler. Yazılım hata kestirimi, makine öğrenmesi, sınıflandırma, kolektif sınıflandırma, veri madenciliği.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Yazılım testi temel olarak geliştirilen ürünün beklenen kalitede olduğunu belirlemek,
değilse istenilen kaliteye ulaştırılmasını sağlamak için kullanılan bir süreçtir.
Günümüz yazılım dünyasında, yazılım test yaklaşımları ve yazılım kalitesi en çok
çalışılan konular haline gelmiştir. Bunun başlıca nedeni, yazılımların büyümesiyle
birlikte karmaşıklıklarının ve beraberinde yazılımlarda ortaya çıkan hatalar ile bu
hataları düzeltme maliyetlerinin artmasıdır [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ][
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
      </p>
      <p>Yazılım projelerinde ortaya çıkan hataların önceden tespit edilip düzeltilmesi
öngörülen maliyeti ve proje süresini aşma risklerini azaltır. Ortaya çıkması muhtemel
hataları mümkün olduğu kadar erken tespit edebilmek için, verimli ve etkili bir test
planının uygulanması gerekir. Yazılım ölçütlerinin etkili kullanılmasıyla daha erken
aşamalarda kod analiz edilip, hata yatkınlığıyla ilgili fikir sahibi olunabilir, gerekirse
önlem alınabilir.</p>
      <p>
        Yazılım hata ölçütleri, bir önceki yazılımın hatalarını kullanarak bir sonraki
yazılımın hatalarını tahmin etmek için kullanılır. Yazılım hata tahmin yöntemleri
sayesinde yazılımdaki hataların, kaynak kodun bazı özellikleri incelenerek tespit
edilmesi mümkündür. Günümüzde yazılım hata tahmini için çeşitli sınıflandırma
algoritmaları geliştirilmiştir [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ][
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
      </p>
      <p>
        Sınıflandırma, nesneleri önceden tanımlanmış bilgilere ve bulunduğu duruma göre
ilgili kategoriye atama anlamına gelir. Başka bir ifade ile sınıflandırma, geçmişte
toplanan verilerin hangi sınıfa ait olduğu bilindiğinde, yeni gelen verinin hangi sınıfa
ait olduğunu bulma işlemidir [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. Sınıfı bilinen nesneler ile (öğrenme veri seti) bir
model kurulur. Kurulan model öğrenme kümesinde yer almayan nesnele ile (test veri
seti) test edilerek performansı ölçülür. Literatürde karar ağaçları, bayes
sınıflandırıcıları, kural-tabanlı sınıflandırıcılar, yapay sinir ağları, k-en yakın komşu
sınıflandırıcıları, destek vektör makinası ve kolektif öğrenme yöntemleri gibi
sınıflandırma algoritmaları kullanılmaktadır.
      </p>
      <p>Bu çalışmada, "Chidamber and Kemerer (CK)" ve "Object Oriented (OO)" yazılım
ölçütlerine sahip dört veri seti üzerinde, dört temel sınıflandırıcı ile bunların
AdaBoost ve Rotation Forest kolektif sınıflandırma modelleri kullanılarak yazılım
hata kestirimi yapılmıştır.</p>
      <p>Bildirinin ikinci bölümünde temel sınıflandırma algoritmaları ile ilgili bilgilere yer
verilmiştir. Üçüncü bölümde, kolektif sınıflandırma içerisinde en çok kullanılan
algoritmalar ele alınmıştır. Dördüncü bölümde ise deneysel çalışma, kullanılan veri
seti, deneysel ölçütler ve değerlendirme sonuçları yer almaktadır. Son olarak, beşinci
bölümde ise elde edilen sonuçlar değerlendirilmiştir.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Sınıflandırma Algoritmaları</title>
      <p>
        Bütün sınıflandırma algoritmalarında hedeflenen temel nokta, minimum veri ile
maksimum sayıda verinin sınıflanmasıdır. Sınıflandırma algoritmalarının
kullanılmasındaki temel amaç, minimum zamanda ve minimum eğitim verisi ile
tahmin yapabilmektir [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. Çok farklı sınıflandırma türleri olsa da genel olarak yedi
farklı sınıflandırma türü vardır. Bunlar; Karar Ağaçları (Decision Trees),
KuralTabanlı (Rule-Base), En Yakın Komşu (Nearest-Neighbor), Bayes, Yapay Sinir
Ağları (Artificial Neural Network), Destek Vektör Makinesi (Support Vector
Machine), Kolektif Sınıflandırma (Ensemble Classifier) olarak adlandırılmaktadır.
      </p>
      <p>
        Karar ağaçları (decision trees), veri setlerinin sınıflandırılması için kullanılan temel
bir yöntemdir. Oluşturulması ve sonuçlarının yorumlanması kolay olduğu için pek
çok farklı veri setinde kullanılmıştır. Dört temel adımdan oluşmaktadır. Eğitim veri
setinin oluşturulması ile kurallar bütünü oluşturulur. Seçilen özellikler ile kök düğüm,
iç düğüm ve yapraklar belirlenir. Seçilen her bir nitelik için beklenmeyen durumun ve
belirsizliğin ortaya çıkma olasılığı kullanılarak bilgi kazancı hesaplanır. En yüksek
bilgi kazancı oranı kök olarak belirlenir [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. Karar ağaçlarındaki en önemli sorun
oluşturulacak karar ağacının kök, düğüm, iç düğüm ve yapraklarının belirlemesindeki
zorluktur. Bu sorunun aşılması için çeşitli algoritmalar geliştirilmiştir. Bunların
başında belirsizlik olasılığının ölçümü için kullanılan entropi algoritmaları
gelmektedir. Diğerleri ise CART denilen regresyon ve sınıflandırma ağaçları
içerisinde yer alan Twoing ve Gini algoritmaları ile bellek tabanlı sınıflama
algoritmalarıdır [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
      </p>
      <p>
        Kural-tabanlı sınıflandırmada (rule-based classifier), bilgi veya bilgi bitlerini
temsil etmek için kurallar kullanılmaktadır. Bir kural-tabanlı sınıflandırıcı,
sınıflandırma için IF-THEN kuralları kümesini kullanır. Bir IF-THEN kuralında, IF
koşulu THEN sonucu ifade etmektedir [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
      </p>
      <p>
        Sınıfların belirlenmesinde kullanılan diğer bir temel bir sınıflandırma türü ise En
Yakın Komşu (Nearest Neighbor) yöntemidir. Hangi sınıfa ait olduğu bilinmeyen
veriyi tanımlamak için kendisine en yakın olan sınıf üyesi öklit yöntemi kullanılarak
belirlenir. Bu işin gerçekleştirilebilmesi için bütün veriler n boyutlu bir uzay
içerisinde olacak şekilde yerleştirilir ve hangi sınıfa ait olduğu belli olmayan veri,
kendisine en yakın sınıfın üyesi olarak belirlenir [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ].
      </p>
      <p>
        Bayes Sınıflandırma (Bayes Classifier), istatistiksel bir yaklaşımla hangi verinin
hangi sınıfın üyesi olduğunu bulmaya çalışan bir sınıflandırma türüdür. Kendi
içerisinde kural-tabanlı bir sistemi vardır. Temel kural göre verinin hangi sınıftan
olması gerektiğinin olasılığı hesaplanır [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ].
      </p>
      <p>
        Yapay Sinir Ağları (Artificial Neural Networks), verilerin karmaşık yapıya sahip
olduğu ve gürültü içerdiği durumlarda ve veriler arasındaki doğrusal olmayan
ilişkilerin öğrenilmesinde başarılı ve güçlü bir sınıflandırma yöntemidir [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. Yapay
Sinir Ağlarının temelinde, insan beynine ait üstün karakteristikleri taklit ederek,
yazılımları tanıma-öğrenme süreçlerinin performanslarını arttırmak vardır.
      </p>
      <p>
        Destek Vektör Makinesi (Support Vector Machine), istatistiksel öğrenme teorisi
alanında ortaya atılan, Cortes ve Vapnik tarafından geliştirilmiş bir öğrenme
metodudur [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. Destek Vektör Makinesi temel olarak, lineer olmayan örnek
uzayının, örneklerin lineer olarak ayrılabileceği bir yüksek boyuta aktararak farklı
örnekler arasındaki maksimum sınırın bulunması esasına dayanır.
      </p>
      <p>
        Kolektif Sınıflandırmada (Ensemble Classifier) temel amaç, daha önceden farklı
sınıflandırıcılar tarafından elde edilen değerlerin bir araya getirilmesi ile bir sonuç
üretilmesidir. Bu işlem yapılırken diğer sınıflandırıcılara belli ağırlık puanları
verilerek hesaplama yapılmaya çalışılır. Burada asıl problem farklı sınıflama
algoritmalarını birleştirilmek ve hangi oranların kullanılacağına karar vermektir. En
büyük avantajı diğer yöntemlerin verilerini bir arada kullandığı için daha iyi değerler
elde edilebilmesidir [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. Kolektif Sınıflandırma içerisinde yerine koyarak örnekleme
(bagging), hızlandırma (boosting), rotasyon ormanı (rotation forest) ve rastgele orman
(random forest) gibi çeşitli algoritmalar bulunmaktadır.
3
      </p>
    </sec>
    <sec id="sec-3">
      <title>Kollektif Sınıflandırma Algoritmaları</title>
      <p>Kolektif sınıflandırma içerisinde çeşitli algoritmalar bulunmaktadır. Bunlardan en çok
bilinen ve kullanılanları yerine koyarak örnekleme (bagging), hızlandırma (boosting),
rastgele orman (random forest) ve rotasyon ormanı (rotation forest) dır.
3.1</p>
      <sec id="sec-3-1">
        <title>Yerine Koyarak Örnekleme</title>
        <p>
          Breiman tarafından önerilen yerine koyarak örnekleme (bagging) algoritması, var
olan bir eğitim setinden yeni eğitim setleri türeterek temel öğreniciyi yeniden
eğitmeyi amaçlayan bir yöntemdir [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ]. Bagging'de n adet örnekten oluşan eğitim
setinden yine n örnekli bir eğitim seti yerine koymalı rastgele seçimle üretilir. Bu
durumda bazı eğitim örnekleri yeni eğitim kümesinde yer almazken bazıları birden
fazla kez yer alırlar. Topluluktaki her bir temel öğrenici bu şekilde üretilmiş
birbirinden farklı örnekler içeren eğitim kümeleriyle eğitilirler ve sonuçları çoğunluk
oylaması ile birleştirilir.
3.2
        </p>
      </sec>
      <sec id="sec-3-2">
        <title>Hızlandırma (Boosting)</title>
        <p>
          Sınıflandırma açısından diğer önemli olan bir konuda hızlandırma (boosting)
yöntemidir. Bu yöntem sayesinde sınıflandırıcının bulmuş olduğu doğruluk değeri
arttırılabilir. Boosting yönteminde veriye ait bir önceki sınıflandırıcının doğru olarak
belirleyemediği veriler kullanılır. Hatalı veriler sonradan kullanılacak eğitim seti
içerisine tekrardan eklenerek daha doğru tahmin yapılmaya çalışılır. Bu yöntemde her
bir veri işlemi için bir ayarlama oranının hesaplanması vardır [
          <xref ref-type="bibr" rid="ref16 ref17">16, 17</xref>
          ]. Boosting için
en fazla kullanılan Adaboost algoritmasıdır.
3.3
        </p>
      </sec>
      <sec id="sec-3-3">
        <title>Rastgele Orman (Random Forest)</title>
        <p>
          Rastgele Orman (Random Forest - RF) bir kolektif sınıflandırma algoritmasıdır.
Breiman ve Cutler [
          <xref ref-type="bibr" rid="ref18 ref19">18, 19</xref>
          ] tarafından geliştirilmiştir. Sürekli olarak yeni
versiyonlarla güncellenmektedir. Temel olarak sınıflandırma ve regresyon için
kullanılmaktadır. Naif karar ağacına benzer bir sisteme sahiptir. Temel farkı eğitim
sürecinde birçok ağacın üretilmesine izin vermesidir. RF metodunda, ormanı
oluşturan karar ağaçları Bootstrap yöntemi kullanılarak seçilen farklı örneklerden bir
araya gelir. Bu yöntem için orijinal veri seti kullanılır. Veri setinin eğitimi kısmında
çoklu karar ağaç yapısı kullanılır.
3.4
        </p>
      </sec>
      <sec id="sec-3-4">
        <title>Rotasyon Ormanı (Rotation Forest)</title>
        <p>
          Rotasyon orman algoritması son yıllarda sınıflandırıcıların performansının arttırılması
amacıyla önerilen yeni nesil bir kolektif öğrenme algoritmasıdır [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ]. Birden fazla
ağaç kullanılmakta olan bu algoritmasının çalışma prensibi rastgele orman
algoritmasına benzerdir. Rastgele orman algoritmasında olduğu gibi Bootstrap
algoritması bu algoritmada temel öğretici olarak kullanılmaktadır [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ]. Rastgele
orman algoritmasından farklı olarak ormandaki her bir karar ağacının eğitiminde
kullanılacak veri seti, ana bileşen analizi yardımıyla belirlenir. Rotasyon orman
algoritması ile ormandaki karar ağaçlarının eğitimi aşamasında eğitim veri seti
rastgele alt kümelere bölünür ve her bir alt kümeye ana bileşenler analizi uygulanarak
özellik çıkarımı gerçekleştirilir.
        </p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Deneysel Çalışma</title>
      <p>Bu bölüm içerisinde gerçekleştirilen deneysel çalışmalardan bahsedilmiştir.
4.1</p>
      <sec id="sec-4-1">
        <title>Değerlendirme Kriterleri</title>
        <p>Sınıflandırma modellerinin değerlendirilmesi için "Hata Matrisi (Confusion Matrix)"
kullanılmaktadır. Tablo 1’de Hata Matrisi görülmektedir.</p>
        <sec id="sec-4-1-1">
          <title>Tablo 1. Hata Matrisi</title>
          <p>Gerçek Sınıf</p>
        </sec>
        <sec id="sec-4-1-2">
          <title>C1(+) ∑ Pozitif</title>
          <p>C2(-)
∑ Negatif</p>
        </sec>
      </sec>
      <sec id="sec-4-2">
        <title>Tahmin Edilen Sınıf</title>
        <p>C1 (+)</p>
        <p>TP
FP</p>
        <p>C2 (-)
FN
TN</p>
        <p>Tablo 1’de görülen; TP: True Pozitif, FP: False Pozitif, FN: False Negatif, TN:
True Negatif değerlerini ifade etmektedir.</p>
        <p>
          Başarım oranı (Accuracy – ACC), sınıflandırıcının sınıf ayırım yeteneğini
belirlemek için geniş çapta kullanılan bir ölçüttür. Algoritma tarafından doğru olarak
sınıflandırılan test örneklerinin yüzdesi olarak tanımlanır. ACC, sınıflandırıcı
performanslarının değerlendirilmesinde kullanılan temel ölçütlerden biridir [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ].
Denklem 1’de verilen formül ile ACC oranı hesaplanır.
        </p>
        <p>
          Alıcı İşletim Karakteristiği (Receiver Operating Characteric - ROC) ya da sade
biçimde ROC eğrisi; testin ayırt etme gücünün belirlenmesine, çeşitli testlerin
etkinliklerinin kıyaslanmasına ve uygun pozitiflik eşiğinin belirlenmesine olanak
sağlar [
          <xref ref-type="bibr" rid="ref23">23</xref>
          ]. Bir sınıflandırıcının yeterliliğini belirlemek için kullanılabilen pratik bir
yöntem, performansın tek bir değer ile ifadesidir. En yaygın kullanılan ölçüm ise,
ROC eğrisinin altında kalan alandır (Area Under Curve - AUC). AUC oranı ne kadar
büyük ise sınıflandırıcının başarım oranı da o kadar iyidir. AUC’nin olası değerleri
0.5’ten 1.0’a kadar değişim gösterir. Denklem 2’de verilen formül ile AUC oranı
hesaplanır.
(1)
(2)
4.2
        </p>
      </sec>
      <sec id="sec-4-3">
        <title>Veri Setleri</title>
        <p>
          Bu çalışmada Ambros ve arkadaşları [
          <xref ref-type="bibr" rid="ref24">24</xref>
          ] tarafından hata kestirimi amaçlı hazırlanmış
veri seti kullanılmıştır. Bu veri seti içerisinden toplam 3689 sınıfa sahip açık kaynak
kodlu 4 proje seçilmiştir. Sınıfların "Chidamber and Kemerer (CK)", "Object
        </p>
        <p>= 12 ( ( + ) +  ( + ) )</p>
        <p>Yazılım</p>
        <sec id="sec-4-3-1">
          <title>Eclipse JDT Core</title>
          <p>www.eclipse.org/jdt/core/
Eclipse PDE UI
www.eclipse.org/pde/pde-ui/
Equinox framework
www.eclipse.org/equinox/
Apache Lucene
lucene.apache.org
4.3</p>
        </sec>
      </sec>
      <sec id="sec-4-4">
        <title>Kaynak kod ölçütleri</title>
        <p>Oriented (OO)" ve entropi gibi farklı ölçütlerine ek olarak sınıflardaki hata sayıları da
veri seti içerisinde yer almaktadır. Veri seti hakkındaki bilgiler Tablo 2’de verilmiştir.</p>
        <sec id="sec-4-4-1">
          <title>Tablo 2. Veri setine ilişkin bilgiler</title>
          <p>Sınıf Sayısı</p>
        </sec>
      </sec>
      <sec id="sec-4-5">
        <title>Versiyon Sonraki Sürüm Hataları</title>
        <p>997
1562
439
691
91
97
91
99
463
401
279
103
Yazılımları doğru ölçümlemek, yazılımlardaki kaliteyi arttıracaktır. Yazılımların
ölçümünde kullanılmak üzere çeşitli yazılım ölçütleri üretilmiştir. "Chidamber and
Kemerer (CK)" ve "Object Oriented (OO)" ölçütler bunlardan bazılarıdır.
Sınıflandırma algoritmalarının dikkate aldığı her bir veri setine ait CK ve OO ölçütleri
Tablo 3’de verilmiştir.</p>
        <sec id="sec-4-5-1">
          <title>Tablo 3. CK ve OO ölçütleri</title>
          <p>No
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Tip
CK
CK
CK
CK
CK
CK
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
OO
Ölçüt
DIT
WMC
CBO
NOC
RFC
LCOM
Fan-in
Fan-out
NOA
NOPA
NOPRA
NOAI
LOC
NOM
NOPM
NOPRM
NOMI</p>
        </sec>
      </sec>
      <sec id="sec-4-6">
        <title>Açıklama</title>
        <p>4.4</p>
      </sec>
      <sec id="sec-4-7">
        <title>Değerlendirme Sonuçları</title>
        <p>Tablo 4’de görüldüğü üzere literatürden dört temel sınıflandırıcı seçilmiştir.
Sınıflandırma yapılırken her bir sınıflandırıcı için tekli ve kolektif sınıflandırıcılar
kullanılmıştır. 4 ayrı veri seti üzerinde, seçilen bu dört temel sınıflandırıcı ile bunların
AdaBoost ve Rotation Forest kolektif sınıflandırma modelleri kullanılarak, yazılım
hata kestirimi yapılmıştır. Yapılan hata kestirimi sonucunda her bir proje için ayrı ayrı
elde edilen ACC ve AUC oranları Tablo 4’te sunulmuştur.</p>
        <p>Tablo 4. Yapılan sınıflandırma sonucu elde edilen ACC ve AUC sonuçları
Sınıf</p>
        <p>Algoritma
Bayes
Rules</p>
        <p>Bayesian Logistic Reg.</p>
        <p>Bayesian Logistic
Reg.AdaBoost
Bayesian Logistic
Reg.Rotation Forest
Decision Table
Decision
TableAdaBoost
Decision
TableRotation Forest</p>
        <p>IBk
Lazy</p>
        <p>IBk - AdaBoost
Tree</p>
        <p>J48 - AdaBoost
IBk – Rotation Forest
J48
J48 - Rotation Forest</p>
        <p>Eclipse</p>
        <p>JDT Core
ACC AUC</p>
        <p>Eclipse</p>
        <p>PDE UI
ACC AUC</p>
        <p>Equinox
Framework
ACC AUC</p>
        <p>Apache</p>
        <p>Lucene</p>
        <p>ACC AUC
0,72
0,72
0,83
0,84
0,84
0,84
0,80
0,80
0,81
0,82
0,81
0,84
0,57
0,55
0,67
0,75
0,75
0,75
0,69
0,69
0,77
0,70
0,77
0,77
0,86
0,85
0,86
0,85
0,85
0,86
0,79
0,79
0,83
0,85
0,84
0,86
0,50
0,73
0,56
0,61
0,70
0,74
0,60
0,58
0,70
0,65
0,69
0,72
0,66
0,66
0,74
0,69
0,70
0,69
0,69
0,69
0,70
0,67
0,70
0,69
0,70
0,69
0,72
0,77
0,77
0,78
0,75
0,75
0,79
0,75
0,76
0,76
0,90
0,90
0,91
0,90
0,90
0,90
0,86
0,86
0,86
0,90
0,88
0,90
0,50
0,50
0,53
0,62
0,65
0,70
0,56
0,54
0,64
0,53
0,63
0,67</p>
        <p>Dört farklı veri seti içinde ACC ve AUC oranlarına bakılmıştır. Toplam olarak 4
ayrı projenin 4 farklı kategorine baktığımızda 16 veriden 11 tanesinin kolektif
sınıflandırıcıların ACC metriğinde daha iyi olduğu görülmüştür. Öte yandan AUC
metriği temel alındığında kolektif öğrenme algoritmalarının diğer dört temel
algoritma ile kıyaslamalarında 16 veriden 15 tanesinde daha iyi olduğu görülmüştür.
Kolektif sınıflandırıcıların kendi içinde ACC oranlarına göre karşılaştırıldığında 16
veriden 11 tanesine Rotation Forest algoritmasın Adaboost algoritmasına göre daha
iyi olduğu görülmüştür.
Çalışmada dört temel sınıflandırıcı ile bunların AdaBoost ve Rotation Forest kolektif
sınıflandırma modelleri kullanılmıştır. 4 veri seti üzerinde toplam 12 adet
sınıflandırma modeli denenmiştir. Temel sınıflandırıcılar seçilirken farklı
kategorilerden olmasına dikkat edilmiştir. Çalışmada "bayes" kategorisinden
"Bayesian Logistic Regression" , "rules" kategorisinden "Decision Table", "lazy"
kategorisinden "IBk" ve "tree" kategorisinden "J48" sınıflandırıcıları seçilmiştir. Dört
farklı veri setinden özellikle "Bayesian Logistic Regression yönteminde Ensemble
Classifier yöntemleri daha başarılı olduğu görülmüştür. Genel olarak bakıldığında
ACC oranlarına göre yaklaşık %70 oranla kolektif sınıflandırma yöntemlerini
kullanmak daha iyi bir sonuç verdiği gözlemlenmiştir.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Kaynaklar</title>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Song</surname>
            ,
            <given-names>Q.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sheppard</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cartwright</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Mair</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Software Defect Association Mining and Defect Correction Effort Prediction</article-title>
          .
          <source>In: IEEE Transactions on Software Engineering</source>
          , Vol.
          <volume>32</volume>
          , No.
          <issue>2</issue>
          , pp.
          <fpage>69</fpage>
          -
          <lpage>82</lpage>
          (
          <year>2006</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Fenton</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Ohlsson</surname>
          </string-name>
          , N.:
          <article-title>Quantitative Analysis of Faults and Failures in a Complex Software System</article-title>
          .
          <source>In IEEE Transactions on Software Engineering</source>
          , Vol.
          <volume>26</volume>
          , No.
          <issue>8</issue>
          , pp.
          <fpage>797</fpage>
          -
          <lpage>814</lpage>
          (
          <year>2000</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Catal</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sevim</surname>
            ,
            <given-names>U.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Diri</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Software Fault Prediction of Unlabeled Program Modules</article-title>
          .
          <source>Proceedings of the World Congress on Engineering</source>
          , Vol.
          <volume>1</volume>
          , London, UK (
          <year>2009</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Catal</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Diri</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Investigating the effect of dataset size, metrics sets, and feature selection techniques on software fault prediction problem</article-title>
          .
          <source>Elsevier: Information Sciences</source>
          , Vol.
          <volume>179</volume>
          , No.
          <issue>8</issue>
          , pp.
          <fpage>1040</fpage>
          -
          <lpage>1058</lpage>
          (
          <year>2009</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Akman</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Genç</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ankaralı</surname>
          </string-name>
          , H.:
          <article-title>Random Forest Yöntemi ve Sağlık Alanında Bir Uygulama</article-title>
          .
          <source>Türkiye Klinikleri J Biostat</source>
          ,
          <volume>3</volume>
          (
          <issue>1</issue>
          ), ss.
          <fpage>36</fpage>
          -
          <lpage>48</lpage>
          (
          <year>2011</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Akman</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Veri Madenciliğine Genel Bakış ve Random Forests Yönteminin İncelenmesi: Sağlık Alanında Bir Uygulama</article-title>
          .
          <source>Yüksek Lisans Tezi</source>
          , Ankara Üniversitesi, Ankara (
          <year>2010</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Cha</surname>
            ,
            <given-names>S.H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tappert</surname>
          </string-name>
          , C.C.
          <article-title>: A Genetic Algorithm for Constructing Compact Binary Decision Trees</article-title>
          . Computer Science Department, Pace University 861 Bedford Road, Pleasantville,
          <source>Journal of Pattern Recognition Research</source>
          , New York, Vol.
          <volume>4</volume>
          , No.
          <issue>1</issue>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>13</lpage>
          (
          <year>2009</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Özkan</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          :
          <article-title>Veri Madenciliği Yöntemleri</article-title>
          .
          <source>Papatya Yayıncılık Eğitim</source>
          ,
          <volume>2</volume>
          .
          <string-name>
            <surname>Basım</surname>
          </string-name>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9. Han,
          <string-name>
            <given-names>J</given-names>
            .,
            <surname>Kamber</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Pei</surname>
          </string-name>
          ,
          <string-name>
            <surname>J.</surname>
          </string-name>
          :
          <source>Data Mining: Concepts and Techniques. Third Edition</source>
          , Morgan Kaufmann (
          <year>2011</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>Kırmızıgül</given-names>
            <surname>Çalışkan</surname>
          </string-name>
          ,
          <string-name>
            <surname>S.</surname>
          </string-name>
          , Soğukpınar, İ.:
          <article-title>K-means ve K en yakın komşu yöntemleri ile ağlarda nüfuz tespiti. 2. Ağ ve Bilgi Güvenliği Ulusal Sempozyumu</article-title>
          ,
          <string-name>
            <surname>Girne</surname>
          </string-name>
          (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Nigam</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>McCallum</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Thrun</surname>
          </string-name>
          , S., Mitchell, T.:
          <article-title>Learning to Classify Text from Labeled and Unlabeled Documents</article-title>
          .
          <source>In: Proceedings of the Fifteenth National/Tenth Conference on Artificial Intelligence/Innovative Applications of Artificial Intelligence</source>
          , pp.
          <fpage>792</fpage>
          -
          <lpage>799</lpage>
          (
          <year>1998</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Cortés</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Martinez</surname>
            ,
            <given-names>M.G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rubio</surname>
            ,
            <given-names>N.G.</given-names>
          </string-name>
          :
          <article-title>Multiclass Corporate Failure Prediction by Adaboost</article-title>
          .
          <source>M1. International Advances in Economic Research</source>
          ,
          <volume>13</volume>
          , Issue 3, pp.
          <fpage>301</fpage>
          -
          <lpage>312</lpage>
          (
          <year>2007</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Cortes</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Vapnik</surname>
          </string-name>
          , V.:
          <article-title>Support-vector network</article-title>
          .
          <source>Machine Learning</source>
          .
          <volume>20</volume>
          ,
          <fpage>273</fpage>
          -
          <lpage>297</lpage>
          ., (
          <year>1995</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Augusty</surname>
            ,
            <given-names>S. M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Izudheen</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Ensemble Classifiers A Survey: Evaluation of Ensemble Classifiers and Data Level Methods to Deal with Imbalanced Data Problem in ProteinProtein Interactions</article-title>
          .
          <source>Review of Bioinformatics and Biometrics</source>
          , Volume
          <volume>2</volume>
          Issue 1 (
          <year>March 2013</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Breiman</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>Bagging predictors</article-title>
          .
          <source>Machine Learning</source>
          ,
          <volume>24</volume>
          (
          <issue>2</issue>
          ) (
          <year>1996</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Schapire</surname>
          </string-name>
          , R. E.:
          <article-title>Theoretical Views of Boosting and Applications</article-title>
          .
          <source>In: Proceedings of the 10th International Conference on Algorithmic Learning Theory</source>
          (
          <year>1999</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Schapire</surname>
          </string-name>
          , R. E.:
          <article-title>A Brief Introduction to Boosting</article-title>
          .
          <source>In: Proceedings of the 16th International Joint Conference on Artificial Intelligence</source>
          (
          <year>1999</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Breiman</surname>
            ,
            <given-names>L.: Random</given-names>
          </string-name>
          <string-name>
            <surname>Forests</surname>
          </string-name>
          .
          <source>Machine Learning</source>
          .
          <volume>45</volume>
          (
          <issue>1</issue>
          ). pp.
          <fpage>5</fpage>
          -
          <lpage>32</lpage>
          (
          <year>2001</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Liaw</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Documentation for R package Random Forest</article-title>
          . (
          <year>2012</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Çölkesen</surname>
          </string-name>
          , İ.,
          <string-name>
            <surname>Yomralıoğlu</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kavzoğlu</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Rotasyon Orman Algoritması ile Yüksek Çözünürlüklü Multispektral Uydu Görüntülerinin Sınıflandırılması</article-title>
          . V.
          <article-title>Uzaktan Algılama ve Coğrafi Bilgi Sistemleri Sempozyumu (UZALCBS</article-title>
          <year>2014</year>
          ).
          <source>İstanbul</source>
          (
          <year>2014</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Cingiz</surname>
            ,
            <given-names>M. Ö.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Albayrak</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Amasyalı</surname>
            ,
            <given-names>M. F.</given-names>
          </string-name>
          :
          <article-title>Sınıflandırıcı Topluluklarının Gürültülü Verilere Karşı Gürbüzlüğünün Değerlendirilmesi</article-title>
          .
          <source>Signal Processing and Communications Applications Conference (SIU)</source>
          .
          <article-title>(</article-title>
          <year>2013</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>Ozcift</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gulten</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Classifier ensemble construction with rotation forest to improve medical diagnosis performance of machine learning algorithms</article-title>
          .
          <source>Computer Methods and Programs in Biomedicine</source>
          . Vol.
          <volume>104</volume>
          . Issue 3. pp.
          <fpage>443</fpage>
          -
          <lpage>451</lpage>
          (
          <year>2011</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <surname>Faraggi</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Reiser</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Estimation of the area under the ROC curve</article-title>
          .
          <source>Stat Med</source>
          . 21. pp.
          <fpage>3093</fpage>
          -
          <lpage>3106</lpage>
          (
          <year>2002</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <surname>D'Ambros</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lanza</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Robbes</surname>
            ,
            <given-names>R.:</given-names>
          </string-name>
          <article-title>An extensive comparison of bug prediction approaches</article-title>
          .
          <source>In MSR '10: Proceedings of the 7th International Working Conference on Mining Software Repositories</source>
          . pp.
          <fpage>31</fpage>
          -
          <lpage>41</lpage>
          (
          <year>2010</year>
          ).
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>