oracle data mıner

advertisement
İ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
 PB  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 
Download