İSTANBUL TEKNİK ÜNİVERSİTESİFEN EDEBİYAT FAKÜLTESİ MATEMATİK MÜHENDİSLİĞİ PROGRAMI “ORACLE DATA MINER” İLE MANTARLARIN ZEHİRLİLİĞİ ÜZERİNE BİR VERİ MADENCİLİĞİ UYGULAMASI BİTİRME ÖDEVİ Özge KAPLAN 090090430 Gizem GÖZEN 090090432 Teslim Tarihi:17.05.2013 Tez Danışmanı: Yar. Doç. Dr. Ahmet KIRIŞ MAYIS 2013 ÖNSÖZ Bitirme projemizi hazırlamamızda her zaman yanımızda olup desteğini esirgemeyen Sayın Hocamız Yar. Doç. Dr. Ahmet KIRIŞ’ a, güven ve sevgisini her zaman hissettiğimiz, sıkıntılarımızda yanımızda olan ailelerimize ve başta bilgisi ile Ece Hazal AYDIN ve manevi desteği ile Fulden KOÇ olmak üzere yanımızda olan arkadaşlarımıza en içten teşekkürlerimizi sunarız. Mayıs-2013 Özge KAPLAN Gizem GÖZEN ii İÇİNDEKİLER Sayfa No ÖZET v 1.GİRİŞ ....................................................................................................................... 1 2.VERİ MADENCİLİĞİ ........................................................................................... 2 2.1. Tanım................................................................................................................. 2 2.2. Gelişim Süreci ................................................................................................... 3 2.3. Kullanım Alanları.............................................................................................. 3 2.4. Veri Madenciliği Süreci .................................................................................... 3 2.4.1. Veri Temizleme .......................................................................................... 3 2.4.2. Veri Bütünleştirme...................................................................................... 3 2.4.3. Veri İndirgeme............................................................................................ 4 2.4.4. Veri Dönüştürme......................................................................................... 4 2.4.5. Veri Madenciliği Algoritmasının Uygulanması ......................................... 4 2.4.6.Sonuçları Sunum Ve Değerlendirme ........................................................... 4 2.5. Veri Madenciliği Yöntemleri ............................................................................ 4 2.5.1. Sınıflandırma .............................................................................................. 4 2.5.2. Kümeleme................................................................................................... 4 2.5.3. Birliktelik Kuralları..................................................................................... 5 3.SQL DEVELOPER VE ODM ............................................................................... 6 3.1. Bağlantı ............................................................................................................. 6 3.1.1. Veri Madenciliği İçin Bağlantı ................................................................... 8 3.2. Uygulamalar .................................................................................................... 10 3.2.1. Veri Aktarımı............................................................................................ 10 3.2.2. Veri Ayırma .............................................................................................. 10 3.2.3. Nitelik Önemliliği ..................................................................................... 11 4.KULLANILAN YÖNTEMLER .......................................................................... 12 4.1. Naive Bayes..................................................................................................... 12 iii 4.1.1. Tek Boyutlu Naive Bayes Örneği............................................................. 16 4.1.2. İki Boyutlu Naive Bayes Örneği............................................................... 18 4.2. Karar Ağaçları ................................................................................................. 19 4.3. Karar Destek Vektörleri .................................................................................. 20 5.UYGULAMA VE SONUÇLAR........................................................................... 23 5.1. Veri Tanımı ..................................................................................................... 23 5.2. Model Oluşturma............................................................................................. 24 5.2.1. Verinin Veri Tabanına Aktarılması .......................................................... 24 5.2.2. Verinin Ayrılması ..................................................................................... 24 5.2.3. Sınıflandırma ............................................................................................ 24 5.3. Modelin Uygulanması ..................................................................................... 28 5.3.1. Uygulama.................................................................................................. 28 5.3.2. Sonucun Tablo İle Gösterilmesi ............................................................... 30 5.4. Sonuç Değerlendirmesi ................................................................................... 31 6.KAYNAKLAR ...................................................................................................... 32 iv ÖZET Bu projede mantarların zehirliliği üzerine bir veri madenciliği çalışması yapılmıştır. Bu çalışmanın amacı mantarların belirli özelliklerine göre zehirliliklerinin araştırılmasıdır. Bunun için gerçek verilerin bulunduğu bir internet sitesinden [1] “Agaricus-lepiota” verileri alınmış ve sınıflandırma modeline uygun olarak tablo haline getirilmiştir. Sonuçlara ulaşılması için sınıflandırma algoritmalarından “Naive Bayes”, “Decision Tree” ve “Support Vector Machine” kullanılmıştır. Bu projeyi gerçekleştirmek için Oracle 11g R2 sürümü ve SQL Developer paket programı kullanılmıştır. Bu program sayesinde tablo haline getirilen veriler SQL Developer’a aktarılmış ve “Navie Bayes”, “Support Vector Machine” ve “Decision Tree” modelleri uygulanmıştır. Uygulanan modellerde amaçlanan, bulunan tahminlerle doğruya en yakın sonuçlara ulaşabilmektir. Bu tahminler sonuçların daha kolay yorumlanmasına yardımcı olmuştur. v 1.GİRİŞ Geçmişten günümüze teknolojinin gelişmesiyle bilgisayar ortamında tutulan verilerin sayısında hızlı bir artış gözlemlenmektedir. Bu verilerin düzenlenmesi ve daha yararlı bir şekilde kullanılması için bazı yöntemler geliştirilmiştir. Bu yöntemlerden biri de veri madenciliğidir. Veri madenciliği bilgisayar ortamında tutulan çok sayıdaki verinin gelecekle ilgili tahminlerinde kullanılır. Bu yöntem günümüzde tarım sanayi ticaret gibi birçok sektörde kullanılmaktadır. Bu proje, mantarların koku, popülasyon, habitat, çürüklük, şapka şekli gibi özellikleri ile geçmiş yıllardaki zehirlilik verisi üzerine bir model oluşturulmasını ve herhangi bir mantarın zehirlilik tahmininde kullanılan veri madenciliği uygulamasını kapsamaktadır. Bu tezde herhangi bir mantarın zehirlililiğinin belirlenmesinde uygulanan aşamalar anlatılmaktadır. 1 2.VERİ MADENCİLİĞİ 2.1. Tanım Veri Madenciliği, veri ambarlarında tutulan çok çeşitli verilere dayanarak daha önce keşfedilmemiş verileri ortaya çıkarmak, bunları karar vermek ve gerçekleştirmek için kullanma sürecidir. Bu tanımdan yararlanarak veri madenciliğinin aynı zamanda bir istatistiksel süreç olduğunu da söylemek mümkündür [2]. Veri Madenciliği büyük ölçekli veriler arasından bilgiye ulaşmak için kullanılan bir yöntemdir. 2.2. Gelişim Süreci İnsanoğlu geçmişten bugüne her zaman verileri yorumlayıp bilgi edinmeye çalışmıştır ve bunun için çeşitli donanımlar oluşturmuştur. Bu donanımlar bilginin taşınmasını sağlamıştır. Zamanla her alanda bilgi toplanmaya başlanmış ve kronolojik olarak gelişimi Şekil 2.1 [3]’ de özetlenmiştir [4]. Şekil 2.1 Veri madenciliğinin tarihsel gelişimi [3] 2 2.3. Kullanım Alanları Büyük hacimde veri bulunan her yerde veri madenciliği kullanmak mümkündür. Günümüzde karar verme sürecine ihtiyaç duyulan birçok alanda veri madenciliği uygulamaları yaygın olarak kullanılmaktadır. Örneğin pazarlama, biyoloji, bankacılık, sigortacılık, borsa, perakendecilik, telekomünikasyon, genetik, sağlık, bilim ve mühendislik, kriminoloji, sağlık, endüstri, istihbarat vb. birçok dalda başarılı uygulamaları görülmektedir. Son 20 yıldır Amerika Birleşik Devletleri’nde çeşitli veri madenciliği algoritmalarının gizli dinlemeden, vergi kaçakçılıklarının ortaya çıkartılmasına kadar çeşitli uygulamalarda kullanıldığı bilinmektedir. Kaynaklar incelendiğinde veri madenciliğinin en çok kullanıldığı alan olarak tıp, biyoloji ve genetik görülmektedir [3]. 2.4. Veri Madenciliği Süreci Veri madenciliği süreci 6 adımdan oluşmaktadır: veri temizleme, veri bütünleştirme, veri indirgeme, veri dönüştürme, veri madenciliği algoritmasını uygulama, sonuçları sunum ve değerlendirme. 2.4.1. Veri Temizleme Veri tabanında yer alan hatalı verileri temizlemek, eksik verileri düzenlemek için yapılan işlemler bütünüdür. 2.4.2. Veri Bütünleştirme 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 [5]. 3 2.4.3. Veri İndirgeme Veri madenciliği uygulamalarının sonuçlarına güveniliyorsa veri ya da değişkenlerin sayısı azaltılabilir. 2.4.4. Veri Dönüştürme Kullanılacak modele göre verinin yapısının korunup şeklinin değiştirilmesidir. 2.4.5. Veri Madenciliği Algoritmasının Uygulanması Veri hazırlandıktan sonra gerekli olan algoritmaların uygulanmasıdır. 2.4.6. Sonuçları Sunum Ve Değerlendirme Algoritmalar uygulandıktan sonra sonuçların değerlendirilmesi ve sunulmasıdır. 2.5. Veri Madenciliği Yöntemleri 2.5.1. Sınıflandırma 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. Sınıflandırma yöntemi yeni bir durum meydana geldiğinde karar verilmesine yardımcı olur. Bu yüzden sınıflandırma yönteminde en çok kullanılan teknik karar ağaçlarıdır. Bunun dışında lojistik regresyon, diskriminant analizi gibi teknikler de kullanılır. 2.5.2. Kümeleme Verilerin kendi aralarındaki benzerliklerin göz önüne alınarak gruplandırılması işlemidir. Kümeleme yöntemlerinin çoğu veri arasındaki uzaklıkları kullanır. Hiyerarşik Kümeleme yöntemleri en yakın komşu algoritması ve en uzak komşu algoritmasıdır. Hiyerarşik olmayan kümeleme yöntemleri arasında k-ortalamalar yöntemi sayılabilir. Uygulamada çok sayıda kümeleme yöntemi kullanılmaktadır. Bu yöntemler, değişkenler arasındaki benzerliklerden ya da farklılıklardan yararlanarak bir kümeyi alt kümelere ayırmakta kullanılmaktadır. 4 Hangi tekniğin kullanılacağı küme sayısına bağlı olmakla birlikte her iki tekniğin beraber kullanılması çok daha yararlıdır. Böylece hem sonuçları hem de iki tekniğin hangisinin daha uygun sonuçlar verdiğini karşılaştırmak mümkün olmaktadır. Kümeleme analizinin amacı, gruplanmamış verileri benzerliklerine göre sınıflandırmak ve araştırmacıya özetleyici bilgiler elde etmede yardımcı olmaktır. Kümeleme analizinin uygulanabilmesi için verilerin normal dağılımlı olması varsayımı olmakla birlikte, bu varsayım teoride kalmakta ve uygulamalarda göz ardı edilmektedir. Sadece uzaklık değerlerinin normal dağılıma uygunluğu ile yetinilmektedir [5]. 2.5.3. Birliktelik Kuralları Veri tabanı içinde yer alan kayıtların birbiriyle olan ilişkilerini inceleyerek, hangi olayların eş zamanlı olarak birlikte gerçekleşebileceklerini ortaya koymaya çalışan veri madenciliği yöntemleridir. Özellikle pazarlama alanında uygulanmaktadır (Pazar sepet analizleri). Bu yöntemler birlikte olma kurallarını belirli olasılıklarla ortaya koyar. Birliktelik çözümlemelerinin en yaygın uygulaması perakende satışlarda müşterilerin satın alma eğilimlerini belirlemek amacıyla yapılmaktadır. Müşterilerin bir anda satın aldığı tüm ürünleri ele alarak satın alma eğilimini ortaya koyan uygulamalara ”Pazar sepet çözümlemesi” denilmektedir [5]. 5 3. SQL DEVELOPER VE ODM Oracle Data Miner (ODM) ile yapılan veri madenciliği işlemleri şimdi Oracle 11g R2 sürümünün desteklediği SQL Developer içine gömülü ODM ile yapılmaktadır. Uygulamaya başlamadan önce sunucu üzerine Oracle 11g R2, Oracle veritabanı SQL Developer programını içermediği için ayrı olarak istemci üzerine ise SQL Developer kurulmuştur. 3.1. Bağlantı SQL Developer ile bağlantı kurabilmek için öncelikle arşivden çıkarılan klasörün içindeki sqldeveloper.exe isimli çalıştır dosyası açılır. Açılan ekranda “Connections” sekmesine sağ tıklandığında Şekil 3.1’ deki ekran çıkacaktır. Şekil 3.1. SQL Developer Bağlantı Oluşturma Ekranı “New Connection” sekmesi seçildikten sonra Şekil 3.2.’ deki işlemler yapılmalıdır. 6 Şekil 3.2. Şifre Giriş Ekranı Şekil 3.2’ deki “Password” kısmına Oracle 11g R2 sürümü kurulurken verilen şifre yazılır. Daha sonra bağlantıyı kontrol etmek için öncelikle “Test” butonuna basılır ve Şekil 3.3.’ teki “Connect” butonuyla bağlantı kurulur. Şekil 3.3. Bağlantı Kontrol Ekranı Bağlantı kurulduktan sonra Şekil 3.4.’ teki ekran çıkacaktır. 7 Şekil 3.4. Bağlantı Genel Görünümü 3.1.1. Veri Madenciliği İçin Bağlantı Şekil 3.5. Kullanıcı Oluşturma Ekranı Şekil 3.5’ te görülen “Create User” sekmesi seçilerek Şekil 3.6 elde edilir 8 Şekil 3.6. Kullanıcı Şifre Ekranı Şekil 3.6.’ da gerekli işlemler yapılarak veri madenciliği için gerekli olan bağlantı kurulur. Şekil 3.7. Kullanıcı Oluşturuldu Ekranı Şekil 3.7. görüldüğünde bağlantının başarıyla gerçekleştirildiği anlaşılır. 9 3.2. Uygulamalar SQL Developer’da kullanılan algoritmalar daha sonraki bölümde anlatılacaktır. Bunun dışında “import”, “split” ve “attribute importance” gibi işlemler de yapılabilir. 3.2.1. Veri Aktarımı Öncelikle SQL Developer’a aktarılacak veriye uygun tablo “New Table” sekmesi ile oluşturulur. Veri aktarma işlemi ile alınan veri tablo şeklinde SQL Developer’a aktarılır. Nasıl yapılacağı Şekil 3.8’ de belirtilmiştir: Şekil3.8. Veri Aktarım Ekranı 3.2.2. Veri Ayırma Daha sonraki bölümlerde oluşturulacak modeli “Build” ve “Test” şeklinde ayırmada kullanılır. SQL komutu yardımı ile bu işlem gerçekleştirilir. Şekil 3.9. ‘da bu komut görülmektedir. 10 Şekil 3.9. Veri Ayırma Komut Ekranı Kırmızı ile gösterilenler oluşturulan tabloların isimleridir ve isteğe göre değiştirilebilir. 3.2.3. Nitelik Önemliliği Hedef verinin tahmin edilmesinde etkili olan veriye ait niteliklerin bulunması işlemidir. Bu işlem sayesinde tahminin doğruluk oranı artmaktadır. Güvenilirlik açısından bu işlemin yapılması önemlidir. Bu işlem Şekil 3.10.’ daki gibi yapılır ve sonuçlar elde edilir. Şekil 3.10. “Attribute Importance” Ekranı 11 4. KULLANILAN YÖNTEMLER 4.1. Naive Bayes “Naive Bayes” her kriterin sonuca olan etkilerinin olasılık olarak hesaplanması temeline dayanmaktadır. Data Mining işleminin açıklanmasında kullanılan örneklerden biri tenis maçıdır. Bu örnekte tenis maçının oynanıp oynanmamasına etki eden bilgiler bulunmaktadır. Ancak bu bilgiye göre tenis maçının oynanması veya oynanmaması durumu kaydedilirken o anki hava durumu, sıcaklık, nem ve rüzgar durumu bilgileri de alınmış olsun. Bu bilgiler değerlendirildiğinde varsayılan tahmin yöntemleri ile hava bugün rüzgarlı tenis maçı bugün oynanmaz şeklinde kararlar verilmektedir. Ancak Data Mining bu kararların tüm kriterlerin etkisi ile verildiği bir yaklaşımdır. Dolayısıyla öğrenilecek sisteme bugün hava güneşli, sıcak, nemli ve rüzgar yok şeklinde bir bilgi verildiğinde sistem eğitildiği daha önce gerçekleşmiş istatistiklerden faydalanarak tenis maçının oynanma ve oynanmama ihtimalini hesaplar ve tahminini bildirir [6]. Veri madenciliği uygulanacak olan veri kümesi aşağıda gösterilen tablonun formatındadır. Tabloda her satır (her kayıt) bir vektör ( xi ) olarak düşünülür, xi vektörünün j. elemanı i. kaydın A j sütunundaki değerine karşı gelir. Son sütun (B) yani y vektörü, veri madenciliği ile tahmin edilmek istenen hedef özelliktir. Dolayısıyla n kayıt ve (m+1) sütundan oluşan bir tabloda her biri m boyutlu n tane belirleyici xi vektörü ve bir tane hedef sütun (B), yani y vektörü vardır. 12 Şekil 4.1. : Bir veri kaydı örneği Naive Bayes yöntemi ile sınıflandırma koşullu olasılık hesabına dayanmaktadır. Şekil 4.1’ de görüldüğü üzere tüm değerleri belirli geçmiş bir veri kümesinde, B yani sonuç sütunu, diğer Ai , (i 1,..., m) sütunlarına P ( B b j | Ai aik ,...(i 1,..., m)) , olasılıkları hesaplanır, bağlı kabul burada edilerek, j 1,..., s ve k 1,..., mi dir. Bu ifade ile, her biri mi tane farklı gruptan oluşan Ai sütunları aik değerlerini aldıklarında, bu Ai sütunlarına bağlı olarak, B sütununda bulunan s tane farklı grubun b j değerlerinden her birini alma olasılıkları hesaplanmaktadır. Geçmiş veri kümesi yardımıyla hesaplanan bu olasılıklar, yeni gelecek verinin hangi gruba dahil edileceğinin, yani B sütununun tahmininde kullanılacaktır. Konuyu anlaşılır kılmak için, tahmin edici sütun önce bir tane, A1, sonra iki tane, A1, A2 alınarak, B sütununun bunlara bağlı olasılıkları hesaplanarak problem basitleştirilmiş daha sonra ise m sütun alınarak problem genelleştirilmiştir. Öncelikle koşullu olasılık kavramının açıklanması gerekmektedir. A ve B iki olay olmak üzere, bu olayların olma olasılıkları P ( A) ve P ( B ) ile verilir. Eğer A ve B olaylarının gerçekleşmesi birbirine bağlı değilse, bu iki olayın birlikte olma olasılığı 13 (4.1) ile verilir. Örneğin A olayı, o gün havanın yağmurlu olması ve B olayı ise atılan bir madeni paranın yazı gelme olasılığı ise, bu iki olay birbirinden bağımsızdır ve bu iki olayın birlikte olma olasılıkları her bir olayın olma olasılıklarının çarpımına eşittir. Eğer A ve B olayları birbirine bağlı ise, bu iki olayın birlikte olma olasılıkları; A’ nın olma olasılığı ile A’ dan sonra B’ nin olma olasılığının çarpımı ile yani (4.2) veya B’ nin olma olasılığı ile B’ den sonra A’ nın olma olasılığının çarpımı ile yani P ( A, B ) P ( B) P( A | B) (4.3) ile verilir. Dolayısıyla buradan (4.2) ve (4.3) denklemleri birbirine eşitlenerek, A olayından sonra B olayının olma olasılığı P( B | A) P( B ) P ( A | B) P( A) (4.4) ile verilir. Örneğin A olayı havanın yağmurlu olması, B olayı ise Ali’ nin balığa çıkma olayı ise, B olayının A olayına bağlı olduğu açıktır ve A olayından sonra B olayının olma olasılığı yani hava yağmurlu iken Ali’ nin balığa çıkma olayı (4.4) ifadesiyle hesaplanır. Bir olayın olması ve olmaması olasılıkları toplamı P ( B) P( B ) 1 dir. Burada “ ” üst indisi B olayının değilini göstermektedir. Dolayısıyla Ali hava yağmurlu iken balığa çıktığı gibi, yağmur yağmazken de balığa çıkabilir, yani bir B olayına bağlı olarak A olayının olma olasılığı P( A) P( A, B) P( A, B ) P( B) P( A | B) P( B ) P ( A | B ) (4.5) şeklinde verilir. Bu ifade, (4.4)’ te kullanılırsa, P( B | A) P ( B ) P( A | B) P( B ) P ( A | B) P( B ) P ( A | B ) (4.6) elde edilir. Eğer A ve B olayları farklı değerler alabiliyorsa, örneğin Ali’ nin balığa çıkması (b1), işe gitmesi (b2), spor yapması (b3) gibi üç farklı B olayı varsa bu 14 durumda P( B b1 ) P( B b2 ) P( B b3 ) 1 dir. (4.5) ifadesine benzer bir şekilde bu kez A olayı r tane ayrık ak ve B olayı s tane ayrık b j değeri alıyorsa; s s j 1 j 1 P A ak P ( A ak ), ( B b j ) P B b j P ( A ak ) | ( B b j ) (4.7) elde edilir. (4.7) ifadesi (4.4)’ te yerine yazıldığında ise, P ( B b j ) | ( A ak ) P B b j P ( A ak ) | ( B b j ) (4.8) s P B b P A | (B b ) k k 1 k elde edilir. (4.8) ifadesinin A ve B olaylarının ikiden fazla değer alabildikleri durum için (4.6) ifadesinin genelleştirilmiş hali olduğu açıktır. Bu ifade Şekil.4.1’de verilen tabloda B sonuç sütununu tahmin edici tek bir A1 sütunu olması halinde B sütununun alabileceği değerlerin olasılıklarının hesaplanmasında kullanılır. Ancak gerçek hayatta sadece biri tahmin edici, diğeri hedef sütun olmak üzere iki sütun olması değil, hedef sütunu tahmin edici birçok sütun bulunması beklenir. Bu nedenle (4.8) ifadesinde A gibi sadece bir tahmin edici sütun yerine m tane Ai sütunu olduğunu ve bunların her birinin ri tane bağımsız değer alabildiği yani örneğin A1 sütunu r1 5 , A2 sütunu r2 3 farklı değer alabildiği düşünülür. Bu durumda (4.8) ifadesinde A yerine A1 , A2 ,..., Am gibi m tane olay alınırsa; P B b j | A1 a1 j1 , A2 a2 j2 ,..., Am amjm P B b j P A1 a1 j1 , A2 a2 j2 ,..., Am amjm | B b j s PB b P A a k 1 k 1 1 j1 , A2 a2 j2 ,..., Am amjm | B bk (4.9) ifadesi elde edilir. Tahmin edici her sütunun yani her Ai olayının birbirinden bağımsız olduğu kabulü yapılırsa, sonuç olarak m P( B bk | A1 a1 j1 , A2 a2 j2 ,..., Am amjm ) P( B bk ) P( Ai aiji | B bk ) i 1 m P B b P( Ai aiji | B br ) ( ) r r | br B i 1 (4.10) ifadesi elde edilir. Burada ji 1,..., mi ve k 1,..., s için bu olasılık değerleri 15 hesaplanmalıdır, ayrıca r | br B terimi hedef sütunun alabileceği tüm farklı değerler üzerinde toplam alınacağını ifade etmektedir. Aşağıda bu yönteme örnekler verilmiştir. 4.1.1. Tek Boyutlu Naive Bayes Örneği 210 bireyin bulunduğu tablo Şekil 4.2.’de verilmiştir. Bu tabloda eğitim durumları “lise”, “üniversite”, “yüksek lisans” ve bunlara göre bireylerin gelir düzeyleri “az”, “orta”, “yüksek” olarak belirtilmiştir. SQL Developer ile de bu olasılıklar hesaplanabilir fakat hesaplamanın sadece sonucunu gösterip, nasıl yapıldığına dair bilgi bulunmadığından tek boyutlu “Naive Bayes” hesaplamaları aşağıda verilecektir. Şekil 4.2. Tek Boyutlu Veri Tablosu Şekil 4.2.’ den alınan verilerden elde edilen her farklı gruptaki kişi sayısı Şekil 4.3’ te gösterilmiştir. Şekil 4.3. Kişi Sayısı Şekil 4.2. ve Şekil 4.3. yardımı ile aşağıdaki olasılıklar hesaplanacaktır. 80 38 P E L P G Y |E L 210 80 P E L|G Y 72 P E L 210 16 (4.11) Denklem 4.11. ‘deki gibi olasılıklar hesaplanır fakat sonuçlar Şekil 4.3’ ten daha kolay bir şekilde görülebilir. Buna göre diğer sonuçlar aşağıda verilmiştir. Şekil 4.4.’ te SQL Developer sonucu verilmiştir. Şekil 4.4. Tek Boyutlu “Naive Bayes” SQL Developer Sonucu 17 4.1.2.İki Boyutlu “Naive Bayes” Örneği 210 bireyin bulunduğu tablo Şekil 4.5’ te verilmiştir. Bu tabloda eğitim durumları “lise”, “üniversite”, “yüksek lisans” ,araba sahibi olma durumları “yok”, “ikinci el”, “sıfır” ve bunlara karşılık gelir düzeyleri “az”, “orta”, ve “yüksek” olarak belirtilmiştir. Bununla birlikte Şekil 4.5.’ ten alınan verilerden elde edilen her farklı gruptaki kişi sayısı Şekil 4.6.’ da gösterilmiştir. Şekil 4.5. İki Boyutlu Veri Tablosu Şekil 4.6. Kişi Sayısı Bu veri yardımı ile olasılıklar hesaplanacaktır. 18 Yukarıdaki formüllerde A:az, O:orta, Y:yüksek, L:lise, Ü:üniversite, YL:yüksek lisans, S:sıfır, İE:ikinci el, YK:yok olarak kısaltılmıştır. Olasılıklar el ile bu şekilde hesaplanır. Verilerin sayısı arttıkça olasılıkları bu şekilde hesaplamak zorlaşır. Bu sebeple SQL Developer kullanmak daha yararlı olacaktır. Karşılaştırma yapmak için Şekil 4.7. ‘deki sonuçlar kullanılabilir. Şekil 4.7. SQL Developer Sonucu 4.2. Karar Ağaçları İstatistiksel yöntemlerde veya yapay sinir ağlarında veriden bir fonksiyon öğrenildikten sonra bu fonksiyonun insanlar tarafından anlaşılabilecek bir kural olarak yorumlanması zordur. Karar ağaçlarında ise ağaç oluşturulduktan sonra, kökten yaprağa doğru inilerek kurallar yazılır. Bu şekilde kural çıkarma veri madenciliği çalışmasının sonucunun doğrulanmasını sağlar. Bu kurallar uygulama konusunda uzman bir karar vericiye gösterilerek sonucun anlamlı olup olmadığı denetlenebilir. Sonradan başka bir teknik kullanılacak bile olsa karar ağacı ile önce bir kısa çalışma yapmak, önemli değişkenler ve yaklaşık kurallar konusunda karar vericiye bilgi verir [2]. 4.3. Karar Destek Vektörleri 19 Sınıflandırma konusunda kullanılan oldukça etkili ve basit yöntemlerden birisidir. Sınıflandırma için bir düzlemde bulunan iki grup arasında bir sınır çizilerek iki grubu ayırmak mümkündür. Bu sınırın çizileceği yer ise iki grubun da üyelerine en uzak olan yer olmalıdır. İşte “SVM” bu sınırın nasıl çizileceğini belirler. Bu işlemin yapılması için iki gruba da yakın ve birbirine paralel iki sınır çizgisi çizilir ve bu sınır çizgileri birbirine yaklaştırılarak ortak sınır çizgisi üretilir. Örneğin Şekil 4.7’deki iki grup ele alınır: Şekil 4.7. Ortak Sınır Çizgisi Bu şekilde iki grup iki boyutlu iki düzlem üzerinde gösterilmiştir. Bu düzlemi ve boyutları birer özellik olarak düşünmek mümkündür. Yani basit anlamda sisteme giren her girdinin bir özellik çıkarımı yapılmış ve sonuçta bu iki boyutlu düzlemde her girdiyi gösteren farklı bir nokta elde edilmiştir. Bu noktaların sınıflandırılması demek, çıkarılmış olan özelliklere göre girdilerin sınıflanması demektir. Yukarıda her iki sınıf arasında oluşan aralığa tolerans demek mümkündür. Bu düzlemdeki her bir noktanın tanımı aşağıdaki gösterim ile yapılabilir: (4.12) Yukarıdaki gösterimi şu şekilde okumak mümkündür. Her x,c ikilisi için x vektör uzayımızdaki bir nokta ve c ise bu noktanın -1 veya +1 olduğunu gösteren değeridir. Bu noktalar kümesi i= 1 ‘den n’e kadar gitmektedir. Yani bu gösterim bir önceki şekilde olan noktaları ifade etmektedir. Bu gösterimin bir aşırı düzlem üzerinde olduğunu düşünülürse, bu gösterimdeki her noktanın : 20 wx – b = 0 (4.13) denklemi ile ifade edilmesi mümkündür. Buradaki w aşırıdüzleme dik olan normal vektörü ve x noktanın değişen parametresi ve b ise kayma oranıdır. Bu denklemi klasik ax+b doğru denklemine benzetmek mümkündür. Yine yukarıdaki denkleme göre b/||w|| değeri bize iki grup arasındaki mesafe farkını verir. Bu mesafe farkına daha önce tolerans ismi de verilmişti. Bu mesafe farkı denklemine göre mesafeyi en yüksek değere çıkarmak için yukarıdaki ilk şekilde gösterilen 0, -1 ve +1 değerlerine sahip 3 doğruyu veren denklemde 2/||w|| formülü kullanılmıştır. Yani doğrular arası mesafe 2 birim olarak belirlenmiştir. Bu denkleme göre elde edilen iki doğru denklemi: wx – b = -1 (4.14) wx + b = 1 (4.15) olarak bulunmuştur. Aslında bu denklemler doğruların kaydırılması sonucunda elde edilen en yüksek değerlerin bulunması işleminin bir sonucudur. Aynı zamanda bu denklemlerle problemin doğrusal ayrılabilir olduğu da kabul edilmiş olur. Tahmin edileceği üzere iki grup arasındaki aşırıdüzlemin tek yönlü olması mümkün değildir. Aşağıda bu duruma bir örnek gösterilmiştir: 21 Şekil 4.8. Aşırıdüzlem Yukarıdaki şekilde iki farklı hiperdüzlem (aşırı düzlem) olasılığı bulunmasına karşılık “SVM” yönteminde bu olasılıklardan en büyük toleransa sahip olanı alınır [7]. 22 5. UYGULAMA VE SONUÇLAR Bu proje kapsamında mantarların zehirliliği üzerine bir uygulama yapılmıştır. 5.1. Veri Tanımı İlk olarak veri [1]’den düzenlenmiş bir şekilde alınmıştır. “Agaricus-lepiota” mantar verisinde 8124 kayıt bulunmaktadır. Mantarların her biri koku, spor iz rengi, alt rengi, halka tipi, sapın üst ve alt halkası, sapın üst ve alt halkasının rengi, alt boyutu, popülasyon, çürüklük, habitat, sap kökü, alt açıklık, şapka şekli, halka sayısı, şapka rengi ve yüzeyi, örtü rengi ve tipi, alt parçası, sap şekli olmak üzere 22 özelliğe sahiptir. Bu özelliklere göre mantar verisine “Support Vector Machine”, “Naive Bayes” ve “Decision Tree” modelleri uygulanmış ve verinin zehirliliği tahmin edilmiştir. Mantar verisi Şekil 5.1. ‘de görülmektedir. Şekil 5.1. Mantar Verisi 23 5.2. Model Oluşturma 5.2.1. Verinin Veri Tabanına Aktarılması Tablo halinde bulunan mantar verisi Şekil 3.8.’ deki gibi SQL Developer’ a aktarılmıştır. Verinin aktarılmış hali Şekil 5.2.’ deki gibidir. Şekil 5.2. Aktarılmış Veri 5.2.2. Verinin Ayrılması Mantar verisi Şekil 3.9.’ daki komut yardımı ile “Build” ve “Test” verisi olarak ikiye ayrılmıştır. Verinin bu şekilde ayrılmasındaki amaç, daha sonraki bölümde anlatılacak olan sınıflandırma modeli uygulanırken kullandığımız verinin uygulamada kullanılacak olan veriden farklı olmasını sağlamaktır. Bu sayede uygulamanın güvenilirliği görülmüştür. 5.2.3. Sınıflandırma Bölüm 2.5.1. de anlatıldığı gibi sınıflandırma mantarın zehirlilik tahmininde kullanılan bir yöntemdir. Bu yöntemin uygulanması için öncelikle SQL Developer’ ın “Component Palette” bölümündeki “Workflow Editor” sekmesinden “Data Source” seçilir. Buradan Şekil 5.3.’ teki gibi Şekil 3.9.’.da oluşturulan mantarın “Build” verisi seçilir. 24 Şekil 5.3. Data Source Bu işlemden sonra “Explore Data” “Build” verisine bağlanır. Daha sonra Şekil 5.4.’ teki gibi “Class Build” bağlanır. Şekil 5.4. “Class Build” “Class Build” de sağ tıklanarak “Edit” butonuna basıldığında “SVM”, “DT” ve “NB” algoritmaları seçilir. Açılan ekranda otomatik ayar yapılması istenmediğinden “Auto” kutucuklarının işaretleri kaldırılır ve “Advanced” butonu seçilir. Bundan sonra çıkan ekran Şekil 5.5’ teki gibi olacaktır. 25 Şekil 5.5. Advanced Settings Burada “input” girdi seçimi önemlidir. Bölüm 3.2.3’ te anlatılan Nitelik Önemliliği’nden dolayı sadece hedef sütun için önem taşıyan sütunlar “input” girdi olarak seçilir. Bu işlem hedef tahmininin doğruluk oranını artırır. Şekil 5.5.’te görülen “Performance Settings” sekmesinden “Natural” seçimi yapılır. Bu işlemler her bir algoritma için ayrı ayrı yapılır. Daha sonra “Class Build” de sağ tıklanıp “Run” seçeneği seçilerek çalıştırılır. Çalıştırılma işleminin başarıyla sonuçlandığının anlaşılabilmesi için “Node”un sağ üst köşesindeki işaret kontrol edilir. Eğer işaret yeşilse “View Test Results” seçeneğiyle test sonuçları görülebilir ve bunların karşılaştırılması yapılabilir. 26 Şekil 5.6. “SVM” Test Sonucu Şekil 5.7. “DT” Test Sonucu 27 Şekil 5.8. “NB” Test Sonucu Şekil 5.6., 5.7., 5.8.’deki test sonuçları elde edilir. 5.3. Modelin Uygulanması 5.3.1. Uygulama Öncelikle bölüm 5.2.3.’te anlatıldığı gibi yeni bir “Data Source” seçilir. Bu kez “Edit” seçeneğinden mantarın “Test” verisi Şekil 5.9.’ daki gibi seçilir. Burada “Test” verisinin “Build” verisinden tamamen farklı olması gerekmektedir. 28 Şekil 5.9. Test Verisinin Seçilmesi “Test” verisi seçildikten sonra “Workflow Editor”den “Evaluate and Apply” sekmesinin içindeki”Apply” seçeneği seçilir. “Class Build” ve “Test” verisi “Apply”a bağlanır. Bağlandıktan sonra “Edit” seçeneğindeki “Data Columns” tan “Test” verisinin bütün sütunları Şekil 5.10.’ daki gibi seçilir. Şekil 5.10. Edit Apply Node Daha sonra “Apply”da “Run” seçeneği çalıştırılır. Başarılı bir şekilde çalıştığının anlaşılabilmesi için yine sağ üst köşedeki yeşil işaretin görülmesi gerekmektedir Bu işaret görüldükten sonra sağ tıklanarak sonuçlar Şekil 5.11.’deki gibi görülebilir. 29 Şekil 5.11. Uygulama Sonuç Ekranı Şekil 5.11.’ de kırmızı ile gösterilen sütun zehirlilik tahminlerini, mavi ile gösterilen ise olasılık sonuçlarını vermektedir. Burada da her bir algoritmanın tahmin ve olasılık sonuçları görülmektedir. 5.3.2. Sonucun Tablo ile Gösterilmesi İsteğe bağlı olarak sonuçlar ayrı bir tablo ile de gösterilebilir. Yeni bir sonuç tablosunun oluşturulabilmesi için “Workflow Editor” seçeneğinden “Create Table or View” seçilir ve akış şemasına eklenir. “Apply” yeni oluşturduğumuz tabloya bağlandıktan sonra tablonun üzerine tıklanarak çalıştırılır ve sonuç Şekil 5.12.’ deki gibi elde edilir. Şekil 5.12. Sonuç Ekranı 30 5.4. Sonuç Değerlendirmesi “Test” verisine “Support Vector Machine”, “Naive Bayes” ve “Decision Tree” modelleri uygulandığında aşağıdaki sonuçlar elde edilmiştir. Bu sonuçların doğruluk oranları bu modellerden hangileri uygulandığında daha güvenilir sonuçlar alınabileceğini göstermektedir. İncelene verinin “Test” olarak ayrılmış kısmına “Support Vector Machine” modeli uygulandığında toplam doğruluk oranı %99,8784’ tür. Zehirsiz olmasını doğru tahmin etme oranı %100 iken zehirli olmasını doğru tahmin etme oranı ise %99,749’ dur. “Naive Bayes” modeli uygulandığında toplam doğruluk oranı %98,9465’ tir. Bu model zehirsiz olmasını %98,9788 zehirli olmasını ise %98,9121 oranında doğru tahmin etmiştir. “Decision Tree” modelinin toplam doğruluk oranı ise %99,6759’ dur. Bu model zehirsizlikte %100, zehirlilikte ise %99,3305 oranında doğru tahminde bulunmuştur. Doğruluk oranlarına bakıldığında “SVM”,”NB” ve “DT” modellerinin 3ü de kullanılabilir. Bu yöntemlerden veri için en uygunu “SVM” modelidir. “Support Vector Machine” modelinde 2033 bilgi içeren “Test” verisinden yanlış sınıflandırmayı engellemek için olasılık oranları 0.7’ den büyük olanlar seçilmiştir. Olasılığı 0.7’ den büyük olan 1950 adet veri bulunmaktadır. Bunun sonucunda %100 doğru olarak sınıflandırılan mantar oranı %95 bulunmuştur. 31 6. KAYNAKLAR [1] http://archive.ics.uci.edu/ml/, Mayıs, 2013. [2] K. Yaralıoğlu, Veri Madenciliği, http://www.deu.edu.tr/userweb/k.yaralioglu, Mayıs, 2013. [3] S. Savaş, N. Topaloğlu, M. Yılmaz, 2012. Ver. Madenciliği ve Türkiye’ deki Uygulama Örnekleri, İstanbul Ticaret Üniversitesi Fen Bilimleri Dergisi, 21, 1-23. [4] H. Çıngı, Veri Madenciliğine Giriş, yunus.hacettepe.edu.tr/~hcingi, Mayıs, 2013. [5] E. Coşku, Veri Madenciliği, http://ab.org.tr/ab13/bildiri/175.pdf, Mayıs, 2013. [6] www.yazgelistir.com/makale/naivebayes-kullanarak_datamining_i, Nisan, 2013. [7] www.bilgisayarkavramlari.com/2008/12/01/svm, Mayıs, 2013. 32