GERÇEK AĞ VERİSİ ÜZERİNDE VERİ MADENCİLİĞİ

advertisement
GERÇEK AĞ VERİSİ ÜZERİNDE VERİ MADENCİLİĞİ UYGULAMALARININ
KARŞILAŞTIRILMASI
Fatih ATAK
BİLGİSAYAR BİLİMLERİ
YÜKSEK LİSANS TEZİ
GAZİ ÜNİVERSİTESİ
BİLİŞİM ENSTİTÜSÜ
Şubat 2014
ANKARA
iv
GERÇEK AĞ VERİSİ ÜZERİNDE VERİ MADENCİLİĞİ
UYGULAMALARININ KARŞILAŞTIRILMASI
(Yüksek Lisans Tezi)
Fatih ATAK
GAZİ ÜNİVERSİTESİ
BİLİŞİM ENSTİTÜSÜ
Şubat 2014
ÖZET
Günümüzde hemen hemen her alanda kayıt altına alınan anlamlı/anlamsız
veriler bulunmaktadır. Devlet, şirket, firma, banka, market, evler ve daha
birçok yerlerde görüntülü, sesli ve hem görüntülü hem sesli saklanabilen
veriler saklanmaktadır. Gün geçtikçe işlenmeyen, bekleyen, bekletilen veri
yığınları veri çöplüğü haline gelmektedir. Fakat bu veri yığınları işlenildiğinde,
bilgiye dönüştürüldüğünde topluma yani toplumun en önemli faktörü olan
insanlığa hizmette yegâne işler arasında gösterilebilir. Çünkü artık teknoloji
ile toplum o kadar iç içe geçti ki zamanın her dakikasında, saniyesinde
farkında olmadan etrafa anlamsız veriler bırakabiliyoruz. Veri yığınları küresel
dünyada başa çıkılamayan risklerden biri haline gelmiştir.
Bu çalışma da incelenen örnek kurumun internet ağında kullanılan karmaşık
ağ veri yığınını veri madenciliği süreçleri ile kullanılabilir hale getirilmiştir.
Uygun veriler üzerinde veri madenciliği yöntemleri kullanılarak çıkan sonuçlar
arasında çıkarımda bulunulmaya çalışılmış, ayrıca farklı veri madenciliği
uygulamalarından elde edilen sonuçlar arasındaki farklılıklar incelenmiştir.
v
Bilim Kodu
Anahtar Kelime
Sayfa Adedi
Tez Yöneticisi
: 902.1.012
: veri madenciliği, yöntemleri
: 74
: Doç. Dr. Suat ÖZDEMİR
vi
DATA COMPARISON OF DATA MINING TOOLS USING REAL WORLD
NETWORK DATA
(M.Sc. Thesis)
Fatih ATAK
GAZİ UNIVERSITY
INFORMATICS INSTITUTE
February 2014
ABSTRACT
Nowadays, almost every area recorded the meaningful / meaningless data
are available. Government, companies, firms, banks, markets, houses and
many more places video, voice and data can be stored both voice and video
are stored. Unhandled by day, pending, pending data dump piles of data are
becoming. But when these piles of data processed, the information is
converted into society so that society's most important factor in service to
humanity oil valve shown between jobs. Because society is now so
intertwined with technology goes away every minute of the time, in seconds
around unwittingly have been able meaningless data. Piles of data that can
not be dealt with in the global world has become one of the risks.
In this study, samples already used in the organization's internet network
stack of complex networked data has been made available through data
mining process. Using data on the appropriate data mining methods have
been tried to be drawn from the results.
vii
Science Code
Key Words
Page Number
Adviser
: 902.1.012
: data mining, methods
: 74
: Assoc. Prof. Dr. Suat ÖZDEMİR
viii
TEŞEKKÜR
Çalışmalarım boyunca yardım ve katkılarıyla beni yönlendiren değerli Hocam
tez danışmanım Doç. Dr. Suat ÖZDEMİR’e, tecrübelerinden faydalandığım
değerli Hocam Özgür DOLGUN’a, TÜBİTAK Başkanım Sayın Prof. Dr. Yücel
ALTUNBAŞAK’a, mesai arkadaşım Eren YAZICIOĞULU’na ve yakın çalışma
arkadaşlarım
Süha
BOTSALI’ya,
Resul
ÖZDEMİR’e
ayrıca
manevi
destekleriyle beni hiç yalnız bırakmayan değerli eşim H. Zehra GÖKÇEOĞLU
ATAK’a, anneme, babama ve kardeşlerime teşekkürlerimi bir borç bilirim.
ix
İÇİNDEKİLER
Sayfa
ÖZET ............................................................................................................. iv
ABSTRACT .................................................................................................... vi
TEŞEKKÜR.................................................................................................. viii
ŞEKİLLERİN LİSTESİ .................................................................................... xi
SİMGE VE KISALTMALAR .......................................................................... xiv
1. GİRİŞ ....................................................................................................... 1
2. VERİ MADENCİLİĞİ ................................................................................ 3
2.1. Veri Madenciliği Nedir? ................................................................... 3
2.2. Uygulama Alanları ........................................................................... 6
2.2.1. Sigortacılık ............................................................................ 6
2.2.2. Bankacılık ............................................................................. 6
2.2.3. Pazarlama ............................................................................ 7
2.2.4. Elektronik ticaret ................................................................... 7
2.2.5. Biyoloji, tıp ve genetik ........................................................... 7
2.2.6. Kimya.................................................................................... 7
2.2.7. Yüzey analizi ve coğrafi bilgi sistemleri ................................ 8
2.2.8. Görüntü tanıma ve robot görüş sistemleri ............................. 8
2.2.9. Uzay bilimleri ve teknolojisi ................................................... 8
2.2.10. Meteoroloji ve atmosfer bilimleri ......................................... 8
2.2.11. Sosyal bilimler ve davranış bilimleri .................................... 8
2.2.12. Metin madenciliği ................................................................ 9
2.2.13. Bilimsel, mühendislik ve sağlık bakım verileri ..................... 9
2.3. Veri Madenciliği Modelleri ............................................................... 9
x
2.3.1. Sınıflandırma ...................................................................... 10
2.3.2. Kümeleme .......................................................................... 11
2.3.3. Birliktelik kuralı/analizi......................................................... 12
2.4. Birliktelik Kuralı ve Apriori Algoritması........................................... 13
2.4.1. Birliktelik kuralı .................................................................... 14
2.4.2. Apriori algoritması ............................................................... 15
2.5. Sınıflandırma ve Karar Ağaçları, Naive Bayes Algoritmaları ......... 19
2.5.1. Sınıflandırma ...................................................................... 19
2.5.2. Karar ağaçları ..................................................................... 20
2.5.3. Naive Bayes ....................................................................... 21
3. UYGULAMA .......................................................................................... 24
3.1. Apriori Algoritması ile Ağ Verilerinin Modellenmesi ....................... 27
3.2. Karar Ağacı Algoritması İle Ağ Verilerinin Modellenmesi .............. 41
3.2.1. Eğitim seti (Karar Ağacı) ..................................................... 41
3.2.2. Test seti (Karar Ağacı) ........................................................ 47
3.3. Naive Bayes İle Ağ Verilerinin Modellenmesi ................................ 51
3.3.1. Eğitim seti (Naive Bayes).................................................... 51
3.3.2. Test seti (Naive Bayes)....................................................... 53
4. SONUÇ.................................................................................................. 58
KAYNAKLAR ............................................................................................... 61
EKLER ......................................................................................................... 65
Ek-1. C# programlama dilinde yazılan kodlar ........................................ 66
ÖZGEÇMİŞ .................................................................................................. 74
xi
ŞEKİLLERİN LİSTESİ
Şekil
Sayfa
Şekil 2.1. Bilgi keşif süreci ............................................................................. 4
Şekil 2.2. Veri madenciliği modelleri ............................................................ 10
Şekil 2.3. Klasik Apriori algoritması özet kodu ............................................. 16
Şekil 2.4. Apriori-Gen fonksiyonu ................................................................. 17
Şekil 3.1. Ham (işlenmemiş) veri.................................................................. 24
Şekil 3.2. İşlenmiş veri ................................................................................. 26
Şekil 3.3. Özet uygulamalar tablosu............................................................. 27
Şekil 3.4. Çarşamba gününün Apriori modeli ............................................... 28
Şekil 3.5. Çarşamba günü Apriori algoritmasının sonucunda çıkan kurallar 30
Şekil 3.6. Cuma günü Apriori algoritmasının sonucunda çıkan kurallar ....... 31
Şekil 3.7. Pazartesi günü Apriori algoritmasının sonucunda çıkan kurallar .. 32
Şekil 3.8. Çarşamba günü table akış modülü ............................................... 32
Şekil 3.9. Çarşamba günü web adreslerinin sıklıkları................................... 33
Şekil 3.10. Pazartesi ve cuma günlerinin web adresleri sıklıkları ................. 34
Şekil 3.11. Çarşamba günü zaman dilimleri akış modülü............................. 34
Şekil 3.12. Çarşamba günü saat dilimlerinin yoğunluğu............................... 35
Şekil 3.13. Pazartesi ve cuma günleri saat dilimlerinin yoğunlukları ............ 36
Şekil 3.14. Çarşamba günü dst akış modülü ................................................ 37
Şekil 3.15. Çarşamba günü zamana bağlı web adreslerinin yoğunlukları .... 37
Şekil 3.16. Pazartesi ve cuma günleri zamana bağlı web adreslerinin
yoğunlukları ............................................................................... 38
xii
Şekil 3.17. Pazartesi ve cuma günleri zamana bağlı microsoft sitesinin
yoğunlukları ............................................................................... 39
Şekil 3.18. Çarşamba günü kullanıcılarının web adreslerini tıklama sıklığı .. 39
Şekil 3.19. Çarşamba günü kullanıcılarının web trafiği ................................ 40
Şekil 3.20. Çarşamba günün içerisindeki kullanıcıların zaman dilimine göre
web sayfası tıklama yoğunluğu.................................................. 40
Şekil 3.21. Eğitim verilerinin kategorik/niteliksel açıklamaları ...................... 41
Şekil 3.22. Eğitim seti verisi ......................................................................... 42
Şekil 3.23. RapidMiner Karar Ağacı model tasarımı .................................... 42
Şekil 3.24. RapidMiner Karar Ağacı modeli sonucu ..................................... 44
Şekil 3.25. SPSS Karar Ağacı algoritmasının sonucu .................................. 46
Şekil 3.26. Test verilerinin kategorik/niteliksel açıklamaları ......................... 47
Şekil 3.27. Test seti verisi ............................................................................ 47
Şekil 3.28. RapidMiner’daki test seti hata-başarı oranı(Karar Ağacı) ........... 48
Şekil 3.29. Karışıklık matrisi-RapidMiner ..................................................... 48
Şekil 3.30. SPSS’deki test seti hata-başarı oranı (Karar Ağacı) .................. 50
Şekil 3.31. Karışıklık matrisi-SPSS .............................................................. 50
Şekil 3.32. RapidMiner’da Naive Bayes model tasarımı .............................. 52
Şekil 3.33. Naive Bayes uygulaması arayüz görüntüsü ............................... 53
Şekil 3.34. RapidMiner’daki test seti hata-başarı oranı (Naive Bayes)......... 54
Şekil 3.35. Karışıklık matrisi-RapidMiner ..................................................... 54
Şekil 3.36. C# program dili ile kodlanan algoritmaya uygulanan test seti
hata-başarı oranı........................................................................ 56
xiii
Şekil 3.37. Karışıklık matrisi-Kodlama.......................................................... 56
Şekil 4.1. Oluşturulan modellerin başarım ölçütleri ...................................... 59
xiv
SİMGE VE KISALTMALAR
Bu çalışmada kullanılmış bazı simgeler ve kısaltmalar, açıklamaları ile birlikte
aşağıda sunulmuştur
Simgeler
Açıklama
Dst
Destination
(Hedef)
Dstport
Destinationport
(Hedefport)
Ethsource
Ethernetsource
(Eternet kaynağı)
Mindes
Minimum destek değeri
VTBK
Veri tabanları bilgi keşfi
TCP
Transmission Control Protocol
(Transmisyon Kontrol Protokolü)
UDP
User Datagram Protocol
(Kullanıcı Datagram Protokolü)
1
1. GİRİŞ
Günümüzde her türlü işlerde, alışverişlerde ve kurumsal/kamusal alanlardaki
işlemlerde kaydı tutulan veriler bulunmaktadır. Ayrıca işletmelerin ve devletin
kendi dâhilinde yapılan işlemler sonucunda da depoladıkları veriler, görüntü
ve ses cihazlarından elde edilen çoklu ortam verileri gibi birçok veri devamlı
olarak saklanmakta ve depolanan bu veriler çok hızlı boyutlarda artmaktadır.
Fakat bu veriler istenildiği şekilde değerlendirilememekte, hızla büyüyen bilgi
yığınları şekline dönüşmektedir.
Veri madenciliği, bir veri yığını içerisinde henüz ortaya çıkarılmamış
gözlenebilir veya ölçülebilir bilgileri bulmayı amaçlayan teknikler bütününü
temsil etmektedir. Bilgisayar sistemleri ile üretilen veriler tek başlarına
değersizdir, çünkü çıplak gözle bakıldığında bir anlam ifade etmezler. Bu
veriler belli bir amaç doğrultusunda işlendiği zaman bir anlam ifade etmeye
başlar [1]. Önceden bilinmeyen, veri içinde gizli, anlamlı ve yararlı örüntülerin
büyük ölçekli veritabanlarından otomatik biçimde elde edilmesini sağlayan
bilgi keşfi süreci içinde bir adımdır [2].
Veri madenciliği konusunda çok sayıda yöntem ve algoritma geliştirilmiştir.
Bu yöntemlerden çoğu istatiksel tabanlıdır. Bu çalışmada daha çok Apriori,
Karar Ağaçları ve Naive Bayes algoritmaları üzerinde yoğunlaşılmıştır. Apriori
ilişkilendirme kuralları; Karar Ağaçları ve Naive Bayes ise sınıflandırma
tekniklerindendir. Çalışmanın amacı hali hazırda örnek kurumun internet
ağında kullanılan karmaşık ağ verisinin veri madenciliği ile kullanılabilir hale
getirmek ve veri madenciliği yöntemleri kullanılarak elde edilen sonuçlar
arasında kıyaslama yapılıp ilişkileri ortaya çıkarmaktır. Örnek kurumun
internet trafiği incelendiğinde girilen sitelerden kişinin gün içindeki internet
hareketleri izlenerek cinsiyet sınıf etiketine göre tahmin edilebilmektedir.
Yapılan benzer çalışmalarda Down sendromu tanısı teşhisinde Naive Bayes
sınıflandırıcısının daha başarılı olduğu görülmüştür [3]. Diğer bir çalışmada
2
örüntüleri oluşturan gözlem değerlerinden seçilmiş istatistiksel özellikleri
kullanan Yapay Sinir Ağ Yapısı ve Bayes sınıflandırıcılarının doğru
sınıflandırma performansının, ham verileri kullanan sınıflandırıcılara göre
daha yüksek tanıma performansı gösterdikleri gözlenmiştir [4]. Diğer bir
çalışmada elde edilen sonuçlara göre Naive Bayes sınıflandırıcının tiroit
hastalığı teşhisinde Yapay Sinir Ağları, Destek Vektör Makinaları ve KOrtalama yöntemlerine göre daha başarılı olduğu görülmüştür [5]. Başka bir
çalışmada yine Naive Bayes sınıflandırıcısı yine tiroid teşhisinde J48 Karar
Ağacı algoritmasına göre daha iyi performans gösterdiği gözlemlenmiştir [6].
İlişkilendirme kuralı ile ilgili 2007 yılında yazılan bir makalede [7], Apriori
algoritmasının firmanın veri seti üzerinde uygulandığında farklı zaman farklı
zaman dilimi, farklı satış şubelerine göre ürünler arasında birlikte satın
alınma bağıntılarını ortaya koyduğu ve genelde aynı ürün grubu içinde yer
alan ürünlerin birlikte satın alınma davranışlarına sahip olduğundan
bahsedilmiştir. Yine bir çalışmada örnek bir firmanın pastane satış verileri
üzerinde uygulanması için web tabanlı bir uygulama yazılımı geliştirildiği ve
geliştirilen uygulama yazılımı ile örnek firmanın yıl içinde farklı dönemlerde ve
farklı satış noktalarında gerçekleşen satış verileri üzerinde, birlikte satın
alınma tercihi yapılan ürünler tespit edildiği ifade edilmiştir [8].
Bölüm 2’de veri madenciliği, uygulama alanları ve yöntemleri hakkında teorik
bilgiler verilmiştir. Bölüm 3’te algoritmaların verilere farklı araçlar ile
uygulanmasından bahsedilmiştir. Bölüm 4’te ise bölüm 3’teki uygulamaların
sonuçları analiz edilerek detaylı bir şekilde anlatılmıştır.
3
2. VERİ MADENCİLİĞİ
2.1. Veri Madenciliği Nedir?
Veri madenciliği veri içerisinden yararlı olanları bulup ortaya çıkarma işlemidir
[9]. Veri madenciliği sihir değildir. Yıllardır, istatistikçiler veri tabanlarını elle
kazımakta, istatistiksel açıdan önemli ilişkiler aramaktadır. Veri madenciliği,
bu süreci otomatik olarak gerçekleştirmektedir. Veri madenciliği veri kümesi
içerisinde
keşfedilmemiş
koleksiyonunu
örüntüleri
betimlemektedir.
Veri
bulmayı
hedefleyen
madenciliğinin
amacı,
teknikler
geçmiş
faaliyetlerin analizini temel alarak gelecekteki davranışların tahminine yönelik
karar-verme modelleri yaratmaktır. Frawley veri madenciliğini: “Daha
önceden bilinmeyen ve potansiyel olarak yararlı olma ihtimaline sahip verinin
keşfedilmesi” olarak tanımlamıştır. Berry ve Linoff bu kavrama “Anlamlı
kuralların ve örüntülerin bulunması için geniş veri yığınları üzerine yapılan
keşif ve analiz işlemleri” şeklinde bir açıklama getirirken, Sever ve Oğuz
çalışmalarında veri madenciliği hakkında “Önceden bilinmeyen, veri içinde
gizli, anlamlı ve yararlı örüntülerin büyük ölçekli veritabanlarından otomatik
biçimde elde edilmesini sağlayan veri tabanlarında bilgi keşfi süreci içerisinde
bir adımdır.” tanımını kullanmışlardır [10].
Veri madenciliği deyimi yanlış kullanılan bir deyim olabileceğinden bilim
adamları tarafından buna eş değer başka adlandırmalarda literatüre
geçmiştir. Bunlar; veritabanlarında bilgi keşfi (VTBK) (KDD Knowledge
Discovery in Databases), Bilgi Çıkarımı (Knowledge Extraction), Veri ve
Örüntü analizi (Data/ Pattern Analysis), Veri Tarama (Data Dredging), Bilgi
Keşfi (Knowledge Discovery), Veri Arkeolojisi (Data Archaeology), Veri
Avcılığı (Data Fishing), Bilgi Üretimi (Knowledge Creation) ve Bilgi Hasadıdır
(Information Harvesting). Bu adlandırmalardan veri madenciliği deyimi yerine
en çok kullanılanı VTBK olmuştur. Bununla birlikte aslında VTBK, veriler
arasından yararlı bilgileri keşfetme sürecidir ve veri madenciliği VTBK
sürecinin önemli bir adımıdır. VTBK süreci ise veri hazırlama, veri seçme,
4
veri temizleme ve veri madenciliği sonucu çıkan sonuçların yorumlanması
gibi ek adımlarla birlikte veriden türetilen yararlı bilginin elde edilmesi
demektir. Şekil 2.1’de VTBK adımlarını göstermektedir. Bu adımlar;
Şekil 2.1. Bilgi keşif süreci
Veri madenciliği, VTBK işleminin adımlarından biridir. VTBK işleminin
adımları farklı kişiler tarafından farklı modellerle ifade edilmiştir. Han
tarafından sunulan modelde VTBK işlemi yedi adımda meydana gelmektedir.
Bu adımlar sırasıyla veri temizleme, veri birleştirme, veri seçme, veri
dönüştürme, veri madenciliği, örüntü değerlendirme ve bilgi sunumudur.
VTBK sürecindeki adımlar Şekil 2.1.’ de görsel olarak ifade edilmiştir. Han’ın
sunduğu modeldeki VTBK sürecinde yer alan adımlar açıklamaları ile
aşağıda belirtilmiştir [10].
Veri Temizleme (Data Cleaning): Gerçek hayatta kullanılan veritabanları
içindeki veriler kirlenmeye, eksik hale gelmeye ve tutarsız olmaya
eğilimlidirler. Bu nedenle verilerin kullanılmadan önce bazı ön işlemlerden
geçmeleri gerekir. Ön işlemlerden geçen veriler üzerinde veri madenciliği
algoritmalarının uygulanması ile daha kaliteli sonuçlar elde edilir. Bu ön
5
işlemlerden biri veri temizlemedir. Veri temizleme ile veritabanlarındaki eksik,
tutarsız ve gürültülü veriler giderilir.
Veri Birleştirme (Data Integration): Farklı veri tabanlarından ya da veri
kaynaklarından elde edilen verilerin birlikte değerlendirmeye alınabilmesi için
farklı türdeki verilerin tek türe dönüştürülmesi işlemidir. Bunun en yaygın
örneği cinsiyette görülmektedir. Çok fazla tipte tutulabilen bir veri olup, bir
veri tabanında 0/1 olarak tutulurken diğer veri tabanında E/K veya
Erkek/Kadın şeklinde tutulabilir. Bilginin keşfinde başarı verinin uyumuna da
bağlı olmaktadır.
Veri Seçme (Data Selection): Veritabanlarında üzerinde işlem yapılacak olan
veri seçilir ve veri türleri bu aşamada belirlenir. Veri madenciliği
uygulamalarında çözümlemeden elde edilecek sonucun değişmeyeceğine
inanılıyorsa veri sayısı ya da değişkenlerin sayısı azaltılabilir.
Veri Dönüştürme (Data Transformation): Verinin kullanılacak modele göre
içeriğini koruyarak şeklinin dönüştürülmesi işlemidir. Dönüştürme işlemi
kullanılacak
modele
uygun
biçimde
yapılmalıdır.
Çünkü
verinin
gösterilmesinde kullanılacak model ve algoritma önemli bir rol oynamaktadır.
Değişkenlerin ortalama ve varyansları birbirlerinden önemli ölçüde farklı
olduğu taktirde büyük ortalama ve varyansa sahip değişkenlerin diğerleri
üzerindeki baskısı daha fazla olur ve onların rollerini önemli ölçüde azaltır. Bu
yüzden veri üzerinde normalizasyon işlemi yapılmalıdır.
Veri Madenciliği (Data Mining): Bu aşamada, anlamlı örüntüler elde
edebilmek için veri üzerinde veri madenciliği algoritmaları uygulanır.
Sınıflandırma, kümeleme algoritmaları gibi veri madenciliği algoritmaları
kullanılarak yararlı bilgi keşfedilmesi sağlanır.
6
Örüntü Değerlendirme (Pattern Evaluation): Elde edilmiş olan bilginin basitlik,
geçerlilik,
yararlılık
ve
yenilik
gibi
bazı
ölçüm
değerlerine
göre
değerlendirildiği aşamadır.
Bilgi Sunumu (Knowledge Presentation): Bu aşamada, çeşitli görselleştirme
ve bilgi sunum araçları kullanılarak elde edilmiş olan bilginin kullanıcıya
sunumu gerçekleştirilir.
2.2. Uygulama Alanları
Veri madenciliğinin birçok kullanım alanları mevcuttur. Bunların en önemlileri
sigortacılık, bankacılık ve elektronik ticaret [11], biyoloji, kimya, coğrafi bilgi
sistemleri, görüntü tanıma, uzay bilimleri, sosyal bilimler, bilimsel mühendislik
alanlarıdır.
2.2.1. Sigortacılık
• Sigorta dolandırıcılıkların tespiti,
• Riskli müşteri gruplarının belirlenmesi,
• Yeni poliçe talep edecek kişilerin tahmin edilmesi vb. konularda yapılabilir.
2.2.2. Bankacılık
• Kredi taleplerinin değerlendirilmesi,
• Kredi kartları harcamalarına göre müşteri gruplarının belirlenmesi,
• Kredi kartı dolandırıcılıklarının ve sahtekârlıklarının belirlenmesi,
• Farklı finansal göstergeler arasında gizli ilişkilerin ortaya konulması vb.
konularda yapılabilir.
7
2.2.3. Pazarlama
• Pazar sepet analizi,
• Müşteri ilişkileri yönetimi,
• Satış tahmini,
• Müşteri değerlendirme,
• Müşterilerin satın alma alışkanlıklarının belirlenmesi,
• Müşterilerin
demografik
özellikleri
arasındaki
bağlantıların
ortaya
konulması vb. konularda yapılabilir.
2.2.4. Elektronik ticaret
• Saldırıların çözümlenmesi,
• Sigorta dolandırıcılıkların tespiti,
• Riskli müşteri gruplarının belirlenmesi vb. konularda yapılabilir.
2.2.5. Biyoloji, tıp ve genetik
• Bitki türleri ıslahı,
• Gen haritasının analizi ve genetik hastalıkların tespiti,
• Kanserli hücrelerin tespiti,
• Yeni virüs türlerinin keşfi ve sınıflandırılması,
• Fizyolojik parametrelerin analizi ve değerlendirilmesi vb. konularda
yapılabilir.
2.2.6. Kimya
• Yeni kimyasal moleküllerin keşfi ve sınıflandırılması,
• Yeni ilaç türlerinin keşfi vb. konularda yapılabilir.
8
2.2.7. Yüzey analizi ve coğrafi bilgi sistemleri
• Bölgelerin coğrafi özelliklerine göre sınıflandırılması,
• Kentlerde yerleşim yerleri belirleme,
• Kentlerde suç oranı,
• Zenginlik-yoksulluk, köken belirleme, kentlere yerleştirilecek posta kutusu,
otomatik para makineleri, otobüs durakları gibi hizmetlerin konumlarının
tespiti vb. konularda yapılabilir.
2.2.8. Görüntü tanıma ve robot görüş sistemleri
• Çeşitli algılayıcılar aracılığı ile tespit edilen görüntülerden yola çıkarak
engel tanıma,
• Yol tanıma, yüz tanıma, parmak izi tanıma gibi tekniklerde kullanımı vb.
konularda yapılabilir.
2.2.9. Uzay bilimleri ve teknolojisi
• Gezegen yüzey şekillerinin ve gezegen yerleşimleri,
• Yeni galaksiler keşfi,
• Yıldızların konumlarına göre gruplandırılması vb. konularda yapılabilir.
2.2.10. Meteoroloji ve atmosfer bilimleri
• Bölgesel iklim, yağış haritaları oluşturma,
• Hava tahminleri, ozon tabakası deliklerinin, tespiti, çeşitli okyanus
hareketlerinin belirlenmesi vb. konularda yapılabilir.
2.2.11. Sosyal bilimler ve davranış bilimleri
• Kamuoyu yoklamaları inceleme,
9
• Genel eğilim belirleme, seçim öngörüleri oluşturma vb. konularda
yapılabilir.
2.2.12. Metin madenciliği
• Çok büyük ve anlamsız metin yığınları arasından anlamlı ilişkiler elde
etmekte kullanılması vb. konularda yapılabilir.
2.2.13. Bilimsel, mühendislik ve sağlık bakım verileri
Günümüzde bilimsel veriler, iş sahası verilerinden daha da karmaşık hale
gelmişlerdir. Buna ek olarak;
• Bilim adamları ve mühendisler uygulama sahası bilgilerini kullanarak
benzetim ve sistem kullanımının arttırılması vb. konularda yapılabilir.
Web Verileri: Internet ve web üzerindeki veriler hem hacim hem de
karmaşıklık olarak hızla artmaktadır. Sadece düz metin ve resimden başka
akan (streaming) ve nümerik veriler de web verileri arasında yer almaktadır
[12].
2.3. Veri Madenciliği Modelleri
Han’a göre modeller iki alan altında toplanan tanımlayıcı (descriptive) ve
öngörüsel (predictive) modellerdir. Tanımlayıcı model, veritabanı içindeki
verinin genel özelliklerinin ortaya çıkarır. Öngörüsel modelde ise, gelecekle
ilgili tahminlerde bulunmak için kabul edilen veri üzerinde sonuçlar çıkarmaya
çalışır. Han’ın modelini kullananlar bile hangi kategorinin hangi modelin
altında olduğunun kararını verememişlerdir. Bu kategoriler tanımlama ve
ayrımlama (characterization and discrimination), birliktelik analizi (association
rules), sınıflandırma ve öngörü (classification and prediction), kümeleme
10
analizi (cluster analysis), sıra dışılık analizi (outlier analysis) ve gelişimsel
analizdir (evolution analysis).
VM modellerini gördükleri işlevlere göre,
• Sınıflama (Classification) ve Regresyon,
• Kümeleme (Clustering),
• Birliktelik Kuralları (Association Rules) ve Ardışık Zamanlı Örüntüler
(Sequential Patterns),
olmak üzere üç ana baslık altında incelemek mümkündür. Sınıflama ve
regresyon modelleri tahmin edici, kümeleme, birliktelik kuralları ve ardışık
zamanlı örüntü modelleri tanımlayıcı modellerdir. Sekil 2.2.'de bu ilişkiler
özetlenmiştir [13].
Şekil 2.2. Veri madenciliği modelleri
2.3.1. Sınıflandırma
Sınıflandırma, veri kümesindeki kayıtları önceden belirlenmiş alt gruplara ait
varsayarak tüm kayıtlara doğru sınıf etiketlerinin atanmasını amaçlayan veri
madenciliği çalışmalarını ifade etmektedir. Diğer yandan, sınıflandırma
modelleri değişkenlikleri ve veri içerisindeki çeşitli problemleri tanımlamak
11
için de kullanılabilmektedirler. Sınıflandırma modellerinde bağımlı değişken
kesikli olmakta ve bu değişkenin her bir değeri birer sınıf etiketi ifade
etmektedir. Sınıflandırma modeli, bağımlı değişkenin de değerlerini içeren
veri kümesi üzerinden sınıflayıcı kuralları türetmekte ve bu kuralları yeni
kayıtlara uygulayarak öngörülerde bulunmaktadır [14].
Mevcut verilerden hareket ederek geleceğin tahmin edilmesinde faydalanılan
ve veri madenciliği yöntemleri içerisinde en yaygın kullanıma sahip olan
sınıflama modelleri arasındaki temel fark, tahmin edilen bağımlı değişkenin
kategorik veya süreklilik gösteren bir değere sahip olmasıdır.
Sınıflama modellerinde kullanılan başlıca yöntemler;
• Karar Ağaçları,
• Yapay Sinir Ağları,
• Genetik Algoritmalar,
• K-En Yakın Komşu,
• Bellek Tabanlı Yöntemler,
• Naive-Bayes
2.3.2. Kümeleme
Nesnelerin kendilerini veya diğer nesnelerle olan ilişkilerini tanımlayarak
onları gruplara bölme işlemine kümeleme denir. Buradaki amaç gruplar
içindeki nesneleri diğer gruplardaki nesnelerden ayrı; kendi aralarında ise
birbirlerine benzer şekilde oluşturmaktır [15].
Veri madenciliğinde kullanılmakta olan birçok kümeleme algoritması vardır ve
bunlar analiz edilecek olan verinin yapısına göre belirlenir. Kümeleme
metotları genel olarak şunlardır [16]:
Bölme Metodu: n tane nesnenin olduğu veritabanında, nesneler mantıksal
gruplara ayrılarak analiz edilir. Küçük ve orta boyutlu veritabanlarında birkaç
12
grup olabilirken, veritabanının büyüklüğü arttığında daha çok grup oluşabilir.
Gruplandırma
yapılırken
değişik
kriterler
değerlendirilebilir.
Yapılan
gruplandırma analizin kalitesine etki eder.
Hiyerarşik Metot: Analiz etmeden önce nesneler, hiyerarşik bir yapıya göre
düzenlenir. Veriyi hiyerarşik bir yapıya çevirmek için değişik yöntemler
kullanılır. Bunların arasında BIRCH ve CURE yöntemleri bulunur.
Yoğunluk Tabanlı Metot: Birçok kümeleme yöntemi nesnelerin birbirleri
arasındaki farklılıklarına göre kümeleme yaparken, bu metot nesnelerin
yoğunluğuna göre gruplama yapar. Yoğunluktan kasıt, analiz edilen
nesnelerin sayısıdır. Yoğunluk tabanlı metotlara örnek olarak DBscan
verilebilir.
Izgara Tabanlı Metot: Nesneleri grid yapısı oluşturacak şekilde sayılarına
göre sınıflandırır. Temel avantajı hızlı tamamlanması ve nesnelerin
sayısından bağımsız olmasıdır. Bu tipteki metotlara örnek olarak Sting
verilebilir.
Model Tabanlı Metot: Her küme için bir model belirlenir ve bu modele uyan
veriler uygun kümeye yerleştirilir.
2.3.3. Birliktelik kuralı/analizi
Birliktelik kuralı, geçmiş verilerin analiz edilerek bu veriler içindeki birliktelik
davranışlarının
tespiti
ile
geleceğe
yönelik
çalışmalar
yapılmasını
destekleyen bir yaklaşımdır. 90’lı yılların başına kadar saklanan satış
verilerinde ürün ve müşteri verisi çok nadir yer alırken, genelde mali açıdan
önemli olan tutarsal gelir verilerinin depolanması yapılıyordur. 90’lı yılların
başından itibaren veri toplama uygulamalarındaki gelişmeler doğrultusunda
firmaların satış noktalarında yeni teknoloji otomatik ürün veya müşteri tanıma
sistemleri (barkod ve manyetik kart okuyucular) yaygınlaşmaya başlamıştır.
13
Bu tip teknolojik gelişmeler, bir satış hareketine ait verilerin satış esnasında
toplanmasına ve elektronik ortamlara aktarılmasına olanak tanımıştır.
Veritabanı kayıtları içinde yer alan kayıtların birbirleriyle olan ilişkileri
inceleyerek, hangi olayların eş zamanlı olarak birlikte gerçekleşebileceklerini
ortaya koymaya çalışan veri madenciliği yöntemleri bulunmaktadır. Bu
ilişkilerin belirlenmesiyle “birliktelik kuralları” elde edilir.
Birliktelik analizi nesnesel yâda karekteriksel özelliklerin birlikte işlediği bir
kuraldır. Ayrıca, “Pazar Sepet Analizi” olarak da tanımlanan birliktelik kuralı
bir ya da daha fazla nesnelerin aralarındaki nicel ilişkilerini ortaya çıkarır [17].
Pazar sepet analizleri yardımıyla bir müşteri herhangi bir ürünü aldığında,
sepetine başka hangi ürünleri koyduğu belirli bir olasılığa göre ortaya konur.
Birlikte satın alınan ürünler belirlendiğinde, mağazalarda raflar ona göre
düzenlenerek
müşterilerin
bu
tür
ürünlere
daha
kolayca
erişimleri
sağlanabilir.
2.4. Birliktelik Kuralı ve Apriori Algoritması
Veri madenciliğinde kullanılan ilk yöntemlerden birisidir [18]. Birliktelik kuralı,
geçmiş verilerin analiz edilerek bu veriler içindeki birliktelik davranışlarının
tespiti
ile
geleceğe
yönelik
çalışmalar
yapılmasını
destekleyen
bir
yaklaşımdır. Birliktelik kuralı madenciliğinin uygulamasına Pazar sepeti
analizi örnek verilebilir [19]. Birliktelik kuralındaki amaç; alışveriş esnasında
müşterilerin satın aldıkları ürünler arasındaki birliktelik ilişkisini bulmak, bu
ilişki verisi doğrultusunda müşterilerin satın alma alışkanlıklarını tespit
etmektir. Satıcılar, keşfedilen bu birliktelik bağıntıları ve alışkanlıklar sayesi
ile etkili ve kazançlı pazarlama ve satış imkânına sahip olmaktadırlar.
Örneğin, bir marketten müşterilerin süt ve peynir satın alımlarının % 70’inde
bu ürünler ile birlikte yoğurt da satın alınmıştır. Bu tür birliktelik örüntüsünün
tespit edilebilmesi için, örüntü içinde yer alan ürünlerin birden çok satın alma
14
hareketinde birlikte yer alması gerekir. Milyonlarca veri üzerinde veri
madenciliği teknikleri uygulandığında, birliktelik sorgusu için kullanılan
algoritmalar hızlı olmalıdır [20].
Bu çalışmada, veri madenciliği tekniklerinden birliktelik kuralı yöntemlerinden
en çok bilinen Apriori algoritması ile örnek bir kurumun ağ verileri üzerinde
IBM/Modeler aracı kullanılarak girilen siteler ve kullanıcılar arasında ilişkiler
incelenmiştir. İnceleme sonucunda kullanıcıların girilen sitelerden sonra
hangi sitelere gireceği tahmininde bulunulmuştur.
2.4.1. Birliktelik kuralı
Birliktelik kuralının matematiksel modeli Agrawal, Imielinski ve Swami
tarafından yılında sunulmuştur [18]. Bu modelde, I ={i1 , i2 ,.., im } kümesine
“ürünler” adı verilmektedir. D, veri bütünlüğündeki tüm hareketleri, T ise
ürünlerin her bir hareketini simgeler. TID ise, her harekete ait olan tek
belirteçtir.
Birliktelik kuralı şu şekilde tanımlanabilir;
A1 , A2 … … . , Am => B1 , B2 , … … . , Bn
Bu ifadede yer alan, Ai ve Bj, yapılan iş veya nesnelerdir. Bu kural, genellikle
“A1 , A2 … … . , Am ” iş veya nesneleri meydana geldiğinde, sık olarak
“B1 , B2 , … … . , Bn ” iş veya nesnelerinin aynı olay veya hareket içinde yer
aldığını belirtir [21].
Birliktelik kuralı, kullanıcı tarafından minimum değeri (Min𝑑𝑒𝑠 ) belirlenmiş
destek ve güvenirlik eşik değerlerini sağlayacak biçimde üretilir. Bir ürün
kümesindeki destek, D ile ifade edilen tüm hareketler içinde ilgili ürün
kümesini içeren hareketlerin yüzdesidir. A ve B ürün kümelerinin, birliktelik
kuralı “ A=> B” olarak gösterilirse, destek aşağıdaki gibi tanımlanır.
15
destek (A => B) = (A ve B’ nin bulunduğu satır sayısı) / (toplam satır sayısı)
A=>B birliktelik kuralının güven değeri ise, A’ yı içeren hareketlerin B’ yi de
içerme yüzdesidir. Örneğin, bir kural % 85 güvenirliğe sahip ise, A’ yı içeren
ürün kümelerinin % 85’i B’ yi de içermektedir. İşe bağlı veri satırları verilmiş
ise, (A=> B) güveni aşağıdaki gibi tanımlanır.
güven (A=> B) = (A ve B’nin bulunduğu satır sayısı) / (A’nın bulunduğu satır
sayısı)
Güven değerinin % 100 olması durumunda, kural bütün veri analizlerinde
doğrudur ve bu kurallara “kesin” denir. Birliktelik kuralına ilişkin olarak
geliştirilen bazı algoritmalar şunlardır; AIS [24], SETM [22], Apriori [20],
RARM - Rapid Association Rule Mining [23], CHARM [24]. Bu algoritmalar
içerisinde, ilk olanı AIS, en bilineni ise Apriori algoritmasıdır [20].
Çalışmada öncelikle veri kümesi içindeki yaygın öğeler belirlenmiştir. Yaygın
öğelerin ve nesneleri oluşturan öğeler arasındaki ilişkiler belirlenmiştir.
Çalışmada kullanılan Apriori algoritmasından uygulama bölümü olan 3.
bölümde detaylı şekilde bahsedilmiştir.
2.4.2. Apriori algoritması
Apriori Algoritmasının ismi, bilgileri bir önceki adımdan aldığı için “prior”
anlamında Apriori’dir [18]. Bu algoritma temelinde iteratif (tekrarlayan) bir
niteliğe sahiptir ve hareket bilgileri içeren veritabanlarında sık geçen öğe
kümelerinin keşfedilmesinde kullanılır. Apriori Algoritmasına özüne göre, eğer
k-öğe kümesi (k adet elemana sahip öğe kümesi) min𝑑𝑒𝑠 ölçütünü sağlıyorsa,
bu kümenin alt kümeleri de min𝑑𝑒𝑠 ölçütünü sağlar. Birliktelik kuralı
madenciliği, tüm sık geçen öğelerin bulunması ve sık geçen bu öğelerden
güçlü birliktelik kurallarının üretilmesi olmak üzere iki aşamalıdır. Birliktelik
kuralının ilk aşaması için kullanılan Apriori Algoritması, sık geçen öğeler
16
madenciliğinde kullanılan en popüler ve klasik algoritmadır. Bu algoritmada
özellikler ve veri, Bolean ilişki kuralları ile değerlendirilir [25].
Bu algoritma aslında tekrarlayan bir özelliğe sahiptir ve hareket bilgileri içeren
veritabanlarında sık geçen öğe kümelerinin keşfedilmesinde kullanılır. Apriori
algoritmasına göre, k-öğe kümesi (k adet elemana sahip öğe kümesi)
minimum destek ölçütünü sağlarsa, bu kümenin alt kümeleri de yine min.
destek ölçütünü sağlamaktadır.
k-öğe (k tane elemana sahip öğe kümesi) kümesi c ile ifade edilirse, öğeleri
(ürünler) c[1], c[2], c[3],...,c[k] şeklinde gösterilir ve c[1] < c[2] < c[3]< ... <c[k]
olacak şekilde küçükten büyüğe doğru sıralıdır [18]. Her öğe kümesine
destek ölçütünü tutmak üzere bir sayaç değişkeni eklenmiştir ve sayaç
değişkeni öğe kümesi ilk kez oluşturulduğunda sıfırlanır. Geniş (sık geçen)
öğe kümeleri L karakteri ile aday öğe kümeleri ise C karakteri ile gösterilir
[26].
L1 = {sık geçen 1-öğe kümesi};
for (k=2; Lk−1 ≠ Ø; k++) do begin
Ck =Apriori-gen (Lk−1); // Yeni adaylar
forall transactions-hareketler t ϵ D do rbegin
Ct = subset (Ck , t); // Adaylar t içindedir
forall candidates – adaylar c ϵ Ct do
c.count++;
end
end
Lk = {c ϵ Ck | c.count ≥ minsup}
Answer = Uk Lk ;
Şekil 2.3. Klasik Apriori algoritması özet kodu
17
Apriori algoritmasının klasik özet kodu Şekil 2.3’ de [18] görülmektedir. Bu
şekilde yer alan Apriori-gen fonksiyonu (Şekil 2.4’de) [18], (k-1) adet öğeye
sahip Lk−1sık geçen öğe kümesini kullanarak k adet öğeye sahip aday
kümeleri oluşturur. Bu fonksiyon ile ilk önce, Lk−1sık geçen öğe kümesine
kendisi ile birleştirme işlemi uygulanır. Birleştirme işleminde Lk−1 sık geçen
öğe kümesinin her satırında yer alan son öğe haricinde diğer öğelerin çapraz
olarak benzerliği aranır ve son öğe haricinde diğer öğelerle yakalanan
benzerliklerden yeni aday öğe kümeleri oluşturulur. Oluşan kümeler budama
adımı ile budanarak fonksiyondan dönülür.
insert into Ck
select p.items1 , p.items2,.....,p.itemsk−1, q.itemk−1
from Lk−1 p, Lk−1 q
where p.item1=q.item1, ...., p.itemk-2=q.itemk-2,
p.itemk-1 < q.itemk-1;
forall itemsets c ϵ Ck do
forall (k-1)-subsets s of c do
if (s ∉ Lk−1) then
delete c from Ck
Şekil 2.4. Apriori-Gen fonksiyonu
Budama işleminde; c aday kümesinin (k-1) öğeye sahip alt kümelerinden
Lk−1 sık geçen öğe kümesinde yer almayan tüm alt kümeler silinir [20]. Farklı
bir ifade ile budama, Ck aday öğe kümesindeki öğelerin alt kümelerinin Lk−1
sık geçen öğe kümesindeki varlığı kontrol edilir, bir öğenin alt kümelerinden
biri, Lk−1 sık geçen öğe kümesinde yer almıyorsa ilgili öğe değerlendirme dışı
kalır ve Ck aday öğe kümesinden silinir [18].
Apriori algoritması özet kodu incelendiğinde sık geçen öğe kümelerini bulmak
için birçok kez veritabanının tarandığı görülmektedir. İlk aşamadan önce, veri
18
madenciliği uygulanacak veri topluluğunun taranarak öğelerin kaç adet
hareket kaydı içinde yer aldığı tespit edildiği (her öğe için tespit edilen bu
değere destek sayacı adı verilir) ve destek sayacı minimum destek değerine
eşit veya büyük olan öğelerin L1 sık geçen 1-öğe kümesi olarak belirlendiği
varsayılarak işleme başlanır. Kod içinde kurulan döngü yapısı ile ilk aşamada
L1 sık geçen öğe kümesinin öğelerinin ikili kombinasyonuna benzer bir
şekilde (L1 ∞ L1 ) yeni bir küme oluşur, bu işleme birleştirme adı verilir. Bu
işlem ile oluşan kümelere de aday öğe kümeler adı verilir ve C harfi ile
simgelenir. Oluşan bu aday öğe kümesinin her elemanı iki adet öğeden
oluştuğu için C2 ifadesi ile isimlendirilir. Bu aday küme Apriori-gen işlevi ile
budama işlemine tabi tutulur ve C2 kümesinin elemanlarına ait alt kümelerinin
L1 öğe kümesinde olup olmadığına bakılır, alt kümelerden L1 içinde yer
almayan küme elemanları C2 aday kümesinden silinir. Apriori algoritması
uygulanan veri topluluğu tekrar taranarak budama işleminden geçen L2 aday
kümesi elemanlarının kaç adet hareket kaydı içinden geçtiği (destek sayacı)
bulunur. Bulunan destek sayaç bilgileri doğrultusunda C2 aday kümesi
elemanlarının destek sayacı minimum destek değerine eşit veya büyük
destek değerine sahip olan elemanları L2 sık geçen öğe kümesini oluşturur.
Döngü bir sonraki aşamada L2 kümesi öğelerinin üçlü kombinasyonu ile yeni
bir aday öğe kümesi oluşturur ve bu küme C3 ifadesi ile simgelenir. ilk
aşamada olduğu gibi bu kümede budama işleminden geçer ve budama
işleminden sonra minimum destek seviyesinin üstünde kalan elemanları ile
L3 sık geçen öğe kümesi oluşturulur. Döngü her dönüşünde öğe sayısını
artırarak devam eder. Bu süreç yeni bir sık geçen öğe kümesi bulunamayana
kadar sürer.
19
2.5. Sınıflandırma ve Karar Ağaçları, Naive Bayes Algoritmaları
2.5.1. Sınıflandırma
Sınıflandırma, yeni bir nesnenin niteliklerini inceleme ve bu nesneyi önceden
tanımlanmış bir sınıfa atamaktır. Burada önemli olan, her bir sınıfın
özelliklerinin önceden net bir şekilde belirlenmiş olmasıdır. Verilerin içerdiği
ortak özellikleri kullanılarak söz konusu verileri sınıflandırmak mümkündür.
Örneğin bir firmanın müşterilerini belirli özellikleri göz önüne alınarak
sınıflandırılması sağlanabilir. Bir alışveriş merkezi yöneticileri ortalama
alışveriş miktarından daha fazla alışveriş yapan müşterileri “varlıklı”,
diğerlerini ise “yoksul” olarak birbirlerinden ayırt etmek isteyebilir. Benzer
biçimde bir veri kümesi içinde ortak özellikleri ya da farklılıkları ortaya
koyacak biçimde sınıflandırma yapılabilir.
Sınıflandırma bir öğrenme algoritmasına dayanır. Tüm veriler kullanılarak
eğitme işi yapılmaz. Bu veri topluluğuna ait bir örnek veri üzerinde
gerçekleştirilir. Öğrenmenin amacı bir sınıflandırma modelinin yaratılmasıdır.
Bir başka deyişle sınıflandırma, hangi sınıfa ait olduğu bilinmeyen bir kayıt
için sınıf belirleme sürecidir. Örnek olarak, basit bir sınıflandırma ile iki
belirgin sınıfa ayrıştırılabilir: ”Ödemeleri 3 gün içinde yapanlar” ve “ödemeleri
3 günden sonra yapanlar.”
Sınıflandırma için çalışmada bazı veri ön işleme aşamaları uygulanmıştır.
Sürekli veriler ayrık hale getirilmiştir: Facebook, tiwitter, linkedin vssosyal
ağ; halkbankası, işbankası vs. Bankalar; google, yandex vsarama
motoru gibi
Gereksiz niteliklerin silinmiştir: Bazı istenmeyen nitelikler kaldırılmıştır.
TCP/UDP, sourceport nitelikleri gibi
20
Gürültü azaltılmıştır: Mükerrer veriler kaldırılmıştır.
Normalizasyon: Yaş niteliğinde belli yaşın üstündeki kişiler sayıca az
oldukları için değerlendirmeye alınmamıştır.
Karar Ağacı ve Naive Bayes sınıflandırıcılarda girdi olarak ayrık nesnelerden
oluşan öğrenme kümesi oluşturulmuştur. Ve bu öğrenme kümesindeki
niteliklerden bir tanesi sınıfı etiketi seçilmiştir. Seçilen bu sınıf etiketine bağlı
olarak model oluşturulmuştur.
Bu çalışmada, veri madenciliği teknikleri sınıflandırma yöntemlerinden karar
ağaçları ve Naive Bayes algoritmaları örnek bir kurumun ağ verileri üzerinde
uygulanmıştır. Karar Ağacı algoritması için RapidMiner ve SPSS aracı
kullanılarak eğitim ve test verileri üzerinde sınıflandırma yapılmıştır. Naive
Bayes algoritması için ise önce C# programlama dilinde algoritma kodlanarak
sınıflandırma yapılmıştır. Sonrasında ise yine aynı eğitim ve test verileri
üzerinde RapidMiner aracı kullanılarak sınıflandırma yapılmıştır. Uygulama
bölümü olan 3. Bölümde detaylı şekilde bahsedilmiştir.
2.5.2. Karar ağaçları
Sınıflandırma problemlerinde en çok kullanılan algoritmalardan biri karar
ağaçlarıdır.
Diğer sınıflandırma
algoritmalarıyla
kıyaslandığında
karar
ağaçlarının yapılandırılması ve anlaşılması daha kolaydır [27]. Karar ağaçları
kullanılarak sınıflandırma 2 aşamada gerçekleştirilir. İlk adımda ağaç
oluşturulur. İkinci adımda ise veriler tek tek ağaca uygulanarak sınıflandırma
gerçekleştirilir.
Karar ağaçlarının oluşturulması sırasında dallanmaya hangi nitelikten
başlanacağı oldukça önemlidir çünkü olası tüm ağaç yapılarını ortaya
çıkararak içlerinden en uygun olanı ile başlamak mümkün değildir. Bu
sebeple Karar Ağacı algoritmalarının çoğu daha başlangıçta birtakım
21
değerleri hesaplayarak ona göre ağaç oluşturma yoluna gitmektedir. Bu
hesaplamalardan biri de entropiye dayalı olup, entropi belirsizliğin ölçüsü
olarak tanımlanmaktadır. Entropi, bir veri kümesi içindeki belirsizlik ve
rastgeleliği ölçmek için kullanılır ve 0 ile 1 arasında değer alır. Bütün
olasılıklar eşit olduğunda entropi maksimum değerini alacaktır [28]. Entropiye
dayalı karar ağaçları ile sınıflandırma algoritmalarının en önemlileri aşağıdaki
gibidir.
ID3 [29]: ID3, makine öğrenme ve bilişim teorisine bağlı olarak verilen
örnekler içinde en ayırıcı değişkeni bulan bir algoritmadır. Temel olarak
kategorik nitelikleri sınıflandırır ve veritabanı dallandırılmadan önce ve sonra
doğru sınıflandırma yapmak için gelen bilgiler arasındaki farkı kullanarak,
öncelikli düğüme ve dallanmalara karar verir.
C4.5 [30]: ID3 algoritmasından farklı olarak sayısal değerlere sahip
niteliklerin karar ağaçlarının oluşturulmasını sağlar. Diğer taraftan Karar
Ağacı oluştururken kayıp verileri almaması sebebiyle daha anlamlı kurallar
sunan ağaçlar üretebilir. Kayıp veriler ise diğer veri ve değişkenler
kullanılarak tahmin edilir.
CART: CART algoritması, her karar düğümünden sonra ağacın iki dala
ayrılması ilkesine dayanır. Bu teknikte dallanma kriteri belirlenirken kayıp
veriler önemsenmez.
2.5.3. Naive Bayes
Naive Bayes, birden fazla değişkenler arasındaki ilişkiyi analiz eden tahminci
ve tanımlayıcı bir sınıflandırma algoritmasıdır.
Naive Bayes, verinin öğrenilmesi esasına dayanmaktadır. Yani eğitimde
kullanılan veriler, modelin öğrenilmesi için her çıktının kaç kere meydana
geldiğini hesaplar.
22
Bu değer öncelikli olasılık olarak adlandırılır. Hesaplamalar sırasında her bir
bağımsız değişkenin bağımlı değişkenlere bölümünün kombinasyonu olayın
meydana gelme sıklığını bulur. Bu da veri kümesinden yapılacak tahmin için
kullanılır [31].
Naive Bayes, metin kategorilendirmesi konusunda bilinen ve sıklıkla
kullanılan bir algoritmadır. Hedef fonksiyon için bir eğitim veri seti belirlenir,
nitelik değerleri tarafından tanımlanan yeni örneklemler sunulur ve öğrenici
sınıf hedef değeri veya sınıfı tahmin eder [32]. Sınıflandırma önemli bir veri
madenciliği problemidir. Girdiler, eğitim setinin bir veri kümesidir. Bu veri
kümesindeki her bir verinin birçok özniteliği vardır. Sayı alanı içeren
özniteliklere sayısal öznitelik, sayı içermeyen özniteliklere sahip alanlara ise
kategorik öznitelik denmektedir. Ayrıca sınıf etiketi isimli fark edilebilir bir
öznitelik daha vardır. Bu sınıflandırma, etiketsiz kayıtlar içerisinde, sınıf
etiketini tahmin etmekte kullanılabilecek kısa bir model oluşturmayı hedefler.
Naive Bayes sınıflandırıcısı, kategorik verileri sınıflandırma konusunda basit
ve hızlı bir tekniktir. Bayes sınıflandırıcıları klasik değişkene bağlı
sınıflandırıcılardır. Eğitim verileri için belirli bir olasılık dağılımı uygun kabul
edilir. Naive Bayes sınıflandırıcısı, ilgili eğitim setinde bulunan her bir
bağımsız öznitelik arasındaki ilişkiyi ve her bir ilişki içerisindeki şartlı olasılığı
çıkarmak için analiz eder. Tahmin işlemi, bağımsız değişkenlerin, bağımlı
değişkenler üzerindeki etkilerini bir araya getirerek yeni bir durumu
sınıflandırmak için yapılır [33].
Naive Bayes tekniğinin kullanıldığı sınıflandırma adımları şu şekildedir:
Eğitim süreci sırasında, her bir sonucun önceki olasılığı eğitim seti içerisinde
ilgili kategoride kaç kere geçtiğinin sayısı olarak belirlenir. Örneğin, 5 şartın
olduğu bir durumda, ilk sonuç 2 kere geçmiş ise ilgili sonucun olasılığı
0,4’dür. Önceki olasılıklara ek olarak, her bir bağımsız özniteliğin her bir
bağımlı öznitelik içerisinde kaç kez geçtiğini de hesaplamaktadır. Bu frekans
23
değeri, hesaplanan olasılık değerlerinin her birinin çarpımı birleşimi ile
çarpılarak oluşturulan şartlı olasılık değerlerini hesaplamak için kullanılır [33].
Naive Bayes algoritması en bilindik sınıflandırma algoritmalarından birisidir.
Birçok araştırmacı bu yaklaşımın kuramsal ve deneyimsel sonuçları üzerinde
çalışmışlardır.
Veri
madenciliği
uygulamalarında
geniş
ölçüde
kullanılmaktadır ve birçok uygulamada sürpriz bir şekilde iyi sonuçlar
vermiştir. Buna rağmen, Naive Bayes öğreniminde bütün özelliklerin eşit
sayılması varsayımı nedeniyle, yapılan tahminler yetersiz kalmaktadır.
Örneğin, bir kişinin diyabet hastası olup olmadığının tahmini problemi
konusunda, kişinin kan basıncı, kişinin boyundan daha önemlidir. Bu
nedenle, Naive Bayes algoritmasının performansı hafifletici varsayımlar ile
iyileştirilir [34].
Bayes sınıflandırıcısı şu şekilde ifade edilir:
X örnek veri seti olsun. Bu X değerlerinin sınıfı bilinmemektedir. X test veri
seti X = {X1, X2, X3, …, Xn} değerlerinden oluşsun.
Sınıf değerleri ise C1, C2, C3, …, Xn şeklinde olduğu kabul edilsin. Sınıfı
belirlenecek test verisinin olasılığı şu şekilde hesaplanır:
𝐶𝑖
𝑃( ) =
𝑋
𝑃(𝑋/𝐶𝑖)+𝑃(𝐶𝑖)
𝑃(𝑋)
(2.1)
Çıkan sonuçlardan ise en büyük değere ait olan sınıf test verisinin ait olduğu
sınıfı verir.
arg maxci {P(X | Ci) P(Ci)}
(2.2)
24
3. UYGULAMA
Operasyon tarafında yer alan veriler, Şekil 2.1’de görüldüğü gibi bilgi keşfi
aşamalarından veri seçme, veri önişleme ve veri indirgeme süreçleri ile
uygulama veri depolama yapısına alınmıştır. Veri seçimi (veri toplama)
işlemi, verilerin veri madenciliği uygulanması için mümkün olduğu kadar tek
bir veri ambarı içinde toplanmasıdır. Veri önişleme, verilerin veri madenciliği
için hazır duruma getirilmesi için veri üzerinde veri tipi dönüşümü, gruplama,
sınıflanma, kayıp değerleri yönetme ve gürültülü verinin temizlenmesi gibi
işlemlerin uygulandığı aşamadır. Gürültülü veride veri önişleme aşamasında
veri kümesinden temizlenir. Gürültülü veri, veri kümesi içinde yer alan ama
veri madenciliği uygulamasında kullanılmayacak ve bir anlam içermeyen
verilerdir [10]. Örnek kurumun operasyona ait verilerde (Şekil 3.1) bulunan
bazı girişlerin gereksiz olduğu tespit edilmiştir.
Şekil 3.1. Ham (işlenmemiş) veri
Bu doğrultuda aşağıdaki ön işlem basamakları uygulanarak Şekil 3.2’de
(27.03.2013 Çarşamba) nihai hali elde edilmiştir.
25
Anlamsız veriler anlamlı hale getirilmiştir.
Sürekli veriler ayrık hale getirilmiştir.: Facebook, tiwitter, linkedin vssosyal
ağ; halkbankası, işbankası vs. Bankalar; google, yandex vsarama
motoru gibi
Gereksiz niteliklerin silinmiştir.: Bazı istenmeyen nitelikler kaldırılmıştır.
TCP/UDP, sourceport nitelikleri gibi
Gürültü azaltılmıştır.: Mükerrer veriler kaldırılmıştır.
Veri bütünleştirme.: Farklı türdeki veriler tek tür yapılmıştır.
Veri indirgeme yapılmıştır.: Veri sayısı azaltılmıştır.
Normalizasyon: Yaş niteliğinde belli yaşın üstündeki kişiler sayıca az
oldukları için değerlendirmeye alınmamıştır.
46570 adet satır sayısına sahip işlenmemiş veri, veri madenciliği süreci
sonunda 8684 satır sayısına inmiştir.
26
Şekil 3.2. İşlenmiş veri
Şekil 3.2’deki tabloda zaman bilgisi logların zamanını yani ay, gün saat,
saniye ve salise bilgilerini göstermektedir. dst hedef IP’lerin karşılığı olan http
adreslerini, ethsource ise işlemi yapan makinanın ID’sini vermektedir.
27
Uygulamada sınıflandırma tekniklerinden Apriori, Karar Ağacı ve Navie
Bayes algoritmaları kullanılmıştır. Apriori ve Karar Ağacı algoritmaları veri
madenciliği uygulama araçları ile yapılmıştır. Naive Bayes algoritması ise
hem uygulama aracı hemde C# yazılım dilinde kodlanarak yapılmıştır.
Karşılaştırılacak
algoritmaların
parametreleri
RapidMiner
ve
SPSS
programlarının kendi varsayılan değerleri olacak şekilde bırakılmış, model
başarımına
olumlu
ya
da
olumsuz
etki
edebilecek
değişikliklerden
kaçınılmıştır. Özetle Apriori, Karar Ağacı ve Naive Bayes algoritmaları
kullanılarak modeller oluşturulmuş ve oluşturulan modellerin başarım
dereceleri karşılaştırılarak ilişkiler belirlenmeye çalışılmıştır.
Bu tezde yapılan uygulamalar Şekil 3.3’de özetlenmiştir.
Yapılan Uygulamalar
Karar Ağacı
Naive Bayes
Apriori
RapidMiner
✔
✔
X
SPSS
✔
X
✔
Kodlama
X
✔
X
Alg. Uyg. Ort.
Şekil 3.3. Özet uygulamalar tablosu
Algoritmaların veri kaynağı üzerinde çalıştırılması sırasında algoritma
parametreleri olarak her algoritmanın o parametre için varsayılan değeri
kullanılmıştır. Her algoritma ve her veri kaynağı için başarım derecesini
maksimize edecek parametre değerleri tespit ederek bu parametrelerle
algoritma sonuçlarını karşılaştırmak farklı sonuçlara götürebilecektir. Ancak,
böyle bir karşılaştırmada yanlılık oluşabilecektir.
3.1. Apriori Algoritması ile Ağ Verilerinin Modellenmesi
Çalışmada kurumun 25.03.2013-29.03.2013 tarihleri arasında ki günlerden
Pazartesi (25.03.2013), Çarşamba (27.03.2013) ve Cuma (27.03.2013)
28
günlerinin ağ verileri kullanılmıştır. 3 gün kullanılmasının nedeni 1 haftalık
veri sayısı çok fazla olduğu için kullanılan sistemler yetersiz kalmıştır.
Dolayısıyla günler parça parça ele alınarak analiz edilmiştir. Tek gün
analizlerinde
normal
masaüstü
bilgisayarlarında
rahatlıkla
sonuç
alınmaktadır. Model IBM SPSS Modeler 14.2 veri madenciliği uygulama
platformu ile tasarlanmıştır. SPSS Modeler gelişmiş analitik uygulamalar ile
desteklenen görsel arabirim kullanarak yapısal olan veya olmayan verilerdeki
kalıpları ve eğilimleri keşfederek, sonuçların modellerini oluşturan bir
yazılımdır [35].
Çarşamba günü için Modeler yazılımında uygulanan model tasarımı Şekil
3.4’de gösterilmektedir. Pazartesi ve Cuma günleri için hatta bütün günler için
model tasarımı uygulanabilir.
Şekil 3.4. Çarşamba gününün Apriori modeli
Bu çalışmada algoritmanın uygulandığı işlem aşamasında ki en son modül
ethsource&dst modülüdür. Ana işlem akışında sırasıyla Şekil 3.2’deki
işlenmiş veri, excel olarak yüklenip giriş değerleri (nominal, integer..)
tanımlanarak başlatılır. Sonraki süreçte filtreleme, zaman tanımları (gün, ay),
saat dilimleri (sabah, öğle, akşam), ethsource göre sıralama, tip belirleme
aşamaları ve son aşama olarak ilişkilendirme kurallarının uygulandığı Apriori
algoritması modülü yer almaktadır.
29
2007 yılında yazılan bir makalede [13], Apriori algoritmasının firmanın veri
seti üzerinde uygulandığında farklı zaman farklı zaman dilimi, farklı satış
şubelerine göre ürünler arasında birlikte satın alınma bağıntılarını ortaya
koyduğu ve genelde aynı ürün grubu içinde yer alan ürünlerin birlikte satın
alınma davranışlarına sahip olduğundan bahsedilmektedir.
Bir çalışmada örnek bir firmanın pastane satış verileri üzerinde uygulanması
için web tabanlı bir uygulama yazılımı geliştirildiği ve geliştirilen uygulama
yazılımı ile örnek firmanın yıl içinde farklı dönemlerde ve farklı satış
noktalarında gerçekleşen satış verileri üzerinde, birlikte satın alınma tercihi
yapılan ürünler tespit edildiği ifade edilmektedir. [14].
Algoritma modülü ilişkilendirmeyi yaparken IDethsource, Contentdst
olarak değerlendirmektedir. Kurallarda Confidence ihtimal (olasılık) yüzdesini,
Rule Support sıklık yüzdesini göstermektedir. Rule Support’un yüksek olması
çıkan kuralların olasılığını güçlendirmektedir. Antecedent ilk girilen web
adreslerini, Consequent ise son girilen web adreslerini göstermektedir. Min
support yüzdesini %20 olarak belirlenmiştir. Değeri arttırıldığında doğal
olarak çıkan kural sayısı da azalacaktır.
Şekil 3.5’de Apriori algoritması sonucunda çıkan kurallar gösterilmektedir.
30
Şekil 3.5. Çarşamba günü Apriori algoritmasının sonucunda çıkan kurallar
Çarşamba
(27.03.2013)
günü
algoritması
sonucunda
çıkan
kurallar
incelendiğinde önce yahoomynet ve arama motoruna (yandex, google vs.)
giren bir kişi sonrasında %97, 297 olasılıkla TÜBİTAK sitesine girmektedir.
Sıklık dereceside (Rule Support) %24,324 değerini göstermektedir. 7. Sırada
ise önce herhangi bir banka sitesine giren bir kişi sonrasında %96,667
olasılıkla sosyal ağ sitelerine (facebook, linkedin, twitter) girmektedir. Sıklık
derecesi de %19,595 değerini göstermektedir. Diğer olasılıklar Şekil 3.5’de
gösterilmektedir.
Şekil 3.6’da Cuma (29.03.2013) günü algoritması sonucunda çıkan kurallar
incelendiğinde önce dropbox, aramamotoru ve sosyal ağ (facebook, twitter,
linkedin…) sitelerine giren bir kişi sonrasında %96,774 olasılıkla TÜBİTAK’a
girmektedir.
Sıklık
dereceside
(Rule
Support)
%21,127
değerini
göstermektedir. 2. sırada ise önce bulut mimari ve TÜBİTAK sitelerine giren
bir kişi sonrasında %96,667 olasılıkla sosyal ağ (facebook, twitter, linkedin…)
sitelerine girmektedir. Sıklık derecesi de %24,423 değerini göstermektedir.
Diğer olasılıklar şekilde gösterilmektedir.
31
Şekil 3.6. Cuma günü Apriori algoritmasının sonucunda çıkan kurallar
Şekil 3.7’de Pazartesi (25.03.2013) günü algoritması sonucunda çıkan
kurallar incelendiğinde önce gazete ve TÜBİTAK (webmail, anasayfa)
sitelerine giren kişi sonrasında %97,561 olasılıkla sosyal ağ (facebook,
twitter, linkedin…) sitelerine girmektedir. Sıklık dereceside (Rule Support)
%27,778) değerini göstermektedir. 2. sırada ise önce dropbox ve TÜBİTAK
(webmail, anasayfa) sitelerine giren bir kişi sonrasında %97,222 olasılıkla
sosyal ağ (facebook, twitter, linkedin…) sitelerine girmektedir. Sıklık derecesi
de
%24,306
gösterilmektedir.
değerini
göstermektedir.
Diğer
olasılıklar
şekilde
32
Şekil 3.7. Pazartesi günü Apriori algoritmasının sonucunda çıkan kurallar
Diğer modül analizlerine bakıldığında Çarşamba günü için Şekil 3.8’deki tablo
akış modülü sonucunda çıkan web adreslerinin sıklığını, Şekil 3.9’da
gösterilmektedir.
Şekil 3.8. Çarşamba günü table akış modülü
33
Şekil 3.9. Çarşamba günü web adreslerinin sıklıkları
Şekil 3.9’a bakıldığında en çok girilen web adresinin Çarşamba (27.03.2013)
gününde 3066 kez girilen sosyal ağlar (facebook, twitter, linkledin…) olduğu
anlaşılmaktadır. 2. sırada 1549 kez girilen TÜBİTAK, 3. sırada ise 1164 kez
girilen arama motoru diye devam etmektedir.
Şekil 3.10’da ise Pazartesi (25.03.2013) ve Cuma (29.03.2013) günlerinin
karşılaştırılmış tabloları gözükmektedir.
34
Şekil 3.10. Pazartesi ve cuma günlerinin web adresleri sıklıkları
Şekil 3.10’da görüldüğü gibi Cuma ve Pazartesi günlerinde en sık tıklanan
web adresi sosyal ağlar (facebook, twitter, linkledin…), ikinci sırada ise iki
gün için içinde TÜBİTAK olduğu anlaşılmaktadır. 4. Sırada Pazartesi günü
gazete siteleri olmasına rağmen Cuma günü Microsoft sitesi yer almaktadır.
Diğer modül analizlerinden Çarşamba günü için zaman dilimleri modülü olan
Şekil 3.11’deki akışın sonucunda Şekil 3.12’deki gün içindeki ağ trafiği
gösterilmektedir.
Şekil 3.11. Çarşamba günü zaman dilimleri akış modülü
35
Zaman dilimleri sabah; saat_real<8, öğleden önce; saat_real<12 and
saat_real>=8, öğleden sonra; saat_real<18 and saat_real>=12 ve akşam
zaman dilimleri; saat_real>=18 and saat_real<=24 olarak belirlenmiştir.
Şekil 3.12. Çarşamba günü saat dilimlerinin yoğunluğu
Şekil 3.12’ye bakıldığında Çarşamba (27.03.2013) günü öğleden öncesinde
ve sonrasında internet trafik yoğunluk yüzdeleri oldukça fazla olduğu
görülüyor. En fazla öğleden sonra (%56,17), en az ise akşam zaman dilimleri
(%8,97) olduğu gözüküyor. Öğleden sonra internete girme sıklığı max.,
akşam ise min. denilebilir.
Şekil 3.13’de ise Pazartesi (25.03.2013) ve Cuma (29.03.2013) günlerinin
karşılaştırılmış tabloları gözükmektedir.
36
Şekil 3.13. Pazartesi ve cuma günleri saat dilimlerinin yoğunlukları
Görüldüğü gibi Cuma günü ve Pazartesi günleri yoğunlukları benzer fakat
Pazartesi günü için öğleden öncesi ve sonrası zaman dilimleri arasındaki fark
oldukça
fazladır.
Öğleden
sonra
internet
kullanımının
max.
olduğu
söylenebilir.
Diğer modül analizlerinden Çarşamba günü için dst modülü olan Şekil
3.14’deki akışın sonucunda Şekil 3.15’deki gün içindeki web adreslerinin
zaman dilimlerine bağlı olarak internet trafik yoğunlukları görülmektedir.
37
Şekil 3.14. Çarşamba günü dst akış modülü
Şekil 3.15’e bakıldığında Çarşamba günü için bütün girilen web adresleri
arasında en çok tıklanan sosyal ağlar(%41) (facebook, twitter, linkledin…)
olduğu anlaşılmaktadır. Sosyal ağların gün içindeki oranları ise en fazla
öğleden önce ve öğleden sonra olduğu görülmektedir. Sonrasında TÜBİTAK
(%31), arama motoru (%15) diye devam etmektedir.
Şekil 3.15. Çarşamba günü zamana bağlı web adreslerinin yoğunlukları
38
Şekil 3.16’da ise Pazartesi (25.03.2013) ve Cuma (29.03.2013) günlerinin
karşılaştırılmış tabloları gözükmektedir.
Şekil 3.16. Pazartesi ve cuma günleri zamana bağlı web adreslerinin
yoğunlukları
Şekil 3.16’ya bakıldığında her iki gün içinde en fazla tıklanan sitelerin sosyal
ağlar (facebook, twitter, linkledin…) olduğu görülmektedir. Sadece girilme
yüzdeleri farklıdır (Pazartesi %41, Cuma %35).
Şekil 3.17’de sadece yahoomynet sitelerine bakıldığında Pazartesi günü
öğleden sonra tıklanma sıklığı yoğunken Cuma günü için zaman dilimleri
39
orantılı olarak dağıldığı gözükmektedir. Yine Pazartesi sabah saatlerinde
yahoomynet sitelerine tıklanma sıklığı çok az iken Cuma günü oldukça fazla
olduğu gözüküyor.
Şekil 3.17. Pazartesi ve cuma günleri zamana bağlı microsoft sitesinin
yoğunlukları
Diğer modül analizlerinden Çarşamba günü için ethsource modülü olan Şekil
3.18’deki akışın sonucunda Şekil 19’daki gün içindeki kullanıcıların web
adreslerini tıklama sıklığı görülmektedir.
Şekil 3.18. Çarşamba günü kullanıcılarının web adreslerini tıklama sıklığı
Şekil 3.19’a bakıldığında Çarşamba günü için yaklaşık 160 kullanıcı arasında
%38’lik dilimle en fazla webde sayfa tıklayan kişi 52 ID nolu kullanıcı olduğu
gözükmektedir.
40
Şekil 3.19. Çarşamba günü kullanıcılarının web trafiği
52 ID nolu kullanıcının ve diğer kullanıcıların gün içindeki zaman dilimlerine
bağlı web sayfası tıklama sıklığı da Şekil 3.20’de görülmektedir.
Şekil 3.20. Çarşamba günün içerisindeki kullanıcıların zaman dilimine göre
web sayfası tıklama yoğunluğu
41
Şekil 3.20’den anlaşılacağı gibi ID 52 kullanıcısı öğleden önce ve öğleden
sonra interneti yoğun olarak kullandığı söylenebilir.
3.2. Karar Ağacı Algoritması İle Ağ Verilerinin Modellenmesi
Bu çalışmada, örnek kurumun ağ verileri üzerinde karar ağaçlarından gini
algoritması uygulanmıştır. Çalışmada Cuma günkü verilere ilave olarak
kullanıcıların medeni durum bilgileri ve yaş bilgileri de eklenmiştir. Öncelikle
veriler eğitim seti ve test seti olarak yeniden düzenlenmiştir. Düzenlenmiş
veri seti Şekil 3.22 ve Şekil 3.27’deki tablolarda görülmektedir
3.2.1. Eğitim seti (Karar Ağacı)
475 satıra sahip eğitim verilerinin kategorik/niteliksel açıklamaları Şekil
3.21’de, Şekil 3.22’de ise eğitim seti gösterilmektedir.
Açıklama
Kategori/Nitelikler
ethsource ID
132 farklı kullanıcı
DST Web
14 farklı sınıflandırılmış site grubu
Yaş
25-49 arası değişen yaş grubu
Medeni durum
Evli-Bekar
Cinsiyet
Erkek-Kız
Şekil 3.21. Eğitim verilerinin kategorik/niteliksel açıklamaları
42
Şekil 3.22. Eğitim seti verisi
Eğitim seti üzerinde RapidMiner Studio 6.0 ve SPSS Statistics 21.0 veri
madenciliği uygulama platformu uygulanmıştır.
RapidMiner aracının eğitim setine uygulanması (Karar Ağacı)
Şekil 3.23. RapidMiner Karar Ağacı model tasarımı
43
Algoritmanın uygulandığı işlem aşamasında eğitim ve test verilerin yüklendiği
modül read excel modülleridir. Select Attribute modülü Karar Ağacına
sokulacak nitelikleri belirleyen modüldür. Apply modeli ise Karar Ağacındaki
öğrenilen modeli veri seti üzerine uygular [36].
Sınıf etiketi cinsiyet olarak belirlendiğinde Şekil 3.23’deki Karar Ağacı modeli
sonucunda çıkan Karar Ağacı şekli Şekil 3.24’de gösterilmektedir.
44
Şekil 3.24. RapidMiner Karar Ağacı modeli sonucu
45
Algoritma ilk başta ethsource’a göre sonrasında yaş, medeni durum ve girilen
siteye göre ayırma işlemini gerçekleşmiştir. Son olarak ise önceden
belirlenen sınıf etiketi olan cinsiyet durumuna göre sınıflandırma işlemini
tamamlamıştır.
SPSS aracının eğitim setine uygulanması (Karar Ağacı)
Eğitim setine Karar Ağacı algoritması SPSS yazılımında uygulandığında ise
3.25’deki dallanma sonucu bulunmaktadır.
46
Şekil 3.25. SPSS Karar Ağacı algoritmasının sonucu
47
Sonuçlara bakıldığında için sınıf etiketi cinsiyet olarak belirlenmiştir.
Algoritma ilk başta ethsource’a göre yaş, medeni durum ve girilen siteye göre
ayırma işlemini gerçekleştirmiştir. Son olarak ise önceden belirlenen sınıf
etiketi olan cinsiyet durumuna göre sınıflandırma işlemini tamamlamıştır.
3.2.2. Test seti (Karar Ağacı)
99 satıra sahip test verilerinin kategorik/niteliksel açıklamaları Şekil 3.26’da,
Şekil 3.27’de ise bütün algoritmalarda sınanan test seti gösterilmektedir. Test
setinin RapidMiner ve SPSS araçlarında uygulandığında çıkan sonuç bir
sonraki başlık altında incelenecektir.
Kategori/Nitelikler
Açıklama
ethsource ID
63 farklı kullanıcı
DST web
14 farklı sınıflandırılmış site grubu
Yaş
25-49 arası değişen yaş grubu
Medeni durum
Evli-Bekar
Cinsiyet
Erkek-Kız
Şekil 3.26. Test verilerinin kategorik/niteliksel açıklamaları
Şekil 3.27. Test seti verisi
48
RapidMinerdaki algoritmaya uygulanan test seti sonuçları (Karar Ağacı)
Eğitim seti üzerinden uygulanan algoritma sonuçlarında test verilerini (99
veri) sınadığımızda model başarımını değerlendirme ölçütlerinden hata
oranın Şekil 3.28’de görüldüğü gibi yaklaşık %28 olduğu, başarı oranının ise
yaklaşık %71 olduğu anlaşılmaktadır.
Şekil 3.28. RapidMiner’daki test seti hata-başarı oranı(Karar Ağacı)
Gerçek sınıf
Tahmin edilen sınıf
C(i|j)
Sınıf=erkek(male)
Sınıf=kadın(female)
Sınıf=erkek(male)
C(erkek|erkek) a
62
C(kadın|erkek) b
10
Sınıf=kadın(female)
C(erkek|kadın) c
18
C(kadın|kadın) d
9
Şekil 3.29. Karışıklık matrisi-RapidMiner
49
Test sonucunda ulaşılan sonuçların başarım bilgileri karışıklık matrisi ile ifade
edilebilir. Karışıklık matrisinde satırlar test kümesindeki örneklere ait gerçek
sayıları, kolonlar ise modelin tahminlemesini ifade eder. Karışıklık matrisi
üzerinden anma, kesinlik ve F-ölçütü hesaplandığında aşağıdaki sonuçlar
bulunmaktadır.
Anma değeri=
=
62
= 0,86
72
a
a+b
a
Kesinlik değeri= a+c
=
62
= 0,77
80
2a
F-ölçütü=
2a+b+c
=
124
= 0,81
152
SPSS’deki algoritmaya uygulanan test seti sonuçları (Karar Ağacı)
Eğitim seti üzerinden uygulanan algoritma sonuçlarında test verilerini (99
veri) sınadığımızda model başarımını değerlendirme ölçütlerinden hata
oranın Şekil 3.30’da görüldüğü gibi yaklaşık %24 olduğu başarı oranının ise
yaklaşık %75 olduğu anlaşılmaktadır
50
Şekil 3.30. SPSS’deki test seti hata-başarı oranı (Karar Ağacı)
Gerçek sınıf
Tahmin edilen sınıf
C(i|j)
Sınıf=erkek(male)
Sınıf=kadın(female)
Sınıf=erkek(male)
C(erkek|erkek) a
71
C(kadın|erkek) b
1
Sınıf=kadın(female)
C(erkek|kadın) c
23
C(kadın|kadın) d
4
Şekil 3.31. Karışıklık matrisi-SPSS
Test sonucunda ulaşılan sonuçların başarım bilgileri karışıklık matrisi ile ifade
edilebilir. Karışıklık matrisinde satırlar test kümesindeki örneklere ait gerçek
sayıları, kolonlar ise modelin tahminlemesini ifade eder. Karışıklık matrisi
üzerinden anma, kesinlik ve F-ölçütü hesaplandığında aşağıdaki sonuçlar
bulunmaktadır.
51
Anma değeri=
=
71
= 0,98
72
a
a+b
a
Kesinlik değeri= a+c
71
=
= 0,75
94
F-ölçütü=
=
2a
2a+b+c
142
= 0,85
166
3.3. Naive Bayes İle Ağ Verilerinin Modellenmesi
Önceki bölümde düzenlenmiş olan eğitim setine Naive Bayes algoritması C#
yazılım dili ile kodlanarak ve RapidMiner aracı ile modellenerek test setine
uygulanmıştır. Düzenlenmiş veri setleri Şekil 3.22 ve Şekil 3.27’deki
şekillerde görülmektedir.
3.3.1. Eğitim seti (Naive Bayes)
Düzenlenmiş eğitim veri seti hakkında bilgiler Karar Ağacı algoritması başlığı
altında verilmiştir.
RapidMiner aracının eğitim setine uygulanması (Naive Bayes)
52
Şekil 3.32. RapidMiner’da Naive Bayes model tasarımı
Algoritmanın uygulandığı işlem aşamasında eğitim ve test verilerin yüklendiği
modül read excel modülleridir. Select Attribute modülü algoritmada
kullanılacak nitelikleri belirleyen modüldür. Apply modeli ise algoritmada
öğrenilen modeli veri seti üzerine uygular [36].
C# ile kodlanan Naive Bayes algoritması ve eğitim setine uygulanması
Ek-1’de kodlar verilmektedir.
Microsoft Visual C# 2008’de derlenen kodlardan oluşan arayüz Şekil 3.33’de
gösterilmektedir.
53
Şekil 3.33. Naive Bayes uygulaması arayüz görüntüsü
Eğitim setine göre düzenlen Naive Bayes algoritmasına şekildeki gibi girilen
değerler (eth, dst, yaş, mdh) sonucunda değişkenin hangi sınıf etiketine ait
olduğu görülmektedir. Olasılıkları hesaplandığında P(X|Ci)*P(Ci) değeri
yüksek olan sınıf etiketi değerinin kız (male) olduğu anlaşılmaktadır. Test seti
uygulanmış hali bir sonraki bölümde anlatılmıştır. Ortadaki bölüm ise eğitim
verilerini göstermektedir.
3.3.2. Test seti (Naive Bayes)
99 satıra sahip test verileri önceki bölümlerde bahsedilen Şekil 3.27’de
gösterilmektedir. Test setinin RapidMiner aracında ve C#’ta programlama dili
ile
sınandığında
hata/başarı
oranları
bir
sonraki
başlıklar
altında
incelenecektir.
RapidMinerdaki algoritmaya uygulanan test seti sonuçları (Naive Bayes)
Eğitim seti üzerinden uygulanan algoritma sonuçlarında test verilerini (99
veri) sınadığımızda model başarımını değerlendirme ölçütlerinden hata
54
oranının Şekil 3.34’de görüldüğü gibi yaklaşık %16 olduğu, başarı oranının
ise yaklaşık %83 olduğu anlaşılmaktadır.
Şekil 3.34. RapidMiner’daki test seti hata-başarı oranı (Naive Bayes)
Gerçek sınıf
Tahmin edilen sınıf
C(i|j)
Sınıf=erkek(male)
Sınıf=kadın(female)
Sınıf=erkek(male)
C(erkek|erkek) a
68
C(kadın|erkek) b
4
Sınıf=kadın(female)
C(erkek|kadın) c
12
C(kadın|kadın) d
15
Şekil 3.35. Karışıklık matrisi-RapidMiner
Test sonucunda ulaşılan sonuçların başarım bilgileri karışıklık matrisi ile ifade
edilebilir. Karışıklık matrisinde satırlar test kümesindeki örneklere ait gerçek
sayıları, kolonlar ise modelin tahminlemesini ifade eder. Karışıklık matrisi
55
üzerinden anma, kesinlik ve F-ölçütü hesaplandığında aşağıdaki sonuçlar
bulunmaktadır.
Anma değeri=
=
68
= 0,94
72
a
a+b
a
Kesinlik değeri= a+c
68
= 0,85
=
80
2a
F-ölçütü= 2a+b+c
136
=
= 0,89
152
C# program dili ile kodlanan algoritmaya uygulanan test seti sonuçları (Naive
Bayes)
Eğitim seti üzerinden uygulanan algoritma sonuçlarında test verilerini (99
veri) sınadığımızda model başarımını değerlendirme ölçütlerinden hata
oranının Şekil 3.36’da görüldüğü gibi yaklaşık %17 olduğu başarı oranının ise
yaklaşık %82 olduğu anlaşılmaktadır.
56
Şekil 3.36. C# program dili ile kodlanan algoritmaya uygulanan test seti hatabaşarı oranı
Gerçek sınıf
Tahmin edilen sınıf
C(i|j)
Sınıf=erkek(male)
Sınıf=kadın(female)
Sınıf=erkek(male)
C(erkek|erkek) a
56
C(kadın|erkek) b
16
Sınıf=kadın(female)
C(erkek|kadın) c
1
C(kadın|kadın) d
26
Şekil 3.37. Karışıklık matrisi-Kodlama
Test sonucunda ulaşılan sonuçların başarım bilgileri karışıklık matrisi ile ifade
edilebilir. Karışıklık matrisinde satırlar test kümesindeki örneklere ait gerçek
sayıları, kolonlar ise modelin tahminlemesini ifade eder. Karışıklık matrisi
üzerinden anma, kesinlik ve F-ölçütü hesaplandığında aşağıdaki sonuçlar
bulunmaktadır.
57
Anma değeri=
=
56
= 0,77
72
a
a+b
a
Kesinlik değeri= a+c
56
=
= 0,98
57
2a
F-ölçütü=
2a+b+c
=
112
= 0,86
129
58
4. SONUÇ
Bu tez çalışmasında veri madenciliği tekniklerinden Apriori, Karar Ağacı ve
Naive Bayes algoritmaları ile gerçek ağ verisi üzerinde veri madenciliği
süreçleri uygulanarak ne tür bilgiler elde edebileceğimizi ve bu bilgiler
üzerinde karşılaştırma yapılarak model başarımını değerlendirme ölçütlerine
göre dereceleri karşılaştırılmıştır. Sırasıyla bakacak olursak;
Apriori algoritması uygulama modelinde 3 gün kendi içinde kıyaslandığında;
Çarşamba, Cuma ve Pazartesi günü için çıkan kurallar incelendiğinde
Çarşamba günü için önce yahoomynet ve arama motoru (yandex, google vs.)
sitelerine giren bir kişi sonrasında %97, 297 olasılıkla TÜBİTAK (webmail,
anasayfa) sitelerine girmektedir. Sıklık derecesi de (Rule Support) %24,324
değerini göstermektedir. Cuma günü için önce dropbox, arama motoru ve
sosyal ağ (facebook, twitter, linkedin…) sitelerine giren bir kişi sonrasında
%96,774 olasılıkla TÜBİTAK (webmail, anasayfa) sitelerine girmektedir.
Sıklık derecesi de (Rule Support) %21,127 değerini göstermektedir.
Pazartesi günü için ise gazete ve TÜBİTAK (webmail, anasayfa) sitelerine
giren kişi sonrasında %97,561 olasılıkla sosyal ağ (facebook, twitter,
linkedin…) sitelerine girmektedir. Sıklık dereceside (Rule Support) %27,778)
değerini göstermektedir. Görülüyor ki TÜBİTAK (webmail, anasayfa)
sitelerine girmeden önce her 2 (Çrş ve Cuma) günde de kullanıcıların
kesinlikle arama motorunu tıkladığı sonucuna varılmıştır. Sıklık derecelerinin
yüksekliğinden kuralın kuvvetli olduğu anlaşılmaktadır. Pazartesi günü için bu
olasılık sonraki kurallarda ortaya çıkmıştır. En çok girilen web adresinin
sosyal ağlar (facebook, twitter, linkedin…), sonrasında TÜBİTAK sonrasında
ise arama motoru olduğu tespit edilmiştir. En çok kullanılan arama
motorlarının yandex ve google olduğu gözlemlenmiştir. Kullanıcılar tarafından
internetin en aktif olarak kullanıldığı zaman dilimi öğleden sonra olduğu
görülmüştür. Buna bağlı olarak öğleden sonra iş yapma potansiyeli azalıyor
yorumu yapılabilir.
59
İleride yapılacak çalışmalara referans olacak şekilde ilişki durumları
incelendiğinde belli yaş gruplarına göre ayrım yapılırsa (genç-orta yaşlı –
olgun yaşlı) hangi yaş grubunun efektif çalıştığı belirlenebilir. Hatta kişilerin
kim olduklarına bakılarak kişilik özelliklerine göre hangi tip sitelere girdiği
analiz edilebilir. Bu bize daha kapsamlı çalışma ile kişilik analizi hakkında
tahminlerde bulunulmasında yardımcı olabilir.
Karar Ağacı ile Naive Bayes algoritmaları uygulama araçlarına göre
kıyaslandığında;
Alg.
Değerlendirme
Uygulama
Ortamı
Karar Ağacı Değerlendirme
Naive Bayes Değerlendirme
Başarı
Başarı
Anma Kesinlik F Ölçütü
Anma Kesinlik F Ölçütü
Oranı
Oranı
(%)
(%)
(%)
(%)
(%)
(%)
(%)
(%)
RapidMiner
%71
%86
%77
%81
%83
%94
%85
%89
SPSS
%75
%98
%75
%85
X
X
X
X
X
X
X
X
82%
%77
%98
%86
Kodlama
Şekil 4.1. Oluşturulan modellerin başarım ölçütleri
Şekil 4.1 incelendiğinde RapidMiner Naive Bayes algoritması model testine
ait %83 başarı derecesiyle en iyi sonucu ürettiği söylenebilir. Başarı ölçütü
oldukça basit ve önemli bir kriterdir. Bu ölçüte göre RapidMiner aracı ile
yapılan Naive Bayes algoritmasını sırasıyla Navie Bayes kodlama, SPSS
Karar Ağacı ve RapidMiner Karar Ağacı algoritmaları izlemektedir.Kesinlik
ölçütü bakımından Naive Bayes kodlama algoritması iyi sonucu oluşturmuş
olup, diğer algoritmalar bu ölçüte göre RapidMiner Naive Bayes, RapidMiner
Karar Ağacı, SPSS Karar Ağacı şeklinde sıralanabilir. Ancak kesinlik ölçütü
tek başına yorumlanırsa değerlendirme yanlış sonuçlara götürebilir. Bu ölçütü
anma ölçütüyle beraber ele almak gerekebilir. Tablodan görüleceği üzere
algoritmalar, anma ölçütüne göre SPSS Karar Ağacı, RapidMiner Naive
Bayes, RapidMiner Karar Ağacı, Naive Bayes kodlama olarak sıralanabilir.
60
Görüleceği üzere, kesinlik ölçütü ve duyarlılık ölçütü birbiriyle farklı sıralama
ortaya koymuştur. Kesinlik ve duyarlık
duyarlılık ölçütlerini beraber
değerlendirmek için, her iki değerin harmonik ortalaması olan F-Ölçütüne
baktığımızda sıralamanın RapidMiner Naive Bayes, kodlama Naive Bayes,
SPSS Karar Ağacı ve RapidMiner Karar Ağacı şeklinde olduğunu görüyoruz.
Bu sıralamanın yine başarı kriter sıralamasıyla birebir aynı olduğu
görülmektedir.
Veri madenciliğinde bilgiye erişmede farklı metotlar kullanılmaktadır. Bu
metotlara ait pek çok algoritma vardır. Bu algoritmalardan hangisinin daha
üstün olduğu üzerine çalışmalar yapılmış ve yapılan bu çalışmalarda farklı
sonuçlar elde edilmiştir [37, 38]. Bunun en önemli sebebi, işlem başarımının,
kullanılan veri kaynağına, veri üzerinde yapılan önişleme, algoritma
parametrelerinin seçimine bağlı olmasıdır [39, 40]. Farklı kişiler tarafından,
farklı veri kaynakları üzerinde, farklı parametrelerle yapılan çalışmalarda
farklı sonuçlar oluşması doğaldır. Ancak, yaptığım çalışma, “benzer veri
kümelerinde belli yöntemlerin daha başarılı olduğu” şeklindeki çıkarıma
uygun olarak diğer çalışmalarla benzer sonuç vermiştir.
Sonuç olarak örnek kurumun ağ verilerinin kullanıldığı bu çalışmalarda C#
programlama dili ve RapidMiner uygulaması ile yapılan Naive Bayes
algoritmalarının diğer algoritmalara göre daha iyi sonuç ürettiği sonucuna
varılmıştır. Yeni tahminlerde bu sınıflandırıcı ve bu uygulama araçları
kullanılabilecek potansiyele sahiptir denilebilir. Gelecekteki çalışmalara
referans olacak şekilde daha geniş kapsamlı bir çalışma yapılacak olursa
sınıf
etiketi
cinsiyet
üzerinden
kadın
ve
erkek
cinslerinin
çalışma
potansiyellerine bakılarak aynı veriler üzerinden etki analizi yapılabilir.
Gelişen çalışmalarla kurumların internet trafikleri tahmin edilebilir ve ağ
trafikleri bu tahminlere göre şekillendirilebilir. Buna bağlı olarak çalışanların
performansı da değerlendirilebilir.
61
KAYNAKLAR
1. Kalikov, A., ” Veri Madenciliği ve Bir E-Ticaret Uygulaması”, Yüksek
Lisans Tezi, Gazi Üniversitesi, Fen Bilimleri Enstitüsü, (2006).
2. Han, J., Kamber, M., “Data Mining: Concepts and Techniques”,
Morgan Kaufmann Publishers Inc., San Francisco, 6-9 (2006).
3. Uzun, Ö. ve arkadaşları, “Olasılıksal Sınıflandırıcılar ile Doğum
Doğum Öncesinde Trizomi 21 Risk Hesaplaması”, EEE 21st Signal
Processing and Communications Applications Conference,
(2013).
4. Olgun, O. M., Özdemir, G., “İstatiksel Özellik Temelli Bayes
Sınıflandırıcı Kullanarak Kontrol Grafiklerinde Örüntü Tanıma”, Gazi
Ü. Müh. Mim. Fak. Der., 27(2), 303-311 (2012).
5. Solmaz, R. ve arkadaşları, “Fonksiyonel Tiroit Hastalığı Tanısında
Naive Bayes Sınıflandırıcının Kullanılması”, Ankara Bilişim
Konferansı, (2013).
6. Haltaş, A., Alkan, A. “İmmunohistokimyasal Boyalar ile Tiroid Tümörü
Teşhisinde Naive Bayes Algoritması Kullanılması”, Ankara Bilişim
Konferansı, (2013).
7. Özçakır, F. C., Çamurcu, A. Y., “Birliktelik Kuralı Yöntemi İçin Bir Veri
Madenciliği Yazılımı Tasarımı Ve Uygulaması”, İstanbul Ticaret
Üniversitesi Fen Bilimleri Dergisi, 6(12), 21-37 (2007).
8. Özçakır, F. C., “Müşteri İşlemlerindeki Birlikteliklerin Belirlenmesinde
Veri Madenciliği Uygulaması”, Yüksek Lisans Tezi, Marmara
Üniversitesi, Fen Bilimleri Enstitüsü, (2006).
9. Özkan, Y., ”Veri Madenciliği Yöntemleri”, Çölkesen, R., Uğurkaya, C.,
İstanbul, İstanbul, 37-38 (2008).
10. Öğüt, S., “Veri Madenciliği Kavramı ve Gelişim Süreci”, Veri
Madenciliği Paneli, İstanbul, (2005).
11. Akpınar, H., ”Veri Tabanlarında Bilgi Keşfi ve Veri Madenciliği”, İ. Ü.
İşletme Fakültesi Dergisi, 29: 1-22 (2000).
12. Han, J., Kamber, M., “Data Mining: Concepts and Techniques”,
Morgan Kaufmann Publishers Inc., San Francisco, 640-641 (2006).
62
13. Dolgun, M. Ö., “Büyük Alışveriş Merkezleri İçin Veri Madenciliği
Uygulamaları”, Y. Lisans Tezi, Hacettepe Üniversitesi Fen Bilimleri
Enstitüsü, Ankara, 25 (2006).
14. Çakır, Ö., “Veri Madenciliğinde Sınıflandırma Yöntemlerinin
Karşılaştırılması”, Doktora Tezi, Marmara Üniversitesi Sosyal
Bilimler Enstitüsü, İstanbul, 33-34 (2008).
15. Zaiane, O. R. ve arkadaşları, “On Data Clustering Anlaysis:
Scalabilitiy, Constraints ve Validation”, Taipei, Taiwan, 28-39 (2002).
16. Altıntaş, T., “Veri Madenciliği Metotlarından Olan Kümeleme
Algoritmalarının Uygulamalı Etnik Analizi ”, Y. Lisans Tezi, Sakarya
Üniversitesi Fen Bilimleri Enstitüsü, Sakarya, 29-30 (2006).
17. Daniel, T., L., “Discovering Knowledge In Data”, Canada, 180-181
(2005).
18. Agrawal, R., Srikant, R., “Fast algorithms for mining association rules”,
In Proc. 20th Int. Conf. Very Large Data Bases, VLDB, San
Francisco, USA, pages 487–499 (1994).
19. Frawley, W. J. ve arkadaşları, “Knowledge Discovery Databases: An
Overview, in Knowledge Discovery in Databases”, AAAI 58 AI
Magazine, 1-27 (1991).
20. Agrawal, R. ve Srikant, R., “Mining Sequential Patterns”, 11th
International Conference on Data Engineering, Taipei, Taiwan, 314 (1995).
21. Zhu, H., “On-Line Analytical Mining of Association Rules”, MSc.
Thesis, Simon Fraser University, Ottawa, Canada, (1998).
22. Houtsma, M. ve Swami, A., “Set-Oriented Mining for Association Rules
in Relational Databases”, Proceedings of the 11th IEEE
International Conference on Data Engineering, Taipei, Taiwan, 2534 (1995).
23. Das, A. ve arkadaşları, “Rapid Association Rule Mining”, In
Proceedings of the Tenth International Conference on
Information and Knowledge Management, ACM Press, Atlanta, GA,
USA, 487-499 (2001).
24. Zaki, M. J. ve Hsiao, C. J., “CHARM: An Efficient Algorithm for Closed
Itemset Mining”, In 2nd SIAM International Conference on Data
Mining (SDM’02), Eds. Grossman, R. L., Han, J., Kumar, V., Mannila,
H. ve Motwani, R., Siam, Arlington, VA, USA, 457-473 (2002).
63
25. Gao, W., “A Hierarchical Document Clustering Algoritm”, MSc Thesis,
Dalhousie University, Halifax, Nova Scotia, (2004).
26. Sever, H., Oğuz, B., “Eşleştirme Sorguları ve Algoritmalar”,
“Veritabanlarında Bilgi Keşfine Formal Bir Yaklaşım”, Cilt 3, 173204 (2002).
27. Agrawal, R., “Database Mining : A Performance Perspective, IEEE
Transactions on Knowledge and Data Engineering, 914-925
(1993).
28. Özkan, Y., “Veri Madenciliği Yöntemleri ”, İstanbul, İstanbul, 50-60
(2008).
29. Quinlan, J. R., "Induction of Decision Trees ", Journal of Machine
Learning, vol. 1, 81-106 (1986).
30. Quinlan, J. R., “C4.5: Program for Machine Learning”, Morgan
Kaufmann Publishers, San Mateo, CA, 302 (1993).
31. Akbulut, S., “Veri Madenciliği Teknikleri İle Bir Kozmetik Markanın
Ayrılan Müşteri Analizi Ve Müşteri Segmentasyonu”, Yüksek Lisans
Tezi, Gazi Üniversitesi Fen Bilimleri Enstitüsü, (2006).
32. Bidgoli, A. M., Boraghi, M., “A Language Independent Text
Segmentation Technique Based on Naive Bayes Classifier”,
International Conference on Signal and Image Processing,
Chennai 11-16 (2010).
33. Krishna, P. R., De, K. S., “Naive-Bayes Classification using
FuzzyApproach”, Intelligent Sensing and Information Processing,
61-64 (2005).
34. Lee, C. H. ve arkadaşları, “Calculating Feature Weights in Naive
Bayes with Kullback-Leibler Measure”, 11th IEEE International
Conference on Data Mining, 1146-1151 (2011).
35. İnternet: IBM, http://www-03.ibm.com/software/products/tr/tr/spssmodeler/, 2014.
36. İnternet: Veri Okyanusuna Yolculuk,
http://mcoshtan.blogspot.com/2012/11/rapidminerda-decision-treeuygulamas.html, 2014.
37. Wilson, R. L., Sharda, R. “Bankruptcy Prediction Using Neural
Networks”, Elsevier Science B. V., 11(5), 545-557 (1994).
64
38. Lin, M. ve arkadaşları, “Kernel-Based Discriminant Technique for
Educational Placement”, Journal of Educational and Behavioral
Statistics, 29, 219-240 (2004).
39. Hand, D. J. “Classifier Technology and the Illusion of Progress”
Statist. Sci., 21(1), 1-14 (2006).
40. Michie, D., Spiegelhalter, D. J., Taylor, C. C. “Machine Learning,
Neural and Statistical Classification”, Ellis Horwood Upper Saddle
River, USA, 240-245 (1994).
65
EKLER
66
Ek-1. C# programlama dilinde yazılan kodlar
Kodlar;
using
using
using
using
using
using
using
using
System;
System.Collections.Generic;
System.ComponentModel;
System.Data;
System.Drawing;
System.Text;
System.Windows.Forms;
System.Data.OleDb;
namespace veri_madenciligi
{
public partial class frmNav : Form
{
public frmNav()
{
InitializeComponent();
}
//--------------------Sınıf Değerlerini Hesaplamak için
Kullanılan Değişkenler
public static double UNS_oranF = 0, UNS_oranM = 0;//sınıf
oranlarını hesaplar
public static int UNS_sayacF = 0, UNS_sayacM = 0;//veriler
içersinde sınıf sayılarını tutmak için
//--------------------ETH Niteliğine ait Değerleri
Hesaplamak için kullanılan Değişkenler
public static double ETH_oranF, ETH_oranM;
public static int ETH_sayacF = 0, ETH_sayacM = 0;
//--------------------DST Niteliğine ait Değerleri
Hesaplamak için kullanılan Değişkenler
public static double DST_oranF, DST_oranM;
public static int DST_sayacF = 0, DST_sayacM = 0;
//--------------------YAS Niteliğine ait Değerleri
Hesaplamak için kullanılan Değişkenler
public static double YAS_oranF, YAS_oranM;
public static int YAS_sayacF = 0, YAS_sayacM = 0;
//--------------------MDH Niteliğine ait Değerleri
Hesaplamak için kullanılan Değişkenler
public static double MDH_oranF, MDH_oranM;
public static int MDH_sayacF = 0, MDH_sayacM = 0;
//--------------------public static double female, male;
public static double sonucF, sonucM;
67
Ek-1. (Devam) C# programlama dilinde yazılan kodlar
private void frmNav_Load(object sender, EventArgs e)
{
string dosya_yolu = "Kitap1.xlsx";
OleDbConnection baglanti = new
OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" +
dosya_yolu + "; Extended Properties=Excel 12.0");
baglanti.Open();
string sorgu = "select * from [Egitim$] ";
OleDbDataAdapter data_adaptor = new
OleDbDataAdapter(sorgu, baglanti);
baglanti.Close();
DataTable dt = new DataTable();
data_adaptor.Fill(dt);
dataGridView1.DataSource = dt;
}
private void button1_Click(object sender, EventArgs e)
{
try
{
if (ETHtextBox.Text == "" ||
DSTcomboBox.SelectedIndex == 0 || YAStextBox.Text == "" ||
MDHcomboBox.SelectedIndex == 0)
{
MessageBox.Show("Giriş Değerlerini boş
geçemezsiniz!");
TEMİZLE();
}
else
{
int MDH =
Convert.ToInt32(MDHcomboBox.SelectedIndex);
int ETH = Convert.ToInt32(ETHtextBox.Text);
int YAS = Convert.ToInt32(YAStextBox.Text);
int DST =
Convert.ToInt32(DSTcomboBox.SelectedIndex);
UNS_oranM = 0;
UNS_oranF = 0;
UNS_sayacM = 0;
UNS_sayacF = 0;
ETH_oranM = 0;
ETH_oranF = 0;
ETH_sayacM = 0;
ETH_sayacF = 0;
YAS_oranM = 0;
YAS_oranF = 0;
YAS_sayacM = 0;
YAS_sayacF = 0;
68
Ek-1. (Devam) C# programlama dilinde yazılan kodlar
DST_oranM = 0;
DST_oranF = 0;
DST_sayacM = 0;
DST_sayacF = 0;
MDH_oranM = 0;
MDH_oranF = 0;
MDH_sayacM = 0;
MDH_sayacF = 0;
female = 0;
male = 0;
sonucM = 0;
sonucF = 0;
int N = dataGridView1.RowCount - 1;
//--------------------------------Sınıfların
kaçar tane olduklarını hesapla
for (int i = 0; i < dataGridView1.RowCount - 1;
i++)
{
if
(dataGridView1.Rows[i].Cells[4].Value.ToString() == "F")
{
UNS_sayacF++;
}
}
for (int i = 0; i < dataGridView1.RowCount - 1;
i++)
{
if
(dataGridView1.Rows[i].Cells[4].Value.ToString() == "M")
{
UNS_sayacM++;
}
}
Oranlarını hesapla
Olasılığını Hesapla
//--------------------------------------UNS_oranF = (double)UNS_sayacF / (double)N;
UNS_oranM = (double)UNS_sayacM / (double)N;
//--------------------------ETH Niteliğinin
for (int i = 0; i < dataGridView1.RowCount - 1;
i++)
{
if
(dataGridView1.Rows[i].Cells[0].Value.ToString() ==
ETHtextBox.Text.ToString() &&
dataGridView1.Rows[i].Cells[4].Value.ToString() == "F")
69
Ek-1. (Devam) C# programlama dilinde yazılan kodlar
ETH_sayacF++;
if
(dataGridView1.Rows[i].Cells[0].Value.ToString() ==
ETHtextBox.Text.ToString() &&
dataGridView1.Rows[i].Cells[4].Value.ToString() == "M")
ETH_sayacM++;
}
Olasılığını Hesapla
//--------------------------DST Niteliğinin
for (int i = 0; i < dataGridView1.RowCount - 1;
i++)
{
if
(dataGridView1.Rows[i].Cells[1].Value.ToString() ==
DSTcomboBox.SelectedIndex.ToString() &&
dataGridView1.Rows[i].Cells[4].Value.ToString() == "F")
DST_sayacF++;
if
(dataGridView1.Rows[i].Cells[1].Value.ToString() ==
DSTcomboBox.SelectedIndex.ToString() &&
dataGridView1.Rows[i].Cells[4].Value.ToString() == "M")
DST_sayacM++;
}
Olasılığını Hesapla
//--------------------------YAS Niteliğinin
for (int i = 0; i < dataGridView1.RowCount - 1;
i++)
{
if
(dataGridView1.Rows[i].Cells[2].Value.ToString() ==
YAStextBox.Text.ToString() &&
dataGridView1.Rows[i].Cells[4].Value.ToString() == "F")
YAS_sayacF++;
if
(dataGridView1.Rows[i].Cells[2].Value.ToString() ==
YAStextBox.Text.ToString() &&
dataGridView1.Rows[i].Cells[4].Value.ToString() == "M")
YAS_sayacM++;
}
Olasılığını Hesapla
//--------------------------MDH Niteliğinin
for (int i = 0; i < dataGridView1.RowCount - 1;
i++)
{
if
(dataGridView1.Rows[i].Cells[3].Value.ToString() ==
MDHcomboBox.SelectedIndex.ToString() &&
dataGridView1.Rows[i].Cells[4].Value.ToString() == "F")
MDH_sayacF++;
70
Ek-1. (Devam) C# programlama dilinde yazılan kodlar
if
(dataGridView1.Rows[i].Cells[3].Value.ToString() ==
MDHcomboBox.SelectedIndex.ToString() &&
dataGridView1.Rows[i].Cells[4].Value.ToString() == "M")
MDH_sayacM++;
}
//-------------------------------------ETH_oranF = ((double)ETH_sayacF + 1) /
((double)UNS_sayacF + 4);
ETH_oranM = ((double)ETH_sayacM + 1) /
((double)UNS_sayacM + 4);
//-----------------------------------------------------DST_oranF = ((double)DST_sayacF + 1) /
((double)UNS_sayacF + 4);
DST_oranM = ((double)DST_sayacM + 1) /
((double)UNS_sayacM + 4);
//----------------------------------------------------YAS_oranF = ((double)YAS_sayacF + 1) /
((double)UNS_sayacF + 4);
YAS_oranM = ((double)YAS_sayacM + 1) /
((double)UNS_sayacM + 4);
//-----------------------------------------------------MDH_oranF = ((double)MDH_sayacF + 1) /
((double)UNS_sayacF + 4);
MDH_oranM = ((double)MDH_sayacM + 1) /
((double)UNS_sayacM + 4);
//-----------------------------------------------------P(X|Ci)
female = (ETH_oranF) * (DST_oranF) * (YAS_oranF)
* (MDH_oranF);
male = (ETH_oranM) * (DST_oranM) * (YAS_oranM) *
(MDH_oranM);
//------------------------------------------------------P(X|Ci)*P(Ci)
sonucF = ((double)female) * ((double)UNS_oranF);
label3.Text = sonucF.ToString();
sonucM = ((double)male) * ((double)UNS_oranM);
label5.Text = sonucM.ToString();
//----------------------En buyuk deger
double son = EnBuyukDegeriBul(sonucF, sonucM);
label2.Text = son.ToString();
if ((double)son == (double)sonucF)
label1.Text = "Female(F)";
if ((double)son == (double)sonucM)
label1.Text = "Male(M)";
}
}
71
Ek-1. (Devam) C# programlama dilinde yazılan kodlar
ex.Message);
catch (Exception ex)
{
MessageBox.Show("Bir hata oluştu! Hata:" +
}
TEMİZLE();
}
public double EnBuyukDegeriBul(double sonucF, double sonucM)
{
double enbuyuk = sonucF;
if ((double)sonucM > (double)enbuyuk)
enbuyuk = sonucM;
return (double)enbuyuk;
}
private void label3_Click(object sender, EventArgs e)
{
}
private void button2_Click(object sender, EventArgs e)
{
TEMİZLE();
}
public void TEMİZLE()
{
ETHtextBox.Text = "";
DSTcomboBox.SelectedIndex = 0;
YAStextBox.Text = "";
MDHcomboBox.SelectedIndex = 0;
label1.Text
label2.Text
label3.Text
label5.Text
=
=
=
=
"";
"";
"";
"";
}
private void button3_Click(object sender, EventArgs e)
{
Form4 fr4 = new Form4();
fr4.Show();
}
private void ETHtextBox_KeyPress(object sender,
KeyPressEventArgs e)
{
//if (char.IsLetter(e.KeyChar))
//{
//
e.Handled = true;
//}
//else
//{
72
Ek-1. (Devam) C# programlama dilinde yazılan kodlar
//
//}
e.Handled = false;
}
private void DSTcomboBox_KeyPress(object sender,
KeyPressEventArgs e)
{
//if (char.IsLetter(e.KeyChar))
//{
//
e.Handled = true;
//}
//else
//{
//
e.Handled = false;
//}
}
private void YAStextBox_KeyPress(object sender,
KeyPressEventArgs e)
{
//if (char.IsLetter(e.KeyChar))
//{
//
e.Handled = true;
//}
//else
//{
//
e.Handled = false;
//}
}
private void MDHcomboBox_KeyPress(object sender,
KeyPressEventArgs e)
{
//if (char.IsLetter(e.KeyChar))
//{
//
e.Handled = true;
//}
//else
//{
//
e.Handled = false;
//}
}
private void PEGtextBox_KeyPress(object sender,
KeyPressEventArgs e)
{
//if (char.IsLetter(e.KeyChar))
//{
//
e.Handled = true;
//}
//else
73
Ek-1. (Devam) C# programlama dilinde yazılan kodlar
//{
//
//}
}
}
}
e.Handled = false;
74
ÖZGEÇMİŞ
Kişisel Bilgiler
Soyadı, adı
: ATAK, Fatih
Uyruğu
: T.C.
Doğum tarihi ve yeri
: 26.12.1982 Ankara
Medeni hali
: Evli
Telefon
: 0 (535) 862 34 85
e-mail
: [email protected]
Eğitim
Derece
Eğitim Birimi
Mezuniyet tarihi
Lisans
Gazi Üniversitesi/ Elektronik-Bilg. Eğitimi Böl.
2007
Lise
İskitler Tek. ve End. Mes. Lis.
2001
İş Deneyimi
Yıl
2009-
Yer
TÜBİTAK
Görev
Özel Kalem Müdürlüğü/Başkan Asistanı
Yabancı Dil
İngilizce
Hobiler
Tenis, Bilgisayar teknolojileri, Basketbol
Download