T.C. MUSTAFA KEMAL ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ BİLGİSAYAR MÜHENDİSLİĞİ ANABİLİM DALI ORACLE DATA MINER ile GÖĞÜS KANSERİ VERİLERİ ÜZERİNE BİR VERİ MADENCİLİĞİ UYGULAMASI BÜLENT SİYAH LİSANS TEZİ İskenderun/HATAY MAYIS-2012 MUSTAFA KEMAL ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ ORACLE DATA MINER ile GÖĞÜS KANSERİ VERİLERİ ÜZERİNE BİR VERİ MADENCİLİĞİ UYGULAMASI BÜLENT SİYAH LİSANS TEZİ BİLGİSAYAR MÜHENDİSLİĞİ ANABİLİM DALI Yaşar DAŞDEMİR danışmanlığında hazırlanan bu tez / / tarihinde aşağıdaki jüri üyeleri tarafından oybirliği/oyçokluğu ile kabul edilmiştir. İmza…………………. İmza………………… İmza……………… Başkan Üye Üye Bu tez Enstitümüz Bilgisayar Mühendisliği Anabilim Dalında hazırlanmıştır. Kod No: ………………….. Enstitü Müdürü İmza ve Mühür Bu çalışma …………………….. tarafından desteklenmiştir. Proje No: Not: Bu tezde kullanılan özgün ve başka kaynaktan yapılan bildirişlerin, çizelge, şekil ve fotoğrafların kaynak gösterilmeden kullanımı, 5846 sayılı Fikir ve Sanat Eserleri Kanunundaki hükümlere tabidir. İÇİNDEKİLER İÇİNDEKİLER ............................................................................................................. I ÖZET.......................................................................................................................... III KISALTMA DİZİNİ .................................................................................................. IV ŞEKİLLER DİZİNİ..................................................................................................... V 1. GİRİŞ ....................................................................................................................... 1 1.1. Gögüs Kanseri ve Alınan Verileri ..................................................................... 1 2. VERİ MADENCİLİĞİ ............................................................................................. 3 2.1. Tanım ................................................................................................................ 3 2.2. Temel Adımlar .................................................................................................. 7 2.3. Problemlerin Çözüm Yöntemleri ...................................................................... 9 2.3.1.Karakterize Etme (Characterization)....................................................................... 9 2.3.2. Ayrımlaştırma (Discrimination) ........................................................................... 10 2.3.3. Sınıflandırma (Classification) .............................................................................. 10 2.3.4. Tahmin etme (Prediction) .................................................................................... 10 2.3.5. Birliktelik kuralları (Association rules) ............................................................... 11 2.3.6. Kümeleme (Clustering) ........................................................................................ 11 2.3.7. Aykırı değer analizi (Outlier analysis) ................................................................. 11 2.3.8. Zaman serileri (Time series) ................................................................................ 12 2.3.9. Veri görüntüleme (Visualization) ........................................................................ 12 2.3.10. Yapay sinir ağları (Artificial neural networks) .................................................. 12 2.3.11. Genetik algoritmalar (Genetic algorithms) ........................................................ 13 2.3.12. Karar ağaçları (Decision trees)........................................................................... 13 2.3.13. Kural çıkarma (Rules induction) ........................................................................ 13 3. ORACLE VERİTABANI YÖNETİM SİSTEMİ .................................................. 14 3.1. Giriş Ekranı ............................................................................................................. 14 3.2. Veritabanı Ana Yönetim Ekranı.............................................................................. 14 3.3. Sunucu Ekranı ......................................................................................................... 15 4. ORACLE DATA MINER ...................................................................................... 18 I 4.1. Erişim .............................................................................................................. 18 4.2. ODM Ana Ekranı ............................................................................................ 19 4.3. Veri Aktarımı .................................................................................................. 20 4.4. İstatistik İşlemleri ............................................................................................ 24 4.5. Veri Temizleme ve Hazırlama İşlemleri ......................................................... 25 4.6. Veri Madenciliği Etkinlikleri .......................................................................... 31 4.6.1. Model Oluşturma ................................................................................................. 31 4.6.2. Modelin Uygulanması .......................................................................................... 42 5. SONUÇ .................................................................................................................. 47 KAYNAKLAR ...................................................................................................... 49 TEŞEKKÜR ........................................................................................................... 50 ÖZGEÇMİŞ ........................................................................................................... 51 II ÖZET Bu çalışmada gögüs kanseri verileri üzerine bir veri madenciliği uygulaması yapılmıştır. Bu uygulama ile gögüs kanseri verilerinden iyi huylu kanser verilerini yüksek doğrulukla tahmin edilmesi amaçlanmıştır. İyi huylu kanser verilerinin tahmin edilmesinin nedeni eldeki verilerle bir kanser verilerine test işlemi uygulamadan ilk anda teşhis edilmesini sağlamaktır. Bu amaçla gögüs kanseri verileri Wisconsin Diagnostic Breast Cancer (WDBC) datasetinden alınmış, ayıklanarak tablolara ayrılmıştır. Kanser verilerinin yapısından dolayı veri madenciliği probleminin sınıflandırma modeline uygun olduğu belirlenmiştir. Bu problemi çözmek için de sınıflandırma modellerinin algoritmalarından biri olan Naive Bayes seçilmiştir. Veri madenciliği uygulamasını gerçekleştirmek için ilk olarak sunucu üzerine Oracle veritabanının 11g sürümü, istemci üzerine ise Oracle Data Miner paket programı yüklenmiştir. Daha sonra oluşturulan tablolar veritabanına aktarılmış ve gerekli modeller oluşturulmuştur. Bu modeller yardımıyla da istenilen doğrulukta tahminler elde edilmiş ve yorumlanmıştır. Anahtar Kelimeler: Oracle Data Miner, Veri Madenciliği, ODM ile Veri Madenciliği, Oracle Veritabanı III KISALTMA DİZİNİ ABN CART CHAID KDD NB ODM SVM SQL VTYS WDBC : Adaptive Bayes Network : Classification and Regression Trees : Chi Square Automatic Interaction Detection : Knowledge Discovery in Databases : Naive Bayes : Oracle Data Miner : Karar Destek Vektörleri : Yapısal Sorgulama Dili (Structured Query Language) : Veritabanı Yönetim Sistemi : Wisconsin Diagnostic Breast Cancer IV ŞEKİLLER DİZİNİ Şekil 2.1. Veri madenciliği disiplinler arasıdır ........................................................... 4 Şekil 2.2. Veri indirgeme yöntemleri .......................................................................... 8 Şekil 2.3. Veri madenciliği algoritmaları .................................................................. 13 Şekil 3.1. Oracle VTYS’nin giriş ekranı ................................................................... 14 Şekil 3.2. Oracle VTYS’nin ana yönetim ekranı ...................................................... 15 Şekil 3.3. Oracle VTYS’nin sunucu ekranı ............................................................... 15 Şekil 3.4. Oracle’da tüm kullanıcıların listelendiği ekran......................................... 16 Şekil 3.5. Oracle’da seçilen kullanıcıya ait bilgi ekranı............................................ 16 Şekil 3.6. Oracle’da seçilen kullanıcıya hakların verilmesi ...................................... 17 Şekil 4.1. ODM erişim ekranları ............................................................................... 18 Şekil 4.2. ODM ana ekranı........................................................................................ 19 Şekil 4.3. ODM kullanıcıların gösterimi ................................................................... 20 Şekil 4.4. ODM’de tabloların gösterimi .................................................................... 20 Şekil 4.5. Tabloya veri aktarımı ................................................................................ 21 Şekil 4.6. Tabloya veri aktarımı 1. aşama, aktarılacak verilerin seçimi ................... 21 Şekil 4.7. Tabloya veri aktarımı 2. aşama, verideki sütunlar .................................... 22 Şekil 4.8. Tabloya veri aktarımı 3. aşama, verideki sütunların seçilmesi ................. 22 Şekil 4.9. Tabloya veri aktarımı 4. aşama, sütunların ilişkilendirilmesi ................... 23 Şekil 4.10. Tabloya veri aktarımı 5. aşama, işlemin sonu ........................................ 23 Şekil 4.11. ODM'ye aktarılan tablonun görünümü ................................................... 24 Şekil 4.12. ODM'de bir tablonun istatistiksel verileri ............................................... 24 Şekil 4.13. ODM'deki bir tablonun bir sütunu için histogram örneği ....................... 25 Şekil 4.14. Verinin model ve test tablolarına ayrılması işleminin 1. aşaması .......... 26 Şekil 4.15. Verinin model ve test tablolarına ayrılması işleminin 2. aşaması .......... 27 Şekil 4.16. Verinin model ve test tablolarına ayrılması işleminin 3. aşaması .......... 27 Şekil 4.17. Transformation 1.aşama .......................................................................... 28 Şekil 4.18. Transformation 2.aşama .......................................................................... 28 Şekil 4.19. Transformation 3.aşama .......................................................................... 29 Şekil 4.20. “SONUC” için histogram (Eşitlenmeden önceki durum) ....................... 30 Şekil 4.21. Transformation 4.aşama .......................................................................... 30 Şekil 4.22. Transformation 5.aşama.......................................................................... 31 Şekil 4.23. ODM'de model oluşturma yöntemi, fonksiyon tipi seçimi ..................... 32 Şekil 4.24. Algoritma seçimi..................................................................................... 32 Şekil 4.25. Model oluşturma, 1. aşama ..................................................................... 33 Şekil 4.26. Model oluşturma, 2. aşama ..................................................................... 33 Şekil 4.27. Gelişmiş ayarlar, “Sample” sekmesi ....................................................... 34 Şekil 4.28. Gelişmiş ayarlar, “ Discretize” sekmesi.................................................. 34 Şekil 4.29. Gelişmiş ayarlar, “Split” sekmesi ........................................................... 35 Şekil 4.30. Gelişmiş ayarlar, “Build” sekmesi .......................................................... 35 Şekil 4.31. Gelişmiş ayarlar, “Test Metrics” sekmesi ............................................... 36 Şekil 4.32. Model oluşturma sürecinin son hali ........................................................ 37 Şekil 4.33. Testin sonucu, “Predictive Confidance” sekmesi ................................... 37 Şekil 4.34. Testin sonucu, “Accuracy” sekmesi ....................................................... 38 Şekil 4.35. Testin sonucu, Accuracy’de Cost'un görüntülenmesi ............................. 39 Şekil 4.36. Testin sonucu, “ROC” sekmesi .............................................................. 39 V Şekil 4.37. Testin sonucu, “Lift” sekmesi, Cumulative Lift Chart ........................... 40 Şekil 4.38. Testin sonucu, “Lift” sekmesi, Cumulative Positive Cases Chart .......... 41 Şekil 4.39. Testin sonucu, “Test Settings” sekmesi .................................................. 41 Şekil 4.40. Testin sonucu, “Task” sekmesi ............................................................... 42 Şekil 4.41. ODM'de modelin uygulanması ............................................................... 42 Şekil 4.42. Uygulama 1. aşama, uygulama yapılacak modelin seçimi ..................... 43 Şekil 4.43. Uygulama 2. aşama, uygulama yapılacak tablonun seçimi .................... 43 Şekil 4.44. Uygulama 3. aşama, sonuç tablosunda gösterilecek sütunların seçimi .. 44 Şekil 4.45. Uygulama 4. aşama, tahmini yapacak olan aktivitenin seçimi ............... 44 Şekil 4.46. Uygulama 5. aşama, tahmin yönteminin seçimi ..................................... 45 Şekil 4.47. Uygulama 6. aşama, aktivitenin isminin belirlenmesi ............................ 45 Şekil 4.48. Uygulama sürecinin son hali ................................................................... 46 Şekil 4.49. Uygulama sonuç tablosu ......................................................................... 46 Şekil 5.1. Uygulama sonucu...................................................................................... 47 Şekil 5.2. Modelin doğruluk tablosu ......................................................................... 48 VI 1. GİRİŞ Son yıllar içerisinde elektronik ortamda saklanan veri miktarında büyük bir artış meydana gelmiştir. Yeryüzündeki bilgi miktarı ve buna bağlı olarak yeni veritabanı sayısı da hızla artmaktadır. Süpermarket alışverişi, banka kartları kullanımı, telefon aramaları gibi günlük hayatta kullanılan birçok faaliyetin yanında birçok farklı bilim disiplininden elde edilen veriler, hava tahmini simülasyonu, sanayi faaliyet testleri büyük veritabanlarında kayıt altına alınmaktadır. Bilginin iş dünyasında çok değerli olduğu ve iş dünyasının kalbini oluşturduğu, karar alıcıların bu bilgi ışığında şirket stratejileri geliştirdiği bilinmektedir. Bu çalışma kapsamında gögüs kanseri verileri değerlendirmede kolay sağlaması amaçlanmıştır. 1.1. Gögüs Kanseri ve Alınan Verileri Göğüs kanseri göğüs hücrelerinde başlayan kanser türüdür. Göğüs kanserine sebep olan tümor iyi veya kötü huylu olabilir. İyi huylu (benign) tümörler kanser değildir. Komşu bölgelere yayılmazlar. Sınırları belirgindir. Komşu dokuları eritmezler. Tamamen çıkartıldığı zaman genellikle tekrarlamazlar. Kötü huylu (malign) tümörler ise kanser olarak adlandırılır. Komşu organ ve dokulara yayılırlar, kemik doku ile karşılaştıklarında onu dahi eritirler (rezorbsiyon). Sınırları belirsizdir. Lenf ve kan yoluyla uzak organlara da yayılırlar. Çalışmada gögüs kanseri verileri Wisconsin Diagnostic Breast Cancer (WDBC) dataseti ile değerlendirilmiştir. Dataset (http://archive.ics.uci.edu/ml/machine- learning-databases/breast-cancer-wisconsin/breast-cancer-wisconsin.data) adresinden alınmıştır. Verilerdeki öznitelik sayısı 11 dur. Bu öznitelikler; veriyi tanımlayan id, hücrenin küme kalınlığı, boyutu, şekli, kenar yapışma durumu, tek epitel hücre boyutu, çekirdek, yumşak kromatin, normal çekirdekçik, mitoz durumu ve verilerin ait olduğu sınıftır. Bu sınıf iyi veya kötü huylu anlamına gelen değerler ile ifade edilir. Çalışmada iyi huylu veriler için 2, kötü huylu veriler için 4 değeri verilmiştir. 1 Verilerdeki gögüs kanseri verisi 699 tanedir. Bu verilerden 241 tanesi sonuç olarak kötü huylu, 458 tanesi de iyi huylu olan kanser türüdür. 2 2. VERİ MADENCİLİĞİ Günümüzde kullanılan veri tabanı yönetim sistemleri eldeki verilerden sınırlı çıkarımlar yaparken geleneksel çevrimiçi işlem sistemleri (on-line transaction processing systems) de bilgiye hızlı, güvenli erişimi sağlamaktadır. Fakat ikisi de eldeki verilerden analizler yapıp anlamlı bilgiler elde etme imkanını sağlamakta yetersiz kalmışlardır. Verilerin yığınla artması ve anlamlı çıkarımlar elde etme ihtiyacı arttıkça uzmanlar Knowledge Discovery in Databases (KDD) adı altında çalışmalarına hız kazandırmışlardır. Bu çalışmalar sonucunda da veri madenciliği (Data Mining) kavramı doğmuştur. Veri madenciliğinin temel amacı, çok büyük veri tabanlarındaki ya da veri ambarlarındaki veriler arasında bulunan ilişkiler, örüntüler, değişiklikler, sapma ve eğilimler, belirli yapılar gibi bilgilerin matematiksel teoriler ve bilgisayar algoritmaları kombinasyonları ile ortaya çıkartılması ve bunların yorumlanarak değerli bilgilerin elde edilmesidir. 2.1. Tanım İlişkisel veri tabanı sistemleriyle ulaşılan veriler tek başına bir anlam ifade etmezken veri madenciliği teknolojisi bu verilerden anlamlı bilgi üretilmede öncü rol oynamaktadır. Aşağıda bazı veri madenciliği tanımlarına yer verilmektedir. 1. "Veri madenciliği; veritabanında bilgi keşfi (KDD), eldeki verilerden önceden bilinmeyen fakat potansiyel olarak yararlı olabilecek bilgileri çıkarmaktır. Bu kümeleme, veri özetlemesi, öğrenme sınıflama kuralları, değişikliklerin analizi ve sapmaların tespiti gibi birçok farklı teknik bakış açısını içine alır." [1]. 2. "Veri madenciliği, otomatik veya yarı otomatik çözüm araçları (tools) ile büyük ölçeklerdeki verinin anlamlı yapılar ve kurallar keşfetmek üzere araştırılması (exploration) ve analiz edilmesidir." [2]. 3. "Veri madenciliği çok büyük tabanları içindeki veriler arasındaki bağlantılar ve örüntüleri araştırarak, gizli kalmış yararlı olabilecek verilerden değerli bilginin çıkarılması sürecidir." [3]. 3 4. "Veri Madenciliği, büyük veri ambarlarından daha önceden bilinmeyen, doğru ve eyleme geçirilebilir bilgiyi ayrıştırma ve çok önemli kararların alınması aşamasında ayrıştırılan bu bilgiyi kullanma sürecidir." [4]. Veri madenciliğinin, disiplinler arası bir teknoloji olarak dört ana başlıktan oluştuğu kabul edilmektedir. Bunlar sınıflama, kategori etme, tahmin etme ve görüntülemedir. Bu dört temel dışında istatistik, makine bilgisi, veritabanları ve yüksek performanslı işlem gibi temelleri de içerir. Şekil 2.1. Veri madenciliği disiplinler arasıdır [5] Algoritma: Verideki ilişki ya da örgüleri belirlemekte kullanılan programatik tekniklerdir. Model: Algoritma tarafından belirlenen ilişkilerin tanımıdır. Bu tanım genelde kurallar kümesi, karar ağacı, denklemler ya da ilişkiler ağı şeklinde ifade edilir. Vaka: Tekil bir nesneyle ilişkilendirilen özellikler ve ilişkiler koleksiyonudur. Gözlem olarak da adlandırılır. Vaka kümesi, aynı özellikleri paylaşan vakalar grubudur. Bu bir tablo gibi düşünülebilir, tablonun her satırında bir vaka yer alır. Tek tablo yerine birbiriyle ilişkili iki ayrı tablo kullanılması da sözkonusu olabilir. Bu durumda ana tablodaki her satır için yavru tabloda birden fazla satır bağlantılı olarak eklenebilir. Gözlem kümesi olarak da adlandırılır. 4 Bağımlı değişken (ya da tahmin edilen özellik): Algoritmanın tahmin etmek ya da gruplamak için model inşa edeceği değişken. Bağımsız değişken (ya da tahmin eden özellik): Modeli inşa ederken kullanılan ve tarif edici bilgilere sahip olan değişkenlere denir. Bağımsız değişkenlerin içlerindeki çeşitli kombinasyonlar ele alınarak algoritma tarafından gruplamalar ve tahminler oluşturulur. Kesikli ya da sürekli değişkenler: Kesikli ya da sürekli değerlere sahip olan sayısal kolonlar. Mesela maaşlarla ilgili gerçek değerleri içeren bir kolon süreklidir. Ama maaş aralıkları belirler ve gerçek değerleri bu aralıklara karşılık gelen 0, 1, 2… gibi bir sayı dizisiyle ifade ederseniz, kesikli bir kolon elde etmiş olursunuz. Daha yeni araçlarda, kesikli kolonlar için sayısal değerler yerine tarif edici karakter ifadelerine de izin verilmektedir. Kolon tipinin kesikli ya da sürekli olması, kullanılan veri madenciliği algoritmaları için önemli olabilmektedir. Bağıntı: “Çocuk bezi alan müşterilerin %30’u bira da satın alır.” Sepet analizinde (basket analysis) müşterilerin beraber satın aldığı malların analizi yapılır. Buradaki amaç mallar arasındaki pozitif veya negatif korelâsyonları bulmaktır. Korelasyon, olasılık kuramı ve istatistikte iki bağımsız değişken arasındaki doğrusal ilişkinin yönünü ve gücünü belirtir. Genel istatistiksel kullanımda korelasyon, bağımsızlık durumundan ne kadar uzaklaşıldığını gösterir.Korelasyon, olasılık kuramı ve istatistikte iki bağımsız değişken arasındaki doğrusal ilişkinin yönünü ve gücünü belirtir. Genel istatistiksel kullanımda korelasyon, bağımsızlık durumundan ne kadar uzaklaşıldığını gösterir. Çocuk bezi alan müşterilerin mama da satın alacağını veya bira satın alanların cips de alacağını tahmin edebiliriz ama ancak otomatik bir analiz bütün olasılıkları göz önüne alır ve kolay düşünülemeyecek, örneğin çocuk bezi ve bira arasındaki bağıntıları da bulur. Sınıflandırma: “Genç kadınlar küçük araba satın alır; yaşlı, zengin erkekler büyük, lüks araba satın alır.” Amaç bir malın özellikleri ile müşteri özelliklerini eşlemektir. Böylece bir müşteri için ideal ürün veya bir ürün için ideal müşteri profili 5 çıkarılabilir. Örneğin bir otomobil satıcısı şirket geçmiş müşteri hareketlerinin analizi ile yukarıdaki gibi iki kural bulursa genç kadınların okuduğu bir dergiye reklâm verirken küçük modelinin reklâmını verir. Regresyon: “Ev sahibi olan, evli, aynı iş yerinde beş yıldan fazladır çalışan, geçmiş kredilerinde geç ödemesi bir ayı geçmemiş bir erkeğin kredi skoru 825’dir.” Başvuru skorlamada (application scoring) bir finans kurumuna kredi için başvuran kişi ile ilgili finansal güvenilirliğini notlayan örneğin 0 ile 1000 arasında bir skor hesaplanır. Bu skor kişinin özellikleri ve geçmiş kredi hareketlerine dayanılarak hesaplanır. Zaman İçinde Sıralı Örüntüler: “İlk üç taksitinden iki veya daha fazlasını geç ödemiş olan müşteriler %60 olasılıkla kanuni takibe gidiyor.” Davranış skoru (behavioral score), başvuru skorundan farklı olarak kredi almış ve taksitleri ödeyen bir kişinin sonraki taksitlerini ödeme/geciktirme davranışını notlamayı amaçlar. Benzer Zaman Sıraları: “X şirketinin hisse fiyatları ile Y şirketinin hisse fiyatları benzer hareket ediyor.” Amaç zaman içindeki iki hareket serisi arasında bağıntı kurmaktır. Bunlar örneğin iki malın zaman içindeki satış miktarları olabilir. Örneğin dondurma satışları ile kola satışları arasında pozitif, dondurma satışları ile salep satışları arasında negatif bir bağıntı beklenebilir. Fark Saptanması: “Normalden farklı davranış gösteren müşterilerim var mı?” Amaç önceki uygulamaların aksine kural bulmak değil, kurala uymayan istisnai hareketleri bulmaktır. Bu da örneğin olası sahtekârlıkların saptanmasını (fraud detection) sağlar. Örneğin Visa kredi kartı için yapılan CRIS sisteminde bir yapay sinir ağı kredi kartı hareketlerini takip ederek müşterinin normal davranışına uymayan hareketler için müşterinin bankası ile temasa geçerek müşteri onayı istenmesini sağlar. Doküman Madenciliği: “Arşivimde (veya internet üzerinde) bu dokümana benzer hangi dokümanlar var?” Amaç dokümanlar arasında ayrıca elle bir tasnif gerekmeden benzerlik hesaplayabilmektir (text mining). Bu genelde otomatik olarak çıkarılan anahtar sözcüklerin tekrar sayısı sayesinde yapılır. 6 Madencilik Yapısı (Mining Structure): Microsoft tarafından kullanılan bir tanımdır. Analysis Services’daki bir vaka kümesini temsil eder. Aslında alttaki veri yapısı üzerinde yer alan bir metadata katmanıdır. Verilerin temel özellikleri yanısıra veri madenciliği açısından çeşitli özelliklerini de barındırır. Bu yapı üzerine modeller kurulur. Madencilik modeli: Belirli bir algoritmanın belirli bir madencilik çatısı üzerine uygulanmış halidir. Aynı çatı üzerine farklı algoritmalar ya da farklı parametrelerle birden fazla model oluşturabilirsiniz. 2.2. Temel Adımlar Veri madenciliği uygulamalarında sırasıyla takip edilmesi gereken temel aşamalar aşağıda sistematik biçimde verilmiştir. Uygulama alanının ortaya konulması Bu ilk adımda veri madenciliğinin hangi alan ve hangi amaç için yapılacağı tespit edilir. Hedef veri grubu seçimi Belirlenen amaç doğrultusunda bazı kriterler belirlenir. Bu kriterler çerçevesinde aynı veya farklı veritabanlarından veriler toplanarak hedef (target) veri grubu elde edilir. Model seçimi Veri madenciliği probleminin seçimi datalar üzerinden belirlenir. (Sınıflandırma, Kümeleme, Birliktelik Kuralları, Şablonların ve İlişkilerin Yorumlanması v.b.) Ön işleme Bu aşamada seçilen veriler ayıklanarak silinir, eksik veri alanları üzerine stratejiler geliştirilir. Veriler tekrardan düzenlenip tutarlı bir hale getirilir. Bu aşamada yapılan işlem data temizleme ve data birleştirme olarak bilinen uyumlandırma işlemidir. Veri birleştirme (bütünleştirme), farklı veri tabanlarından ya da kaynaklarından elde 7 edilen verilerin birlikte değerlendirmeye alınabilmesi için farklı türdeki verilerin tek türe dönüştürülebilmesi demektir. Veri indirgeme Çözümleme işlemi veri madenciliği uygulamalarında uzun sürebilmektedir. İşlem yapılırken eksik ya da uygun olmayan verilerin oluşturduğu tutarsız verilerle karşılaşılabilir. Bu gibi durumlarda verinin söz konusu sorunlardan arındırılması gerekmektedir. Çözümlemeden elde edilecek sonuçta bir değişiklik olmuyorsa veri sayısı ya da değişkenlerin sayısında azaltmaya gidilir. Veri indirgeme çeşitli biçimlerde yapılabilir. Bu yöntemler aşağıda gösterilmiştir [7]. Şekil 2.2. Veri indirgeme yöntemleri Veriyi indirirken bu verileri çok boyutlu veri küpleri biçimine dönüştürmek söz konusu olabilir. Böylece çözümler sadece belirlenen boyutlara göre yapılır. Veriler arasında seçme işlemi yapılarak da veri tabanından veriler silinip boyut azaltılması yapılır. Veri dönüştürme Verileri direkt veri madenciliği çözümlerine katmak çoğu zaman uygun olmayabilir. Değişkenlerin ortalama ve varyansları birbirlerinden çok farklıysa büyük ortalama ve varyansa sahip değişkenlerin diğer değişkenler üzerindeki etkisi daha fazla olur. Bu nedenle bir dönüşüm yöntemi uygulanarak değişkenlerin normalleştirilmesi ya da standartlaşması uygun yoldur. 8 Algoritmanın belirlenmesi Bu aşamada indirgenmiş veriye ve kullanılacak modele hangi algoritmanın uygulanacağına karar verilir. Mümkünse bu algoritmanın seçimine uygun veri madenciliği yazılımı seçilir değilse oluşturulan algoritmaya uygun programlar yazılır. Yorumlama ve doğrulama Uygulama sonucunda elde edilen veriler üzerine yorumlama yapılır, bu yorumların test verileri üzerinden doğrulanması hedeflenir. Doğruluğu onaylanan bu yorumlar gizli bilgiye ulaşıldığını göstermektedir. Elde edilen bu bilgiler çoğu kez grafiklerle desteklenir. 2.3. Problemlerin Çözüm Yöntemleri Veri madenciliği uygulaması gerektiren problemlerde, farklı veri madenciliği algoritmaları ile çözüme ulaşılmaktadır. Veri madenciliği görevleri iki başlık altında toplanmaktadır. o Eldeki verinin genel özelliklerinin belirlenmesidir. o Kestirimci/Tahmin edici veri madenciliği görevleri, ulaşılabilir veri üzerinde tahminler aracılığıyla çıkarımlar elde etmek olarak tanımlanmıştır. Veri madenciliği algoritmaları aşağıda açıklanmaktadır. 2.3.1.Karakterize Etme (Characterization) Veri karakterizasyonu hedef sınıfındaki verilerin seçilmesi, bu verilerin genel özelliklerine göre karakteristik kuralların oluşturulması olayıdır. Örnek: Perakende sektöründe faaliyet gösteren, uluslararası ABC şirketinin binlerce kurumsal müşterisi olsun. ABC şirketinin pazarlama biriminde, büyük kurumsal müşterilere yönelik kampanyalar için her yıl düzenli olarak bu şirketten 10 milyon TL ve üstü alım yapan kurumsal müşteriler hedeflenmektedir. Veritabanından hedef grup belirlenerek genelleme yapılır ve genel kurallar oluşturulur. 9 2.3.2. Ayrımlaştırma (Discrimination) Belirlenen hedef sınıfa karşıt olan sınıf elemanlarının özellikleri arasında karşılaştırma yapılmasını sağlayan algoritmadır. Karakterize etme metodundan farkı mukayese yöntemini kullanmasıdır. Örnek: ABC kurumsal müşterilerinden her yıl 10 milyon TL ve üstü alışveriş yapan fakat geri ödeme konusunda riskli olan müşteri grubunun belirlenmesi 2.3.3. Sınıflandırma (Classification) Sınıflandırma, veri tabanlarındaki gizli örüntüleri ortaya çıkarabilmek için veri madenciliği uygulamalarında sıkça kullanılan bir yöntemdir. Verilerin sınıflandırılması için belirli bir süreç izlenir. Öncelikle var olan veritabanının bir kısmı eğitim amaçlı kullanılarak sınıflandırma kurallarının oluşturulması sağlanır. Bu kurallar kullanılarak veriler sınıflandırılır. Bu veriler sınıflandırıldıktan sonra eklenecek veriler bu sınıflardan karakteristik olarak uygun olan kısma atanır. Sınıflandırma problemleri için "Oracle Data Miner" (ODM)' ın uyumlu olduğu çözüm yöntemleri Naive Bayes (NB), Karar Destek Vektörleri (SVM), Karar Ağaçları ve Adaptive Bayes Network(ABN)' dir. Örnek: XYZ şirketi müşterilerinin alım durumlarını göz önünde bulundurarak, alım gücüne göre "Yüksek", "Orta", "Düşük" şeklinde sınıflandırır. Müşterilerinin risk durumlarını sınıflandırmak için de "Risksiz", "Riskli", "Çok Riskli" şeklinde etiketlerle sınıflandırılabilir. 2.3.4. Tahmin etme (Prediction) Kayıt altında tutulan geçmiş verilerin analizi sonucu elde edilen bilgiler gelecekte karşılaşılacak aynı tarz bir durum için tahmin niteliği taşıyacaktır. Örneğin ABC şirketi geçen yılın satışlarını bölge bazlı sınıflandırmış ve bu sene için bir trend analizi yaparak her bölgede oluşacak talebi tahmin etmiştir. Bu tür problemler için ODM'nin kullandığı regresyon analizi yöntemi SVM'dir. 10 2.3.5. Birliktelik kuralları (Association rules) Birliktelik kuralları gerek birbirini izleyen gerekse de eş zamanlı durumlarda araştırma yaparak, bu durumlar arasındaki ilişkilerin tanımlanmasında kullanılır. Bu modelin yaygın olarak Market Sepet Analizi uygulamalarında kullanıldığı bilinmektedir. Örneğin bir süpermarkette X ürününden alan müşterilerin büyük bir kısmı Y ürününden de almıştır. Birliktelik kuralı ile bu durum ortaya çıkarılarak, süpermarketin X ve Y ürününü aynı veya yakın raflara koyması sağlanır. ODM bu problem sınıfı için de Birliktelik Kuralları modelini kullanmaktadır. 2.3.6. Kümeleme (Clustering) Yapı olarak sınıflandırmaya benzeyen kümeleme metodunda birbirine benzeyen veri grupları aynı tarafta toplanarak kümelenmesi sağlanır. Sınıflandırma metodunda sınıfların kuralları, sınırları ve çerçevesi belli ve datalar bu kriterlere göre sınıflara atanırken kümeleme metodunda sınıflar arası bir yapı mevcut olup, benzer özellikte olan verilerle yeni gruplar oluşturmak asıl hedeftir. Verilerin kendi aralarındaki benzerliklerinin göz önüne alınarak gruplandırılması yöntemin pek çok alanda uygulanabilmesini sağlamıştır. Örneğin, pazarlama araştırmalarında, desen tanımlama, resim işleme ve uzaysal harita verilerinin analizinde kullanılmaktadır. Tüm bu uygulama alanlarında kullanılması, ODM'nin desteklediği "K-means" ve "OCluster" kümeleme yöntemleri ile mümkün kılınmıştır. 2.3.7. Aykırı değer analizi (Outlier analysis) İstisnalar veya sürpriz olarak tespit edilen aykırı veriler, bir sınıf veya kümelemeye tabii tutulamayan veri tipleridir. Aykırı değerler bazı uygulamalarda atılması gereken değerler olarak düşünülürken bazı durumlarda ise çok önemli bilgiler olarak değerlendirilebilmektedir. Örneğin markette müşterilerin hep aynı ürünü iade etmesi bu metodun araştırma konusu içine girer. ODM; temizleme, eksik değer, aykırı değer analizi gibi birçok yöntemi veri hazırlama aşaması içine almakta ve desteklemektedir. 11 2.3.8. Zaman serileri (Time series) Yapılan veri madenciliği uygulamalarında kullanılan veriler çoğunlukla statik değildir ve zamana bağlı olarak değişmektedir. Bu metot ile bir veya daha fazla niteliğin belirli bir zaman aralığında, eğilimindeki değişim ve sapma durumlarını inceler. Belirlenen zaman aralığında ölçülebilir ve tahmin edilen/beklenen değerleri karşılaştırmalı olarak inceler ve sapmaları tespit eder. Örneğin ABC şirketinin Ocak-Haziran 2009 dönemi için önceki yılın satış miktarları göz önünde tutularak bir hedef ortaya konulmuştur. 2008 ve 2009 değerleri karşılaştırmalı olarak incelenerek sapma miktarı belirlenir. ODM her ne kadar çeşitli histogramlarla kullanıcıya görsel destek sağlasa da tam anlamıyla bu tür problemleri desteklememektedir. 2.3.9. Veri görüntüleme (Visualization) Bu metot, çok boyutlu özelliğe sahip verilerin içerisindeki karmaşık bağlantıların/bağıntıların görsel olarak yorumlanabilme imkanını sağlar. Verilerin birbirleriyle olan ilişkilerini grafik araçları görsel ya da grafiksel olarak sunar. ODM zaman serilerinde olduğu gibi histogramlarla bu metodu desteklemektedir. 2.3.10. Yapay sinir ağları (Artificial neural networks) Yapay sinir ağları insan beyninden esinlenilerek geliştirilmiş, ağırlıklı bağlantılar aracılığıyla birbirine bağlanan işlem elemanlarından oluşan paralel ve dağıtılmış bilgi işleme yapılarıdır. Yapay sinir ağları öğrenme yoluyla yeni bilgiler türetebilme ve keşfedebilme gibi yetenekleri hiçbir yardım almadan otomatik olarak gerçekleştirebilmek için geliştirilmişlerdir. Yapay sinir ağlarının temel işlevleri arasında veri birleştirme, karakterize etme, sınıflandırma, kümeleme ve tahmin etme gibi veri madenciliğinde de kullanılan metotlar mevcuttur. Yüz ve plaka tanıma sistemleri gibi teknolojiler yapay sinir teknolojilerdendir. 12 ağları kullanılarak geliştirilen 2.3.11. Genetik algoritmalar (Genetic algorithms) Genetik algoritmalar doğada gözlemlenen evrimsel sürece benzeyen, genetik kombinasyon, mutasyon ve doğal seçim ilkelerine dayanan bir arama ve optimizasyon yöntemidir. Genetik algoritmalar parametre ve sistem tanılama, kontrol sistemleri, robot uygulamaları, görüntü ve ses tanıma, mühendislik tasarımları, yapay zeka uygulamaları, fonksiyonel ve kombinasyonel eniyileme problemleri, ağ tasarım problemleri, yol bulma problemleri, sosyal ve ekonomik planlama problemleri için diğer eniyileme yöntemlerine kıyasla daha başarılı sonuçlar vermektedir. 2.3.12. Karar ağaçları (Decision trees) Ağaç yapıları esas itibariyle kural çıkarma algoritmaları olup, veri kümelerinin sınıflanması için “if-then” tipinde kullanıcının rahatlıkla anlayabileceği kurallar inşa edilmesinde kullanılırlar. Karar ağaçlarında veri kümesini sınıflamak için “Classification and Regression Trees (CART)” ve “Chi Square Automatic Interaction Detection (CHAID)” şeklinde iki yöntem kullanılmaktadır. 2.3.13. Kural çıkarma (Rules induction) İstatistiksel öneme sahip yararlı “if-else” kurallarının problemlerini inceler. Şekil 2.3. Veri madenciliği algoritmaları[8] 13 ortaya çıkarılması 3. ORACLE VERİTABANI YÖNETİM SİSTEMİ Veritabanı yönetim konsolu kullanıcılar ve veritabanı yöneticilerinin veritabanına erişimlerini ve verilen haklar çerçevesinde istedikleri özellikleri kontrol etmelerini sağlayan bir arayüzdür. Aşağıda Oracle veritabanı yönetim konsolu ile ilgili bazı ekran görüntüleri ve açıklamaları verilmektedir. 3.1. Giriş Ekranı Aşağıda verilen ekrana ulaşmak için Oracle ile ilgili servisler otomatik başlat olarak ayarlanmamışlarsa öncelikle bu servisler başlatılmalı, sonrasında da internet tarayıcısına https://<localhost>:1158/em yazılarak çalıştırılmalıdır. Oracle Database 11g programı yüklendikten sonra "SYS" kullanıcısının kilidi (varsayılan) açılmıştır ve bu kullanıcı "Süper Yönetici" olduğundan bütün işlemleri yapmaya yetkilidir. "SYS" kullanıcısı ile sisteme SYSDBA olarak girilir. Şekil 3.1. Oracle VTYS’nin giriş ekranı 3.2. Veritabanı Ana Yönetim Ekranı Sisteme “SYS” kullanıcısı olarak girildikten sonra aşağıdaki ekran karşımıza çıkar. Bu ekran aracılığıyla veritabanındaki bütün özellikler; Performans, Ulaşılabilirlik, Sunucu, Şema, Veri Hareketleri, Yazılım ve Destek gibi bileşenler kontrol edilebilir. 14 Şekil 3.2. Oracle VTYS’nin ana yönetim ekranı 3.3. Sunucu Ekranı Veritabanı ile ilgili tüm bilgilere erişip, değişiklikler yapabileceğimiz ekrandır. Şekil 3.3. Oracle VTYS’nin sunucu ekranı Buradan “SecurityUsers” yolundan hareket ederek veritabanında tanımlı tüm kullanıcılar aşağıdaki gibi görülebilir. Veri madenciliği uygulaması için yükleme 15 sırasında ODMBULENT isimli yeni bir kullanıcı oluşturulmuş, kilidi kaldırılmış ve gerekli haklar verilmiştir. Şekil 3.4. Oracle’da tüm kullanıcıların listelendiği ekran ODMBULENT kullanıcısı seçilirse kullanıcı özelliklerini belirten bir sayfa açılır. Şekil 3.5. Oracle’da seçilen kullanıcıya ait bilgi ekranı Burada kullanıcıya ait genel özellikler, roller, kullanıcı sistem hakları, nesneler üzerindeki hakları, kontenjan bilgisi, Proxy kullanıcısı, tüketici grup hakları gibi kısımlar bulunur. ODM için oluşturulan kullanıcı bu haklardan bazıları(temel işlemler için) verilmelidir. 16 Gerekli hakları verebilmek için kullanıcı listesinden, data miner için oluşturulan kullanıcı (ODMBULENT) seçilir. Edit System Privileges seçenekleri seçilir. EditList seçeneği ile tüm haklar listenelir. Move All seçeneği ile kullanıcı geniş yetki tanınır. Böylece kullanıcı ODM için hazır durumdadır. Şekil 3.6. Oracle’da seçilen kullanıcıya hakların verilmesi 17 4. ORACLE DATA MINER “Oracle Data Mining”, Oracle veritabanı üzerinde çalışan ve kullanıcıların incelemeye uygun tahmini bilgiler üretmesine olanak tanıyan yardımcı bir özelliktir. Kullanıcılar, Oracle 10g Veritabanında gömülü data mining (veri arama) işlevini kullanarak verilerinde gizlenmiş düzen ve bilgileri bulabilirler [9]. Oracle Data Miner (ODM) ise kullanıcılara, değerli gizli bilgileri, şablonları ve yeni kavrayışları bulabilmeleri için yardımcı olan bir grafiksel kullanıcı ara yüzüdür. Bu ara yüz, kullanıcılara, büyük çaplı veriler üzerinde değişik amaçlara yönelik modeller oluşturma, bu modelleri test etme ve değişik veriler üzerinde uygulama yapma imkanı tanır. "Oracle Data Mining" işlemi, Oracle10g ve Oracle 11g sürümleri tarafından desteklenmektedir. Bu nedenle sunucu üzerine Oracle10g veritabanı, istemciye ise ODM paketi yüklenerek veritabanına erişim sağlanmıştır. 4.1. Erişim ODM paketinin veritabanına bağlantı ekranları aşağıda verilmiştir. Ancak ODM ilk kez çalıştırıldığında bazı erişim bilgilerinin girilmesi gerekmektedir. Şekil 4.1. ODM erişim ekranları 18 4.2. ODM Ana Ekranı ODM programının genel görünüşü aşağıdaki gibidir. Sol tarafta yer alan "Navigator" kısmından modeller, tablolar, testler, sonuçlar ve görevlere erişim sağlanır. Şekil 4.2. ODM ana ekranı “Mining Activities” katmanında kullanıcılar tarafından oluşturulan “build”,”test” ve “apply” aktiviteleri görüntülenmektedir. “Data Sources” katmanı, veritabanında bulunan kullanıcılar ve bu kullanıcılara ait tablo ve görünümleri içermektedir. Belirtmek gerekir ki “Oracle Data Mining” işlemine erişim hakkı sadece kurulum sırasında tanımlanan “ODMBULENT” kullanıcısına verilmiştir. Bu sebeple üzerinde veri madenciliği çalışması yapılacak tabloların sadece bu kullanıcı ile bağlanılarak veritabanına aktarımı mümkün olabilir. 19 Şekil 4.3. ODM kullanıcıların gösterimi Şekil 4.4. ODM’de tabloların gösterimi 4.3. Veri Aktarımı ODM nin “DataImport” yolu ile veritabanına dışarıdan veri aktarımı yapılabilir. Bu yolla text formatındaki (.txt) tablolar veritabanına aktarılarak üzerlerinde çalışma imkanı sağlanır. Bu yöntemin dışında Oracle SQL Developer ile bağlantı ayarları yapılır. Veri madenciliği için ayarlanan kullanıcıya ait tabloya veriler import edilebilir. Verilerin import edilebilmesi için .xls veya .csv formatında olması gerekmektedir. Örnek uygulama için seçilen verileri gögüs kanseri verileri Wisconsin Diagnostic Breast Cancer 20 (WDBC) dataseti (http://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin /breast-cancer- wisconsin.data) adresinden alınmıştır. Şekil 4.5. Tabloya veri aktarımı Şekil 4.6. Tabloya veri aktarımı 1. aşama, aktarılacak verilerin seçimi 21 Şekil 4.7. Tabloya veri aktarımı 2. aşama, verideki sütunlar Şekil 4.8. Tabloya veri aktarımı 3. aşama, verideki sütunların seçilmesi 22 Şekil 4.9. Tabloya veri aktarımı 4. aşama, sütunların ilişkilendirilmesi Şekil 4.10. Tabloya veri aktarımı 5. aşama, işlemin sonu Veritabanında herhangi bir tablo görüntülenip, sağ üst köşede bulunan “export” tuşuna basılarak ilgili tablo dışarı aktarılabilir. Bu yolla dışarı alınan tablo yine text formatında (.txt dosyası) olacaktır. 23 Şekil 4.11. ODM'ye aktarılan tablonun görünümü 4.4. İstatistik İşlemleri Herhangi bir tablo ile ilgili istatistiksel verileri görmek için tablonun format özelliklerinden birini seçmek gerekir. Böylece herhangi bir sütunun maksimum, minimum değerleri, ortalaması, standart sapması, varyansı ve dağıtılmış değerlerin histogramla gösterilmesi sağlanabilir. Aşağıda “DataShow Summary Single Record” için bir örnek verilmiştir. Şekil 4.12. ODM'de bir tablonun istatistiksel verileri 24 Şekil 4.13. ODM'deki bir tablonun bir sütunu için histogram örneği 4.5. Veri Temizleme ve Hazırlama İşlemleri Veri madenciliği işlemini gerçekleştirmenin öncesinde veri temizliği yapmak gerekmektedir. Bu veri temizliği, ODM' nin sağladığı değişik fonksiyonlarla yapılır. Bu adım çok kritiktir ve veri madenciliği sürecinin başarılı ya da başarısız olmasında önemli bir rol üstlenir. Veri temizleme işleminde, farklı veri tipleri farklı teknikleri gerektirdiği için, dikkatli bir yaklaşım gerektirmektedir. Veri temizleme eksik, hatalı, çelişkili ve ekstrem kayıtların ortaya çıkarılmasını içerir. Ekstrem kayıtlar, tipik değerlerden önemli ölçüde farklı olan değerlerdir. Örnek olarak, bir kişinin boyunu tanımlayan parametrenin 3 metreye eşit olduğu bir durum gösterilebilir. Eksik kayıtlar ise, veri giriş sistemlerindeki hataların sonuçları olabilir. Eksik verilerin sistematik bir hataya yol açıp açmayacağı kontrol edilmelidir. Örnek olarak, hız ölçüm cihazı arızalanmış ve ölçüm yapmayı bu nedenle durdurmuş olabilir. Hatalı ya da tamamlanmamış veriler bir kere tespit edildiğinde, analizden çıkarılmalı ya da düzeltilmelidir [10]. Bazı veri madenciliği algoritmaları, özellikler nümerik olduğunda bu özelliklerin çok farklı değerler almasına karşı duyarlıdır. Örneğin “yaş” genelde 100' den küçük iken, 25 “gelir” milyon mertebesinde değerler alabilmektedir. Bu durumda belirli hesaplamalar için "gelir" sütununun “yaş” sütununa göre değer ölçüsünden dolayı çok önemli olduğu gibi bir yanılgı ortaya çıkmaktadır. Oysa hem "gelir" hem de “yaş” sütunundaki değerler normalizasyon ile 0-100 aralığına çekilerek birbirleri ile karşılaştırılabilir. ODM bir sütunun nümerik değerlerini belirli bir aralığa göreceli ağırlıkları ile orantılı olarak taşımak için bir normalizasyon fonksiyonu sağlar [10]. Ayrıca verinin model oluşturma ve oluşturulan modelin test edilmesi için bölünmesi gerekebilir. Buna benzer bazı veri hazırlama aşamalarının ekran çıktıları aşağıda verilmiştir. Sınıflandırma probleminde "Build" aktivitesinin uygulanacağı tablonun iyi ve kötü kayıtları eşit miktarda içermesi gerekmektedir. Burada iyi huylu kanser hucreleri 2, kötü huylu kanser hücreleri ise 4 olarak seçilmiştir. İyi ve kötü huylu kanser kayıt sayılarının eşit olmadığı tablo, ODM' nin “Data Transform Split” özelliği kullanılarak %60 Build ve %40 Test olarak bölünmüştür. Şekil 4.14. Verinin model ve test tablolarına ayrılması işleminin 1. aşaması 26 Şekil 4.15. Verinin model ve test tablolarına ayrılması işleminin 2. aşaması Şekil 4.16. Verinin model ve test tablolarına ayrılması işleminin 3. aşaması Daha sonra “Data TransformStratified Sample” özelliği kullanılarak “Build” tablosundaki iyi ve kötü huylu kanser verilerinin sayısı eşitlenmiştir. 27 Şekil 4.17. Transformation 1.aşama İlk aşamada, iyi huylu ve kötü huylu kanser kayıtların sayılarının eşitleneceği tablo seçilir. Tabloda her kayıt için tek bir satır bulunduğundan “Single Record Per Case” seçenek düğmesi seçili halde bırakılmıştır. Şekil 4.18. Transformation 2.aşama 28 Sonraki aşamada, işlem sonunda oluşacak olan yeni tabloya isim verilir. Yapılan işlem sonunda görüntü (view) değil tablo oluşturulacağından “Tables” seçeneği işaretli halde bırakılmıştır. Şekil 4.19. Transformation 3.aşama Bir sonraki adımda, dengeleme işleminin hangi sütundaki veriler için yapılacağı seçilir. İyi huylu ve kötü huylu kayıtların sayıları eşitleneceği için SONUC seçilmiştir. Eğer istenirse, seçilen sütunun içerdiği verilerin dağılımını görmek için “Histogram”a tıklanır ve aşağıdaki şekilde görülen ekrandaki gibi bahsi geçen sütundaki her bir değerin sayısı ve dağılım içindeki yüzdesi görüntülenir. 29 Şekil 4.20. “SONUC” için histogram (Eşitlenmeden önceki durum) Şekil 4.21. Transformation 4.aşama 30 Sonraki adıma geçildiğinde, sütunda farklı değer alan kayıtların sayısı eşitlenmek istendiği için “Equal Distribution” seçeneği seçilmiştir. “Equal Distribution” seçildikten sonra, farklı değer alan kayıt sayılarının eşitlendiği görülür. Bu eşitleme, hangi değer için kayıt sayısı azsa o sayıya göre yapılır. Şekil 4.22. Transformation 5.aşama 4.6. Veri Madenciliği Etkinlikleri Bu bölümde model oluşturma, oluşturulan modeli test etme ve modelin yeni veriye uygulanarak sonuçların elde edilmesi aşamaları anlatılacaktır. 4.6.1. Model Oluşturma Burada uygulanacak veri madenciliği problemi, bunun çözümü için geçerli algoritmalar, uygulanacak veri kümesi ve ilgili diğer parametreler seçilerek model oluşturulur. ODM' de veriler temizlendikten ve değişkenler yeniden düzenlendikten sonra veri madenciliği modeli oluşturulur. Bir veri madenciliği projesinde model oluşturulurken hedeflerin neler olduğu ve hangi tip verilerle nasıl bir veri madenciliği görevini 31 gerçekleştireceği belirlenmelidir. Örneğin projenin; bir sınıflandırma (classification) mı yoksa birliktelik (Association, Market Basket Analyse) projesi mi olacağı gerçeğinden yola çıkılarak model oluşturulmalıdır. Şekil 4.23. ODM'de model oluşturma yöntemi, fonksiyon tipi seçimi Şekil 4.24. Algoritma seçimi 32 Şekil 4.25. Model oluşturma, 1. aşama Şekil 4.26. Model oluşturma, 2. aşama Şekilde verilen ekran model oluşturmanın en önemli adımıdır. Burada hangi sütunun tahmin edilmek istendiği ve bu tahminin diğer hangi sütunlarla yapılacağı seçilmektedir. Dolayısıyla burada tahmini etkilemeyecek olan, örneğin “talep 33 numarası” gibi sütunlar girdi olarak seçilmemeli, sadece tahmini etkileyebilecek sütunların seçilmesine özen gösterilmelidir. Şekil 4.27. Gelişmiş ayarlar, "Sample" sekmesi Şekil 4.28. Gelişmiş ayarlar, " Discretize" sekmesi 34 Şekil 4.29. Gelişmiş ayarlar, " Split" sekmesi Şekil 4.30. Gelişmiş ayarlar, “Build” sekmesi “Build” ayarları iki bölüme ayrılmıştır. "General" sekmesinde, modelin genel doğruluğu artırıcı yönde mi ("Maximum Overall Accuracy"), yoksa her bir hedef değer için yüksek tahminde bulunan ve ortalama doğruluğu artırıcı yönde mi ("Maximum Average Accuracy") olacağı seçilir. Örneğin model, karlı olmayan müşteri tahminini yüksek doğrulukla yaparken karlı müşteri tahminini daha düşük 35 doğrulukla yapıyor olabilir. Açıktır ki modelin hedef olarak seçilen sütundaki her bir değeri yüksek doğrulukla tahmin etmesi istenecektir. Bu sebeple "Maximum Average Accuracy" seçeneği model kurulurken varsayılan olarak seçilidir ve o şekilde bırakılmıştır [11]. Model tipi için üç ayrı seçenek bulunmaktadır ve varsayılan seçenek "Single Feature"dır. Fakat modelde tahminleme yapmak için birden fazla özellik kullanılacağından burada "Multi Feature" seçeneği seçilmiştir. "Multi Feature" seçeneği seçildiğinde, "Attribute Importance" fonksiyonuna göre önem sıralaması yapılan sütunlar tahminlemeye katılmaya başlanır. Her bir özellik tahminlemeye katıldığında bir önceki adımla karşılaştırılır ve modelin doğruluğunda bir artış yapıp yapmadığına bakılır. Bu şekilde devam ederek yeni eklenen özelliğin modelin doğruluğunda bir artış yapmadığı görülünce model tamamlanmış olur [11]. Belirtmek gerekir ki bütün bu süreci, ODM arka planda gerçekleştirir, yani kullanıcıya sadece hangi model tipini seçeceğine karar vermek kalır. Şekil 4.31. Gelişmiş ayarlar, "Test Metrics" sekmesi Gelişmiş ayarlar yapıldıktan sonra model oluşturma süreci başlatılır. Bu sürecin tamamlanmış hali şekilde görüldüğü gibidir. 36 Şekil 4.32. Model oluşturma sürecinin son hali Model oluşturmak veri madenciliği için çok önemli bir aşamadır. Bu aşamada öncelikle hangi tip veriyle, hangi tip veri madenciliği görevinin gerçekleşeceği çok iyi anlaşılmalı ve buna uygun algoritmalar seçilmelidir. Bu ekranda, "Test Metrics" bölümünün altında yer alan "Result" a tıklanarak test sonuçları aşağıdaki gibi görüntülenebilir. Şekil 4.33. Testin sonucu, "Predictive Confidance" sekmesi 37 Şekildeki sonuç kısmının ilk sekmesi olan "Predictive Confidence" görüntülenmiştir. Bu sonuç modelin, bir insanın rastgele yapacağı tahmine karşı ne kadar etkili olduğunun görsel halidir. Örneğin, model kurulan tabloda hedef sütunundaki verilerin %40' ı "2" değerine, %60'ı "4" değerine sahipse rastgele bir değer tahmini yapıldığında %40 oranında başarı beklenir. Fakat tahminlemede, oluşturulan model kullanılırsa başarı oranının yaklaşık %93.24 olacağı görülmüştür. Şekil 4.34. Testin sonucu, "Accuracy" sekmesi "Accuracy" sekmesi tıklandığında, modelin test tablosuna uygulandığında elde edilen sonucun doğruluk oranları görüntülenir. Tahmin edilmek istenen hedef sütunundaki gerçek değerler bilinmektedir, böylece modelin yaptığı tahminler gerçek değerlerle karşılaştırılabilir. Modelde, SONUC değeri "2" olan 129 kayıt vardır ve model bunların %96.9' unu doğru olarak tahmin etmiştir. Aynı şekilde SONUC değeri "4" olan 82 kayıttan %96.34' ünün tahmini doğru olarak yapılmıştır. "Show Cost" butonuna tıklandığında, yanlış tahminin modele vereceği zarar aşağıdaki gibi görüntülenir. Düşük "Cost" değeri, modelin başarılı olduğu anlamına gelir [11]. 38 Şekil 4.35. Testin sonucu, Accuracy’de Cost'un görüntülenmesi Şekil 4.36. Testin sonucu, "ROC" sekmesi ROC sekmesine bakıldığında modelde yapılabilecek olası değişiklikler görülebilir. ROC grafiği, yapılan değişikliklerin nasıl sonuçlanacağının ve güvenilirlik matrisinin nasıl etkileneceğinin görülebilmesini sağlar [11]. Modelde istenilen, iyi huylu kanser hücresi olan yani "2" değerini alan verilerin tahmininin mümkün olduğunca doğru 39 yapılmasıdır. Bu yüzden güvenilirlik matrisinde ilgili alanda yer alan sayının yüksek olması gerekir. Şekil 4.37. Testin sonucu, "Lift" sekmesi, Cumulative Lift Chart "Lift" sekmesinde, modelin lift hesaplarının iki farklı gösterilişi yer alır. "The Cumulative Positive Cases" grafiği genel olarak lift grafiği olarak düşünülür. ODM modeli test tablosuna uygular ve kayıtların gerçek değerleri ile tahmini değerlerini bir araya getirir. Tahmin değerlerini, olasılıklarına göre azalan şekilde sıraladıktan sonra bu sıralı listeyi eşit parçalara böler (varsayılan olarak 10 parça) ve her bir parçada yer alan doğru tahminleri sayar [11]. Bu test sonucu, hangi yüzdelik dilimdeki iyi huylu kanser verileri SONUC değerlerinin daha iyi tahmin edildiğini göstermektedir. Örneğin ilk %20'lik dilim için lift değeri 1.63'tür. Yani model, bu aralıkta kalan hedef değerlerini, veriden alınacak rastgele bir gruba göre 1.63 kat daha iyi ve doğru tahmin etmektedir. Lift grafiği, modelin etkinliğinin önemli bir ölçüsüdür. 40 Şekil 4.38. Testin sonucu, "Lift" sekmesi, Cumulative Positive Cases Chart "Test Settings" bölümünde, şekilde görüldüğü gibi modelle ilgili bilgiler yer almaktadır. Buradan cost matrix de görüntülenebilir. Şekil 4.39. Testin sonucu, "Test Settings" sekmesi "Task" sekmesinde modelin adı, oluşturulma tarihi, kullanılan tablo gibi bilgiler aşağıdaki gibi görüntülenmektedir. 41 Şekil 4.40. Testin sonucu, "Task" sekmesi 4.6.2. Modelin Uygulanması Bu bölümde veri madenciliği probleminin son adımı olarak bir önceki adımda elde edilen modelin yeni veri kümesine uygulanması adımları verilecektir. Bu aşamada oluşturulan model kullanılarak tahminleme yapılır. Tahminleme yapılabilmesi için hazırlanmış bir model ve kurgulanmak için hazır bir senaryoya ihtiyaç vardır. Örneğin, hastanın verileri ile kanser olup olmadığı düşündüğümüzde, kanser riski üzerine hazırlanmış bir model vardır. Şekil 4.41. ODM'de modelin uygulanması 42 Şekil 4.42. Uygulama 1. aşama, uygulama yapılacak modelin seçimi Yukarıdaki ekranda daha önce oluşturulan hangi modelin uygulamasının yapılacağı, aşağıdaki ekranda ise hangi veriye uygulanacağı seçilmektedir. Bu tablo, "Data Transform-Split" yoluyla oluşturulmuş olan ve bütün verinin %40' ını içeren test tablosudur. Şekil 4.43. Uygulama 2. aşama, uygulama yapılacak tablonun seçimi 43 Şekil 4.44. Uygulama 3. aşama, sonuç tablosunda gösterilecek sütunların seçimi Şekil 4.45. Uygulama 4. aşama, tahmini yapacak olan aktivitenin seçimi 44 Şekil 4.46. Uygulama 5. aşama, tahmin yönteminin seçimi Şekil 4.47. Uygulama 6. aşama, aktivitenin isminin belirlenmesi 45 Şekil 4.48. Uygulama sürecinin son hali Burada sonuç ekranından "Result"a basılarak elde edilen sonuçlar görülebilir. Şekil 4.49. Uygulama sonuç tablosu Sonuç ekranında, görülmesi istenerek seçilen sütunların yanısıra, tahmin (prediction) ve bu tahminin gerçekleşme olasılığı (probability) olmak özere iki ek sütun yer almaktadır. Burada daha önceden sonuçları varolan bir veri kümesi üzerinde uygulama gerçekleştirildiği için, hem tahmin hem de gerçekte hastanın kanser durumu (SONUC) görülebilmektedir. 46 5. SONUÇ Aşağıda sonuç olarak verilen tüm ekran çıktılarında, tahminleri “Prediction” sütununda, tahminlerin olma olasılığı ise “Probability” sütununda görülmektedir. Diğer sütunlar ise girdi verilerinde de bulunan ve karşılaştırma için buraya da dahil edilen sütunlardır. Şekil 5.1. Uygulama sonucu Uygulama sonucu, sayfanın sağ üst köşesinde yer alan “Export” tuşuna basılarak dışarı aktarılıp Excel tablosuna dönüştürülerek incelenmiştir. Lift sekmesinde anlatıldığı gibi bu tablo “Probability” sütununa göre en yüksek olasılık değerinden başlayarak azalan şekilde sıralanmıştır. Ardından bu tablo, 10 eşit parçaya bölünerek inceleme kolaylığı sağlanmıştır. Buna göre ilk %60'lık bölümde, belirgin bir şekilde iyi huylu kanser verileri tahminine ağırlık verildiği gözlemlenmiştir. İlk %60'lık kısımda iyi huylu kanser verileri tahmininin doğruluğu yaklaşık olarak %100'dür. Bahsi geçen dilimdeki en yüksek olasılık değeri 0.9999, en düşük olasılık değeri 0.9928'dir. Bu değerler, yukarıdaki şekilde gösterilmiştir. Uygulama sonucunun son %40'lık dilimi incelendiğinde ise kötü huylu kanser verileri tahminine ağırlık verildiği gözlemlenmiştir. Son %40'lık dilimde kötü huylu kanser verileri tahmininin doğruluğu %100'dür. Bahsi geçen dilimdeki en yüksek olasılık değeri 0.9928, en düşük olasılık değeri 0.7213'tür. 47 Bunun dışında aynı veri grubu analiz işleminden geçirildikten sonraki sonuç verileri incelenmiştir. Testin Sonucu, “Accuracy” Sekmesi tıklandığında, modelin test tablosuna uygulandığında elde edilen sonucun doğruluk oranları görüntülenir. Tahmin edilmek istenen hedef sütunundaki gerçek değerler bilinmektedir, böylece modelin yaptığı tahminler gerçek değerlerle karşılaştırılabilir. Modelde, SONUC değeri “2” olan 129 kayıt vardır ve model bunların %96.9' unu doğru olarak tahmin etmiştir. Aynı şekilde SONUC değeri “4” olan 82 kayıttan %96.34' ünün tahmini doğru olarak yapılmıştır. Şekil 5.2. Modelin doğruluk tablosu Modelde gerçek sonucu 2 yani iyi huylu olan kanser verisi sayısı 129 iken yapılan tahmin 125 veri doğru olarak sınıflandırılmıştır. Yanlış sınıflandırılan 4 veri aslında iyi huylu kanser olmasına rağmen sınıflandırma işlemi bu verileri kötü huylu kanser verisi grubu içinde zannetmiştir. Diğer veri türü olan kötü huylu kanser verisinin sayısı 82 iken bunun 81 tanesini doğru sınıflandırılmıştır. Yanlış sınıflandırılan 1 veri aslında kötü huylu kanser verisi olmasına rağmen sınıflandırma işlemi bu veriyi iyi huylu kanser verisi grubuna dahil etmiştir. Elde edilen sonuçlar gerçek kanser verileri olduğu için modelde bulunan öznitelikler sınıflandırmanın başarısını artırmıştır. Eldeki özniteliklerden sadece id bilgisi algoritmaya dahil edilmemiştir. Benzer bir durum diğer modellemeler için uygulanırsa gereksiz öznitelik bilgisi başarıyı olumsuz etkiler. 48 KAYNAKLAR [1] Frawley W. J., Shapiro G. P., Matheus C. J., 1992. Discovery in Databases: An Overview, AI Magazine, 13-3, 57-70. [2] Berry J. A., Linoff G., 1997. Data mining techniques for marketing, sales and customer support, John Wiley & Sons Inc., New York. [3] Holshemier M., Siebes A., 1994. Data mining http://www.pcc.qub.ac.uk [4] Cabena P., Hadjnian P., Stadler R., 1998. Discovering data mining from concept to implementation, Prentice Hall PTR, NJ. [5] Christen, P., 2005. A very short introduction to data mining, Lecture Notes, http ://www.datamining.anu.edu.au. [6] Dilly R., 1995. Data Mining, An introduction Student Notes, http://www.pcc.qub.ac.uk/tec/courses/datamining/stu_notes/dm_book_ 1.html. [7] Özkan, Y., Veri Madenciliği Yöntemleri, p.41. [8] Baykasoğlıı A., 2005. Veri madenciliği ve çimento sektörüne bir uygulama, Akademik Bilişim Konferansı, pp.82-83, Gaziantep Üniversitesi, Gaziantep. [9] http://www.oracle.com/global/tr, ziyaret tarihi 22.04.2012. [10] http://www.infora.com.tr/veri_temizleme.html, ziyaret tarihi 29.04.2012. [11] ORACLE CORPORATION, 2006. Oracle 10g Release 2 Data Mining Tutorial, pp. 78, 81, 82, 83, 84, 85, 86, 96. 49 TEŞEKKÜR Tez çalışmam boyunca değerli yardım ve katkılarıyla beni yönlendiren, sabır ve özveriyle bana destek olan, kıymetli tecrübelerinden faydalandığım danışman hocam Yaşar DAŞDEMİR’e sonsuz teşekkürlerimi sunarım. 50 ÖZGEÇMİŞ 1986 yılında Diyarbakır’da doğdum. Diyarbakır’da bulunan Fatih İlköğretim Okulunu, Birlik Lisesini bitirdim. 2006 yılında girdiğim Dicle Üniversitesi Eğitim Fakültesi Fizik Öğretmenliği bölümünü 2 yıl okuduktan sonra , 2008 yılında Mustafa Kemal Ünivetsitesi Mühendislik Fakültesi Bilgisayar Mühendisliğine yerleştim. 2005 yılından beri B sınıfı sürücü ehliyetim var. 51