<!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>Veri Madenciliği Araçlarının Performansı</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Anahtar Kelimeler Veri Madenciliği</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Apache Spark</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Fp-Growth</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>K- Means</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Prof. Alp Kut Dokuz Eylül Üniversitesi Bilgisayar Mühendisliği İzmir/</institution>
          <country country="TR">Türkiye</country>
        </aff>
      </contrib-group>
      <kwd-group>
        <kwd>eol&gt;Data Mining</kwd>
        <kwd>Apache Spark</kwd>
        <kwd>Weka</kwd>
        <kwd>Fp-Growth</kwd>
        <kwd>KMeans</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Çalışmada Spark ve Weka araçlarının ürettiği sonuçlar
değerlendirilmiştir. Değerlendirme sonucunda, mağazaya
yönelik ürün öneri sistemi ve müşteri profilleri
sunulmaktadır.
İLGİLİ ÇALIŞMALAR
Büyük veri analizinde;</p>
    </sec>
    <sec id="sec-2">
      <title>Spark’ın kullanıldığı,</title>
    </sec>
    <sec id="sec-3">
      <title>Farklı veri madenciliği</title>
      <p>
        performanslarının karşılaştırıldığı,
araçlarının
Aynı veri madenciliği aracı üzerinde farklı
algoritmaların performanslarının
karşılaştırıldığı
çok sayıda çalışma olmasına rağmen Spark’ın diğer veri
madenciliği araçlarından daha iyi performans ile
çalıştığını, sonuçlarla sergileyen bir çalışma
bulunamamıştır. Hazırlanan çalışmanın sonuçları,
sadece veri madenciliği araçlarının performanslarını
karşılaştırmak için değil, mağaza öneri sisteminin en iyi
şekilde geliştirilmesini sağlamaktadır.
İncelenen makalelerden birinde, hamile kadınların düşük
yapma durumlarını önceden belirleyebilmek ve mobil
cihaz üzerinden bilgilendirme yapmak hedeflenmiştir.
Kullanılan veri seti mobil cihazlar üzerinden toplanmış,
Spark aracı üzerinde K-Means algoritması çalıştırılarak
hamile kadınlar üç ayrı kümeye ayrılmıştır. Düşük
yapma riski taşıyan kadınlar kategorisinde yer alan
bayanların önceden bilgilendirilmeleri sağlanmıştır.[4]
İncelenen bir diğer makalede birliktelik analizi
algoritmalarından Eclat algoritması Spark üzerinde dört
ayrı veri seti üzerinde çalıştırılmış ve farklı minimum
destek sürelerinde hız değerlendirmesi yapılmıştır.[
        <xref ref-type="bibr" rid="ref1">5</xref>
        ]
İncelenen bir diğer çalışmada ise iris veri seti
kullanılarak RapidMiner, Orange ve Weka araçları
üzerinde Naive Bayes algoritması çalıştırılmıştır. Üç
farklı veri madenciliği aracının ürettiği sonuçların
doğruluk oranları karşılaştırılmıştır. Çalışma sonucunda
Weka aracının ürettiği sonuçların hata oranının en düşük
olduğu tespit edilmiştir.[
        <xref ref-type="bibr" rid="ref2">6</xref>
        ]
WEKA / SPARK KULLANILARAK BÜYÜK VERİ
ANALİZİ
Veri analizi, büyük çaplı veriler arasından bilgiye ulaşma
işlemidir. Ya da bir anlamda büyük veri yığınları
içerisinden gelecek ile ilgili tahminde bulunabilmemizi
sağlayabilecek bağıntıların bilgisayar programı
aracığıyla bulunmasıdır.[3] Veri analizinde kullanılan bu
programlar ürettikleri sonuçlara göre performans
farklılıkları göstermektedir. Çalışmamızda aynı veri seti
üzerinde hedefimize uygun olan algoritmalar
çalıştırılmıştır. Elde edilen en ideal sonuç mağazaya ait
ürün önerilerini ve müşteri etiketlerini belirlemiştir.
      </p>
      <p>1. Çalışma Ortamı
Veri analiz sürecinde sürecinde bir çok araç
kullanılmıştır.
- Veri Temizleme: Visual Studio 2017, Mssql Server
- Veri Madenciliği: Apache Spark, Weka
- Değerlendirme: Excel</p>
      <p>2. Veri seti
Kullanmış olduğumuz veri seti giyim sektörüne ait ERP
sisteminden temin edilmiştir. Geliştirilecek karar destek
sistemi çerçevesinde kullanılabilecek müşteri, satış ve
ürün bilgilerini belirlenmesi ve 01-04-2016 - 09-02-2017
tarih aralığına ait verilerin sistemimize aktarımı
sağlanmıştır. Toplamda 4.275.910 satış hareketi,
3.119.918 müşteri ve 462.856 ürün üzerinde çalışma
gerçekleştirilmiştir. Verilerin temizlenmesi aşamasında
bazı müşteri ve satış hareketleri algoritmanın çalışma
mantığı göz önünde bulundurularak veri madenciliği
sürecine dahil edilmemiştir.</p>
      <p>3. Çalışma Adımları
Veri madenciliği sürecine ait adımları aşağıdaki resimde
görmek mümkündür. Kulladığımız veri seti üzerindeki
bilgi keşfi süreci, şekilde yer alan başlıklar altında
anlatılmştır.</p>
      <p>Şekil 1 Veri Madenciliği Süreci
3.1 Veri Hazırlama
Veri temizleme operasyonu; eksik, gürültülü ve tutarsız
olan verileri iyileştirmeyi amaçlamaktadır.[1] Veri
madenciliği algoritmalarının çalıştırılabilmesi için veri
belli aşamalardan geçirilerek analize hazır hale
getirilmektedir. Verilerin temizlenmesi operasyonu
aşağıda belirtilen adımları içermektedir. [1], [2], [3]
-Veri seçimi: Yapılacak analizde ihtiyaç duyulacak
verilerin belirlenmesi
-Veri ön işleme: Eksik verilerin tamamlanması, aykırı ve
gürültülü verilerin ayıklanması
-Veri dönüştürme: Veri formatlarının değiştirilmesi,
kesikleştirilmesi ve normalize edilmesi
Yapmış olduğumuz çalışmada ilk adım olarak, karar
destek sisteminde kullanılabilecek müşteri, ürün ve satış
bilgileri belirlenmiştir. 01/04/2016 – 09/02/2017 tarih
aralığına ait belirlenen alanların verileri sistemimize
aktarılmıştır.</p>
      <p>Veri temizleme aşamasında belirlenen zaman aralığında
satış hareketi bulunmayan müşteriler analize dahil
edilmemiştir. Müşteri verileri incelendiğinde cinsiyet,
yaş, medeni durumu, doğum yeri gibi alanlarda hatalı
bilgiler olduğu ve boş alanların çok sayıda olduğu tespit
edilmiştir. Verilerin temizlenerek analize dahil edilmesi
doğruluk oranını olumsuz etkileyeceğinden müşteri
kümelemesinin sadece aldığı ürünler bazında
yapılmasının doğru olacağı düşünülmüştür. Bu
kapsamda müşteriler mağazadan aldıkları ürün
hiyerarşisi kullanılarak küme etiketi atanmıştır.
Kümeleme işleminde 90 ürün kategorisi(Ceket, pantolon
vs.) kullanılmıştır.</p>
      <p>Birliktelik analizi operasyonu sadece satış hareketlerini
kapsamaktadır. Kullanılan satış hareketleri verisinde
gürültülü alanların az olmasından dolayı karar destek
sürecine satış verilerinin tamamı dahil edilmiştir.
Birliktelik analizinde ürün kodu bazında analiz
yapıldığında eşik değerini geçen birlikteliğin az olacağı
düşünülerek ürün ifadesi “Cinsiyet-Renk-Ürün
Kategorisi” olarak ifade edilmiştir. 2133 ürün tarzı
içerisinden birliktelik analizi yapılmıştır.</p>
      <p>Veri hazırlama aşamasının öncesi ve sonrasına ait veri
setlerinin özellikleri tabloda yer almaktadır.</p>
      <p>Tablo 1 Veri Seti Özellikleri
Müşteri Sayısı
Satış Hareketi Sayısı</p>
      <p>Veri seti
3.119.918
4.275.910</p>
      <p>Temizlenmiş
Veri seti
718.903
4.275.910
3.2 Veri Madenciliği
Veri madenciliği aşaması, veri madenciliği araçları
kullanarak temizlenmiş veri seti üzerinde algoritmaların
çalıştırılması ve model oluşturulmasını kapsamaktadır.
Çalışmamızda iki farklı veri madenciliği aracı
kullanılmıştır. Veri madenciliği araçlarının kullandığı
algoritmalar aynı olmalarına rağmen model oluşturma
aşamasını tekrarlama sayıları farklı olabilmektedir. Bu
kapsamda ürettikleri sonuçların doğruluk oranları da
farklılık göstermektedir. Hazırlanan sistemde iki farklı
aracın sonuçlarından en ideal olan karar destek
sisteminin kurallarını oluşturmaktadır.</p>
    </sec>
    <sec id="sec-4">
      <title>K-Means Algoritması</title>
      <p>K-Means algoritması en yaygın kullanılan kümeleme
algoritmalarındandır. K değeri elimizde bulunan veri
setinin kaç kümeye ayrılacağını belirtmektedir.
Çalışmamızda birbiriyle benzerlik gösteren müşterilerin
aynı etiket ile ifade edilmesi K-Means algoritması
kullanılarak sağlanmıştır. Algoritma, müşterilerin
mağazada bulunan 90 ürün kategorisinden aldığı ve
almadığı ürünlere göre kümesini belirlemektedir.</p>
      <p>- Fp-Growth Algoritması
Birliktelik analizinde temel hedef büyük veri
yığınlarında sıklıkla tekrarlanan desenleri, ilişkileri
belirlemektir. Mağaza verilerinde birlikte satılan ürünleri
belirlerken FP-Growth algoritması kullanılmıştır.
Algoritma farklı en düşük destek değeri(Minimum
support) ile çalıştırılmış ve anlamlı sayıda kural seti
oluşturup oluşturmadığı incelenmiştir. 2133 ürün
kategorisi içerisinden birlikte satılan ürünlerin
belirlenmesi hedeflenmiştir.</p>
      <p>3.3 Sonuçların Değerlendirilmesi
- Kmeans Algoritması Sonuçları
Spark ve Weka’da temizlenmiş veri seti üzerinde farklı
küme sayıları (2 ile 20 aralığında ) ile K-Mmeans
algoritması çalıştırılmıştır. Algoritmanın çalışma süreleri
ve hata oranları göz önünde bulundurulduğunda paralel
yapıda çalışıyor olmasına rağmen Spark’ın daha uzun
sürede çalıştığı ve hata oranının Weka’dan az olduğu
gözlemlenmiştir. Aynı algoritma olmasına rağmen
kullanılan araçların analizi sonlandırma noktaları(tekrar
sayıları) ve bununla birlikte hata oranları farklılık
göstermektedir. Yani bir diğer ifadeyle; Spark küme
dağılımını sabitleyerek analizi sonlandırdığı noktaya
ulaşıncaya kadar çok daha fazla kez analizi
tekrarlamaktadır. Bunun sonucu olarak da Spark’ın
çalışma süresi daha uzun olurken analiz sonucunun
doğruluğu artmaktadır. Her iki veri madenciliği
aracınında sonuç üretme süresi saniye bazında
olduğundan karar destek tarafından kullanılacak sonucun
hata oranı en düşük olan araç ve küme sayısı olarak
belirlenmesi anlamlı olacaktır. Sonuçları incelediğimizde
müşterileri Spark tarafından küme sayısı 18 olarak
gerçekleştirilen analiz sonuçlarının kullanılmasının,
karar verme sürecine etkisinin daha olumlu olacağı
belirlenmiştir.</p>
      <p>Şekil 2 K-Means Algoritması Çalışma Süresi
Şekil 3 K-Means Algoritması Hata Oranı
Spark tarafından 18 ayrı kümeye ayrılan müşterilerinin
dağılımı grafik ile gösterilmiştir.</p>
      <p>Şekil 4 Müşteri Kümeleme Sonucu
Weka’da veri boyutunun büyüklüğünden dolayı
FPGrowth algoritması sonuç üretememiştir. Spark üzerinde
çalıştırılan FP-Growth algoritmasına ait farklı minimum
destek değerlerinde algoritmanın çalışma süreleri tabloda
yer almaktadır.</p>
      <p>Şekil 5 Fp-Growth Çalışma Süresi
Fp Growth algoritması kullanılarak 0,01 minimum
destek ile 111, 0,02 minimum destek ile 40 adet
birliktelik kuralı elde edilmiştir. 0,05 ve daha büyük
değerler için kural seti bulunamamıştır. Elde edilen kural
setlerine bir kaç örnek Tablo 3 de gösterilmektedir.
Mağazanın bu sonuçlardan anlaması gereken; siyah
kemer alan bir erkeğe siyah çorap ve siyah ayakkabı
önermesi olmalıdır.</p>
      <p>Tablo 2 Birlikte Satılan Ürünler
1) Erkek Siyah Düz Takım Elbise, Erkek Beyaz</p>
      <p>Cvc Gömlek
2) Erkek Mavi Gömlek, Erkek Beyaz Gömlek
3) Erkek Lacivert Takım Elbise, Erkek Beyaz</p>
      <p>Gömlek
4) Erkek Siyah Gömlek, Erkek Beyaz Gömlek
5) Erkek Siyah Kemer, Erkek Siyah Çorap
6) Erkek Siyah Ayakkabı, Erkek Siyah Kemer
SONUÇ
Weka ve Spark araçları kullanılarak, müşteri satış
hareketleri analiz edilmiş ve sonuçlar yorumlanarak
mağaza sistemi için doğruluk oranı en yüksek karar
destek sistemi çalışmamız kapsamında geliştirilmiştir.
Weka ve Spark üzerinde iki farklı algoritmanın sonuçları
incelendiğinde; Spark üzerinde çalıştırılan K-Means
algoritmasının her küme sayısı için hata oranının
Weka’ya oranla daha düşük olduğu gözlemlenmiştir.
Birliktelik analizi aşamasında kullanılan Fp-Growtth
algoritmasını veri büyüklüğünden kaynaklı olarak
Weka’da çalıştırmak mümkün olmamasına karşın Spark
üzerinde kısa sürede sonuç üretilmiştir. Bu sonuçlar da
bize büyük boyuttaki verilerin analizinin Spark ile
mümkün olduğu ve Spark ile üretilen sonuçların
doğruluk oranlarının daha yüksek olduğunu
göstermiştir. Büyük veri setleri analiz edilirken Spark ile
analiz etmenin performans açısından olduğu gibi
doğruluk oranı olarak da avantaj sağladığı belirlenmiştir.
KAYNAKÇA
[1] “Veri Madenciliği” Url:
http://www.sonsuz.us/verimadenciligi/
[2] “Veri Madenciliği”
http://mail.baskent.edu.tr/~20410964/DM_1.pdf
[3] “Veri Madenciliği”
https://burakisikli.wordpress.com/2009/02/15/v
eri-madenciligidata-mining-nedir-ve-nerelerdekullanilir-1/
[4] “Real-time Miscarriage Prediction with SPARK”,
H.Asri &amp; H. Mousannif &amp; H. Moatassime, The 7th
International Conference on Current and Future Trends
of Information and Communication Technologies in
Healthcare (2017)
Url: https://www.cs.waikato.ac.nz/ml/weka/
Gamze ÖZÇELİK</p>
    </sec>
    <sec id="sec-5">
      <title>Dokuz Eylül Üniversite</title>
      <p>Bilgisayar Mühendisliği
Bölümünde yüksek lisans eğitime
devam etmektedir. Bir yazılım
firmasında çalışmaktadır.
Araştırma alanları arasında
Büyük Veri, Veri Madenciliği ve
Bulut Bilişim yer almaktadır.
Prof. Alp KUT</p>
    </sec>
    <sec id="sec-6">
      <title>Dokuz Eylül Üniversitesi</title>
      <p>Bilgisayar Mühendisliğinde
profesördür. 2003 sonbaharından
beri Bölüm Başkanı olarak görev
yapmaktadır. Veri Madenciliği,
Veritabanı Yönetim Sistemleri ve
Dağıtık Sistemlerle ilgili
çalışmaları bulunmaktadır. Web
Tabanlı Sistemler ve Paralellik de
dahil olmak üzere çeşitli
konularda birçok yayını
bulunmaktadır.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [5]
          <string-name>
            <surname>“</surname>
          </string-name>
          <article-title>An implementation of Eclat on spark”</article-title>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Mohamed</surname>
          </string-name>
          &amp;
          <string-name>
            <surname>M.</surname>
          </string-name>
          <article-title>Abdel-fattah &amp;</article-title>
          <string-name>
            <surname>S.</surname>
          </string-name>
          El-Gaber,
          <source>International Journal of Computer Science and Information Security</source>
          (
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          <article-title>[6] “Analysis of Data Mining Tools for Disease Prediction”</article-title>
          ,
          <string-name>
            <surname>K. Ahmed</surname>
            <given-names>P</given-names>
          </string-name>
          ,
          <source>Journal of Pharmaceutical Sciences and Research</source>
          (
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [7]
          <string-name>
            <surname>“R-Apriori</surname>
          </string-name>
          :
          <article-title>An Efficient Apriori based Algorithm on Spark”</article-title>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Rathee &amp; M. Kaul</surname>
          </string-name>
          &amp;
          <string-name>
            <surname>A.Kashyap</surname>
          </string-name>
          , Conference on Information and Knowledge
          <string-name>
            <surname>Management</surname>
          </string-name>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          <article-title>[8] “Network Anomaly Detection by Cascading KMeans Clustering and C4.5 Decision Tree algorithm” A</article-title>
          .
          <string-name>
            <surname>Prabakar</surname>
            <given-names>Muniyandi &amp; R.</given-names>
          </string-name>
          <string-name>
            <surname>Rajeswari</surname>
          </string-name>
          &amp; R.Rajaramca
          <source>International Conference on Communication Technology and System Design</source>
          (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [9] http://www.sonsuz.us/wpcontent/uploads/2017/05/veri-madenciligi-1
          <article-title>-768x397</article-title>
          .jpg
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>[10] ”Apache Spark ” Url: https://spark.apache.org/docs/latest/index.html</mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [11]
          <article-title>“Integration of Spark framework in Supply Chain Management”</article-title>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Jaggi</surname>
          </string-name>
          &amp; S. Kadam, 7th International Conference on Communication,
          <source>Computing and Virtualization</source>
          (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>[12] ”Weka”</mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>