T.C. ERCİYES ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ VERİ MADENCİLİĞİNDE GENETİK PROGRAMLAMA TEMELLİ YENİ BİR SINIFLANDIRMA YAKLAŞIMI VE UYGULAMASI Tezi Hazırlayan M. Burak TELCİOĞLU Tezi Yöneten Yrd. Doç. Dr. Lale ÖZBAKIR Endüstri Mühendisliği Anabilim Dalı Yüksek Lisans Tezi Ocak 2007 KAYSERİ ii TEŞEKKÜR Bu tezin hazırlanmasında bir çok değerli insanın katkıları olmuştur. Hepsine ayrı ayrı teşekkür etmek istiyorum. Bu tez çalışmasının başarı ile sonuçlanmasını sağlayan değerli danışmanım Yrd. Doç. Dr. Lale ÖZBAKIR’a tez çalışmam sırasında her türlü konudaki anlayışı, desteği, motivasyonu ve yardımları için minnettarlıklarımı belirtmek istiyorum. Tez çalışmam süresince her türlü yardımı ve desteği sağlayan değerli müdürüm Tuncer AKTAŞ’a sonsuz teşekkür ediyorum. Her türlü yardımlarından dolayı Araştırma Görevlisi Sinem KULLUK’a teşekkür ederim. Tez çalışmam sırasında, her zaman bana destek olan eşim Ayşe TELCİOĞLU’na her türlü anlayışı ve yardımı için teşekkür ederim. Hayatımın her aşamasında her türlü destek ve anlayışları ile yanımda olan sevgili annem ve babam Gülçin ve Mahmut TELCİOĞLU’na ve kardeşim Murat TELCİOĞLU’na anlayış ve desteklerinden dolayı sonsuz teşekkürlerimi iletmek istiyorum. iii VERİ MADENCİLİĞİNDE GENETİK PROGRAMLAMA TEMELLİ YENİ BİR SINIFLANDIRMA YAKLAŞIMI VE UYGULAMASI M. Burak TELCİOĞLU Erciyes Üniversitesi, Fen Bilimleri Enstitüsü Yüksek Lisans Tezi, Ocak 2007 Tez Danışmanı: Yrd. Doç. Dr. Lale ÖZBAKIR ÖZET Bu çalışmanın amacı veritabanlarında bulunan veri kümelerinin sınıflandırma sürecini mümkün olduğunca hızlı ve kolay biçimde tamamlayacak bir algoritma tasarlamaktır. Bu algoritmanın diğer çalışmalardan ayrılan iki önemli özelliği çoklu denklem programlama temelli bir kromozom yapısı kullanması ve genetik programlamanın uygunluk değerlendirme aşamasını evrimleştirdiği SQL cümleciklerini kullanarak başarmasıdır. Geliştirilen MEPAR-SQL algoritması çeşitli literatür ve gerçek veri kümelerine uygulanmış, deney tasarımında bulunan parametre düzeyleri kullanılarak bulunan sonuçlar iyi bilinen çeşitli geleneksel algoritmalar ile karşılaştırılmıştır. Karşılaştırma sonucunda MEPAR-SQL algoritması çok iyi sonuçlar bulmuştur. Anahtar Kelimeler: Veri madenciliği, sınıflandırma, genetik programlama, çoklu denklem programlama. iv A NEW GENETIC PROGRAMMING BASED CLASSIFICATION APPROACH IN DATA MINING AND APPLICATION M. Burak TELCİOĞLU Erciyes University, Graduate School of Natural and Applied Sciences M.Sc. Thesis, January 2007 Thesis Supervisor: Assist. Prof. Dr. Lale ÖZBAKIR ABSTRACT The aim of the study is, to design an algorithm that can complete a classification process of datasets resides in databases in a fast and easy manner. This algorithm differs from others by the two distinctions; this algorithm uses a multi expression programming based chromosome structure and it uses SQL scripts for fitness evaluation which is one of the steps of the genetic programming. MEPAR-SQL algorithm is applied to several literature and real datasets and the parameter levels which are found by experimental design are compared with several well known traditional algorithms. According to the comparison it is found that MEPAR-SQL algorithm shows good performance. Keywords: Data mining, classification, genetic programming, multi expression programming. v İÇİNDEKİLER KABUL VE ONAY....................................................................................................... i TEŞEKKÜR .................................................................................................................ii ÖZET ..........................................................................................................................iii ABSTRACT ................................................................................................................ iv ŞEKİLLER LİSTESİ .................................................................................................... x 1.BÖLÜM .................................................................................................................... 1 GİRİŞ ........................................................................................................................... 1 2.BÖLÜM .................................................................................................................... 3 GENEL BİLGİLER ...................................................................................................... 3 2.1. Veri Madenciliği .................................................................................................... 3 2.1.1. Veri Madenciliğine Giriş..................................................................................... 3 2.1.2. Veri Madenciliği Nedir?...................................................................................... 5 2.1.3. Veri Madenciliği Süreci ...................................................................................... 6 2.1.3.1. Problemin Tanımlanması.................................................................................. 7 2.1.3.2. Geçmiş Bilgiler ................................................................................................ 8 2.1.3.3. Veri Seçimi ...................................................................................................... 8 2.1.3.4. Veri Önişleme .................................................................................................. 9 2.1.3.5. Analiz ve Yorumlama....................................................................................... 9 2.1.3.6. Raporlama ve Kullanım.................................................................................. 10 2.1.4. Veri Madenciliğinin Görevleri........................................................................... 10 2.1.4.1. Sınıf Betimlemesi........................................................................................... 10 2.1.4.2. Birliktelik....................................................................................................... 11 2.1.4.3. Sınıflandırma.................................................................................................. 11 2.1.4.4. Tahmin........................................................................................................... 11 2.1.4.5. Kümeleme...................................................................................................... 12 2.1.4.6. Zaman Serileri Analizi ................................................................................... 12 2.1.5. Veri Madenciliğinde Kullanılan Algoritmalar.................................................... 12 2.1.5.1. Danışmansız Öğrenme Algoritmaları.............................................................. 13 2.1.5.1.1. K-Yol Kümeleme ........................................................................................ 13 2.1.5.1.2. Özdüzenleyici Haritalar (Self Organized Maps)........................................... 13 2.1.5.2. Danışmanlı Öğrenme Algoritmaları................................................................ 13 vi 2.1.5.2.1. Regresyon Modelleri ................................................................................... 13 2.1.5.2.2. K-En Yakın Komşu ..................................................................................... 15 2.1.5.2.3. Yapay Sinir Ağları....................................................................................... 16 2.1.5.2.3.1. Yapay Sinir Ağlarının Özellikleri ............................................................. 17 2.1.5.2.3.2. Yapay Sinir Ağlarının Yapısı.................................................................... 18 2.1.5.2.4. Karar Ağaçları............................................................................................. 19 2.1.5.2.5. Evrimsel Algoritmalar ................................................................................. 20 2.1.6. Veri Madenciliğinin Kullanım Alanları ............................................................. 21 2.1.7. Veri Madenciliğinde Yapılan Çalışmalar........................................................... 23 2.2. Sınıflandırma ....................................................................................................... 26 2.2.1. Sınıflandırmaya Giriş ........................................................................................ 26 2.2.2. Sınıflandırma Nedir? ......................................................................................... 27 2.2.3. Sınıflandırma Kuralları...................................................................................... 29 2.2.3.1. AQ (Ancestral Quest) Algoritması.................................................................. 30 2.2.3.2. CN2 Algoritması ............................................................................................ 31 2.2.3.3. ID3 Algoritması ............................................................................................. 32 2.2.3.4. C4.5 Algoritması............................................................................................ 32 2.3. Evrimsel Algoritmalar.......................................................................................... 33 2.3.1. Genetik Algoritmalar......................................................................................... 34 2.3.1.1. Genetik Algoritma Çeşitleri............................................................................ 35 2.3.1.2. Basit Genetik Algoritma İşleyişi..................................................................... 36 2.3.2. Genetik Programlama........................................................................................ 39 2.3.3. Evrim Stratejileri............................................................................................... 40 2.3.4. Evrimsel Programlama ...................................................................................... 41 2.4. Genetik Programlama........................................................................................... 42 2.4.1. Genetik Programlama ve Veri Sınıflandırma ..................................................... 43 2.4.2. Standart Genetik Programlama.......................................................................... 45 2.4.2.1. Hazırlık Adımları ........................................................................................... 45 2.4.2.1.1. Fonksiyon ve Terminal Seti ......................................................................... 46 2.4.2.1.2. Uygunluk Ölçümü ....................................................................................... 47 2.4.2.1.3. Kontrol Parametreleri .................................................................................. 47 2.4.2.1.4. Durdurma Kriteri......................................................................................... 48 2.4.2.2. Genetik Programlama Çalışma Adımları ........................................................ 48 vii 2.4.2.3. Standart Genetik Programlama Akış Diyagramı ............................................. 49 2.4.2.3.1. Başlangıç Popülasyonunun Oluşturulması ................................................... 50 2.4.2.3.2. Genetik Programlamanın Ana Nesil Döngüsü.............................................. 50 2.4.2.3.3. Mutasyon Operasyonu................................................................................. 51 2.4.2.3.4. Çaprazlama Operasyonu.............................................................................. 51 2.4.2.3.5. Çoğalma Operasyonu .................................................................................. 53 2.4.2.3.5. Mimari Değişim Operasyonu....................................................................... 53 2.4.3. Doğrusal Genetik Programlama......................................................................... 54 2.4.3.1. GEP ............................................................................................................... 55 2.4.3.1.1. GEP Akış Diyagramı................................................................................... 56 2.4.3.1.2. GEP Gen Yapısı .......................................................................................... 57 2.4.3.1.2.1 Açık Okuma Çatısı ve Genler .................................................................... 57 2.4.3.1.2.2 GEP Genleri .............................................................................................. 58 2.4.3.1.2.3 Çoklu Gen Kromozomları ......................................................................... 60 2.4.3.1.3. Seçim ve Replikasyon ................................................................................. 60 2.4.3.1.4. Mutasyon .................................................................................................... 61 2.4.3.1.5. Sıra Değişimi ve Sıralı Elemanların Eklenmesi............................................ 62 2.4.3.1.6. Çaprazlama ................................................................................................. 63 2.4.3.2. Çoklu Denklem Programlama......................................................................... 65 2.4.3.2.1. MEP Gösterimi............................................................................................ 66 2.4.3.2.2. MEP Gösterimi ile GP ve GEP Gösterimi Karşılaştırması ........................... 68 2.4.3.2.3. MEP Çaprazlama......................................................................................... 69 2.4.3.2.4. MEP Mutasyon............................................................................................ 71 2.4.3.2.5. Uygunluk Hesaplama Süreci........................................................................ 72 2.4.3.2.6. MEP Algoritması......................................................................................... 72 2.5. Veri Madenciliği ve İlişkisel Veritabanları ........................................................... 72 3.BÖLÜM .................................................................................................................. 74 YÖNTEM................................................................................................................... 74 3.1. MEPAR-SQL Algoritmasının Geliştirilmesi ........................................................ 74 3.1.1. Fonksiyon ve Terminal Kümeleri ...................................................................... 75 3.1.2. Başlangıç Popülasyonu...................................................................................... 78 3.1.3. Uygunluk Fonksiyonu ....................................................................................... 78 3.1.4. Genetik Operatörler........................................................................................... 79 viii 3.2. Yazılımın Kullanılması ........................................................................................ 82 3.2.1. Ön Gereksinimler.............................................................................................. 82 3.2.2. Yazılımın Çalıştırılması .................................................................................... 83 4.BÖLÜM .................................................................................................................. 94 BULGULAR VE YORUMLAR ................................................................................. 94 4.1. Test Problemleri................................................................................................... 95 4.2. Uygun Parametre Kümesinin Belirlenmesi ........................................................... 96 4.3. Analiz Sonuçları .................................................................................................. 96 4.3.1. Hepatitis Veri Kümesi Analiz Sonuçları ............................................................ 97 4.3.2. Adult Veri Kümesi Analiz Sonuçları ............................................................... 101 4.3.3. Iris Veri Kümesi Analiz Sonuçları................................................................... 102 4.3.4. Lymphograpy Veri Kümesi Analiz Sonuçları .................................................. 103 4.3.4. Zoo Veri Kümesi Analiz Sonuçları.................................................................. 104 4.3.5. Credit App Veri Kümesi Analiz Sonuçları....................................................... 105 4.3.6. ENDQ Veri Kümesi Analiz Sonuçları ............................................................. 106 4.4. Sonuçların Diğer Çalışmalar ile Karşılaştırması ................................................. 107 5. BÖLÜM ............................................................................................................... 109 SONUÇ VE ÖNERİLER .......................................................................................... 109 KAYNAKLAR......................................................................................................... 111 EKLER..................................................................................................................... 118 EK-1 ENDQ Veri Kümesi Hakkında Bilgiler............................................................ 118 EK-2. MINITAB Analiz Grafikleri ........................................................................... 119 EK-2.a. Adult Ana Etki Grafiği................................................................................. 119 EK-2.b. Adult Etkileşim Grafiği 1............................................................................. 119 EK-2.c. Adult Etkileşim Grafiği 2............................................................................. 120 EK-2.d. Adult Etkileşim Grafiği 3............................................................................. 120 EK-2.e. Creadit-App Ana Etki Grafiği ...................................................................... 121 EK-2.f. Credit-App Etkileşim Grafiği 1 .................................................................... 121 EK-2.g. Credit-App Etkileşim Grafiği 2.................................................................... 122 EK-2.h. Credit-App Etkileşim Grafiği 3.................................................................... 122 EK-2.i. Iris Ana Etki Grafiği ..................................................................................... 123 EK-2.j. Iris Etkileşim Grafiği 1 ................................................................................. 123 EK-2.k. Iris Etkileşim Grafiği 2 ................................................................................ 124 ix EK-2.l. Iris Etkileşim Grafiği 3 ................................................................................. 124 EK-2.m. Lymphography Ana Etki Grafiği ................................................................ 125 EK-2.n. Lymphography Etkileşim Grafiği 1.............................................................. 125 EK-2.o. Lymphography Etkileşim Grafiği 2.............................................................. 126 EK-2.p. Lymphography Etkileşim Grafiği 3.............................................................. 126 EK-2.q. Zoo Ana Etki Grafiği ................................................................................... 127 EK-2.r. Zoo Etkileşim Grafiği 1................................................................................ 127 EK-2.s. Zoo Etkileşim Grafiği 2................................................................................ 128 EK-2.t. Zoo Etkileşim Grafiği 3 ................................................................................ 128 EK-2.u. ENDQ Ana Etki Grafiği............................................................................... 129 EK-2.v. ENDQ Etkileşim Grafiği 1........................................................................... 129 EK-2.y. ENDQ Etkileşim Grafiği 2........................................................................... 130 EK-2.z. ENDQ Etkileşim Grafiği 3........................................................................... 130 EK-3. MEPAR-SQL Sonuç Çıktıları......................................................................... 131 EK-3.a Adult Veri Kümesi Sonuç Çıktısı .................................................................. 131 EK-3.b Credit-App Veri Kümesi Sonuç Çıktısı ......................................................... 131 EK-3.c Iris Veri Kümesi Sonuç Çıktısı...................................................................... 132 EK-3.d Lymphography Veri Kümesi Sonuç Çıktısı................................................... 132 EK-3.e Zoo Veri Kümesi Sonuç Çıktısı .................................................................... 133 EK-3.f ENDQ Veri Kümesi Sonuç Çıktısı ................................................................ 134 ÖZGEÇMİŞ.............................................................................................................. 135 1.BÖLÜM GİRİŞ Verilerin dijital ortamda saklanmaya başlanması ile birlikte, yeryüzündeki bilgi miktarının her 20 ayda bir kendini iki katına çıkardığı günümüzde veri tabanlarının sayısı da benzer, hatta daha yüksek bir oranda artmaktadır. Yüksek kapasiteli işlem gücünün ucuzlaması ile, veri saklama hem daha hızlı hem de kolay hale gelmiştir [1]. Veritabanları günümüzde terabyte – 1,000,000,000,000 byte’tan daha büyük veri, büyüklüklerine ulaşabilmektedir. Bu büyüklükteki veri yığınlarının içinde stratejik öneme sahip gizli bilgiler bulunabilmektedir [2]. Veritabanları değerli hazinelerdir. Bir veritabanı sadece veri saklayıp veri sağlamaz, aynı zamanda çok önemli olabilecek gizli değerli bilgiler de içerir. Bu bilim için yeni bir kanun olabilir, bir hastalığın tedavisi için yeni bir kavrayış olabilir veya milyon dolarlar kazandırabilecek yeni bir pazar eğilimi olabilir. Genelde verilerin analizi elle yapılır. Bir çok gizli ve fayda potansiyeli olan ilişkiler analist tarafından tanınmayabilir. Bugünlerde, bir çok organizasyon büyük miktarlarda veri üretme veya toplama kabiliyetindedir. Mevcut durumda analiz için elde edilebilecek veriler yalın insan aklının kapasitenin çok ötesine geçmiştir. İnsanoğlu bu sorunla başa çıkmak için bilgisayar gücünden faydalanmaya ihtiyaç duymaktadır. Veri madenciliği veya veritabanlarından bilgi keşfi, veritabanlarında gömülü olan altını almak için otomatikleştirilmiş veri eleme sürecidir [3]. Veri madenciliği terimi ile veritabanında bilgi keşfi terimlerinin birbirine yakın anlamları vardır. Veritabanında bilgi keşfi ile elde edilen desen alışılmamış , doğrudan hesaplamalarla elde edilemez ve nihayetinde insan tarafından anlaşılabilir olmalıdır. Veri madenciliği ise veri içinde yararlı desen bulmayı ifade eder. Veritabanında bilgi keşfi etkileşimli ve tekrarlı birkaç adıma sahip bir süreçtir. Veri madenciliği ise bu 2 adımlardan biridir. Veri madenciliği KDD sürecinin çekirdeği olduğu için bu iki terim birbirlerinin yerine kullanılabilmektedir [3]. Veri madenciliği, esas olarak veriden bilgi elde etmeyi içeren bir süreçtir. Temel fikir şudur; eğer keşfetme imkanı varsa gerçek-dünya veritabanları karar vermede kullanılacak faydalı ancak gizli bilgiler barındırmaktadır. Örnek olarak, bir şirketin geçmiş satışları hakkındaki veriler satışlarda hangi müşterinin hangi ürünü almaya eğilimi olduğu hakkında gizli bilgiler içerebilir. Bundan dolayı veriler analiz edilerek şirket satışlarını artırma potansiyeli olan bir bilgi keşfedilebilir [4]. Veri madenciliği, veri içerisindeki desenleri ve ilişkileri keşfetmek için çeşitli veri analiz araçlarını kullanarak geçerli tahminler yapmak için kullanılabilecek sürece denir [2]. Veri madenciliği, aslında disiplinler arası bir çalışma alanıdır. Bu alanda başta makine öğrenme ve istatistik olmak üzere ayrı araştırma alanlarından türetilmiş bir çok türde algoritma vardır. Bu algoritmalar veriden bilgi elde etmekte kullanılmaktadır [4]. 2.BÖLÜM GENEL BİLGİLER 2.1. Veri Madenciliği 2.1.1. Veri Madenciliğine Giriş Geçmişte veri madenciliği bilgi yönetimi veya bilgi mühendisliği olarak adlandırılırdı. 2000’li yıllara kadar daha çok yapay zeka alanında çalışan teorisyenler tarafından tartışılan, anlaşılması güç ve yabancı bir teknoloji idi [5]. Fayyad ve ark. [6] veri madenciliğini; kabul edilebilir etkinlik sınırlarına sahip bilgisayar tekniklerini ihtiva eden, veri üzerinden olağandışı örüntü ve model sıralamaları üreten süreç olarak tanımlanan veritabanlarından bilgi keşfi sürecinin bir adımı olarak tanımlamışlardır. Adriaans ve Zantige [7] ise bir çok araştırmacı tarafından kullanılan daha genel bir tanım kullanarak; veri madenciliğini verinin detayları arasında bilinmeyen örüntü ve eğilimler araştırma süreci olarak tanımlamışlardır. Son yıllarda bilgi toplama çok daha kolay hale gelmiştir, ancak eldeki bilgiler arasındaki ilgi parçacıklarını ortaya çıkarmak için ihtiyaç duyulan çaba özellikle büyük ölçekli veritabanlarında büyük artış göstermiştir [8]. Veri toplama ve depolama teknolojilerindeki hızlı artışı veritabanı, veri ambarı veya WWW gibi diğer depolama türlerindeki verilerin aşırı genişlemesine sebep olmuştur [9]. Buna karşılık bilim adamlarının, mühendislerin ve analistlerin sayısı değişmemektedir [1]. Örnek olarak; klinik tedavi alanında, büyüyen hacimli verilerden bilgi keşfetmede zorluklarla karşılaşılmaktadır. Bugünlerde gözlem altında bulunan hastaların fizyolojik parametrelerinin sürekli olarak toplanması devasa hacimlerdeki bilgilerin ortaya 4 çıkmasına sebep olmaktadır. Büyüyen miktarlardaki veri, elle analiz yapan tıp uzmanlarının görevlerini yapmalarını engellemektedir. Bir çok saklı ve potansiyel olarak faydalı ilişkiler analist tarafından fark edilememektedir [10]. Geleneksel teknikler kendi hipotezinizin doğruluğunu kanıtlamanıza izin verir. Şekil 2.1.’de görüldüğü gibi bütün ilişkilerin yaklaşık %5’i bu yolla bulunabilir. Veri madenciliği ise kalan %95’lik ilişkilere açılan bir kapıdır. Başka bir deyişle geleneksel teknikler veritabanlarına söz söyleyen bir insana benzetilirse, veri madenciliği tekniği veritabanını dinleyen bir insana benzetilebilir [11]. Geleneksel teknikler %5 Bilinen ilişkiler Veri Madenciliği %95 Saklı ilişkiler Şekil 2.1. İlişkiler Bir çok zaman büyük veritabanları önceden varlığı bilinmeyen veya görülmemiş ilişkiler, eğilimler ve örüntüler için araştırılır. Bu ilişkiler veya eğilimler genelde mühendis, analist veya pazar araştırmacıları tarafından varsayılır, ancak bu ilişkilerin elde edildikleri veriler tarafından ispat edilmesine ihtiyaç duyulmaktadır. Yeni bilgiler kullanıcıların yaptıkları işi daha iyi yapmalarına yardımcı olur [5]. Bunun sonucu olarak, büyük miktarlardaki veriler içerisinden ilginç ve yararlı bilgi keşfetme kabiliyetine sahip güçlü araçlar tesis etmeye karşı ilgi artmıştır [10]. Genel olarak veri madenciliğine ilginin artması aşağıdaki faktörlerle açıklanabilir [7]; 1. 1980’lerde şirketler, müşterileri, rakipleri, ürünleri ile ilgili verilerden oluşan veri tabanları oluşturmuşlardır. Bu veri tabanları potansiyel altın madeni gibidir. Sayısı milyonları geçen bu veriler, gizli bilgiler içerirler ve bunlara kolaylıkla SQL (Yapısal Sorgulama Dili) veri tabanı sorgulama dili ya da başka yüzeysel sorgulama dilleri 5 kullanılarak ulaşılabilir. SQL sadece bir sorgulama dilidir ve önceden bilinen sınırlamalar altında bilgileri bulmaya yardım eder. Veri madenciliği algoritmaları tipik olarak, veri tabanının alt gruplarında ya da “uygun” kümelerde belirginleşir. Bir çok durumda tekrarlanabilen SQL sorguları kullanılır ve ortalama sonuçlar elde edilir. Bunu elle yapmak mümkündür fakat oldukça yorucu ve uzun süren bir iştir. 2. Bilgisayarlarda ağ kullanımı gelişmeye devam etmektedir. Bu durumda veri tabanı ile bağlantı kurmak kolaylaşır. Böylece demografik verili dosya ile müşteri dosyası arasında bağlantı kurulabilir ve belirli popülasyon gruplarının kimliklerinin belirlenmesi sağlanabilir. 3. Son birkaç yılda makine öğrenimi teknikleri oldukça gelişmiştir. Sinir ağları, genetik algoritmalar ve diğer basit uygulanabilir öğrenme teknikleri veri tabanlarıyla ilginç bağlantılar kurmayı kolaylaştırır. 4. Müşteri ile hizmet veren arasındaki ilişki, kişisel bilgileri hizmet verenin masasındaki bilgisayardan merkezi bilgi sistemlerine gönderir. Pazarlamacılar ve sigortacılar da bu yeni kazanılan teknikleri kullanmak isterler. 2.1.2. Veri Madenciliği Nedir? Veri madenciliği veritabanlarından yapılandırılmış bilgilerin otomatik olarak çıkarılma sürecidir. Bu süreç veritabanlarından bilgi keşfi olarak adlandırılan genel sürecin özel bir parçasıdır [12]. Veri madenciliği, çok sayıdaki verinin depolandığı veri tabanlarından elde edilen modeller, örüntüler, ilişkiler, sapmalar ve anlamlı yapılar gibi ilginç bilgilerin keşfedilmesi sürecidir [13]. Veri Madenciliği, organizasyonların karar aşamaları için yeni bilgiler üreten ya da gelecekle ilgili tahminler ve planlar yapmamızı sağlayan bir dizi teknikler ve anlayışlar bütünü olarak da tanımlanabilir [14]. 6 Veri madenciliği, bilgi keşfetmenin gerekli bir adımı gibi görülmesine rağmen, veri tabanında bilgiyi keşfetmekle eşanlamlı gibi kabul edilir. Bilgi keşfetme işlemi sırasıyla aşağıdaki işlemlerden oluşur [13]; Veri Temizleme: Gürültülü, hatalı, eksik ya da konuyla ilgisi olmayan verilerin dışlanmasıdır. Veri Zenginleştirme: Farklı veri kaynaklarının birleştirilmesidir. Veri Seçimi: Veritabanında yapılacak analiz için kullanılacak bağlantılı verilerin düzeltilmesidir. Veri Kodlama: Verilerin özetlenerek madencilik için uygun olan forma dönüştürülmesi yada birleştirilmesidir. Veri Madenciliği: Veri modellerinin elde edilmesi için uygun yöntemlerin uygulandığı önemli bir işlemdir. Bilgi Sunma: İşlenmiş bilginin çeşitli tekniklerle kullanıcıya sunulmasıdır. Bilgi keşfi süreçlerinin bir adımı olan veri madenciliği son araştırmalarda istatistik, veritabanı, makine öğrenme ve yapay zeka çalışmalarını bir araya toplamıştır. Veritabanları için uygulanan bu sürecin çekirdeğinde makine öğrenme-temelli algoritmalar bulunmaktadır [8]. Büyük miktarlardaki veri araştırılırken örüntülerin ortaya çıkması için etkin bir arama metoduna kullanılması önemlidir [5]. Veri madenciliği tahminde kullanılacak modeller kurarken iyi kurulmuş istatistiksel ve makine öğrenme tekniklerini kullanır. Bugünlerde yukarıda da bahsedildiği gibi teknoloji, madencilik sürecini otomatikleştirmekte, ticari veri ambarlarını bütünleştirmekte ve kullanıcılara faydalı bilgiler sunmaktadır [11]. 2.1.3. Veri Madenciliği Süreci Veri madenciliği tekrarlanan bir süreçtir. Süreç ilerlerken, verinin kalitesini ve içeriğini ayarlamak için yeni bilgi ve yeni hipotezler üretilmelidir. Bunun anlamı; çalışılan verinin kalitesi veri madenciliği algoritmasının çalışma süresini ve doğruluğunu belirleyecektir, ve eğer algoritma yeterince esnek ise asıl soru tam olarak 7 cevaplanmadığı durumda bile problemle ilgili önemli bilgiler bulunabilecektir. Veri madenciliği süreci altı aşamaya sahip bir metodoloji olarak ifade edilebilir. Bu metodoloji; çözüm aranacak problemin tanımlanması, problemle ilgili geçmiş bilgilerin elde edilmesi, kullanılabilir verilerin seçimi, verinin ön işleme tabi tutulması, analiz ve sonuçların yorumlaması ve bu sonuçların kullanılması aşamalarını içerir [5]. Bu aşamalar Şekil 2.2.’de görülmektedir. Problemin Tanımlanması Geçmiş Bilgiler Veri Seçimi Veri Önişleme Analiz ve Yorum Raporlama ve Kullanım Şekil 2.2. Veri Madenciliği Süreci 2.1.3.1. Problemin Tanımlanması Problemin tanımlanması safhası veri madenciliği sürecinin ilk aşamasıdır. Bu aşama süresince, belirlenen problem için veri madenciliğinin kullanılmasındaki amaçlar tanımlanır. Veri madenciliği projesinde başlangıç sorusu çoğunlukla üstü kapalı olmalıdır. Çünkü bu durumda veri madenciliği süreci probleme yararı olmayan büyük miktarda veriyi önemsemeyecektir. Bu yolla, veri seçimi ve veri önişleme adımları başta iyice incelenmiş verilerle başlayarak, problemi çözmeye yardımcı olacaktır. Bu safha süresince sonuçların nasıl kullanılacağını bilmek büyük önem taşımaktadır. 8 Bu safha veri madenciliği sürecinin beklentilerinin ve standartlarının saptandığı safhadır. Ayrıca çalışılan verilerin kalitesini öğrenmeye yardımcı olur. Eğer çok fazla iterasyona ihtiyaç varsa ve sonuçlar kabul edilemeyecek kadar belirsizlikle sonuçlanıyorsa, problemin tanımı yerine verinin kalitesi üzerinde durulmalıdır. 2.1.3.2. Geçmiş Bilgiler Analistin, çalışılan veri üzerindeki muhtemel önyargı ve seçim etkileri hakkında bilgi sahibi olması gerekmektedir. Bu bilgi sayesinde geliştirici ekibe muhtemel kısıtlamalar hakkında bilgi verilebilmektedir. Veri seçimi yapmadan önce bilinmesi gereken bir başka bilgi ise veri üzerinde bulunan tipik gündelik ilişkilerdir. Heckerman [15] bu sorun için Bayesian Ağlarını önermiştir. Böylece, veriden sağlanan sonuç üzerindeki muhtemel kayıplara işaret eden önceki bilgilerle birleşme sağlanabilmektedir. Önceki bilgilerin elde edilmesi bilginin yeniden keşfinin önlenmesini sağlar. Özde, veri madenciliği algoritması, mevcut olan örüntülerin tekrar öğrenilmesini önleyecek birkaç açıklama ile bir sorunun üstesinden gelebilmektedir. Feelders ve ark. [16] kural türetme (rule induction) adını verdikleri bir metot önermişlerdir. Bu metotta analizin bilinen ilişkileri göz önünde bulundurması için kullanıcının rehberliğine ihtiyaç duyulmaktadır. Bilginin edinimi veri madenciliği sürecinde kritik bir role sahiptir. Bu aşama olumlu sonuçlar veren sürece doğrudan zamanında yardımcı olabilir. 2.1.3.3. Veri Seçimi Geçmiş bilgiler elde edildikten sonra, veri madenciliği süreci probleme cevap teşkil edecek analizde kullanılacak verilerin seçiminin yapılacağı önemli bir adıma ulaşır. Bu seçim yapılırken geleneksel kalıplardan çıkılmalıdır. Çünkü, veri madenciliğinde insanın görevi problemin çözümünü bulmak değildir, aksine verinin kendi kendine bu sonuçlara yaklaşmasına yardım etmektir. Süreç, geçmiş verilerin eldesi ile zaten uzman kişinin zararlı sonuçlara götürecek eğilimlerinden korunmuş olmaktadır. Subramanian ve ark. [17] ve Yevich [18] potansiyel ilgiye sahip verilerin seçimi için ideal desteği sunan veri ambarı kullanımını önermişlerdir. Ancak, veri ambarı 9 halihazırda nadiren bulunabilir. Bu durumda şirketler bu işlemi seçimden önce bir sefer oluşturma sürecinin üzerinden geçmelidirler. Eğer veri ambarı seçim aşamasında hazır değilse, veri madenciliği süreci çok uzun sürelere ihtiyaç duyacaktır. Veri seçimi hayati öneme sahiptir. Önceki aşamaların uygun şekilde tamamlandığını varsaydığımızda veri seçiminin sonraki aşamalarda sonuca ulaşma süresini kısaltıcı etkisi görülecektir. 2.1.3.4. Veri Önişleme Veri ambarında bütün ilgili verilerin bulunduğu durumlarda bile analizin yapılabilmesi için önişlemeye sıklıkla ihtiyaç duyulur. Bu aşamada uzman yeni özellikler ekleyebilme özgürlüğüne sahiptir. Bu eklemeler sayesinde veri madenciliği sürecinde algoritmanın varlığını belirlemekte zorlandığı ilişkilerin kurulması sağlanır. Sınıflandırma ağaç algoritması gibi bazı algoritmalar, veri madenciliği süreci için önemli sayılan kesin ilişkileri belirlemekte başarısızlığa uğrayabilir. Diğer algoritmalar çok uzun zaman harcayarak belirlemeleri yapabilir. Eğer uzman halihazırda bu bilgiye sahipse, bunu doğrudan bir özellik olarak eklemesi, algoritmanın belirlemeye çalışmasından daha uygun bir seçim olur. Veritabanlarındaki bire-çok ilişkiler çoğunlukla önişleme aşamasında karşımıza çıkmaktadır. Veri madenciliği algoritması çoğu durumda bir kayıtla ilgili bütün özelliklerin tek bir satırda bulunması varsayımına göre tasarlanmıştır. Şartların sağlanması doğrultusunda algoritma çok büyük tekil bir tablo ile çalışmak zorunda kalabilir. Analist muhtemel özellikleri belirlerken ve kayıtları oluştururken alan bilgisini kullanmalı ve ortak akıl kaidelerine uymalıdır. 2.1.3.5. Analiz ve Yorumlama Bu aşamadaki süreç veri madenciliği süresinin en az %70’ini kullanır. Bu aşama esnasında analistin veri madenciliği, veri analizi ve çalışılan alanda tecrübe ve bilgiye sahip olması kritik öneme sahiptir. Çalışılan konu hakkındaki bilgilerin ilk olarak ihtiyaç duyulduğu yer, sonuçların yorumlanma aşamasıdır. Bu bilgiler, ileriki araştırmalarda hangi sonuç veya sonuçların göz önünde bulundurulması gerektiğini muhtemel doğru hareketle yapabilmek için büyük öneme sahiptirler. Veri analizi deneyimi veri üzerinde garip örüntüler bulunduğu zaman açıklama için ve çalışılan 10 verinin daha ilginç parçalarına önem göstermek için prensipte ihtiyaç duyulan bir özelliktir. Sonuç olarak, veri madenciliği deneyimi ve uzmanlığı sonuçların teknik olarak yorumlanması için gereklidir. Analiz ve yorumlama aşaması asıl madenciliğin yapıldığı aşamadır. Verinin seçilip, önişleme tabi tutulup ve çözülecek problemin anlaşılmasından sonra bu aşama veriler arasında belirli örüntüler, benzerlikler ve diğer ilginç ilişkileri bulmaya çalışır. Bütün bu örüntüler genellikle veri madenciliği sürecinin son aşamasında kurallara çevrilir. 2.1.3.6. Raporlama ve Kullanım Veri madenciliği sürecinin sonuçları çok geniş kullanım alanına sahiptir. Sonuçlar karar ağacı gibi çok basit uygulamalara girdi olabileceği gibi son kullanıcı uygulamasına tam olarak bütünleşmiş uygulamalarda da kullanılabilmektedir. Bu sonuçlar ayrıca karar destek sistemlerinde veya bir bilgi tabanı sisteminde de kullanılabilir. Bu alandaki bir uygulama bilgi tabanlı bir sistemde öğrenmeyi daha hızlı ve etkin kılar. Çünkü uzman kişilerin yanlı etkilerinin ayarlanmasını beklemesine gerek yoktur. Edinilen bilgi bazı koşullarda daha doğru olabilmektedir. Ve eğer süreç içerisinde edinilen geçmiş bilgi güvenilir ise sonuçlarda güvenilir olacaktır. 2.1.4. Veri Madenciliğinin Görevleri Genel olarak veri madenciliği, tanımlayıcı ve tahminleyici veri madenciliği olmak üzere iki kategoride sınıflandırılır. Betimsel veri madenciliğinde, veri kümesi kısa ve öz bir şekilde tanımlanır ve verilerin ilginç genel özellikleri sunulur. Kestirim veri madenciliğinde ise bir ya da daha fazla modeller kümesi oluşturulup varolan verilerden sonuçlar çıkarılır ve yeni veri kümelerinin davranışları tahmin edilmeye çalışılır [7]. Veri madenciliğinin başlıca görevleri kısaca açıklanmıştır [19]. 2.1.4.1. Sınıf Betimlemesi Veri kümesinin kısa bir özetini sağlar ve diğerlerinden farklılığını ortaya koyar. Bir veri kümesinin özetlenmesine sınıf nitelendirmesi denir. İki ya da daha fazla veri kümesinin karşılaştırılmasına ise sınıf karşılaştırması ya da ayrımı denir. Sınıf betimlemesi sadece 11 özet özellikleri değil merkezi eğilim ölçüleri ve dağılım ölçüleri gibi özellikleri de içerir. Örneğin Avrupa’ya karşı Asya şirketlerinin satışlarını karşılaştırmak, iki sınıfı ayırt edip önemli faktörleri belirlemek ve özet bir bilgi sunmak için sınıf betimlemesi kullanılır. 2.1.4.2. Birliktelik Birliktelik, modeller kümesi arasındaki birliktelik ilişkilerini ya da korelasyonları keşfetmektir. Birliktelik analizi, pazarlama yönetimi, katalog planı ve diğer alanlarda karar verme sürecinde geniş ölçüde kullanılır. Son zamanlarda kurulmuş etkin algoritmalı birliktelik analizinde önemli araştırmalar yapılmıştır. Bunlar, düzey-tarz, önsel araştırma, çoklu düzeyde madencilik, çok boyutlu birliktelikler, sayısal, kategorik ve sürekli veri, meta-örüntü, yönelimli yada kısıt temelli madencilik ve madencilik korelasyonları için madencilik birlikteliklerini içerir. 2.1.4.3. Sınıflandırma Sınıflandırma çalışılan verilerin kümesini çözümler (sınıf ismi, etiketi bilinen objelerin kümesi) ve verilerin içinde özelliklerine göre sınıflar oluşturup her bir sınıf için bir model kurar. Veritabanındaki her bir sınıfın daha iyi anlaşılması ve daha sonra elde edilen verilerin sınıflandırılması için sınıflama işlemi bir karar ağacı ya da sınıflandırma kurallarının bir kümesini oluşturur. Örneğin, hastalıkların belirtilerine göre hastalıkları sınıflama, hastalık türlerini tahmin etmeye yardım eder. Makine öğrenimi, istatistik, veritabanı, sinir ağları, evrimsel algoritmalar ve diğer alanlarda geliştirilmiş bir çok sınıflandırma yöntemi vardır. Sınıflandırma, müşteri bölümü, iş modelleme ve kredi analizlerinde kullanılır. Sınıflandırma ile ilgili geniş bilgi Bölüm 2.2.'de verilmiştir. 2.1.4.4. Tahmin Bu fonksiyon, bazı eksik verilerin muhtemel değerlerini ya da nesnelerin bir kümesinde kesin özelliklerin değer dağılımını ve seçilen nesnelere benzer verilerin kümesini temel alan değer dağılımını tahmin eder. Örneğin, bir işçinin maaşı, çalıştığı yerdeki diğer 12 işçilerin maaş dağılımı temel alınarak tahmin edilebilir. Genellikle, regresyon analizi, genelleştirilmiş doğrusal model, korelasyon analizi, karar ağaçları, genetik algoritmalar, sinir ağı modelleri nitelikli bir tahmin için kullanılan yöntemlerdir. 2.1.4.5. Kümeleme Kümeleme çözümlemesi, özellikleri birbirine benzeyen objelerin değerlerinin toplanmasından oluşan bir kümede, verilerin içindeki gizli kümeleri belirlemektir. Benzerlik, uzmanlar ya da kullanıcılar tarafından belirlenmiş uzaklık fonksiyonlarıyla tanımlanabilir. İyi bir kümeleme yöntemi, kümeler arası benzerliğin düşük ve küme içi benzerliğin yüksek olduğu nitelikli kümeler meydana getirir. Örneğin, evler, zemin alanı ve coğrafik yerleşime göre kümelenebilir. Veri madenciliği araştırması, büyük veritabanları ve çok boyutlu veri depoları için yüksek nitelikli ve hesaplanabilir kümeleme yöntemlerine odaklanır. 2.1.4.6. Zaman Serileri Analizi Zaman-serileri çözümlemesi, benzer seriler ve ardışık örüntülerin madenciliği, periyodikler, eğilimler ve sapmaların araştırılması, ilginç özellikler ve kesin düzenlerin bulunması için zaman serilerinin geniş kümesini çözümler. Örneğin, bir şirketin geçmişteki stok durumuna, iş durumuna, rekabet performansına ve günlük piyasasına bakarak stok değerlerinin eğilimi tahmin edilebilir . 2.1.5. Veri Madenciliğinde Kullanılan Algoritmalar Veri madenciliği algoritmaları danışmansız ve danışmanlı öğrenme olarak iki ayrı şekilde gerçekleştirilir. Danışmansız öğrenme, veri örüntülerini veri kümesi içindeki bazı mantıksal düzenlerini karakterize ederek bulur. Bu durumda nitelik ilişkileri arasında hiçbir ön varsayım yapılmaz. Danışmanlı öğrenmede ise; denetmen bilinen durumları modele göstererek veya iyi tanımlanmış örüntülerin modele etki etmesini sağlayarak genelleştirmeleri şekillendirir. Uzmanlar bu şekilde aramaya rehberlik eder. Sınıflandırma ise belkide uygulanan en genel danışmanlı veri madenciliği tekniğidir. Bu teknik sınıf bilgileri bulunan öğrenme örnek kümesinden grup kuralları üreterek gelecek örüntüleri sınıflandırmayı içerir [8]. 13 Sınıflandırma konusu doğası gereği danışmanlı algoritma kullanmaktadır. Bu sebeple danışmanlı algoritmalarla ilgili daha geniş bilgi verilecektir. 2.1.5.1. Danışmansız Öğrenme Algoritmaları 2.1.5.1.1. K-Yol Kümeleme K-yol iyi bilinen kümeleme problemlerini çözebilen en basit danışmansız öğrenme algoritmasıdır. Prosedür, çalışılan veri kümesini, daha önceden belirlenmiş bir sayıda kümeye ulaşıncaya kadar sınıflandırır. İşleyiş bu kadar basittir. Ana fikir her bir küme için bir adet yani K adet merkez tanımlamaktır. Bu merkezlerin yerlerine akıllıca karar verilmelidir, çünkü farklı yerler farklı sonuçlar doğurur. Birbirinden olabildiğince uzak olarak belirlenen merkezlerin daha iyi sonuç verdiği düşünülmektedir. Algoritma adımları şöyledir; 1. K adet noktayı kümelenecek nesnelerin uzayına yerleştir. Bu noktalar başlangıç grup merkezleri olacaktır. 2. Her bir nesneyi en yakın merkeze ata. 3. Bütün nesneler atandığında K merkezin pozisyonunu tekrar hesapla. 4. Merkezler hareketsiz kalana kadar 2. ve 3.’ü tekrarla. Bu hesaplama en az mesafeyi hesaplayana kadar nesneleri gruplara bölecektir [20]. 2.1.5.1.2. Özdüzenleyici Haritalar (Self Organized Maps) Özdüzenleyici haritalar, veri görüntüleme tekniğidir. Kendinden örgütlü sinir ağları kullanarak verinin boyutlarını indirger. İnsanın çok yüksek boyutlardaki verileri görememe problemine karşı uygulanmaktadır [21]. 2.1.5.2. Danışmanlı Öğrenme Algoritmaları 2.1.5.2.1. Regresyon Modelleri İstatistik uzun zamandır veri küme modelleri oluşturmak için kullanılmaktadır. Doğrusal regresyon süreci olasılık, veri analizi ve istatistiksel sonuç çıkarma tekniklerini kullanan bir süreçtir. Regresyon analizi yüz yılın başlarında Francis Galton 14 tarafından ilk kez ortaya atılmıştır. Veri modellemede ise genellikle verilen bağımsız değişkenlere göre bir bağımlı değişkenin koşullu beklenen değeri için kullanılır [22]. Regresyon modelleri veri madenciliğinde kullanılan en eski ve en fazla bilinen istatistik tekniklerinden biridir. Temel olarak regresyon, nümerik veriyi girdi olarak kabul edip, sonuç olarak matematiksel bir formül verir. Az boyutlu verilerde rahatlıkla uygulanabilir, ancak, kümelerin arasından ilginç olanları seçmek için bazı zamanlarda ileri araştırma programlarına gerek duyulabilir. Doğrusal regresyon modelleri de diğer veri madenciliği araçlarının yaptığı işlerin benzerini yapmaktadır. Regresyon teknikleri koşullu olasılığın bulunduğu durumlarda tahminleme yapmak için kullanılabilir. Tahminleme için kullanılan regresyon modeli doğrusal olasılık modeli olarak adlandırılır. Regresyon modellerinden biri de bütün bağımsız değişkenleri koşulsuz olan logit modeldir. Lojistik regresyon modeli ise logit modeline benzeyen ek olarak sürekli değişkenleri de ihtiva eden bir modeldir. Bir çok tipte regresyon modeli vardır. Verilerin doğrusal fonksiyona kolayca girilemeyeceği durumlarda doğrusal olmayan regresyon ve doğrusal olmayan çoklu regresyon modelleri kullanılabilir. Çeşitli istatistiksel modeller kullanılarak, çoklu ve kısmi korelasyon katsayıları tanımlanabilir [22]. Bu modellerin en büyük kusuru, etkin bir kullanım için zor anlaşılır olmasıdır. Veri madenciliği, veriden anlamlı bilgileri çıkarma süreci olarak tanımlanırken, istatistik veriden anlamlı bilgi çıkarmayı da içeren çalışma alanının bütünüdür. İstatistik uzmanları ile tahmine dayalı modelleme ile ilgilenen diğer uzmanlar arasında çoğu zaman bir duvar vardır. Bir çok profesyonel istatistikte kullanılan terminolojiyi kullanmakta zorlanmaktadır. Daha ötesi, endüstri analistleri geçmiş tarihten bu yana istatistik ile veri madenciliğini birbirinden ayırt etmişler ve veri madenciliğinin istatistikten farklı olduğunu belirtmişleridir. Özel sektördeki profesyoneller için veri madenciliği üzerine yoğunlaşmak daha kolay bir tercihtir. IBM, SPSS ve SAS bu sezgiyi yok etmek için çok yol kat edip, standart istatistik modellerini yapay sinir ağları, karar ağaçları ve veri madenciliği ile bütünleşik diğer tekniklerin yanına eklemişlerdir [22]. 15 2.1.5.2.2. K-En Yakın Komşu Kayıtlar, bir veri uzayındaki noktalar olarak düşünülürse, birbirine yakın olan kayıtlar, birbirinin civarında (yakın komşu) olur. K-en yakın komşuluğunda temel düşünce “komşunun yaptığı gibi yap”tır. Eğer belirli bir kişinin davranışı tahmin edilmek isteniyorsa, veri uzayında o kişiye yakın, örneğin on kişinin davranışlarına bakılır. Bu on kişinin davranışlarının ortalaması hesaplanır ve bu ortalama belirlenen kişi için tahmin olur. K-en yakın komşuluğunda, K harfi araştırılan komşuların sayısıdır. 5-en yakın komşuluğunda, 5 kişiye ve 1-en yakın komşuluğunda 1 kişiye bakılır [23]. En yakın komşuluk modelleri yerel modellerin kombinasyonu temeline dayanan veri madenciliği metotlarının esnek bir grubudur. Bu metotların yerel kombinasyonlardan oluşması demek lokal mantıkta çalıştıkları anlamına gelmemektedir. Bunlar bütün veri kümesine uygulanabilen metotlardır ancak, istatistiksel analiz yerel analizlere bölünmüştür. Temel fikir oldukça basittir. Uygun değişkenler, açıklayıcı (x) ve hedef (y) değişkenlere bölünür. Öğrenme verisinden (x,y) formatında gözlemler toplanır. Bu öğrenme verisi için, gözlemdeki x değerleri arasında uzaklık formülü oluşturulur. Bu hesaplama gözlem esnasında oluşan bir komşuluğa en yakın olan her bir gözlem için x değerleri arasında yapılır. Sürekli bir cevap değişkeni için, her bir gözlemin cevabı olan yi için uygun en yakın komşu değeri; yˆ i = 1 ∑ yj k x j ∈N ( xi ) (1) ile tanımlanır. Bu değer, N(xi) yani xi nin bütün komşularına karşılık gelen x cevap değerlerinin ortalamasıdır. Bunun yanında, k ise daha önceden belirlenmiş olan hesaba dahil edilecek komşu sayısını gösteren değerdir [24]. En yakın komşu metotları tahminsel sınıflandırmada da kullanılmaktadır. Y gözlemini sınıflandırmak için, önce onun komşuluğu belirlenir ve her bir kategorinin yerleştirilmiş olasılıkları komşuluktaki göreceli sıklıklar şeklinde hesaplanır. Sınıflandırmak için en yüksek yerleştirilmiş olasılık seçilir. Ağaç modellerindeki gibi, en yakın komşu modelleri olasılık dağılımına ihtiyaç duymaz. Bu modeldeki can alıcı seçimler uzaklık fonksiyonu ve dahil edilecek komşu sayısı parametresi olan k’dır [22]. 16 Bu modellerin olası dezavantajları özellikle çok fazla açıklayıcı değişken varsa çok fazla hesaplama yükü getirmesidir. Bu durumda komşuluklar ilgisiz noktalarda belirebilir, bu sebepten dolayı ortalamalarını almak anlamlı sonuçlar vermeyebilir. 2.1.5.2.3. Yapay Sinir Ağları Yapay sinir ağlarında amaç fonksiyonu birbirine bağlı basit işlemci ünitelerinden oluşan bir ağ üzerine dağıtılmıştır. Yapay sinir ağlarında kullanılan öğrenme algoritmaları veriden üniteler arasındaki bağlantı ağırlıklarını hesaplar. Yapay sinir ağları istatistiksel yöntemler gibi veri hakkında parametrik bir model varsaymaz yani uygulama alanı daha geniştir ve bellek tabanlı yöntemler kadar yüksek işlem ve bellek gerektirmez [25]. Beynin üstün özellikleri, bilim adamlarını üzerinde çalışmaya zorlamış ve beynin nörofiziksel yapısından esinlenerek matematiksel modeli çıkarılmaya çalışılmıştır. Beynin bütün davranışlarını tam olarak modelleyebilmek için fiziksel bileşenlerinin doğru olarak modellenmesi gerektiği düşüncesi ile çeşitli yapay hücre ve ağ modelleri geliştirilmiştir. Böylece yapay sinir ağları denen yeni ve günümüz bilgisayarlarının algoritmik hesaplama yönteminden farklı bir bilim alanı ortaya çıkmıştır. Yapay sinir ağları; yapısı, bilgi işleme yöntemindeki farklılık ve uygulama alanları nedeniyle çeşitli bilim dallarının da kapsam alanına girmektedir [26]. Genel anlamda yapay sinir ağları, beynin bir işlevi yerine getirme yöntemini modellemek için tasarlanan bir sistem olarak tanımlanabilir. Yapay sinir ağları, yapay sinir hücrelerinin birbirleri ile çeşitli şekillerde bağlanmasından oluşur ve genellikle katmanlar şeklinde düzenlenir. Donanım olarak elektronik devrelerle ya da bilgisayarlarda yazılım olarak tasarlanabilir. Beynin bilgi işleme yöntemine uygun olarak yapay sinir ağları, bir öğrenme sürecinden sonra bilgiyi toplama, hücreler arasındaki bağlantı ağırlıkları ile bu bilgiyi saklama ve genelleme yeteneğine sahip paralel dağılmış bir işlemcidir. Öğrenme süreci, arzu edilen amaca ulaşmak için yapay sinir ağları ağırlıklarının yenilenmesini sağlayan öğrenme algoritmalarını içerir [27]. Yapay sinir ağlarında kullanılan öğrenme algoritmaları veriden üniteler arasındaki bağlantı ağırlıklarını hesaplar. Yapay sinir ağları, sonuçları bilinen belirli veri kümeleri üzerinde algoritmaları çalıştırarak eğitilirler. Bunun sonucunda yapay sinir ağının 17 içindeki ağırlık belirlenir. Bu ağırlıklar yeni gelen verilerin işlenmesinde kullanılır. Karmaşık veri tabanları üzerinde daha iyi sonuçlar üretebilirler [23]. 2.1.5.2.3.1. Yapay Sinir Ağlarının Özellikleri Yapay sinir ağlarının hesaplama ve bilgi işleme gücünü paralel dağılmış yapısından, öğrenebilme ve genelleme yeteneğinden aldığı söylenebilir. Genelleme, eğitim ya da öğrenme sürecinde karşılaşılmayan girişler için de yapay sinir ağlarının uygun tepkileri üretmesi olarak tanımlanır. Bu özellikler yapay sinir ağlarının karmaşık problemleri çözebilme yeteneğini göz önüne çıkarır. Günümüzde birçok bilim alanında yapay sinir ağları, aşağıdaki özellikleri nedeniyle etkin olmuş ve uygulama yeri bulmuştur [26]. 1. Doğrusal Olmama: Yapay sinir ağlarının temel işlem elemanı olan hücre doğrusal değildir. Dolayısıyla hücrelerin birleşmesinden meydana gelen yapay sinir ağları da doğrusal değildir ve bu özellik bütün ağa yayılmış durumdadır. 2. Öğrenme: Yapay sinir ağlarının arzu edilen davranışı gösterebilmesi için amaca uygun olarak ayarlanması gerekir. Bu, hücreler arasında doğru bağlantıların yapılması ve bağlantıların uygun ağırlıklara sahip olması gerektiğini ifade eder. Yapay sinir ağlarının karmaşık yapısı nedeniyle bağlantılar ve ağırlıklar önceden ayarlı olarak verilemez ya da tasarlanamaz. Bu nedenle yapay sinir ağları, istenen davranışı gösterecek şekilde ilgilendiği problemden aldığı eğitim örneklerini kullanarak problemi öğrenmelidir. 3. Genelleme: Yapay sinir ağları, ilgilendiği problemi öğrendikten sonra eğitim sırasında karşılaşmadığı test örnekleri için de arzu edilen tepkiyi üretebilir. Örneğin, karakter tanıma amacıyla eğitilmiş bir yapay sinir ağı, bozuk karakter girişlerinde de doğru karakterleri verebilir ya da bir sistemin eğitilmiş yapay sinir ağı modeli, eğitim sürecinde verilmeyen giriş sinyalleri için de sistemle aynı davranışı gösterebilir. 4. Uyarlanabilirlik: Yapay sinir ağları, ilgilendiği problemdeki değişikliklere göre ağırlıklarını ayarlar. Yani, belirli bir problemi çözmek amacıyla eğitilen yapay sinir ağı, problemdeki değişimlere göre tekrar eğitilebilir, değişimler devamlı ise gerçek zamanda da eğitime devam edilebilir. 18 5. Hata Toleransı: Yapay sinir ağları, çok sayıda hücrenin çeşitli şekillerde bağlanmasından oluştuğundan paralel dağılmış bir yapıya sahiptir ve ağın sahip olduğu bilgi, ağdaki bütün bağlantılar üzerine dağılmış durumdadır. Bu nedenle, eğitilmiş bir yapay sinir ağının bazı bağlantılarının hatta bazı hücrelerinin etkisiz hale gelmesi, ağın doğru bilgi üretmesini önemli ölçüde etkilemez. Bu nedenle, geleneksel yöntemlere göre hatayı tolere etme yetenekleri son derece yüksektir. 6. Donanım ve Hız: Yapay sinir ağları, paralel yapısı nedeniyle büyük ölçekli entegre devre teknolojisi ile gerçeklenebilir. Bu özellik, yapay sinir ağlarının hızlı bilgi işleme yeteneğini artırır ve gerçek zamanlı uygulamalarda arzu edilir. 7. Analiz ve Tasarım Kolaylığı: Yapay sinir ağlarının temel işlem elemanı olan hücrenin yapısı ve modeli, bütün yapay sinir ağları yapılarında yaklaşık aynıdır. Dolayısıyla yapay sinir ağlarının farklı uygulama alanlarındaki yapıları da standart yapıdaki bu hücrelerden oluşacaktır. 2.1.5.2.3.2. Yapay Sinir Ağlarının Yapısı Sinir hücreleri bir grup halinde işlev gördüklerinde ağ olarak adlandırılırlar ve böyle bir grupta binlerce nöron bulunur. Yapay nöronların birbirleriyle bağlantılar aracılığıyla bir araya gelmeleri yapay sinir ağını oluşturmaktadır. Yapay sinir ağıyla aslında biyolojik sinir ağının bir modeli oluşturulmak istenmektedir. Nöronların aynı doğrultu üzerinde bir araya gelmeleriyle katmanlar oluşmaktadır [27]. Katmanların değişik şekilde birbirleriyle bağlanmaları değişik ağ mimarilerini doğurur. Yapay sinir ağları üç katmadan oluşur. Bu katmanlar sırasıyla; Girdi Katmanı: Bu katmandaki proses elemanları dış dünyadan bilgileri alarak ara katmanlara transfer ederler. Bazı ağlarda girdi katmanında herhangi bir bilgi işleme olmaz. Gizli Katman (Ara Katman): Girdi katmanından gelen bilgiler işlenerek çıktı katmanına gönderilirler. Bu bilgilerin işlenmesi gizli katmanlarda gerçekleştirilir. Bir ağ içinde birden fazla gizli katman olabilir. 19 Çıktı Katmanı: Bu katmandaki proses elemanları gizli katmandan gelen bilgileri işleyerek ağın girdi katmanından sunulan girdi seti için üretmesi gereken çıktıyı üretirler. Üretilen çıktı dış dünyaya gönderilir. Girdi katmanı, gizli katman ve çıktı katmanı Şekil 2.3.’te görülmektedir. Girdi Katmanı Çıktı Katmanı Gizli Katman Şekil 2.3. Yapay Sinir Ağı Modeli 2.1.5.2.4. Karar Ağaçları Verileri sınıflandırmak ve bu verilerle tahminleme yapmak, birbirleriyle çok yakın bağlantılı işlemlerdir. Bu işlemler karar ağaçlarıyla daha iyi görülebilir. Örnek olarak; belirli bir müşterinin, belirli bir davranışı gösterip göstermeyeceği kestirilmek istenebilir. Bu durumda müşterinin, belirli bir müşteri sınıfında yer aldığı ve bundan dolayı da belirli bir davranışı göstereceği açıktır. Karar ağacı, ağaç yapısında olan bir akış şeması şeklindedir. Her düğüm, bir nitelik üzerindeki test işlemini temsil eder. Her dallanma test işleminin sonucunu temsil eder, ve sonuç olarak ağaç sınıflar ile son bulur [23]. 20 Tümevarım algoritmaları, büyük veri kümelerini çok iyi analiz eder ve tümevarım algoritmaları ile kurulan karar ağacı ile karar süreci kolaylaştırılır. Yapılan kestirimler de daha iyi sonuçlar verir [28]. İ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ı oldukça zordur. Karar ağaçları ise veriden oluşturulduktan sonra kökten yaprağa doğru inilerek kurallar yazılabilir; IF <Koşul> THEN < Tahmin (sınıf)> Bu şekilde kural çıkarma, veri madenciliği çalışmasının sonucunun doğrulanmasını sağlar. Bu kurallar uygulama konusunda uzman bir kişiye 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 analiste bilgi verir ve daha sonraki analizler için yol gösterici olabilir [25]. Tahmin edici ve tanımlayıcı özelliklere sahip olan karar ağaçları, veri madenciliğinde, kuruluşlarının ucuz olması, yorumlanmalarının kolay olması, veri tabanı sistemleri ile kolayca entegre edilebilmeleri, güvenilirliklerinin daha iyi olması nedenleri ile sınıflama modelleri içerisinde en yaygın kullanıma sahip algoritmalardır [29]. Karar ağacı algoritmasının yaygın olarak kullanıldığı sahalar, ∗ Belirli bir sınıfın muhtemel üyesi olacak elemanların belirlenmesi, ∗ Çeşitli vakaların yüksek, orta, düşük risk grupları gibi çeşitli kategorilere ayrılması, ∗ Gelecekteki olayların tahmin edilebilmesi için kurallar oluşturulması, ∗ Parametrik modellerin kurulmasında kullanılmak üzere çok miktardaki değişken ve veri kümesinden faydalı olacakların seçilmesi, ∗ Sadece belirli alt gruplara özgü olan ilişkilerin tanımlanması, ∗ Kategorilerin birleştirilmesi ve sürekli değişkenlerin kesikli hale dönüştürülmesidir. 2.1.5.2.5. Evrimsel Algoritmalar Veri madenciliğinde arama süreci genel zayıf metotları ve alan spesifik güçlü metotları içeren çeşitli tekniklerle yapılabilir. 4 çeşit evrimsel algoritmadan bahsedilebilir; 21 Genetik Algoritmalar (GA), Genetik Programlama (GP), Evrim Stratejileri (ES), Evrimsel Programlama (EP). Evrimsel algoritmalar ile ilgili daha geniş bilgi 4. Bölümde verilmiştir. 2.1.6. Veri Madenciliğinin Kullanım Alanları Günümüzde veri madenciliğinin başlıca ilgi alanları olarak aşağıdakiler sayılabilir [30]; 1. Pazarlama • Müşteri segmentasyonu, • Müşterilerin demografik özellikleri arasındaki bağlantıların kurulması, • Çeşitli pazarlama kampanyaları, • Mevcut müşterilerin elde tutulması için geliştirilecek pazarlama stratejilerinin oluşturulması, • Pazar sepeti analizi, • Çapraz satış analizleri, • Müşteri değerlemesi, • Müşteri ilişkileri yönetimi, • Çeşitli müşteri analizleri, • Satış tahminleri. 2. Bankacılık • Farklı finansal göstergeler arasındaki gizli korelasyonların bulunması, • Kredi kartı dolandırıcılıklarının tespiti, • Müşteri segmentasyonu, • Kredi taleplerinin değerlendirilmesi, • Usulsüzlük tespiti, • Risk analizleri, • Risk yönetimi. 3. Sigortacılık • Yeni poliçe talep edecek müşterilerin tahmin edilmesi, 22 • Sigorta dolandırıcılıklarının tespiti, • Riskli müşteri tipinin belirlenmesi. 4. Perakendecilik • Satış noktası veri analizleri, • Alış-veriş sepeti analizleri, • Tedarik ve mağaza yerleşim optimizasyonu. 5. Borsa • Hisse senedi fiyat tahmini, • Genel piyasa analizleri, • Alım-satım stratejilerinin optimizasyonu. 6. Telekomünikasyon • Kalite ve iyileştirme analizleri, • Hisse tespitleri, • Hatların yoğunluk tahminleri. 7. Sağlık ve İlaç • Test sonuçlarının tahmini, • Ürün geliştirme, • Tıbbi teşhis, • Tedavi sürecinin belirlenmesi. 8. Endüstri • Kalite kontrol analizleri, • Lojistik, • Üretim süreçlerinin optimizasyonu. 9. Bilim ve Mühendislik 23 • Ampirik veriler üzerinde modeller kurarak bilimsel ve teknik problemlerin çözümlenmesi. 2.1.7. Veri Madenciliğinde Yapılan Çalışmalar Tzu-Liang ve ark. [31], CNC tezgahlarında işlem görmüş parçaların kabulünün tahminindeki kalite güvence problemini çözmek için yeni bir yaklaşım sunmuşlardır. Gerçek yüzey pürüzlülük değerinin tahmini yerine, işlem görmüş parçaların kalite kabulü üzerinde odaklanmışlardır. Sunulan kural bileşimi algoritmasını ve kural onaylama prosedürünü, işletmenin uzun yıllar boyu topladığı geçmiş veriler üzerinde test etmişlerdir. Sonuçlar geliştirdikleri tekniğin, yüzey pürüzlülüğünün kabul edilebilirliğinin tahmini açısından istatistiksel tekniklerden (çoklu nominal regresyon ve genel diskriminant) çok daha doğru sonuçlar verdiğini göstermiştir. Menon ve ark. [32] yaptıkları çalışmada, kalite ve güvenirliliği iyileştirmek için metinsel veri madenciliğini araç olarak kullanmışlardır. Literatürdeki ürün geliştirme süreci ile ilgili yapılan çoğu çalışma sayısal veritabanları üzerine yoğunlaştığından, metinsel veritabanları ile ilgili çalışmalara ihtiyaç olduğunu vurgulamışlar ve bu sebepten dolayı metinsel veritabanları üzerinde yoğunlaşmışlardır. Metinsel veri madenciliğinin uygulanabileceği tüketici ve son ürünler için genel ürün geliştirme süreci alanlarını belirtmişlerdir. Ayrıca iki büyük çok uluslu işletmede metinsel veri madenciliğinin başarılı uygulamalarını sunmuşlardır. M. C. Jothishankar ve ark. [33], basılmış devre levhalarının akış lehimlenmesi sırasındaki hataların oluşumuna etki eden faktörlerle birlikte problemin tanımını vermişlerdir. Önemli olan faktörleri belirlemek için gerekli olan veri madenciliği yaklaşımlarını sunmuşlardır. Bununla birlikte sonuçlarını önerilen iyileştirmelerle birlikte ortaya koymuşlardır. Mark Last ve ark. [34] yeni, algı-tabanlı “Otomatik Algı Ağı: APN” -Automated Perceptions Network- adını verdikleri metodu, yüksek derecede gürültülü veri kümelerinden geliştirmişlerdir. özlü ve yorumlanabilir Yöntemlerini iki yarı modellerin iletken otomatik ürünün kurulumu gelir için verilerinde 24 değerlendirmişlerdir ve veri madenciliği ve bilgi keşfinde otomatik algıların gelecekte kullanımı ile ilgili mümkün talimatlar tanımlamışlardır. Porzio ve Ragozini [35] makalelerinde yüksek otomasyonlu modern üretim süreçlerindeki büyük veri tabanlarında, veri madenciliği tekniğinin neden uygun olduğunu tartışmışlar, büyük ve yüksek-boyutlu off-line veri kümeleri için bir görsel veri madenciliği stratejisi sunmuşlardır. Stratejileri, kullanıcılara bağlantılı enteraktif grafiksel araçlar sayesinde daha derin bir süreç anlayışı sağlamaktadır. Görsel veri madenciliği stratejilerini bir endüstriyel süreç durum çalışmasıyla örneklemişlerdir. Hyean Bae ve ark. [36] , birincil amacı mevcut veri madenciliği tekniklerini incelemek ve elektronik-tahmin ve elektronik-teşhis örneklerine bu metotları uygulamak olan bir çalışma yapmışlardır. Teknik olarak yapay sinir ağları, karar ağaçları ve bulanık mantığı kullanmışlardır. J. Lian ve ark. [37], veri madenciliği ve bilgi keşfi tekniklerinin kombinasyonu vasıtasıyla boyut varyasyonlu tanı sebepleme ve karar yaklaşımı geliştirmişlerdir. Korelasyon analizi ve en büyük ağaç metotlarını ölçülen büyük, çok boyutlu verilerden geniş varyasyonlu grupları çıkarmak için, çok değişkenli istatistiksel analizi ise prensip varyasyon örneklerini keşfetmek için kullanmışlardır. Sebepleme prosedürünü doğuran, varyasyonu karakterize eden “hipotez ve onaylama”yı tamamlamakta ürün ve montaj proseslerinin bilgisine dayanan bir karar ağacı yaklaşımı geliştirmişlerdir. Uygulamalarla geliştirdikleri karar destek analizi yaklaşımının etkin ve verimli bir yöntem olduğunu ispatlamışlardır. Adams [38] yılında yayınlanan makalesinde gerçek hayattaki üretim işletmelerinde uygulanan veri madenciliği tekniklerini kısaca anlatmış ve veri madenciliğinin işletmeler için çok fazla veri ile başa çıkmakta ve anlamlı sonuçlar çıkararak geleceğe yönelik tahminler yapmakta ne kadar etkin bir yöntem olduğundan bahsetmiştir. Kusiak ve Kurasek [39], elektronik montajında kalite problemini çözmek için uygulanan bir veri madenciliği tekniğini anlatan endüstri durum çalışması sunmuşlardır. Makaleleri, çalışmada ele alınan özellikler, veri toplama ve bir endüstriyel uygulamada kalite hatalarının sebebini belirlemek için veri madenciliği çözüm yaklaşımını ortaya koymaktadır. 25 McDonald ve ark. [40], süreç ürünlerini iyileştirmek için, entegre devre üretiminde ürün iyileştirmesi için veri madenciliği araçlarının kullanmışlardır. Veri madenciliğini ince levhaların işlem gördüğü sıranın neden olduğu hataları belirlemek için süreç değişkenleri ile ürün arasındaki korelasyonu belirlemekte ele almışlardır. Milne ve ark. [41], veri madenciliği tekniklerini kullanarak kağıt hatalarını tahminlemişlerdir. Hata tespiti uygulamasında, kağıt hatalarının önceden tespitinde geçmiş verileri kullanmışlar, böylece bu hatalarla ilgili doğru adımların atılabileceğini vurgulamışlardır. Kağıt bobinlerinin kalitesinin on-line olarak tahminlenmesinde karar ağaçlarını, veri madenciliği aracı olarak ReMind yazılımını kullanmışlardır. Yaptıkları uygulama sonucunda, iyi bobinlerin % 96’sı, kötü bobinlerin ise % 88’i doğru olarak tahminlenmiştir. 1997 yılında Koonce ve ark. [42] üretim sistemlerinden öğrenmede, veritabanlarını aramada “DBMine” ismini verdikleri bir yazılım geliştirmişlerdir. Bu araç, bacon algoritması, karar ağaçları ve veri madenciliği-öğrenmeyi içeren üç temel veri madenciliği tekniğini içermektedir. DBMine’ı, genetik algoritmalar tarafından üretilen atölye tipi çizelgelerde, gen sıralamasındaki örnekleri belirlemede ve bu örnekleri açıklamaya yardım edecek kuralları çıkarmada kullanmışlardır. Kim ve ark. [43] (1997), veri madenciliği tekniklerini kullanarak, üretim sistemlerinin doğrusal olmayan tahminlemesini yapmışlardır. Regresyon, hareketli ortalama, üstel düzeltme, sinir ağları ve durum-tabanlı sebepleme gibi teknikler kullanarak girdi ve çıktılar arasındaki ilişkiyi belirlemişlerdir. Ayrıca, gürültünün çeşitli örneklerinde öğrenme tekniklerinin gücünü ortaya koymuşlardır. Stepien ve ark. [44], istatistiksel proses kontrol tarafından üretilen bilgiyi yönetmek ve bu bilgileri kararlar üretmekte kullanmak ayrıca prosesi daha istikrarlı yapmak için bir proses analizi paketi geliştirmişlerdir. Geliştirdikleri paket verilerin toplanabileceği her tür üretim süreci için uygundur. Ayrıca bu paket bir veri madenciliği paketi içermektedir. Geliştirdikleri yazılımın performansını test etmek için iki çimento işletmesinde uygulama yapmışlardır. Baykasoğlu ve Özbakır [45], veri madenciliği uygulamaları için sınıflandırma kurallarını keşfetmekte çoklu denklem programlama tabanlı yeni bir yaklaşım 26 sunmuşlardır. Geliştirdikleri metodun performansını iki tıbbi veri kümesinde test etmişlerdir. Yöntemleri doğruluk, kesinlik, esneklik, etkinlik ve kabiliyet yönünden memnun edicidir. Canbulut ve ark. [46] dairesel cepli hidrostatik+hidrodinamik yataklarda sürtünme güç kaybına yönelik bir veri madenciliği çalışması yapmışlardır. Çalışmalarında hidrostatik+hidrodinamik yatakların performansını etkileyen parametre ve parametre düzeylerini genetik programlama (GP), yapay sinir ağları (Neura Solutions) ve regresyon (SPSS) kullanarak belirlemiş ve bu yöntemlerin etkinliklerini karşılaştırmışlardır. 2.2. Sınıflandırma 2.2.1. Sınıflandırmaya Giriş Önceki bölümlerde de bahsedildiği gibi, bir çok organizasyon çok büyük miktarda bilgiyi depolamaktadır. Ancak, genellikle yönetimsel karar verici mekanizmalara destek niteliğindeki gerekli bilgileri çıkarmada maalesef başarısız olmaktadırlar. Veri analizi yaparak faydalı bilgiler elde etme ihtiyacının giderek büyümesi veritabanlarından bilgi keşfinin 1990’ların başından itibaren dikkatleri çekmeye başlamasına yol açmıştır. Örnek olarak kredi uygulamalarında, kötü kredileri tahminleme kabiliyetlerini geliştirerek kredi kayıplarının azaltılma çalışmaları için böyle bir analizden çıkarılan sonuçların önemi çok daha iyi anlaşılmaya başlandı. Tıp alanından örnek vermek istenirse; geçmiş verileri öğrenilen yeni bir hastanın kalp krizi geçirme olasılığının tahminlemesi yine bu tür bir çalışma ile çıkarılan sonuçlarla yapılabilir. Endüstri alanında, bir ürünün üretim sürecindeki bütün bilgilerin toplanması ve bu tür bir çalışmayla analiz edilmesi sayesinde üretim kusurlarında önemli azalmalar yakalanabilecektir. Veri madenciliği, veritabanlarında büyük miktardaki veri içindeki saklı olan ilişki ve global örüntü arama sürecidir. Bu sistemler geleneksel sistemlerle yıllar süren bir çalışma ile bulunabilecek anlamlı ilişkileri kısa süre içinde bulabilmektedir [47]. Burada dikkat edilmesi gereken önemli bir nokta vardır. Veri madenciliği geleneksel istatistik tekniklerin yerine kullanılması gereken bir yaklaşım değildir. Tam tersi 27 istatistik topluluklarında büyük değişikliklere yol açmış ve istatistiksel metotların, yapay zekanın, veritabanı sistemlerinin ve veri görüntüleme tekniklerinin açılımı olan bir yaklaşım şeklinde görülmelidir [11],[48]. Veri madenciliğinin ilişkili olduğu alanlar Şekil 2.4’te gösterilmiştir. Şekil 2.4. Veri Madenciliği ve İlişkili Alanlar Sınıflandırma istatistiksel örüntü tanıma, makine öğrenme ve veri madenciliği gibi araştırma alanlarında kapsamlı şekilde çalışılan önemli bir problem türüdür. Temel fikir; bir örneğin (çalışılan veri kümesindeki bir kayıt) üye olduğu sınıfı, o örneğin sahip olduğu tahminleyici (predictor) nitelik değerlerine göre tahmin etmektir [49]. 2.2.2. Sınıflandırma Nedir? Sınıflandırma görevinde her bir örnek (veritabanındaki her bir kayıt) bir sınıfa üyedir. Üyelik bilgisini içeren bu verilere amaç niteliği denir. Bu nitelikler her biri bir sınıfa karşılık gelmek üzere küçük miktarda kesikli değerlerdir. Sınıflandırma algoritmasının amacı, örneklerin hangi sınıfa ait olduklarını tahminleyici nitelik olarak adlandırılan diğer nitelikleri kullanarak tahmin etmektir [4]. Sınıflandırma tekniği veri madenciliği alanında en çok çalışılan konulardan biridir. Sınıflandırma, kullanıcı tarafından belirlenmiş amaç niteliği ve diğer niteliklerin değerleri göz önünde tutularak elemanın hangi sınıfa ait olduğunun tahmininin yapılmasıdır. Başka bir deyişle, veri kümesindeki elemanların ortak özelliklerinin bulunması ve sınıflama kuralına göre bu elemanların farklı sınıflara dahil edilmesi işlemidir [47]. 28 Veri sınıflandırma, veritabanındaki mevcut nesne kümelerinin ortak özelliklerini tanımlayan ve bu nesneleri farklı gruplara (sınıf) kategorize eden bir öğrenme sürecidir. Sınıflama yapımında eğitim kümesi olarak adlandırılan örnekler (tuples) göz önünde bulundurulur. Her bir örnek kendini diğer örneklerden ayırt eden aynı sayıda nitelik veya yapı kümesini ihtiva eden nesnedir. Ayrıca her örnek ait olduğu sınıfı tanımlayan ek bir nitelik (amaç niteliği) daha içerir [50]. Veri madenciliği sınıflandırma modellerini zaten sınıf tanımı yapılmış verilerden oluşturur. Bu veriler geçmişe dayalı veritabanlarından, daha önce üzerinde çalışılan problemi yaşamış veya problemle ilgili uzun süre tedavi gören bireylerin durumunun kaydedilmesi gibi çalışmalar ile oluşur [2]. Sınıflandırmanın görevi, öğrenme verisindeki mevcut yapıları kullanarak her bir sınıf için bir tanımlama veya model kurmaktır. Her bir sınıfın kurulan modeli sınıfın öğrenme verisine konulmamış kalan diğer verisine, yani test verisine uygulanır [50]. Veri madenciliğinin artan ilgiye sahip sınıflandırma alanı iki kategoride gruplanabilir; kural tabanlı sınıflandırma ve kural tabanlı olmayan sınıflandırma [51]. -Kural tabanlı sınıflandırma: Verileri analiz ederek doğrudan anlaşılabilir bilgi türeten ve uzman tarafından keşfedilen bilginin doğruluğunun ve faydasının sıklıkla değerlendirilebildiği yaklaşımdır. -Kural tabanlı olmayan sınıflandırma: Bir kara kutu gibi çalışır. İçsel nedenlerden ve etkilerden dolayı kurallar saklı olmasına rağmen kullanıcı genellikle nihai çıktıya erişebilir. Destek vektör makineleri ve yapay sinir ağları gibi sınıflandırıcılar anlaşılabilirlik genellikle söz konusu iyi sınıflandırma olduğunda ilk kural tabanlı olmayan doğrulukları tercih yakalarlar. Ancak, olarak düşünülmeyebilirler. Anlaşılabilirlik denildiğinde; girdi ile çıktı arasındaki ilişkinin açıkça ortada olduğu durum ifade edilmek istenilmektedir. Öyle ki; kullanıcı herhangi yeni bir girdiden kolayca yeni bir sonuç türetebilmelidir. Anlaşılabilir bilgi bir çok uygulamada önemlidir. Örnek olarak tıbbi teşhis ve yönetim karar destek uygulamaları verilebilir. 29 Bu uygulamalarda uzman kişi çözüm sürecinde önemli roller üstlenmiştir. İnsan çabasına bağımlılığı azaltmak için, C4.5, karar tablosu, genetik algoritma programı ve dil tabanlı genetik programlama gibi kural tabanlı sınıflayıcılar uygulama alanlarında sıklıkla kullanılmışlardır. Wong ve Leung [52], her bir yeni probleme yeni bir gramer sağlanmasına ihtiyaç duyan, sınıflandırma kuralları inşa edecek, alana özel, dil tabanlı bir genetik programlama yaklaşımı sunmuşlardır. Bojarczuk ve ark. [53] sınıflandırma kurallarının anlaşılabilirlik açığına işaret eden standart olmayan ağaç yapısında genetik programlama çalışması sunmuşlardır. Bu yaklaşımda, nümerik nitelikler nominal niteliklere ayrılmaktadır. Yapılan çalışmalarda yeni tekniklerin performanslarının kıyaslamalarında geleneksel algoritmalar kullanılmaktadır. Bu algoritmalar hakkında genel bilgi bir sonraki başlıkta verilmiştir. 2.2.3. Sınıflandırma Kuralları Bir kural “if <koşul> then <sınıf tahmini>” yapısındaki bir ifadedir. Kurallar genellikle bilginin ifade edilmesinde kullanılır ve insan tarafından kolayca anlaşılabilir. Kurallar ayrıca karar vermek için uzman sistemlerde de kullanılabilir. Kural öğrenme, eğitim örnekleri kümesinden kural türetme sürecidir. Kural öğrenmede bir çok algoritma, bir örneği daha önceden belirlenmiş sınıflardan birine atamak için kural araştırması yapar [3]. Sınıflandırma alanında sunulan yeni teknik ve algoritmalar performanslarının değerlendirilmesi için çeşitli geleneksel algoritmalar ile kıyaslanmaktadır. Yapılan çalışmalarda adı geçen bu teknikler hakkında genel bilgi vermenin faydalı olacağı düşünülmüştür. AQ (Ancestral Quest) , CN2, ID3 ve C4.5 algoritmaları kullanılan bu algoritmalardan bazılarıdır. 30 2.2.3.1. AQ (Ancestral Quest) Algoritması AQ, tümevarım öğrenme için bir algoritmalar ailesidir. Bu aileye örnek olarak AQ15 algoritması verilebilir. AQ bilgi gösterimi için karar kurallarını kullanır. Bir kural değişken değerli mantık sistemi 1 (VL1) içinde gösterilir. VL1 de bir seçici değişken ile bir değer ya da değerler birleşimi ile ilişkilidir (Örnek: Renk = kırmızı veya yeşil). Seçimlerin bağlacı ise bir kompleksi oluşturur. Bir örtü ise bütün pozitif örnekleri kapsayıp, hiçbir negatif örneği kapsamayan kompleksler bağlacıdır. Bir örtü karar kuralının koşul kısmını oluşturur. AQ algoritması asıl yapısı itibariyle sadece kesin kurallar oluşturur. Örnek olarak; her bir sınıf için, karar kuralı sadece bir grup pozitif örnekleri kapsayıp negatif örneklerden hiç birini kapsamamalıdır [3]. AQ algoritmasının adımları aşağıdaki gibidir [3]; 1. Öğrenme örneklerinin içinden pozitif bir örnek seçilir. Bu örneğe tohum adı verilir. 2. Yıldız adı verilen ve tohumu örten kompleksler kümesi üretimi ‘yıldız üretim’ adımında gerçekleştirilir. Yıldızdaki her kompleks negatif hiçbir örneği kapsamayan en genel kompleks olmalıdır. 3. Yıldız içindeki kompleksler alfabetik değerlendirme fonksiyonuna göre dizilir. Bu fonksiyon genelde kapsanan pozitif örnek sayısını maksimize etmek için kullanılır. 4. En iyi kompleks tarafından kapsanan örnekler grubu öğrenme örneklerinden çıkarılır. 5. Yıldızdaki en iyi kompleks örtüye eklenir. Adım 1 – 5 bütün pozitif örnekler örtü tarafından kapsanana kadar tekrar eder. Yıldız üretme adımı olan ikinci adım aşağıdaki gibidir; Kısmi yıldız boş kompleks olsun. Kısmi yıldız bütün negatif örnekleri kapsayana kadar; 1. Kapsanan negatif bir örnek seç. 31 2. Genişlemeyi tohumu kapsayan bütün seçiciler olarak ata. Bu seçiciler hiçbir negatif örneği kapsamasınlar. 3. Kısmi yıldızı güncelle. {x ^ y | x ε kısmi yıldız, y ε genişleme }. 4. Diğer komplekslerin içerdiği bütün kısmi yıldızları çıkar. Kısmi yıldızı kırp. Sadece en iyi komplekslere sahip olanı elde tut. Yıldız üretme adımında dahil edilenler sadece tohumu kapsayan kompleksler değildir. Kısmi yıldız en iyi kompleksleri içerecek şekilde kırpılır. Sezgiseller pozitif örnekleri dahil etmek ve negatif örnekleri dışarıda tutmak için kullanılmaktadır. Algoritmada kullanılan terimler Şekil 2.5.’te gösterilmiştir. Şekil 2.5. AQ Algoritmasının Terminolojisi 2.2.3.2. CN2 Algoritması AQ algoritmasının tersine CN2 (Clark ve Niblett, 1989) algoritması gürültülü örnek kümeleriyle başa çıkabilmektedir. AQ algoritmasındaki yayılım arama (beam search) algoritmasını kullanır. Yayılım arama algoritması, bir takım kurallara göre seçilen en uygun düğümün genişletilmesi prensibine göre hareket eden bir sezgisel algoritmadır. Ancak sabit m parametresi yayılma genişliğini sadece en iyi m düğüm kadar genişleyebilmesine müsaade edecektir. m parametresinin artması algoritmayı optimuma o kadar yaklaştırmaktadır. Yayılım arama algoritmasının adımları; başlangıçta rasgele m adet düğüm seçilir, seçilen m adet düğümün ardılları hesaplanır, eğer amaç düğümüne ulaşılmış ise algoritma durur, aksi takdirde ardıl düğümlerden m tanesi seçilerek adımlar tekrarlanır. 32 Ancak CN2 algoritması arama esnasında tohuma bağlı kalmaz. CN2’nin her bir adımında C sınıfını kapsayan geniş sayıdaki örneklerin yanında küçük sayılarda diğer sınıflardaki örneklerden de kapsayabilir [3]. CN2 algoritması iki ana prosedür içerir. Bunlar; uygun kuralları bulmak için yayılım araması gerçekleştiren bir arama prosedürü ile aramayı devam ettiren bir kontrol prosedürüdür. Arama esnasında CN2 hangi kuralın en iyi olduğunu değerlendirmelidir. Kuralın doğruluğu veya ID3 algoritmasında da kullanılan entropi, değerlendirmede kullanılabilir. Entropi ayrıca tek bir sınıfı örten kuralları tercih eden yapıdadır [54]. 2.2.3.3. ID3 Algoritması ID3 algoritması sabit örnek kümesinden karar ağacı türeten bir algoritmadır. Nihai karar ağacı gelecekteki örneklerin sınıflarını tahmin etmekte kullanılır. ID3 algoritmasını ilk olarak J. Ross Quinlan 1975 yılında yayınlanan “Machine Learning” adlı kitabında sunulmuştur. Standart ID3 algoritması özellikler arasında arama yaparak öğrenme veri kümesini en iyi şekilde sınıflara ayıran özelliği bulur. Eğer özellik veri kümesini tamamen doğru şekilde sınıflandırmış ise ID3 algoritması durur. Aksi takdirde kendinden yinelemeli olarak en iyi sınıflandırmayı sağlayacak alt kümeye sıralı adımları uygulayarak devam eder. Algoritma açgözlü arama kullanır. En iyi değeri alır ve hiçbir zaman önceki çözümleri tekrar gözden geçirmez. 2.2.3.4. C4.5 Algoritması ID3 algoritmasının başa çıkamadığı belirsiz değer veya sürekli veriler içeren problemlere uygulanabilecek esnekliktedir. C4.5 yapılandırılmış karar ağacını üretim kurallarına çevirebilir. Kök düğümden yaprak düğüme doğru giden her yol bir kurala eşittir. Yolun bütün koşulları kuralın koşul kısmını oluşturur ve sınıf tahmini en son yaprak düğümdür. Ancak bu kural çok karmaşık olabilir ve basitleştirilmesi gerekebilir. Basitleştirme işleminden sonra kural kümeleri gereksiz ayrıntılara sahip olabilir. Her bir sınıf için, sadece bir kurallar alt kümesi seçilir. Alt küme en az tanım uzunluğu prensibine göre seçilir. Bu prensip, en iyi kural kümesinin ve istisnaların kodlanması 33 için en az bite ihtiyaç duyan kurallar olmalı fikrini savunur. Her sınıf için, kodlama uzunluğu her bir kural alt kümesi için tahmin edilir. En az kodlama uzunluğuna sahip kural alt kümesi seçilir [3]. 2.3. Evrimsel Algoritmalar Evrimsel algoritmalar veri madenciliğinde kural türetme alanında umut verici araçlar olarak ortaya çıkmışlardır. Gradyan tabanlı tekniklerin aksine evrimsel algoritmalar çoklu aday çözümlerinin performanslarını eşzamanlı olarak değerlendirerek zekice çözüm uzayını taramaktadırlar ve determinist olmayan biçimde global optimuma yaklaşmaktadırlar [55]. Son yıllarda, veri madenciliğine evrimsel algoritma uygulama çalışmalarında artış yaşanmaktadır. Evrimsel algoritmalar doğal evrim sürecinden esinlenilmiş zayıf arama ve optimizasyon teknikleridir. Zayıf metotlar yapay zeka alanında problem çözme metotları üzerinde çalışan bir kategoridir. Güçlü metotların tersine, zayıf metotlar daha genel ve geniş alanlara uygulanabilir tekniklerdir. Problem çözme teknikleri görevlerini problemin arama uzayının içinde araştırırlar. Arama uzayının her bir noktasını değerlendirip kredilendirmek zorundadırlar. Bu bilgi arama noktalarının bütün bileşenlerinin kalitelerini, etkileşimini ve arama noktasının genel kaliteye etkisini değerlendirmeye yarar. Problem çözme metotları bu bilgileri kullanarak eski ve mevcut arama noktalarından nasıl yeni arama noktaları üreteceğini etkili bir şekilde yönlendirmek için kullanır. Böylece, iyi uygunluğa sahip metotlar gelecek aramaları umut verici bölgelere yönlendirirler. Güçlü metotlar problem çözme yeteneği kazanmak ve etkinliği güçlendirmek için alan bağımlı teknikler, arama stratejileri ve sezgisel yöntemler kullanırlar. Büyük miktarda alan bağımlı bilgi içerirler. Bu bilgi problem çözücüyü doğru sonuca hızla götürür. Geleneksel zayıf metotlarda ise insan performansının gözlemlenmesinden esinlenilmiştir. Bu metotlar ilk derinlik arama (depth first search), ilk genişlik arama (breadth first searh), üret ve test et (generate and test), tepe tırmanma (hill climbing), kısıt tatmini (constraint satisfaction) ve problem indirgeme (problem reduction) metotlarını içerir. Diğer taraftan evrimsel algoritmalarda insanın arama ve öğrenme metotlarındaki başarılı olan zeki davranışlarından esinlenilmiştir. Makine öğrenme ve optimizasyon amaçlarını başarmak için doğal seleksiyon ve evrim prensiplerini kullanır. Genel olarak evrimsel algoritmalar popülasyon tabanlı olan, 34 seleksiyon ve arama uzayında yeni bir arama noktası üreten genetik operatörlere sahip bütün algoritmaları kapsar. Bu algoritmalar; genetik algoritmalar, genetik programlama, evrimsel programlama ve evrimsel stratejilerdir. Bu çeşitlilikteki yaklaşımlar uygulandıkları modellere, kullandıkları operatörlere, seçim metotlarına ve uygunluk fonksiyonlarına göre birbirinden ayrılırlar. Genetik algoritma ve genetik programlama genetik seviyede evrimin modelleridir. Diğer taraftan, evrimsel stratejilerde kullanılan optimizasyon fikrinde ise popülasyondaki bireylerin yapıları optimize edilmeye çalışılır. Bireylerin çeşitli davranışsal özellikleri parametrik hale getirilir ve optimizasyon süresinde bu değerler gelişir. Evrimsel programlamada ise çeşitli türlerin davranışsal özelliklerinin adaptasyonu üzerinde durularak en üst düzey soyutlama kullanılır [3]. 2.3.1. Genetik Algoritmalar Genetik algoritmalar; doğal seleksiyon prensibinden yola çıkılarak geliştirilmiş arama algoritmalarıdır. Algoritma, belirli bir uzunluğa sahip dizilerden oluşmuş bir popülasyona sahiptir. Popülasyon içindeki her bir kromozom, çözüm uzayında bir noktayı temsil eder. Bu diziler aynı zamanda üreme yolu ile varlığını sürdürmeye aday olan birer bireydir. Algoritmanın temel işleyişi; çözüme uygun olmayan bireyleri elemek, çözüme daha uygun bireyleri seçmek ve seçilen bireylerden yeni bireyler üretmek doğrultusundadır. Algoritmanın işleyişi aşamalı olarak düşünüldüğünde temel prensibinin eleme olduğu anlaşılmaktadır. İkinci prensip ise, elemeyi aşan bireylerden yararlanılarak olası yeni çözümler elde etmektir. Bu da bireyler arasındaki bilgi alışverişi ile sağlanır. Bireyler arası rasgele bilgi alışverişi, arama işleminin, çözüm uzayının daha uygun noktalarında devam etmesini sağlar [56]. Kısaca tarihsel gelişimini özetlemek gerekirse; evrimsel hesaplama ilk olarak 1960’larda I.Rechenberg tarafından “Evolutions strategie” isimli eserinde tanıtılmıştır. Onun fikri daha sonra başka araştırmacıların da ilgisini çekmiş ve geliştirilmiştir. John Holland evrim sürecinin bir bilgisayar yardımıyla kullanılarak, bilgisayara anlayamadığı çözüm yöntemlerinin öğretilebileceğini düşündü. Genetik Algoritma (GA) böylece John Holland tarafından bu düşüncenin bir sonucu olarak bulundu. Genetik algoritma stokastik bir arama yöntemidir. “En uygun olan hayatta kalır” ilkesine dayanmaktadır. Biyolojik sistemlerin gelişim sürecini modelleyen genetik algoritma, ilk olarak Holland [57] tarafından önerilmiştir. Onun öğrencileri ve arkadaşları tarafından geliştirildi ve bu 35 sayede Holland’ın kitabı “Adaption in Natural and Artificial Systems” 1975 yılında yayınlandı. Sezgisel bir yöntem olan genetik algoritma, problem için optimum sonucu bulamayabilir, ancak bilinen metotlarla çözülemeyen veya çözüm zamanı çok büyük olan problemlerde optimuma çok yakın çözümler vermektedir. Holland’ın araştırması iki yönlüdür: - Doğal sistemlerde görülen adaptasyon (ortama uyum yeteneği) kavramını açıklamak. - Doğal sistemlerin temel işleyişini, yapay yazılım sistemleri aracılığı ile modellemek. Doğal sistemler oldukça sağlam ve kararlı yapıdadırlar. Uyum yeteneğinin nasıl gelişip işlediğini öğrenmenin en iyi yolu, biyolojik sistemler üzerindeki çalışmalardır. Genetik algoritmaların karmaşık arama uzaylarına uygulandığında kararlı çözümlere ulaştıkları, kuramsal ve deneysel çalışmalar ile kanıtlanmıştır. Etkili ve verimli bir yöntem olduğu kanıtlandıktan sonra çeşitli bilim dallarının yanı sıra iş dünyası ve mühendislikte geniş bir uygulama alanı bulmasının en önemli nedeni, kuşkusuz hesaplamalarda sağladığı basitlik ve arama işlemlerindeki iyileştirme gücüdür. Genetik algoritmaların kullanılma yerlerine örnek olarak; After Software Limited tarafından üretilen XpertRule paketince kullanılan genetik algoritma, İngiltere’deki Channel 4 TV’nin günlük reklam çizelgesinin oluşturulmasında uygulanmaktadır. Barselona’da Complex Systems SL adlı firma tarafından genetik algoritma tabanlı olarak üretilen DISTOS programı 1000 bölgeye kadar günlük petrol dağıtımı problemi ile ilgilenmektedir [56]. 2.3.1.1. Genetik Algoritma Çeşitleri Genetik algoritmaları belirli özelliklere göre sınıflandırmak oldukça zor bir iştir. Bunun sebebi, genetik operatörlerin , bütün parametrelerin , amaç fonksiyonunun ve uygunluk fonksiyonunun probleme özel olarak değişebilme durumundan kaynaklanmaktadır. Kısacası genetik algoritma yapısı optimum veya optimuma yakın sonuca daha hızlı ulaşmak için her türlü şekilde uyarlanabilmektedir. Hatta genetik operatörlerde bile köklü değişiklikler yapılabilmektedir. Mutasyonun uygun olmayan çözüm yaratma olasılığı bulunan bir problemde kullanılmaması veya bu problemde geleneksel mutasyon operatörü yerine kromozomda uygun olmayan çözümü engelleyen probleme özel tasarlanmış mutasyon operatörü kullanılması ve kromozomun ikili sayı sisteminde kodlanması yerine onlu sayı sisteminde ya da altmışdörtlük sayı sisteminde kodlanması 36 örnek olarak verilebilir. Her ne kadar probleme göre farklılık gösterse bile genetik algoritmaları 3 genel başlık altında toplayabiliriz; - Basit genetik algoritmalar: Alışılagelmiş genetik algoritmalar olarak düşünülebilir. - Paralel genetik algoritmalar: Birden çok işlemci bulunan bir sistemde hesap yükünün işlemcilere uygun şekilde dağıtılması olarak ifade edilebilir. - Melez genetik algoritmalar: Genetik algoritma içerisine bir başka tekniğin oturtulması ile daha iyi performans sağlayan bir algoritma oluşturulabilir. 2.3.1.2. Basit Genetik Algoritma İşleyişi Basit genetik algoritma adımları Şekil 2.6.’da gösterilmiştir. BAŞLANGIÇ POPÜLASYONU UYGUNLUK HESAPLAMASI UYGUNLUK ÖLÇEKLENDİRME DOĞAL SEÇİM MEKANİZMASI ELİT BİREY SEÇİMİ ÇAPRAZLAMA MUTASYON ? DUR Şekil 2.6. Basit Genetik Algoritma İşleyişi Adım1. Başlangıç popülasyonu oluştur. 37 Genellikle başlangıç popülasyonu oluşturulurken rasgele sayı üreticisi kullanılır. Şayet başlangıçta problemle ilgili bazı çözümler kabaca biliniyorsa başlangıç popülasyonu bu çözümler kullanılarak da oluşturulabilir. Adım2. Bireylerin uygunluk değerini hesapla. Çözümlerin kalitesinin belirlenmesinde kullanılan teknik, genetik algoritmanın performansında oldukça etkilidir. Amaç fonksiyonundan elde edilen ham sonuçların kullanımı araştırmanın başlangıcında yeterli olabilir. Uygunluk değeri hesaplarken amaç fonksiyonuna dolaylı olarak hizmet eden ek terimler eklenebilir. Uygunluk fonksiyonunu genetik algoritmanın beyni olarak tanımlamak abartılı bir durum oluşturmaz. Genetik algoritmayı tamamen rasgele olmaktan kurtaran adım bu adımdır. Adım3. Uygunluk ölçekleme işlemini yap. Araştırma ilerleyip optimum sonuca yaklaştıkça, iyi ile daha iyi çözümün ya da kötü ile daha kötü çözümün arasındaki farkı ayırt etmek zorlaşacaktır. Bu durum genetik algoritmanın çözümleri geliştirmesini olumsuz etkiler. Bu yüzden kalite değerlendirme biriminde normalizasyon işlemine gerek duyulur. Genetik algoritmalar normalizasyon işlemine karşı oldukça hassastır. Adım4. Doğal seçim mekanizmasını uygula. Kalitesi yüksek bireylerin hayatta kalmaları ve sayılarının artması, kalitesi düşük bireylerin ise sayılarının azalarak kaybolması prensibine göre çalışan bir genetik algoritma elemanıdır. Doğal seleksiyon için kullanılan mekanizma türleri aşağıdadır; ∗ Rulet çemberi seçim mekanizması : Uygunluk değeri oranı büyük olan birey çark yüzeyinde daha büyük paya sahip olur, böylece seçilme şansı daha yüksek hale gelir. ∗ Sıralı seçim mekanizması : Sıralı seçim mekanizmasında popülasyondaki bireyler uygunluk değerine göre en iyiden en kötüye doğru sıralanır. En iyiden başlamak kaydıyla bu sıranın belli bir parçası doğrudan üreme havuzuna alınır. ∗ Turnuva seçim mekanizması : Her bireyin yarışacağı belirli sayıda rasgele seçilmiş bireylerden bir alt popülasyon oluşturulur. Birey alt popülasyondaki bireylerle 38 uygunluk değerlerine göre yarışır ve kim kazanırsa üreme havuzuna seçilir. Bu yarışma popülasyon büyüklüğü kadar tekrarlanır. ∗ Denge durumu seçim mekanizması : Doğrusal sıralı seçim mekanizması kullanılarak seçilen bir veya iki bireye genetik operatörler uygulanır. Daha sonra elde edilen yeni birey mevcut popülasyondaki uygunluk değeri en düşük bireyler ile yer değiştirilerek yeni popülasyon oluşturulur. Adım5. Elit bireyi muhafaza et. Elit birey popülasyon içindeki en iyi uygunluğa sahip bireydir. Genetik algoritmanın seçim mekanizmasının rasgele olması, popülasyondaki uygunluk değeri en büyük olanın yani elit bireyin bir sonraki popülasyona seçilmesini garantilemez. Elit birey seçilse bile genetik operatörlerin etkisiyle kromozom yapısında değişikliğe uğrayıp uygunluk değeri daha kötü bir bireye dönüşebilir. Bu durumun oluşmaması için doğal olmayan elitizasyon işlemi uygulanır. Adım6. Çaprazlama işlemini uygula. Çaprazlama popülasyonda çeşitliliği sağlar. İyi özelliklerin bir araya gelmesini kolaylaştırarak en iyiye yaklaşmayı hızlandırır. Basitçe düşünülürse olay iki ebeveyn kromozomun belirlenen parçalarının takasıdır. Genetik algoritmalar bu olayın benzeşimini temelde; ∗ Tek noktalı çaprazlama, ∗ Çok noktalı çaprazlama adı verilen iki yolla yapar. Örnek olarak çaprazlama noktasının rasgele 3 olarak belirlendiği bir çaprazlama operasyonunda rasgele seçilen iki ebeveyn kromozom çaprazlandığında; yeni bireyler Adım8. Mutasyon işlemini uygula. olacaktır. 39 Yeni popülasyona alınacak her bir bireyin genleri mutasyon oranına göre değiştirilir. Mutasyon operatörü olmayan bir genetik algoritma, optimum çözümü ancak çözüm elemanlarının başlangıç popülasyonunda yer alması halinde bulabilir. Mutasyon işlemi, görülmemiş ve araştırılmamış çözüm elemanlarının bulunmasını sağlar. Örnek olarak; Fm = 25 rasgele üretilmiştir, yani kromozomun %25 i değişecektir. Mutasyondan önce birey = 7 5 6 3 5 4 1 9 Mutasyondan sonra birey = 8 5 6 2 5 4 1 9 2.3.2. Genetik Programlama 1992 yılında John Koza [58] genetik algoritmayı kullanarak çeşitli görevleri yerine getiren programlar geliştirdi. Bu metoda Genetik Programlama adını verdi. Genetik programlama, genetik algoritmaların bir uzantısı olarak ifade edilmiştir. Aralarındaki temel farklılık, yönettikleri yapının gösterimi ve bu gösterimin taşıdığı anlamda ortaya çıkmaktadır. Genetik algoritmalar genelde sabit uzunluktaki ikili dizilere sahip popülasyonlar üzerinde çalışır. Genetik programlama ise genellikle bilgisayar programlarını barındıran ağaç yapılarına sahip popülasyonlar üzerinde çalışır. Genetik programlama bilgisayar programlarının davranışları ile ilgilendiği için, fenotip tanımı genetik algoritmalara göre daha soyut kalmaktadır [3]. Genetik programlamada mutasyon ve çaprazlama operatörleri ağaç yapısına uygun olarak yapılandırılmışlardır. Mutasyon rasgele bir düğümü seçerek gerçekleştirilir. Rasgele seçilen düğümün altındaki alt ağaç yapısı silinerek yerine rasgele yeni bir yapı büyütülür [47]. Şekil 2.7.’de mutasyon operatörü için örnek gösterilmiştir. Çaprazlamada ise ilk olarak iki ağaç aday olarak seçilmelidir. Mutasyon işlemindekine benzer şekilde her iki aday için rasgele bir düğüm belirlenir. Belirlenen düğümden sonraki alt ağaçlar karşılıklı seçilen noktalardan takas edilir [47]. Şekil 2.8.’de çaprazlama operatörü için örnek gösterilmiştir. 40 Şekil 2.7. Ağaç Yapısının Mutasyonu Şekil 2.8. Ağaç Yapısındaki Çaprazlama Genetik programlamada seçim operatörü genetik algoritmalardaki durumdan farklı değildir [47]. Genetik programlama ve çeşitleri ile ilgili daha geniş bilgi 5. bölümde verilmiştir. 2.3.3. Evrim Stratejileri Bu tekniklerde üzerinde durulan, yüksek uygunluk değerine sahip yapılar inşa etmek yerine, uygunluk fonksiyonu tarafından iyi kabul edilen bir davranış geliştirmektir. Davranış optimizasyonuna odaklanarak, temsil ve üreme sezgiselleri, ebeveynlerine yapısal olarak benzemese bile davranış olarak benzeyen nesneler oluşturmak zorundadır. Ancak, üreme operatörlerinde davranış etkileri modellendiğinde uygun davranış eldesi kolay olmak zorundadır. Evrimsel stratejiler bireylerin, yapı kümelerinin 41 bileşiminden oluştuğunu varsayar. Yapılar arasındaki etkileşim bilinmeyendir. Evrimsel stratejiler birey gösterimi için sabit uzunluklu, gerçek değerli diziler kullanır. Her bir konum ayrı bir davranışsal karaktere işaret eder. Sabit uzunluklu dizilere bağlılık, muhafaza edilecek davranışların yönetilerek, ebeveynden çocuğa evrimleşme hareketini kolaylaştıracaktır. Davranış olarak benzer çocuk oluşturmak için dizilerin içeriğini yöneten farklı operatörler tanımlanmıştır. Evrimsel stratejilerin kökeni Almanya’da reel değerle çalışan bir uygulamadır. Problem F(X):RL R amaç fonksiyonunu en küçükleyerek veya en büyükleyerek L sayısı ile gerçek değerli X vektörünü bulmak olarak tanımlanabilir. Evrim modeli bir birinden farklı olan bir çok evrimsel strateji vardır [3]. 2.3.4. Evrimsel Programlama Evrimsel programlama, genetik algoritmalara benzeyen stokastik bir optimizasyon stratejisidir. Evrimsel programlama doğada bulunan bazı genetik operatörleri iyileştirmek yerine yeni birey ile ebeveyn arasındaki bağlantıya odaklanmıştır. Genetik algoritmalardan farklı olarak, evrimsel programlama bireylerde belirli herhangi bir genotipe ihtiyaç duymaz. Evrimsel programlama daha soyut bir model çalıştırır. Mutasyon evrim için kullandığı tek operatördür. Tipik bir evrimsel algoritmanın süreci aşağıdaki gibidir [3]; 1. Jenerasyonu başlat, t’yi 0 yap. 2. Popülasyon(t)’nin bireylerini başlat. 3. Popülasyon(t)’nin bireylerinin uygunluklarını değerlendir. 4. Durdurma kriteri sağlanana kadar tekrarla; a. Mutasyon yolu ile her bir bireyden bir ya da daha fazla yeni birey oluştur. b. Her bir yeni bireyin uygunluğunu değerlendir. c. Her bir yeni birey için bir turnuva gerçekleştir. d. Yüksek turnuva puanına ulaşan yeni bireyleri Popülasyon(t+1)’e koy. e. t’yi bir artır. 5. En yüksek uygunluk değerine sahip bireyi döndür. 42 Minör seviyeden en uç seviyelere kadar farklı tiplerde mutasyon bulunmaktadır. Bireyin davranışlarındaki minör değişiklikler daha sıklıkla ortaya çıkarken büyük değişiklikler daha ender ortaya çıkmaktadır. Evrimsel Programlamanın iki özelliği vardır. İlki, gösterimde bir kısıt yoktur. Mutasyon operatörü belirli bir genotip talep etmez. İkincisi ise, evrimsel programlamada mutasyon, yeni birey ile ebeveyn arasında davranışsal benzerliği muhafaza etmek girişimindedir. Çok hafif değişimler olduğunda yeni birey ebeveyne genellikle benzemektedir. Evrimsel programlama, potansiyel yeni bireyin dağılımının ebeveyn etrafında normal dağılacağını varsaymaktadır. Böylece mutasyonların ayrımlarının istatistiksel bir dağılımı takip ettiği düşünülür [3]. 2.4. Genetik Programlama Bilgisayar biliminde en önemli zorluklardan biri bilgisayara ne yapacağını anlatmadan yapılması gerekeni yaptırmaktır. Genetik programlama problemin yüksek seviyeli bir ifadesinden otomatik olarak çalışan bir bilgisayar programı oluşturmasını sağlayan bir metot ile bu zorluğa işaret etmektedir. Genetik programlama bu hedefe otomatik programlama kullanarak diğer bir deyişle; doğal seleksiyon ve biyolojik olarak esinlenilmiş operatörler prensibi ile genetik olarak üreyen popülasyonlar kullanarak ulaşmıştır. Gösterim genetik algoritma çalışmalarında anahtar noktaydı çünkü, genetik algoritma doğrudan problemin kromozoma çevrilmiş yapısına müdahale etmekteydi. Gösterim şemaları katı şekilde sistemin dünyayı araştırdığı pencereyi kısıtlamaktaydı. Bu teorik analizlerin bir çoğu sabit uzunluklu karakter dizisinin matematiksel olarak kolay kontrol edilebilmesine dayanmaktaydı. Genetik algoritma kullanımında yapılan çalışmalar karmaşık yapılara olan ihtiyacı ortaya çıkarmıştır. Makine öğrenme ve yapay zeka problemlerinin bir çoğunda, çözümün en doğal gösterimi kesin boyutları belirlenmiş karakter dizisi değil, aksine kesin belirli olmayan boyut ve şekle sahip bir bilgisayar programıdır. Boyut ve şekli sürekli dinamik olarak değişen hiyerarşileri, mevcut sabit uzunluklu karakter dizileri ile ifade etmek hem zor, hem kısıtlayıcı hem de doğal olmayan bir durum olarak ifade edilmiştir. Genetik programlama bir problemi çözmek ya da çözümüne yaklaşmak için boyut ve şekli belirlenmemiş bilgisayar programları bulmak için bir yol sağlar. “Genetic Programming: On the Programming of Computers by Means of Natural Selection” adlı kitabında genetik programlamayı detaylı olarak açıklamaktadır [58]. 43 Genetik programlamada temel fikir “program” popülasyonunun evrimidir. Bir program (popülasyonun bir bireyi) genellikle içsel düğümleri operatör ve uç yaprakları nitelikler olan bir ağaç şeklinde gösterilir. Geçmişte sunulan grafik ve çoklu ağaç gibi daha karmaşık gösterimler ağaç gösterimi kadar tutulan gösterimler olamamışlardır [59],[60]. Fonksiyon ve terminal kümesi hedef probleme uygun nitelikleri içermelidir. Fonksiyon kümesi aritmetik operatörleri, mantık operatörlerini ve matematiksel fonksiyonları içerirken terminal kümesi problemin değişkenlerini (nitelikler) içerebilir. Örnek olarak tıp alanında bu nitelikler sinyaller, belirtiler veya hasta hakkında diğer tanılar olabilir [49]. Genetik çeşitliliğin tanıtılması ancak ağaç seviyesinde olmaktadır ve bu sebeple geçerli yapılar ortaya çıkması için oluşumun çok dikkatle yapılması gerekmektedir. Örnek olarak, ağaca özgü üreme genetik programlamada genetik çeşitlilikte kullanılan neredeyse tek kaynaktır. Bu şekilde alt ağaçlar takas edilebilir ve her zaman geçerli yapılar üretilir. Ancak, diğer operatörlerin uygulanması yüksek oluşumlu mutasyon gibi verimsiz olmaktadır. Ve sözdizimsel olarak yanlış yapılar ortaya çıkarabilmektedir. Açıkça, nakil ve tersleme gibi diğer operatörlerin uygulanması çeşitli zorlukları ortaya çıkarmaktadır. Ayrıca Koza iki ayrı ağaç yapısına özel operatör daha tanımlamıştır. Bunlar permutasyon ve mutasyondur. Ancak bu operatörler genetik programlamada nadiren kullanılmaktadırlar [61]. 2.4.1. Genetik Programlama ve Veri Sınıflandırma Genetik programlama, genetik algoritmaların alfabe sembollerinden oluşan sabit uzunluklu diziler yerine evrimleşen bireylerin kendileri bilgisayar programı olan bir varyasyonu olarak düşünülebilir. Programlar içsel düğümleri fonksiyonlardan oluşan sıralı dallanmalardan ve terminal olarak adlandırılan yapraklara sahip ağaç yapısıyla gösterilir. Genetik programlamada arama uzayı problem alanında bulunan terminal ve fonksiyonlardan oluşturulmuş uygun bütün bilgisayar programlarıdır. Genetik programlama yaklaşımı çoğalma, çaprazlama ve mutasyon genetik operatörlerini kullanarak ağaç yapısındaki popülasyonu evrimleştirir. Her bir ağaç verilen problem için bir çözümü temsil eder ve bu adayın diğer adaylardan ne kadar iyi olduğunu gösteren bir uygunluk değeri ile birleştirilir [50]. 44 Genetik programlama veri sınıflandırma görevinde karar ağaçları üretmek için kullanılabilir. Fonksiyon kümeleri her bir niteliği nitelik test fonksiyonuna dönüştürerek elde edilebilir. Hem çaprazlama hem de mutasyon operatörü sözdizimi doğru olan karar ağaçları üretmek zorundadırlar. Yani bir nitelik kök düğümden yaprak düğüme kadarki yol üzerinde birden fazla tekrar edemez. Ağaç büyüklüğüne karşı doğruluğu dengelemek için uygunluk ‘cimrilik’ adlı bir opsiyonel parametre ile güçlendirilir. Bu parametre ile fonksiyonun yapısı mümkün olduğu kadar basit tutulmaya çalışılır. Bu parametre ne kadar yüksek ise yapı o kadar basittir ancak bu durum doğruluğu azaltabilir. Eğer veritabanı bir çok niteliğe sahip yüksek miktarda örnek içeriyorsa doğru bir şekilde sınıflandırma yapılabilmesi için geniş karar ağaçlarına ihtiyaç duyulur. Genetik programlama temelli bir ağaç üreticisi geniş ölçekli ağaçlar içeren bir popülasyon ile başa çıkabilmektedir. Ayrıca zaten Ryan ve Rayward-Smith [62] daha önceden de açıklanan C4.5 algoritması ile üretilen aynı doğruluktaki bir karar ağacı için küçük popülasyon sayısı yetersiz kalacaktır [50]. İkili veri sınıflandırma problemleri özellikle genetik programlama olmak üzere makine öğrenme tekniklerinde önemli çalışma alanları oluşturmuştur [63]. Bunun yanında çoklu sınıflandırma problemlerinde de genetik programlama temelli metotların iyi sonuçlar verdiği yapılan çalışmalarda görülmektedir. Alexandra Takac [47], hücresel genetik programlama modeli kullanarak ikili sınıflara sahip veri kümeleri üzerinde çalışmalar yapmıştır. Uygunluk değerlendirmelerini SQL sorguları göndererek veritabanı yönetim sistemine hesaplatmıştır. C4.5 ve yapay sinir ağları ile geriye yayılım gibi bilinen algoritmalardan daha iyi doğruluk yüzdesi yakalamıştır. Freitas [64] veri madenciliği ve bilgi keşfi çalışmalarında genetik algoritma ve genetik programlama tekniklerinin kullanıldığı bir evrimsel algoritma araştırması sunmuştur. Ayrıca Freitas [65] sınıflandırma ve genelleştirilmiş kural türetme için bir genetik programlama çatısı sunmuştur. Carvalho ve Freitas [66],[67] sınıflandırma kurallarının keşfi için melez bir karar ağacı/genetik algoritma metodu sunmuşlardır. Karar ağaçları C4.5 algoritması ile büyük ayrımlar keşfedilmiştir. İkinci aşamada genetik algoritma kullanarak küçük ayrımlara ait olan örnekleri keşfetmek amaçlanmıştır. Fidelis ve arkadaşları [68] esnek olarak kodlanabilen kromozom yapısı ile tıp alanında IF-THEN 45 kuralları keşfeden bir genetik algoritma sunmuştur. Bojarczuk ve ark. [69] göğüs ağrısı tanısında kullanılacak bir genetik programlama algoritması sunmuştur. Bojarczuk ve ark. [70] medikal veri kümeleri içindeki sınıflandırma kurallarının keşfi için doğal olmayan sözdizimli yeni bir genetik programlama algoritması sunmuştur. Hassan ve Tazaki [71] kaba küme teorisi ve genetik programlamayı birleştirerek medikal veritabanlarından bilgi kuralları türetmek için melez bir algoritma sunmuştur [48]. Genetik programlama paradigmasında adaptasyona uğrayan yapılar, bu esnada boyutları, şekilleri ve karmaşıklıkları dinamik olarak değişen hiyerarşik olarak yapılandırılmış bilgisayar programlarıdır. Adaptasyona uğrayan bu yapıların kümesi kendinden yinelemeli olarak n elemanlı F={f1, f1,…., fn} kümesinde uygun olan bütün fonksiyon ve m elemanlı T={a1, a1,…., an} kümesinde uygun olan terminallerin olası bütün bileşimleridir. F’teki her özel f fonksiyonu belirli sayıda argüman alır. İlgili olduğu probleme göre, fonksiyonlar standart aritmetik operatörler olabilir, SIN, EXP gibi standart matematiksel fonksiyonlar olabilir, mantıksal operatörler veya alana özel fonksiyonlar olabilir. Terminaller bir sistemin durum bilgisi, yani 0 ve 1 gibi argümanlar olabilir. Bazı durumlarda ise, argümanı olmayan bir fonksiyon gibi farklı bir varlık olabilir [72]. Sanal olarak herhangi bir programlama dili yukarıda bahsedilen fonksiyonları ifade edebilecek kabiliyete sahiptir. Bu çalışmada ise T-SQL (Trasnact - Structured Query Language) dili seçilmiştir. SQL dili ile ilgili detaylı bilgi ileriki bölümlerde verilecektir. 2.4.2. Standart Genetik Programlama 2.4.2.1. Hazırlık Adımları Kullanıcı problemin yüksek seviyeli ifadesini, belirli iyi tanımlanmış hazırlık adımlarını gerçekleştirerek iletir. Standart genetik programlama için beş ana hazırlık adımı şöyledir [73]; 1. Evrimleşecek programın her bir dalı için terminal kümesi (örnek olarak; problemin bağımsız değişkenleri, argümana sahip olmayan fonksiyonlar ve rasgele sabitler). 2. Evrimleşecek programın her bir dalı için ilkel fonksiyonlar. 46 3. Uygunluk ölçümü (popülasyondaki bireylerin dolaylı ya da doğrudan ölçümü). 4. Çalışmayı kontrol edecek belirli parametreler. 5. Durdurma kriteri ve çalışma sonucunun analizinin yapılacağı metot. Şekil 2.9.’da standart genetik algoritmanın beş ana hazırlık adımını göstermektedir. Hazırlık adımları genetik programlama sistemine insan destekli girdilerin girilme sürecidir. Bilgisayar programı ise bu sürecin çıktısıdır [74]. Terminal Kümesi Fonksiyon Kümesi Uygunluk Ölçümü Parametreler Durdurma Kriteri & Sonuç Ataması GENETİK PROGRAMLAMA Bir Bilgisayar Programı Şekil 2.9. Genetik Programlama Hazırlık Adımları İlk iki hazırlık adımı bilgisayar programı üretmek için uygun içerikleri belirlemektedir. Bir genetik programlama çalışması uygun fonksiyon ve terminallerden oluşmuş çeşitli popülasyonlar arasında rekabetçi arama sürecidir [74]. 2.4.2.1.1. Fonksiyon ve Terminal Seti Fonksiyon ve terminal kümelerinin tanımlanması doğrusal bir süreçtir. Bazı problemler için, fonksiyon kümesi yalnızca toplama, çıkartma, çarpma ve bölme gibi aritmetik operatörlerden oluşabilir. Terminal kümesi programın harici girdilerini (bağımsız değişkenler) ve nümerik sabitleri içerebilir. Bu fonksiyon ve terminal kümesi geniş bir aralıktaki problemlere uygulanabilir [74]. Diğer bir çok problemlerde içerikte özelleştirilmiş fonksiyon ve terminaller olabilir. Örnek olarak, eğer amaç genetik programlamanın bir robota zemini engellerle kaplı bir odayı otomatik olarak sildirmek ise, uzmanın genetik programlamaya robotun kabiliyetlerini (hareket etmek, dönmek, ses çıkarmak gibi..) anlatması gereklidir [74]. 47 2.4.2.1.2. Uygunluk Ölçümü Üçüncü hazırlık adımı problemin uygunluk ölçümü ile ilgilidir. Uygunluk fonksiyonun seçimi probleme ve amaca göre değişiklik gösterecektir. Genetik programlamanın arama uzayında yön tayini yapmasını sağlayan yegane mekanizma uygunluk ölçümü adımıdır. İyi seçilmiş bir uygunluk fonksiyonu problemin optimuma ulaşmasını sağlarken, uygunluk fonksiyonunun seçimine gereken hassasiyetin gösterilmemesi modelin performansının azalmasını doğrudan etkileyecektir. Amaç fonksiyonunun doğrudan uygunluk fonksiyonu olarak atanabileceği gibi, amaç fonksiyonuna eklenecek çeşitli terimler genetik programlama algoritmasının iyi çözümlere yaklaşma hızını artırabilecektir. Genetik programlamada 3 farklı ölçüm bulunmaktadır. Bunlar [3]; Ham uygunluk: Programın doğal anlamı ile ifade edilen uygunluk değeridir. Sınıflandırma kuralı ifade eden bir program için ham uygunluk; doğru sınıflandırdığı örnek sayısı veya doğru sınıflandıramadığı örnek sayısı olabilir. Tipik durumlar için temel uygunluk değerinin hesaplanmasında kullanılır. Standartlaştırılmış uygunluk : Ham uygunluk değerini dönüştürerek daha küçük değerin daha iyi olduğu şekle sokar. Birbirinden farklı bir çok metotla yapılabilir. Standartlaştırılmış uygunluk değer aralığı 0 ile 1 arasına oturmaz ise değerleri istenilen aralığa sığdırmak için standartlaştırılmış uygunluk değerleri ters çevrilerek uyarlama yapılır. Uyarlanmış uygunluk: i. Programın standartlaştırılmış uygunluğunun si olduğu varsayıldığında, i. programın uyarlanmış uygunluk değeri ui = 1/(1+si) formülü ile elde edilir. Uyarlanmış uygunluk, popülasyonda çeşitliliğin azaldığı durumlarda seçim baskısını kuvvetlendirir. 2.4.2.1.3. Kontrol Parametreleri Dört ve beşinci adımlar yönetimsel adımlardır. Dördüncü adımda ise çalışmanın yapılabilmesi için gerekli olan parametreler belirlenir. En önemli parametrelerden birisi 48 popülasyon sayısıdır. Pratikte kullanıcı akla uygun bir popülasyon sayısı seçer ki hesaplama zamanında istenmeyen artışlar olmasın. Diğer parametreler ise genetik operatörlerin gerçekleşme ihtimalleri, programların maksimum boyutları ve diğer detayları kontrol eden parametrelerdir [74]. 2.4.2.1.4. Durdurma Kriteri Durdurma kriteri maksimum nesil sayısı olabileceği gibi probleme özgü başarı değerlerini de içerebilir. Pratikte, bir çok en iyi bireyin uygunluk değeri bir düzlüğe ulaştığında uzman çalışmayı elle izler ve elle durdurur. Şimdiye kadar en iyi birey seçilerek çalışmanın sonucu olarak belirlenir [74]. 2.4.2.2. Genetik Programlama Çalışma Adımları Genetik programlama tipik olarak uygun programsal içeriklerin bileşimi olarak rasgele üretilen bir popülasyon ile başlar. Genetik programlama tekrarlı olarak bir bilgisayar programı popülasyonunu, doğal olarak gerçekleşen genetik operasyonları benzeterek yeni bir neslin popülasyonunu oluşturur. Bu operasyonlar popülasyondan seçilen birey veya bireylere uygulanır. Bireyler uygunlukları temel alınarak olasılığa bağlı şekilde genetik operasyonlara tabi tutulmak için seçilirler. Popülasyonun tekrarlanan değişimi genetik programlamanın çalışması esnasında nesil döngüleri içerisinde icra edilir. Genetik programlamanın çalışma adımları şöyledir [73]; 1. Rasgele olarak uygun fonksiyon ve terminallerin bileşimiyle oluşan bilgisayar program bireylerinin başlangıç popülasyonunu (nesil 0) oluştur. 2. İteratif olarak, durdurma kriteri sağlanana kadar aşağıdaki alt adımları gerçekleştir; a. Popülasyondaki her bir programı çalıştır ve problemin uygunluk ölçümünü kullanarak uygunluk değerini sapta (dolaylı veya doğrudan). b. Uygunluk değerine bağlı olarak popülasyondan bir ya da 2 birey programı genetik operasyona tabi tutmak için seç. 49 c. Aşağıdaki genetik operasyonları belirli olasılık değerlerinde uygulayarak popülasyon için yeni birey ya da bireyleri oluştur; i. Çoğalma: Seçilmiş birey programını yeni popülasyona kopyala. ii. Çaprazlama: Çocuk programları, seçilen iki birey programın rasgele seçilen parçalarını takas ederek yeni popülasyon için oluştur. iii. Mutasyon: Yeni bir çocuk programı, rasgele seçilen bir ebeveyni mutasyona uğratarak yeni popülasyon için oluştur. vi. Mimari değişim operatörleri: Operasyon repertuarından uygun bir mimari değişim operatörü seç ve yeni popülasyon için bu operatörü kullanarak yeni bir birey oluştur. 3. Durdurma kriteri sağlandığında, çalışma esnasında popülasyonda üretilen basit en iyi program toplanıp çalışma sonucu olarak atanır. Çalışma başarılı ise sonuç çözüm veya çözüme yakın sonuç olabilir. 2.4.2.3. Standart Genetik Programlama Akış Diyagramı Genetik programlama problemden bağımsız olduğundan dolayı aşağıdaki çalışma adımlarının temel sıralaması her yeni bir çalışma ya da her yeni bir probleme uygulanabilir. Genetik programlama esnasında genellikle insan takdiri ile müdahale veya etkileşim yoktur. Şekil 2.10. genetik programlama çalışması esnasındaki adımları göstermektedir. Şekil 2.10. çaprazlama, çoğalma ve mutasyon genetik operatörlerinin yanı sıra mimari değişim operasyonları da gösterilmektedir [75]. Genetik programlama, problemin terminal ve fonksiyonlarından rasgele oluşan bilgisayar programlarının popülasyonu ile başlar. Popülasyondaki birey programlar tipik olarak birinci ve ikinci hazırlık adımlarında sağlanan fonksiyon ve terminallerin yinelemeli rasgele seçimleri üretilerek oluşturulur. Başlangıç bireyleri genelde kullanıcı tarafından dördüncü hazırlık adımındaki minör parametre olarak daha önce kurulan maksimum boyut kısıtı ile üretilir. Genelde, popülasyon içindeki programlar farklı boyut ve şekildedirler [75]. 50 BAŞLANGIÇ POPÜLASYONU UYGUNLUK HESAPLAMASI UYGUNLUK ÖLÇEKLENDİRME DOĞAL SEÇİM MEKANİZMASI ÇOĞALMA OPERASYONU ÇAPRAZLAMA OPERASYONU MUTASYON OPERASYONU MİMARİ DEĞİŞİM OPERASYONU ? DUR Şekil 2.10. Standart Genetik Programlama Akış Diyagramı 2.4.2.3.1. Başlangıç Popülasyonunun Oluşturulması Genetik programlama rasgele üretilen binlerce kök programdan oluşan bir popülasyon ile başlar. Fonksiyon kümesinin sıradan aritmetik değerleri ve koşul operatörleri program ağacının içsel noktalarında ortaya çıkar. Terminal kümesinin içerisinde bulunan programın harici girdileri ve rasgele sabitleri ise dış kısımlardaki noktalarda görülür. Rasgele üretilen programlar genellikle farklı boyut ve şekillerde oluşur [75]. 2.4.2.3.2. Genetik Programlamanın Ana Nesil Döngüsü Bir genetik programlama çalışmasının ana nesil döngüsü uygunluk değerlendirmesi, doğal seleksiyon ve genetik operasyon süreçlerini içerir. Popülasyondaki her birey programın eldeki probleme ne kadar uygun olduğunu belirlemek için değerlendirilir. Programlar daha sonra uygunluk değerinin büyüklüğü olasılığında popülasyondan birden fazla olabilecek şekilde seçilerek çeşitli genetik operasyonlara sokulmaktadır. Bazı durumlarda uygun olmayan bireylerin seçilme durumu da matematiksel olarak imkan dahilindedir. İşte bu prensip genetik programlamayı aç gözlü tepe tırmanma 51 algoritmalarından ayırmaktadır. Rasgele başlangıç popülasyonundaki bireyler ile genetik operasyon sonucu oluşmuş bireyler söz dizimi olarak tamamen geçerli çalıştırılabilir programlardır [75]. Yeni bireyin söz dizimsel doğruluğu garanti edilse dahi üretilen program anlamlı olmayabilir. Çünkü program (sayıyı sıfıra bölme gibi) geçersiz, tekrarlı veya gereksiz operasyonlar gerçekleştirebilir. Geçersiz operasyondan kaçınmak için anlam tekrar tanımlanmalıdır [3]. Bir çok nesilden sonra, bir program çözümü ortaya çıkartır veya çözüme yaklaşan bir değer bulur [75]. 2.4.2.3.3. Mutasyon Operasyonu Mutasyon operasyonunda, tekil bir ebeveyn program popülasyondan olasılığa bağlı şekilde uygunlukları temel alınarak seçilir. Bir mutasyon noktası rasgele olarak belirlenir, o noktadan itibaren kök salan alt ağaç silinerek başlangıç popülasyonunun oluşturulmasında kullanılan aynı rasgele büyüme işlemi süreci uygulanarak yeni bir alt ağaç büyütülür. Bu eşeysiz üreme operasyonu tipik olarak az kullanılan bir operasyondur. Az kullanılmakla ifade edilmek istenen yüzde %1 - %5 değerleridir [75]. 2.4.2.3.4. Çaprazlama Operasyonu Çaprazlama eşeyli bir üreme operasyonudur, iki ebeveyn program uygunluklarına bağlı olasılıklara göre popülasyondan seçilir. Çaprazlamaya katılan iki ebeveyn genelde farklı boyut ve şekildedir. Her iki ebeveyn program için birer çaprazlama noktası rasgele belirlenir. Her iki çaprazlama noktasından devam eden dallanmalar yer değiştirilir. Çaprazlama baskın bir operasyondur. Genetik programlamada %85-90 gibi yüksek olasılıklarda gerçekleştirilir. Örnek olarak iki ebeveyn birey program şekil 2.11.’de gösterilmiştir[75]; Bu iki ebeveyn birey programın her biri için rasgele belirlenecek olan çaprazlama noktalarının belirlenmesinden sonra takas edilecek alt ağaçlar şekil 2.12.’de gösterilmiştir; 52 Şekil 2.11. Çaprazlanacak Bireyler Şekil 2.12. Takas Edilecek Alt Ağaçlar Alt ağaçların takas edilmesi sonucu oluşan yeni birey programlar şekil 2.13.’te gösterilmiştir; Şekil 2.13. Çaprazlama Sonrası Yeni Bireyler 53 Eğer çaprazlama noktası olarak birey programın kök düğümü belirlenmiş ise bütün ağaç diğer birey programın belirlenmiş çaprazlama noktasının devamına eklenir. İkinci birey programdan ayrılan alt ağaç başlı başına yeni birey program olarak atanır. Eğer çaprazlama noktası olarak her iki birey programın kök düğümleri belirlenmiş ise birey programlar aynen kendileri olarak yeni popülasyona aktarılır. Eğer bir birey program kendisiyle çaprazlanırsa, çaprazlama noktaları farklı olmak koşuluyla ebeveyn bireyden farklı iki yeni birey program meydana gelir. Eğer çaprazlama noktası olarak bir terminal belirlenmiş ve ikinci birey program çaprazlama operasyonunda bir alt ağaç takas edecek ise çaprazlamadan sonra birinci birey program derinliği artmış yeni bireye dönüşür, ikinci program ise derinliği azalmış yeni bir birey program olarak yeni popülasyona aktarılır [72]. 2.4.2.3.5. Çoğalma Operasyonu Çoğalma operasyonu uygunluk değerine bağlı bir olasılıkla seçilen tekil bir birey programı yeni popülasyona kopyalar [75]. Genetik programlamanın uygunluk orantılı çoğalma operasyonu ‘uygun olan hayatta kalır’ prensibinin temel motorudur. Her gerçekleşen operasyonda sadece bir ebeveyn ile çalışır ve sadece bir yeni birey oluşturur. Bu eşeysiz bir operatördür. Eğer f(sj(t)) bireyin t. nesildeki uygunluğu ise, bu operasyon her gerçekleştiğinde her bir birey programın seçilme ihtimali f ( s j (t )) M ∑ f (s j (2) (t )) j =1 formülü ile hesaplanır [72]. 2.4.2.3.5. Mimari Değişim Operasyonu Basit bilgisayar programları tek ana program içerir. Ancak, daha karmaşık programlar alt rutinler, iterasyonlar , kendinden yinelemeler, döngüler ve çeşitli boyut ve büyüklüklerde depolama içerebilir. Eğer kullanıcı bir mühendislik problemi çözmeye çalışıyorsa, popülasyondaki bütün programlar için akılcı bir mimari ayarlama yapması gerekecektir. Genetik programlama daha sonra kati adımları gerçekleştirerek evrimleştirebilir. Ancak bazı durumlarda çözümün boyutu ve şekli asıl problemi ve zorluğu teşkil etmektedir. Genetik programlama çalışma süresince mimari kararları 54 dinamik olarak verebilme kabiliyetindedir. Genetik programlama mimari değişim operasyonlarını doğadaki gen silimi ve gen kopyalamasını benzeterek program mimarisini otomatik olarak belirlemek için kullanır. Bu operasyonlar genetik programlamanın çalıştığı esnada birey programa alt rutin ve diğer tiplerde dallar ekleme ve silme, alt rutinlerin ve diğer tiplerdeki dalların sahip olduğu argümanları ekleme ve silme için bir yol sağlar. Bu operasyonlar hızlı bir şekilde popülasyondaki mimari çeşitliliğini artırır. Mimarileri uygun programlar ile rekabetçi evrimsel süreçler ortaya çıkacaktır. Yetersiz mimariye sahip birey programlar ise seleksiyon baskısı altında yok olacaklardır. Böylece, bu operasyonlar kullanıcı tarafından mimari belirleme yükünü azaltacaktır. Birkaç farklı mimari değişim operasyonu bulunmaktadır. Bu operasyonlar %0,5-1 gibi çok düşük olasılıklarda gerçekleştirilen operasyonlardır. Alt rutin kopyalama operasyonu birey programda zaten var olan alt rutini kopyalar ve daha önceden mevcut olan çağrımları rasgele olarak iki alt rutin arasında böler. Bu operasyon, program mimarisini genel programın hiyerarşisini genişleterek değiştirir. Doğada gen kopyalamada olduğu gibi bu operasyon anlamı ilk oluştuğunda muhafaza eder. Bu iki alt rutin sonradan farklılaşacaktır. Argüman kopyalama operasyonunda ise alt rutinin bir argümanı kopyalanır, içsel referansları rasgele olarak paylaştırır ve genel programın anlamını programın bütününde muhafaza eder. Bu operasyon alt rutinin çalıştığı alt uzayın boyutunu genişletir. Alt rutin silme operasyonu birey programın mimari hiyerarşisini daraltmak ve küçültmek için kullanılır. Argüman silme operasyonu alt rutindeki mevcut bilgi miktarını azaltmak için kullanılmaktadır [75]. 2.4.3. Doğrusal Genetik Programlama Programların kodlama yapısındaki değişikliğe istinaden “doğrusal” olarak adlandırılmıştır. Genetik programın doğrusal olması, sadece doğrusal olarak ayrılabilen problemlerle sınırlanarak kullanılacağı anlamına da gelmez. Genetik programlama doğrusallıktan dolayı fonksiyonellikten hiçbir şey kaybetmez. Aksine doğrusal yapıdan programın çalıştırılabilir halde gösterilmesi ve üretilen programın geçerliliğinin tespiti daha az maliyetli olacaktır. Ağaç yapılı genetik programlama ile doğrusal genetik programlamayı temelde birbirinden ayıran iki ana farklılık vardır. Birincisi; doğrusal genetik programlama genler içerisinde muhafaza edilen yapıların tekrarlı kullanımını sağlayan bir veri akışına 55 sahiptir. Fonksiyonel seviyede çalıştırılabilir program kodu bu özel yapıların referanslarından oluşan gösterimdir. Alışılagelmiş genetik programlama ise programların veri akışını ağaç yapısı ile sağlamaktadır. İkincisi ise, etkisiz kod parçalarının tamamının kolaylıkla saptanabilmesi, hatta bazı genetik programlama yaklaşımlarında etkisiz kod bloklarının varolmamasıdır. Ağaç yapılı bir programda bütün program bileşenlerinin kök düğüme bağlı olmasından dolayı etkisiz kod parçaları programın anlamı göz önünde bulundurularak saptanabilmektedir [76]. Doğrusal genetik programlama yaklaşımlarından GEP ve MEP bölüm içerisinde açıklanmıştır. 2.4.3.1. GEP GEP, 1999 yılında Ferreira tarafından keşfedilmiştir. Genetik algoritma ve genetik programlamanın doğal gelişimidir. GEP genetik programlamada kullanılan şekil gösterim tiplerinin aynısını kullanır ama GEP tarafından üretilen kodlama genotip ifadesidir. Bundan dolayı, GEP ile ikinci evrimsel basamak olan fenotip basamağı atlanarak, evrimsel programlamaya yeni ve etkili bir çözüm sağlanmış olur. Böylece, GEP kavramı her hangi bir ağaç yapısını ifade etmeye müsait kromozomları keşfetmeyi oluşturmuştur. Bunun için Ferreira tarafından yeni bir dil olan Karva, GEP kromozomlarından bilgi okumak ve yazmak için geliştirilmiştir. Ayrıca, kromozom yapıları her biri bir alt ifade ağacı kodlaması olan çoklu gen oluşturmaya izin veren bir yapıdır. Genler baş ve kuyruk yapısı şeklinde organize edilmiştir. GEP genleri kromozomların nasıl değiştirildiğine bakılmaksızın yapısal ve fonksiyonel olarak her koşulda geçerli bir program oluşturulmasını garantiler [77]. GEP bireylerinin fenotipi genetik programlamada kullanılan dallanma gösteren yapının benzer bir şeklini içerir. Ancak, bu kompleks yapılar sabit uzunluktaki doğrusal yapı ile daha basit bir şekilde kodlanır. Böylece GEP iki ana oyuncu ile ilgilenir; kromozomlar ve dallanma gösteren yapılar veya kural ağaçları. Genetik kod çok basit durumdadır: kromozom sembolleri ve ifade ettikleri terminal veya fonksiyonlar arasında bire bir ilişki şeklindedir. Kurallar da oldukça basittir: kural ağacını içindeki fonksiyon ve terminallerin uzaysal organizasyonlarını ve çoklu gen sistemlerindeki alt kural ağaçları arasındaki etkileşim tipini belirler [61]. 56 2.4.3.1.1. GEP Akış Diyagramı Süreç başlangıç popülasyonunun bireylerinin her birinin kromozom yapılarının rasgele üretilmesi ile başlar. Sonra kromozomlar ifadelere çevrilerek her bireyin uygunluğu değerlendirilir. Bireyler uygunluk değeri göz önünde bulundurularak seçilir ve modifikasyonlar ile farklı karakter ve davranışlarda çocuklar meydana getirirler. Yeni neslin bireyleri de aynı gelişim süreçlerine yani; genom ifadesi, seçim mekanizmasında seçilme, üreme ve değişime tabi tutulur. Süreç belirli bir nesil sayısına veya çözüm bulma koşulunun sağlanmasına kadar devam eder. Şekil 2.14.’te akış gösterilmiştir [78]; BAŞLANGIÇ POPÜLASYONU KROMOZOM İFADELERİ PROGRAM ÇALIŞMALARI UYGUNLUK HESAPLAMASI ? ELİT BİREY SEÇİMİ DOĞAL SEÇİM MEKANİZMASI REPLİKASYON MUTASYON IS SIRA DEĞİŞİMİ RIS SIRA DEĞİŞİMİ GEN SIRA DEĞİŞİMİ TEK NOKTALI ÇAPRAZLAMA İKİ NOKTALI ÇAPRAZLAMA YENİ POPULASYONUN HAZIRLANMASI Şekil 2.14. GEP Akış Diyagramı DUR 57 Belirtilmelidir ki; üreme mekanizması replikasyon operasyonunun yanında genetik çeşitliliği sağlayan genetik operasyonları da barındırır. Replikasyon sürecinde, seçilen birey tam anlamıyla kopyalanır ve yeni nesle iletilir. Replikasyonun yalnız başına çeşitliliği sağlamasının mümkün olmadığı açıkça görülmektedir. Kalan diğer operatörler popülasyonun genetik çeşitliliğini artıran operatörlerdir. Bu operatörler değişime uğrayacak kromozomu uygunluk değeri temel alınarak rasgele seçerler. Böylece GEP içinde, bir kromozom tek bir operatörle veya aynı zamanda birkaç operatörle birden değişime uğrayabilir veya hiçbir operatörle değişmeden yeni nesle aktarılır [78]. 2.4.3.1.2. GEP Gen Yapısı GEP uygulamalarında genom ya da kromozom, bir ya da daha fazla genden oluşan, doğrusal, sembolik sabit uzunluklu dizileri içerir. Sabit uzunluklarına rağmen GEP kromozomları farklı boyut ve şekillerdeki kural ağaçlarını kodlayabilir [77]. 2.4.3.1.2.1 Açık Okuma Çatısı ve Genler GEP genlerinin yapısal organizasyonu açık okuma çatıları (ORF) ile daha iyi anlaşılabilir. Biyolojide, açık okuma çatısı veya genin kodlama sırası ‘başlangıç’ kodonu ile başlar, diğer amino asit kodonları ile devam eder ve bitim kodonu ile sonlanır. Ancak, bir gen kendi açık okuma çatısından fazla olarak baş tarafında başlangıç kodonu ve bitişinde de bitim kodonuna sahiptir. GEP kromozomunda da başlangıç bölgesi ilk konumdaki gen olmasına rağmen, bitim noktası her zaman son konumdaki genle çakışmayabilir. GEP genlerinde bitim noktası bölgesinin kodlanmamış olması çok rastlanan bir durumdur. Örnek olarak a.b + d −e c denklemini düşünelim. Bu denklem Şekil 2.15.’teki gibi gösterilebilir [77]; (3) 58 Şekil 2.15. a.b + d − e Denkleminin Gösterimi c ‘Q’ sembolü karekök fonksiyonunu temsil etmektedir. Bu çeşit gösterimler aslında GEP kromozomunun fenotip karşılığıdır. Aşağıdaki genotip kolaylıkla çıkarıma tabi tutulup bu fenotip elde edilebilir[77]; Bu ifade şekli bu yazım kural ağacının soldan sağa ve yukarıdan aşağıya doğrusal yazımıdır. Bu yazım ‘+’ (0. pozisyon) ile başlayan ve ‘e’ (9. pozisyon) ile biten bir açık okuma çatısıdır [77]. 2.4.3.1.2.2 GEP Genleri GEP genleri bir baş ve bir kuyruktan meydana gelir. Baş kısmı hem fonksiyon hem de terminal sembollerini içerirken kuyruk kısmı sadece terminalleri içerir. Her problem için baş kısmının uzunluğu h seçilir. Kuyruk uzunluğu t ise h’nin ve diğer fonksiyonlardan daha fazla argümana sahip olan fonksiyonun argüman sayısı olan n’nin bir fonksiyonudur. t şu şekilde hesaplanır; t=h(n-1)+1. F={Q,*,/,-,+} fonksiyonları ve T={a,b} terminallerinden oluşmuş bir gen düşünelim. Bu durumda n=2, h ise 15 olarak seçildiği takdirde t=16 değerini alır. Böylece g geninin uzunluğu 15+16=31 olur. Bu uzunluktaki bir örnek şu şekilde olabilir; (kuyruk kısmı kalın harfler ile gösterilmiştir.) 59 Bu kromozom şekil 2.16’da kural ağacı kodlanmış şekilde görülmektedir; Şekil 2.16. Kromozomun Ağaç Yapısında Gösterimi Bu durumda açık okuma çatısı 7. pozisyonda sona erdiği halde gene 30. pozisyonda sonlanmaktadır. Eğer ikinci pozisyondaki değerin ‘Q’ yerine ‘+’ olduğu varsayılırsa aşağıdaki gen elde edilir; ve Şekil 2.17.’deki ifadeyi verir. Bu durumda bitim noktası 10 pozisyon sağa kayarak 17. pozisyon olur. Anlaşılacağı üzere sabit uzunluğuna rağmen, her gen farklı boyut ve şekillerde kural ağacı oluşturma potansiyeline sahiptir. Değişimler nasıl olursa olsun her zaman doğru yapıda kural ağacı oluşmaktadır. Tek dikkat edilmesi gereken baş ve kuyruk sınırlarına dikkat ederek, genin yapısal organizasyonunu bozmamaktır [77]. 60 Şekil 2.17. Kromozomun Ağaç Yapısında Gösterimi 2.4.3.1.2.3 Çoklu Gen Kromozomları GEP kromozomları genellikle eşit uzunluktaki birden fazla olan genler ile birleştirilir. Her bir problem için gen sayıları baş kısmının uzunluğu gibi daha önceden belirlenir. Her gen alt ağacın kodlanmış şeklidir ve her bir alt ağaç daha karmaşık bir yapı bileşeni oluşturan kromozomdaki başka diğer alt birimler ile etkileşim halinde olur [77]. 2.4.3.1.3. Seçim ve Replikasyon Uygunluk değeri ve seçim mekanizmasındaki şanslarına bağlı olarak birey programlar seçilir ve replikasyona tabi tutulurlar. Çok önemli bir operatör olmasına karşın replikasyonun çok karmaşık bir yapısı yoktur. Replikasyon süresince kromozomlar yeni 61 nesil popülasyonuna birebir kopyalanırlar. Daha uygun birey programın yeni nesil popülasyonda sayıca fazla bulunma ihtimali daha yüksektir [77]. 2.4.3.1.4. Mutasyon Mutasyon kromozomun herhangi bir yerinde meydana gelebilir. Ancak, kromozomun yapısal organizasyonunu operasyon sonunda bozulmamış olarak bırakmalıdır. Baş kısımlarında herhangi sembol herhangi bir fonksiyon veya terminale çevrilebilir, kuyruk kısımlarındaki terminaller ise sadece terminaller ile yer değişebilir. Bu yolla, kromozomun yapısal organizasyonu devam ettirilmiş olur ve mutasyon yolu ile meydana gelmiş yeni birey programlar yapısal olarak doğru programlar olurlar [77]. Mutasyon oranı Pm değeri problemden probleme farklılık gösterebilir. Örnek olarak, kromozomunda gen 0’da dördüncü pozisyondaki ‘*’ değeri yerine ‘/’, gen1’de pozisyon 0’da bulunan ‘-’ yerine ‘Q’, gen2’de ikinci pozisyondaki ‘a’ yerine ‘+’ gelmiştir. Sonuç olarak; kromozomu mutasyon sonucu ortaya çıkan doğru yapıdaki yeni bireyi temsil eder. Eğer bir fonksiyon mutasyon sonucu bir terminale dönüşürse veya tek argümanlı bir fonksiyon mutasyon sonucu iki argümanlı bir fonksiyona dönüşürse kural ağacı çok güçlü bir değişime uğramış olarak görülür. GEP mutasyon operasyonlarında ne mutasyon tipinde ne de mutasyon sayısında bir kısıtlama yoktur. Her koşulda söz dizimsel olarak doğru yeni bir birey program ortaya çıkar [77]. 62 2.4.3.1.5. Sıra Değişimi ve Sıralı Elemanların Eklenmesi GEP tekniğinde sırası değiştirilebilir elemanlar; faaliyete geçirilip kromozomda başka bir yere atlatılabilen parçalardır. GEP tekniğinde kullanılan sıra değişimi operasyonları şunlardır [77]; Gövde Sıra Değişimi: Genomdaki herhangi bir sıra değişim elemanı haline gelebilir. Bu elemanlar rasgele kromozom dışına seçilirler. Seçilmiş parçanın bir kopyası baş kısımda ilk pozisyon hariç her hangi bir yere eklenir. Tipik olarak, sıra değişimi oranı PIS 0,1 olarak belirlenebilir. Sıra değişimi operatörü kromozomu, değişim elemanının başlama yerini, hedef bölgeyi ve sıra değişiminin uzunluğunu rasgele seçer. Aşağıda ikili kromozom üzerinde örnek verilmiştir; ‘a+Q’ parçasının rasgele değişim elemanı olarak seçildiği ve ikinci gendeki iki ve üçüncü pozisyonları arasına ekleneceği varsayıldığında; kromozomu elde edilir. Dikkat edilmesi gereken durum; baş kısmına eklenen parça sayısı kadar sembolün baş kısmının sonundan silinmesidir. Böylece ekleme operasyonuna rağmen kromozomun yapısal organizasyonu devam ettirilmiş olur. Kök Sıra Değişimi : Bütün kök değişim elemanları bir fonksiyon ile başlar. Böylece kromozomların baş kısımlarından seçilmeleri garantilenir. Rasgele bir sayı seçilir ve kromozom aşağı doğru bir fonksiyon bulana kadar taranır. Bulunan fonksiyon kök değişim elemanının başlangıç kısmı olur. Eğer bir fonksiyon bulunamaz ise operatör boş döner. 63 Tipik olarak, kök sıra değişimi oranı PRIS için 0.1 değeri seçilir. Bu operatör bir kromozomu, değişime uğrayacak bir geni, kök değişim elemanının başlangıcını ve uzunluğunu rasgele seçer. Aşağıda ikili kromozom üzerinde örnek verilmiştir; ‘Q/+’ rasgele kök değişim elemanı olarak seçilmiş varsayıldığında; kromozomu elde edilir. Bütün baş kısmı kök değişim elemanına yer sağlamak için kaydırılır ve eklenen sembol sayısı kadar sondan sembol silinerek kromozomun yapısal organizasyonu sağlanmış olur. Gen Sıra Değişimi : Gen sıra değişiminde eklenecek parça diğer sıra değişim formlarından farklı şekilde, asıl konumundan silinerek kromozomun en başına eklenir. Gen sıra değişimi kromozomdaki gen sırasını değiştirmekten başka bir durum içermez. Kısa süreli çalışmalarda performans geliştiren bir durum ortaya çıkmaz. Ancak, gen değişimi diğer operatörler ile eşleştiğinde çok önemli etkiler yapabilir. Gen değişimine tabi tutulacak kromozom ve genlerinden herhangi biri rasgele değişim için seçilir. Aşağıda üçlü gene sahip kromozom üzerinde örnek verilmiştir; Üçüncü genin değişim için rasgele seçildiği varsayıldığında; kromozomu elde edilir. 64 2.4.3.1.6. Çaprazlama Bütün çaprazlama tiplerinde iki kromozom rasgele seçilir ve iki yeni birey program elde etmek amacıyla, aralarında bazı materyaller takas etmek için eşleştirilir. Genellikle yeni bireyler hem birbirlerinden hem de ebeveyn bireylerden farklıdırlar. Genel kullanıma sahip çaprazlama çeşitleri aşağıda açıklanmaktadır [77]; Tek Noktalı Çaprazlama : Kromozomlar eşleştirilir ve rasgele belirlenen aynı noktalardan bölünürler. Bölüm noktasından sonraki parçalar iki kromozom arasında takas edilir. Örnek olarak; birinci gendeki 6. aralığın rasgele değişim noktası olarak belirlendiği varsayıldığında; kromozomu elde edilir. Çoğunlukla bu tür çaprazlama operasyonlarında oluşan bireyler ebeveynlerinden oldukça farklı yapılara sahip olurlar. Yukarıda gösterildiği gibi tek noktalı çaprazlama mutasyon işleminden sonra genetik çeşitlilik için çok önemli bir kaynaktır. Genelde kullanılan çaprazlama oranı Pc, toplamda (kullanılan bütün çaprazlama tiplerinin oranları toplamı) 0.7 değerine ulaşır. İki Noktalı Çaprazlama : Kromozomlar eşleştirildikten sonra, rasgele 2 nokta çaprazlama noktaları olarak belirlenir. Her iki kromozomda bu iki çaprazlama noktası arasında kalan materyal takas edilir. Örnek olarak; 65 birinci genin 5. aralığı birinci çaprazlama noktası ve ikinci genin 7. aralığı ikinci çaprazlama noktası olarak rasgele belirlenmiş olduğunda; kromozomu elde edilir. GEP kromozomlarında kodlanmayan bölgeler çaprazlamaya uğratılacak ideal yerlerdir. 2.4.3.2. Çoklu Denklem Programlama Bu çalışmada çoklu denklem programlama (MEP) tekniği olarak bilinen genetik programlama tabanlı yeni bir teknik bir takım değişiklikler yapılarak sınıflandırma kurallarının tahmini için bir veri madenciliği aracına dönüştürülmüştür. MEP Evrimsel programlamada nispeten yeni bir tekniktir. Tez çalışmasına temel oluşturması amacıyla orginal MEP algoritması açıklanacaktır. İlk olarak 2002 yılında Oltean ve Dumitrescu tarafından tanıtılmıştır. MEP doğrusal kromozom yapısı kullanır ve farklı boyutlara sahip çoklu mantıksal ifadeler, farklı mantıksal kuralların gösteriminde kullanılır. MEP ifadelerin kodlanması ve kurulumu esnek ve verimli bir biçimde yapılır [48]. Çoklu denklem programlama, genetik programlamanın, kromozomların doğrusal gösteriminin kullanıldığı değişik bir şeklidir. MEP bireyleri karmaşık bilgisayar programlarının kodlandığı gen dizileridir. MEP bireylerine kuralların kodlanması, C veya Pascal ifadelerini makine diline çeviren derleyicilerin kullandığı yola benzer bir şekilde yapılır. MEP yapısının benzersiz olan özelliği tek bir kromozom içinde bir problemin çoklu çözümlerini bulundurmasıdır. Genellikle, en iyi çözüm uygunluk operasyonlarına tabi tutulur. Sembolik regresyon veya sınıflandırma problemleri çözülürken, MEP kromozomda tek çözüm bulunduran GP,GEP gibi teknikler ile aynı karmaşıklıktaki yapıları saklayabilmektedir. MEP bireyine kodlanan kuralın değerlendirmesi tekil bir çevrim işlemi ile gerçekleştirilebilmektedir. Yeni birey çaprazlama ve mutasyon operatörleri ile elde edilir ve bu bireyler her zaman doğru söz 66 dizimine sahip olurlar. Böylece elde edilen bireyleri tamir etmek için ek bir çabaya gerek kalmaz [79]. 2.4.3.2.1. MEP Gösterimi MEP genleri değişken uzunluğa sahip alt diziler ile gösterilir. Kromozomdaki gen sayısı sabittir ve bu sayı kromozom uzunluğunu belirler. Her gen terminal veya fonksiyon sembolü içerir. Bir fonksiyonun kodlanması fonksiyon argümanlarına referans içerir. Fonksiyon argümanları her zaman kromozomdaki kendi pozisyon indisinden küçük değerler içermektedir. Bu gösterim C ve Pascal derleyicilerinin matematiksel ifadeleri makine diline çevirmekte kullandıkları mantığa çok benzemektedir. MEP gösterimi kısır döngü oluşumuna müsaade etmez. Gösterim şemasına göre kromozomun ilk sembolü terminal sembolü olmak zorundadır. Bu durum MEP bireyleri için yapılabilecek tek kısıt veya düzeltmedir [80]. Örnek olarak, soldaki sayıların gen etiketlerini gösterdiği bir gösterim düşünelim. Etiketler kromozoma dahil olmayıp sadece anlatıma yardımcı olması için kullanılmaktadır. Örnek için F = {+,*} fonksiyonları ve T = {a,b,c,d} terminalleri kullanılacaktır. C kromozomunun F ve T kümeleri kullanılarak şu şekilde oluşturulduğu varsayılmıştır; 1: a 2: b 3: + 1,2 4: c 5: d 6: + 4,5 7: * 3,5 8: * 2,6 MEP kromozomları baştan aşağı biçimde okunan bir yapıda inşa edilmiştir. Bir terminal sembolü basit bir ifade muhafaza eder. Bir fonksiyon sembolü ise mevcut fonksiyonun 67 ihtiyaç duyduğu argümanların gen pozisyonlarını içeren bağlantılar ile daha karmaşık bir yapıdadır [80]. Örnek olarak yukarıdaki kromozomda 1,2,4 ve 5. pozisyondaki genler tekil terminal sembolleri ile oluşturulmuş basit ifadelerdir. Bu ifadeler sırası ile a, b, c, d olacaktır. 3. pozisyondaki gen ise + operasyonunu 1. ve 2. pozisyondaki genleri argüman olarak kabul edip a+b ifadesini ortaya çıkaracaktır. 6. pozisyondaki gen; c+d, 7. pozisyondaki gen; (a+b)*d, 8. pozisyondaki gen ise; b*(c+d) olacaktır. Kromozomu temsil edecek bir ifade genler arasından seçilmelidir. Teorikte veya pratikte bu ifadelerin herhangi birinin diğerine üstün olduğunu gösterecek bir kanıt olmadığı için bu çoklu ifadeleri tek bir kromozom içinde muhafaza etme stratejisi seçilmiştir. Her MEP kromozomu kromozom uzunluğu kadar ifadeyi kodlanmış şekilde bünyesinde bulundurur. Her pozisyondaki ifade aşağıdan yukarıya doğru fonksiyon referans pozisyonları takip edilerek ortaya çıkartılır. Problem için en uygun olan ifade kromozomu temsil etmektedir. MEP kromozomundaki en fazla sembol sayısı; (n + 1) * (Gen _ Sayisi − 1) + 1 formülü ile belirlenir. Bu formülde n; en fazla sayıda argümana sahip fonksiyonun argüman sayısıdır. En fazla sayıda etkili sembol sayısına, ilk pozisyondaki gen hariç olmak üzere bütün genlerin en fazla sayıda argüman içeren fonksiyon ile kodlanması koşulu ile erişilebilir. En az sayıdaki etkili sembol sayısı ise bütün genlerin terminaller ile kodlandığı durumdaki gen sayısıdır [79]. Her bir genin ayrı bir kural ağacını temsil ettiği bu kromozomun muhafaza ettiği kurallar şekil 2.18.’de görülmektedir; 68 Şekil 2.18. MEP Kromozomunun İhtiva Ettiği Kurallar 2.4.3.2.2. MEP Gösterimi ile GP ve GEP Gösterimi Karşılaştırması Genelde GP kromozomlara tekil ifadeler kodlanır. Bu durum GEP için de geçerlidir. Bunun tersine, MEP kromozomları bir kaç ifadeyi birden muhafaza edebilmektedirler. Kodlanan ifadelerden herhangi biri kromozomu temsil etmek için seçilebilir. MEP ile GEP arasındaki farklılıklar aşağıda sıralanmıştır: - GEP kromozomunda ifade oluşturulurken ortaya çıkan argüman referansları MEP kromozomunda açıkça kodlanmıştır. MEP ayrıca fonksiyon argümanlarının referanslarını da evrimleştirmektedir. - MEP gösterimi kodların tekrar kullanımı için uygun bir mimari sağlamakta iken GEP gösterimi bundan yoksundur. - Kodlanmayan bölgeler devamlı surette GEP kromozomlarının sonlarında bulunmasına rağmen MEP kromozomlarında kodlanmayan bölgeler herhangi bir yerde oluşabilmektedir. Görüldüğü üzere, ifadelerin etkili uzunluğu MEP kromozomunun uzunluğu arttığında üssel olarak artmaktadır. Bunun sebebi, bazı alt ifadeler daha karmaşık ifadeler oluşturabilmek için belki de birden fazla kere kural içerisinde kullanılmıştır. Örnek olarak, a2n ifadesinin oluşmasını istediğimiz bir problemimiz olduğu ve {+,-,*,/} 69 operatörlerinin kullanılacağı düşünülmüştür. GEP kromozom gösterim şekli kullanıldığında, kromozom en az (2n+1+1) sembol ve (2n-1) fonksiyon içermek zorundadır. Bir GEP kromozomunun a8 ifadesini içerebilmesi için; C= *******aaaaaaaa yapısında olmalıdır. Bir MEP kromozomu a2n ifadesini oluşturmak için sadece (3n+1) sembole ihtiyaç duyar. A8 ifadesinin MEP kromozom karşılığı ise; 1: a 2: * 1,1 3: * 2,2 4: * 3,3 yapısındadır. n=20 olduğu durumda GEP kromozomunun 2097151 sembole ihtiyaç duyarken MEP kromozomu sadece 61 sembole ihtiyaç duymaktadır. 2.4.3.2.3. MEP Çaprazlama Çaprazlama operasyonundaki temel mantıkta hiçbir değişiklik yoktur. Seçilen iki birey gen takası ile yeni iki bireye dönüşür. MEP kromozomlarında uygulanan çaprazlama çeşitleri aşağıdadır; Tek Noktalı Çaprazlama : Rasgele belirlenen çaprazlama noktasından itibaren bütün genler eşlenen birey ile takas edilir. Örnek olarak; çaprazlama noktası olarak 3. pozisyonun seçildiği bir çaprazlama operasyonunun sonucu şekil 2.19.’da gösterilmiştir. 70 Şekil 2.19. MEP Tek Noktalı Çaprazlama İki Noktalı Çaprazlama : Rasgele belirlenen ilk çaprazlama noktasından itibaren belirlenen ikinci çaprazlama noktasına bütün genler eşlenen birey ile takas edilir. Örnek olarak; çaprazlama noktaları olarak 2 ve 5. pozisyonların seçildiği bir çaprazlama operasyonunun sonucu şekil 2.20.’de gösterilmiştir. Şekil 2.20. MEP İki Noktalı Çaprazlama Düzgün Çaprazlama : Düzgün çaprazlama süresince çocuk bireylerin aynı pozisyondaki genleri rasgele olarak ya ilk ebeveynden ya da ikinci ebeveynden alınır. Örnek olarak; bir çaprazlama operasyonunun sonucu şekil 2.21.’de gösterilmiştir. 71 Şekil 2.21. MEP Düzgün Çaprazlama 2.4.3.2.4. MEP Mutasyon Kromozomdaki her sembol (terminal, fonksiyon göstericilerin fonksiyonları) mutasyon operatörünün hedefi olabilir. Kararlılığın sağlanması için ilk pozisyondaki gen mutasyon operasyonuna sokulmaz. Çaprazlama operatörünün kromozomlar arasında, mutasyon operatörünün ise genler arasında meydana geldiği söylenebilir. Eğer mevcut gen bir terminal sembolü ise, başka bir terminal sembolüne veya bir fonksiyon sembolüne dönüşebilir. Fonksiyona dönüşüm gerçekleşirse daha sonra fonksiyon argümanlarının referansları rasgele üretilir. Eğer mevcut gen bir fonksiyon ise, başka bir fonksiyona veya bir terminale dönüşebilir. Örnek olarak; 3. ve 6. pozisyonu mutasyona uğratılacak durumu şekil 2.22.’de gösterilmiştir. Şekil 2.22. MEP Mutasyon kromozomun ilk ve son 72 2.4.3.2.5. Uygunluk Hesaplama Süreci MEP kodlama süreci her kromozom için bir kromozom okuyan diğer GP tekniklerinden daha karmaşık değildir. Çünkü, MEP kromozomları uygunluk hesabı için bir kere okunmak zorundadır. MEP ile diğer GP tekniklerinin uygunluk hesaplama süreleri aynı maliyettedir. 2.4.3.2.6. MEP Algoritması Standart MEP algoritması sürekli durum evrimsel modeli kullanır. MEP algoritması aşağıdaki adımları içerir; 1. Başlangıç popülasyonunu P(0) rasgele oluştur. 2. for( t = 1; Nesil Sayısı; t++ ) 3. for( k = 1; |P(t)|/2 ;k++ ) { 4. p1 = Seç(P(t)); // mevcut popülasyondan bir birey seç 5. p2 = Seç(P(t)); // mevcut popülasyondan ikinci bireyi seç 6. Çaprazla(p1, p2, o1, o2 ); // ebeveynleri çaprazla yeni bireyleri elde et 7. Mutasyon(o1); // birinci yeni bireyi mutasyona uğrat 8. Mutasyon(o2); // ikinci yeni bireyi mutasyona uğrat 9. if ( Uygunluk(o1) < Uygunluk(o2) ) 10. if( Uygunluk(o1) < Popülasyondaki en kötü birey ) 11. En kötü bireyi o1 ile yer değiştir; 12. else if( Uygunluk(o2) < Popülasyondaki en kötü birey ) 13. En kötü bireyi o2 ile yer değiştir; 14. } 2.5. Veri Madenciliği ve İlişkisel Veritabanları İstatistik ve makine öğrenme temelli veri madenciliği teknikleri, veriyi analiz etme kabiliyetini gözle görülür biçimde artırabilmektedir. Potansiyel etkinliğine rağmen, geleneksel veritabanları sistemine entegre edilmediği taktirde etkin kullanılmayan bir teknoloji olmaya mahkum olacaktır. Bunun için veri ambarlarında veri bütünlüğü ve yönetimi ile ilgili güçlendirmeler yapılmaktadır. 73 Son on yılda, veri madenciliği algoritmalarının verimliliğini artırmada ilerlemeler yapılmıştır. Ölçekleme konusunda veri madenciliği tekniklerinin bir çoğunda büyük veri kümeleri ile çalışmada iş patlaması olmuştur. Örnek olarak; algoritmalar bütün verinin hafızada mevcut olduğunu varsaymak yerine artık ‘diskten haberdar’ durumda ve hafıza hiyerarşisinin farkında olarak çalışmaktadırlar. Çalışmanın bir başka yönü ise bu algoritmaların geleneksel veritabanı uygulamalarıymış gibi kullanılmaları yönündedir. Bu kullanımlar bu sayede algoritmaların sadece ‘diskten haberdar’ değil aynı zamanda SQL’den haberdar olmasını da garantiler. Örnek olarak; Kullanımlar SQL motoru ve API tarafından sağlanan fonksiyonelliğin avantajını almış olur [81]. Bu çalışmada algoritmanın etkinliğini ve ölçeklenebilirliğini sağlamak için Yapısal Sorgulama Dili (SQL) kullanılmıştır. SQL ilişkisel veritabanları için güçlü bir araçtır ve algoritmamızın performansını gözle görülür biçimde artırmıştır. Uygulama ile ilişkisel veritabanı arasında bilgi alışverişini sağlamış ve uygunluk değerlendirme yükünü uygulama yazılımı ile paralel çalışabilecek bir veritabanı sunucusuna aktarabilecek esnekliği sunmuştur. SQL sayesinde veriye hiçbir doğrudan erişime gerek duymadan, veritabanı yönetim sisteminden sadece çalışılan nesneler için SELECT yetkisi almak uygulama için yeterli olmaktadır. Veritabanı sunucusuna gönderilen sorgular ile uygunluk değerleri sonuç olarak alınabilmektedir. Veri kümelerinin güvenliği de bu şekilde korunuş olmaktadır. SQL dilindeki standart komutlar sayesinde her hangi bir veritabanına sürücülerine sahip olmak koşulu ile bağlanılabilmektedir. Bu çalışmada yazılan veri madenciliği uygulaması ise Microsoft SQL Server ile çalışmak için optimize edilmiştir. Veri madenciliği uygulaması ile ilgili detaylı bilgi ileriki bölümlerde verilecektir. 3.BÖLÜM YÖNTEM Tez çalışmasında sınıflandırma alanında, ikili ya da çoklu sınıflandırma problemlerine çözüm sunabilecek bir veri madenciliği uygulaması geliştirilmiştir. Bu uygulamanın temelini genetik programlama tekniklerinden biri olan MEP oluşturmaktadır. Önerilen yeni yaklaşımda Baykasoğlu ve Özbakır [48] tarafından geliştirilen, MEP tabanlı yeni bir kromozom gösterim ve çözüm tekniği olan MEPAR-miner SQL cümlecikleri türetmek için kullanılmıştır. Uygulamanın izlediği yol; rasgele olarak üretilen SQL scriptlerinden oluşan başlangıç popülasyonunu, çeşitli genetik operasyonlara tabi tutmaktır. Uygun olan hayatta kalır prensibi benimsendiği için, evrimleşen SQL scriptleri, problemin çözümünü temsil eden veya çözümüne yakın programlar olarak uygulamanın çıktılarını oluşturacaklardır. 3.1. MEPAR-SQL Algoritmasının Geliştirilmesi MEP algoritmasının aslı uyarlanmış ve sınıflandırma kuralları çıkarmaya adapte edilerek MEPAR-miner algoritması geliştirilmiştir [48]. MEPAR-miner algoritmasında kullanılan kromozomlar SQL cümlecikleri muhafaza edecek şekilde uyarlanmış ve algoritmanın MS SQL Server 2000 ile bağlantısı yapılandırılarak MEPAR-SQL algoritması geliştirilmiştir. MEP kromozom gösterimi, fonksiyon ve terminal kümeleri uyarlanmış ve mantıksal ifadeler üretmek için tekrar modellenmiştir. Bir mantıksal ifade aynı zamanda bir sınıflandırma kuralını gösterir. Çoklu kurallar birbirleri ile birleşerek n-li sınıflandırma için karar kuralları kümesi oluştururlar. Kural listelerinin ana yapısı aşağıdaki gibidir; IF kural1 THEN sınıf1 ELSE IF kural2 THEN sınıf2 75 … … ELSE sınıf varsayılan Kural listesinin değerlendirilmesine en üstteki kuraldan başlanır ve varsayılan sınıfa doğru, örnek karşılık gelen kuralla tam olarak uyuncaya kadar ilerletilir. Eğer örnek kural listesindeki hiçbir kurala uymaz ise bu örnek varsayılan sınıfa atanır [48]. Mevcut uygulamada varsayılan sınıf öğrenme aşamasında varsayılan sınıfa en çok örneği atanan sınıf olacaktır. 3.1.1. Fonksiyon ve Terminal Kümeleri MEP algoritmasında, verilen bir sınıflandırma problemi için, fonksiyon ve terminal kümelerinin tanımlanması gereklidir. Genetik programlamada ve orjinal MEP algoritmasında, fonksiyon kümeleri genellikle matematiksel operatörleri içerir. Bu çalışmada fonksiyon kümesi (F) mantıksal operatörleri içerecek şekilde tekrar tanımlanmıştır. Terminal kümesi (T) ise mantıksal ifadelerdeki nitelik-değer ilişkilerine göre modellenmiştir. Nitelik içeriği, ilişkisel operatörler (IO) ve niteliğe karşılık gelen alandaki değerlerdir. İlişkisel operatörler niteliğin tipi (kategorik, sürekli) göz önünde bulundurularak belirlenir [48]. xi i. nitelik, vi ise i. niteliğin alanı ve ilişkisel operatörü IO temsil ettiği varsayılırsa; T = {x0 IO vx0, x1 IO vx1, … , xn IO vxn}, F = {AND, OR, NOT} şeklinde olacaktır. Şekil 3.1.’de gösterildiği gibi, kromozomdaki her gen potansiyel olarak kural listesindeki kurallardan birini oluşturmaya aday bir ifade barındırır. Kromozom içindeki bu ifadelerden herhangi bir sınıf için en yüksek uygunluk değerini veren gen, o kromozomun uygunluk değerini belirler. Bu kromozom aynı zamanda otomatik olarak en iyi uygunluk değerini yakaladığı sınıf için kural listesinde bulunmaya aday bir birey SQL cümleciği olarak atanır. 76 Şekil 3.1. MEP Kromozom Gösterimi Örnek olarak; 7 . gen ile oluşturulan mantıksal ifade; (X1 >= 8 AND X2 = 1) OR (X0 <= 5 OR X2 =1) ve uygunluk değerlendirme için veritabanına gönderilecek SQL cümleciği; set quoted_identifier_off select NİTELİKAMAÇ, COUNT(*) from VERI KÜMESİ where (X1 >= 8 AND X2 = 1) OR (X0 <= 5 OR X2 =1) group by NİTELİKAMAÇ all set quoted_identifier_on şeklinde oluşturulacaktır. Mantıksal ifadelerin uygunluk değerleri kurulan SQL scriptler aracılığı ile veritabanı yönetim sisteminden alınarak, evrim mekanizmasındaki operasyonların işleyişine devam edilir. Kromozomdaki her bir gen her bir sınıf için uygunluk fonksiyonuna sokularak en iyi uygunluk değerine sahip sınıf belirlenir. Eğer bu genin uygunluk değeri şimdiye kadar bu sınıfı temsil eden en iyi uygunluğa sahip gen ise ifade kural listesine temsil ettiği sınıfın kuralı olarak atanır. Daha sonra kromozomdaki en iyi uygunluk değerine sahip genin temsil ettiği sınıf, kromozomun temsil ettiği sınıf olur. Kural listesinde kural sırası uygunluk değerine göre azalan şekilde belirlenir. Basitleştirilmiş MEPAR-SQL Algoritması Şekil 3.2.’de gösterilmiştir; 77 Şekil 3.2. Basitleştirilmiş MEPAR-SQL Algoritması 78 3.1.2. Başlangıç Popülasyonu Kromozomlar iki ayrı mantıksal kısımdan oluşur. Birincisi, terminalleri temsil eden genlerin bulunduğu kısımdır. Bu genlere “terminal gen” adı verilir. Terminal gen nitelik adını, nitelik değerini ve ilişkisel operatörü saklayacak 3 bölüme sahip bir yapıdır. İkincisi ise fonksiyonları temsil eden genlerin bulunduğu kısımdır. Bu genlere “fonksiyon gen” adı verilir. Fonksiyon gen kullanılacak mantıksal fonksiyonu ve fonksiyonun argümanlarını oluşturacak 2 genin referanslarını bulunduracak kısımlardan oluşur. Her iki kısmın sayısı parametriktir ve kullanıcı tarafından belirlenir. Başlangıç popülasyonu oluşturulurken terminal sayısı kadar terminal gen rasgele oluşturulur. Terminal geni oluşturulurken aşağıdaki adımlar izlenir; Adım1. Nitelik kümesinden rasgele bir nitelik seçilir, terminal genin nitelik adı kısmına atanır. Adım2. Seçilen niteliğin değer kümesinden rasgele bir değer seçilerek terminal genin nitelik değerine atanır. Adım3. Seçilen niteliğin tipine uygun olmak şartıyla rasgele bir ilişkisel operatör seçilerek terminal genin ilişkisel operatör değerine atanır. Fonksiyon geni oluşturulurken aşağıdaki adımlar izlenir; Adım1. AND, OR mantıksal operatörlerden biri rasgele seçilir. Adım2. Seçilen OR operatörü ise kendinden küçük indise sahip terminal veya fonksiyon genlerinden herhangi iki rasgele genin referansları fonksiyon genin ilgili kısımlarına atanır. Eğer AND operatörü seçilmiş ise ek olarak, ilk gen referansı seçildikten sonra anlamsız kural türetmemek için ikinci genin niteliğinin ilk genin niteliği ile aynı olması engellenir. NOT operatörü terminal veya fonksiyon genlerinde kullanılabilecek şekilde modele entegre edilmiştir. Herhangi bir gen %30 ihtimalle NOT ile ifade edilir. 3.1.3. Uygunluk Fonksiyonu Bir kural öğrenme örneklerini sınıflandırmak için kullandığında dört kavramdan bahsedilebilir; doğru pozitif, doğru negatif, yanlış pozitif, yanlış negatif. Doğru pozitif 79 ve doğru negatif kavramları yapılan doğru sınıflandırmalardır. Yanlış pozitif ve yanlış negatif kavramları doğru olmayan sınıflandırmaları ifade eder. Doğru pozitif (TP) : Kural, örneği sınıfa dahil olarak tahmin eder ve örnek gerçekte de o sınıfa dahildir. Doğru Negatif (TN) : Kural, örneğin sınıfa dahil olmadığını tahmin eder ve örnek gerçekte de o sınıfa dahil değildir. Yanlış Pozitif (FP) : Kural, örneği sınıfa dahil olarak tahmin eder ancak örnek gerçekte o sınıfa dahil değildir. Yanlış Negatif (FN) : Kural, örneğin sınıfa dahil olmadığını tahmin eder ancak örnek gerçekte o sınıfa dahildir. Korelasyon (c) uygunluk fonksiyonu olarak seçilmiştir [82]. c= tp * tn − fn * fp (tn + fn) * (tn + fp ) * (tp + fn) * (tp + fp ) (4) Uygunluk fonksiyonu 0-1 aralığında değerler almaktadır. Kural tarafından bütün örneklerin doğru sınıflandırıldığı durumda uygunluk fonksiyonu 1 değerini almaktadır. 3.1.4. Genetik Operatörler Uygulamada çaprazlama ve mutasyon operatörleri kullanılmıştır. Her iki operatör de kromozomların mimarisini muhafaza edecek şekilde kullanılmaktadırlar. Çaprazlama operatörü çaprazlamaya uğratılacak her iki kromozomu aynı noktadan gen takası yaparak operasyonu gerçekleştirmektedir. Böylece Terminal genleri ve fonksiyon genleri arasındaki mantıksal bölümleme muhafaza edilmiş olmaktadır. Mutasyon operatörü ise seçilen gen terminal gen ise mutasyon sonucu farklı nitelik- değer çifti barındıran bir terminal geni oluşturmaktadır. Eğer seçilen gen fonksiyon geni ise aynı şekilde mutasyon sonucu başka bir fonksiyon geni oluşturulmaktadır. 80 Seçim: Rulet çemberi seçim mekanizması kullanılarak bireyler seçilmektedir. Uygunluk değeri büyük olan kromozom çark yüzeyinde daha büyük paya sahip olur, böylece seçilme şansı daha yüksek hale gelir. Çaprazlama: Popülasyondan rasgele seçilen iki birey kullanıcı tarafından belirlenen çaprazlama oranı (Pc) ihtimalinde çaprazlama işlemine tabi tutulur. Bu uygulamada tek noktalı çaprazlama kullanılmıştır. Bir çaprazlama noktası rasgele belirlenerek gen takası yapılır. İlk kromozomun ilk geninden çaprazlama noktasına denk gelen gene kadar bütün genler ile ikinci kromozomun çaprazlama noktasına denk gelen genden sonraki bütün genleri sırasıyla birleştirilerek ilk çocuk kromozom meydana getirilir. İkinci kromozomun ilk geninden çaprazlama noktasına denk gelen gene kadar bütün genler ile ilk kromozomun çaprazlama noktasına denk gelen genden sonraki bütün genleri sırasıyla birleştirilerek ikinci çocuk kromozom meydana getirilir. Şekil 3.3.’te çaprazlamanın işleyişi görülmektedir. Şekil 3.3. MEPAR-SQL Çaprazlama 81 Mutasyon : Kromozomun mutasyona uğrama ihtimali (Pm) ve mutasyonun etkisi (Fm) algoritma parametreleridir. Mutasyon etkisi; bir kromozomda bulunan genlerin hangi oranda mutasyona uğratılacağını kontrol eden bir parametredir. Kromozomda bulunan terminal ve fonksiyon genleri mutasyona uğrayabilir. Eğer terminal geni mutasyona uğrayacak ise yine bir terminal genine dönüşür ancak nitelik-değer özellikleri ve ilişkisel operatör değişikliğe uğrayıp tamamen farklı bir terminal geni oluşturur. Eğer fonksiyon geni mutasyona uğrayacak ise yine bir fonksiyon genine dönüşür ancak mantıksal operatörü ve referansları eski genden tamamen farklı bir fonksiyon geni oluşur. Şekil 3.4.’te mutasyon operasyonu gösterilmiştir. Şekil 3.4. MEPAR-SQL Mutasyon 82 3.2. Yazılımın Kullanılması 3.2.1. Ön Gereksinimler MEPAR-SQL yazılımını kullanabilmek için işletim sisteminde .NET Framework 1.1 yüklü olmalıdır. Bilgisayarınızın bir SQL Server 2000 veritabanı sunucusuna erişiminin olması gerekmektedir. SQL Server 2000 veritabanı sunucusu lokal bilgisayarda veya ağda erişim izni olan herhangi bir bilgisayarda olabilir. Erişim izinlerini ayarlarken kullanıcı hesabınızın eşleştirildiği oturumun veri kümelerini içinde barındıran veritabanında “db_datareader” rolüne sahip olması yeterlidir. Şekil 3.5.’te verilerle çalışacak olan “MEPUSER” oturumu oluşturulmuş, veri kümelerini barındıran “THESIS” veritabanına erişim izni ve “db_datareader” rolü bu “MEPUSER” oturumuna verilmiştir. Şekil 3.5. MS SQL Server 2000 Rol Ekleme 83 3.2.2. Yazılımın Çalıştırılması Yazılımın arayüzü 6 ana bölümden oluşmaktadır. Bu bölümler; Bağlantı (1), Tablo Ayarlamaları (2), Parametreler (3), Uygunluk Fonksiyonu (4), Yönetim (5) ve Monitör (6) Bölümleridir. Bu bölümler Şekil 3.6.’da işaretlenmiştir. Şekil 3.6. MEPAR-SQL Arayüzü 1- Veritabanı sunucusunun seçilmesi : Verilerin üzerinde bulunduğu veritabanı sunucusunun (SQL Server 2000) IP adresi “Sunucu” metin kutusuna yazılır. Eğer veriler MEPAR-SQL yazılımının çalıştırıldığı bilgisayardaki SQL Server 2000 veritabanında ise “Sunucu” metin kutusuna “(local)” veya “.” yazılır. Verilerin bulunduğu veritabanının adı “Veritabanı” metin kutusuna yazılır ve “Bağlan” düğmesine basılır. Yazılım otomatik olarak veritabanında bulunan tabloları “Bütün Tablolar” liste kutusuna doldurur. 84 2- Tablo Ayarlamaları : Sınıflandırma yapılacak veri kümesinin içinde bulunduğu tablo adı “Ana Tablo” açılır kutusundan seçilir. Ana tablo daha önce ayrıma tabi tutulmuş ise “Bütün Tablolar” liste kutusunda ayrım tabloları görülebilmektedir. Sınıflandırmada kullanılacak öğrenme ve test veri kümeleri “Bütün Tablolar” liste kutusundan “Öğrenme Listesi” ve “Test Listesi” liste kutularına yerleştirilir. Listeler oluşturulurken dikkat edilmesi gereken; listede birbirine karşılık gelen öğrenme –test tablolarının aynı sıra numarasına sahip olmalarıdır. Yani “Öğrenme Listesi”nde birinci sırada olan bir tablodan çıkarılan kural kümesi “Test Listesi”ndeki birinci tablo üzerinde test edilecektir. Eğer veri kümesini içeren tablo ayrıma tabi tutulmak isteniyorsa bu tablo “Ana Tablo” açılır kutusundan seçilir, ana menüden “Araçlar>Tablo Bölücü” açılır. Şekil 3.7.’de splie veri kümesinin ayrıma tabi tutulması gösterilmektedir. Şekil 3.7. MEPAR-SQL Tablo Bölümleme İlk olarak tablodaki birincil anahtar “ADIM – 1 ID sütunu seç” liste kutusundan seçilir. Ayrım adedi belirlenir, “SQL kodunu çalıştır” seçilir kutusu onaylı şekilde “SQL kodunu oluştur” düğmesine basılır. 85 Eğer ayrım adedi 2 olarak seçilirse öğrenme verisi veri kümesinin %67’sinin rasgele seçimi ile oluşur. Geriye kalan %33’ü test verisi olarak kabul edilir. Ayrım adedi 2’den büyük ise tablodan ayrım adedi kadar, eşit sayıda örnek içeren küme oluşturulur. Bu kümelere örnekler rasgele paylaştırılmıştır. Sırasıyla her bir ayrım kümesi test için kullanılmak üzere yalnız bırakılır ve kalan diğer kümeler öğrenme veri kümesinin elemanı olarak kabul edilir. Böylece ayrım sayısı kadar öğrenme ve test veri kümesi çifti tablolar şeklinde veritabanında oluşturulur. Tablolar isimlendirilirken aşağıdaki biçim uygulanır; [AnaTabloAdı]_[dd][ss][gün][ay][yıl]_[tr/ts][#]_[##] [AnaTabloAdı] : Veri kümesinin bütün örneklerinin bulunduğu tablonun adı. Bu sayede ayrıma tabi tutulan tabloların ayrım tabloları ile arasındaki ilişki kopmamış olmaktadır. [yıl] : Ayrımın yapıldığı yıl. [ay] : Ayrımın yapıldığı ay. [gun] : Ayrımın yapıldığı gün. [ss] : Ayrımın yapıldığı saat. [dd] : Ayrımın yapıldığı dakika. [tr/ts] : Tablo öğrenme veri kümesi içeriyorsa; tr, test veri kümesi içeriyorsa ts kullanılır. [#] : Tablonun ayrım sıra numarası. [##] : Yapılan toplam ayrım adedi. Örnek olarak; hepatitis_2350100806_tr1_10 tablosu hepatitis ana tablosundan 10 ağustos 2006 saat 23:50’de oluşturulmuş 10 ayrımlı tablolar kümesinin birinci öğrenme veri kümesini içeren tablodur. iris_2218200806_ts5_10 tablosu ise iris ana tablosundan 20 ağustos 2006 saat 22:18’de oluşturulmuş 10 ayrımlı tablolar kümesinin beşinci test veri kümesini içeren tablodur. 3 – Parametrelerin Ayarlanması : Probleme uygun parametre değerleri bu bölümde programa girilir. Popülasyon sayısı, terminal sayısı, fonksiyon sayısı, elit birey sayısı, çaprazlama oranı (Pm), mutasyon oranı (Pm), mutasyon etkisi (Fm) algoritma başlamadan önce belirlenmesi gereken parametrelerdir. 86 4 – Uygunluk Fonksiyonu : Bu çalışma boyunca korelasyon uygunluk fonksiyonu kullanılmıştır. Ancak evrimsel algoritma tabanlı çalışmalarda kullanılan uygunluk fonksiyonlarından bazılar yazılıma eklenmiştir. Bu fonksiyonlar aşağıda listelenmiştir; Duyarlık X Belirlilik [49] TP TN : x TP + FN TN + FP Doğru Değer Oranı : TAN I [10] TN N TP : x x 1 + N + FP FN + TP FP + TN (7), TAN II [51] TP + w1TN 1 x : TP + w TN + FP + FN 1 + w FP 1 2 (8) TP + TN N (5), (6), N, toplam örnek sayısını ifade etmektedir. w1 ile w2, TN ve FP değerlerini kontrol eden parametrik ağırlık katsayılarıdır. Küçük w1 değerleri TP’nin uygunluk değerine etkisini artırmaktadır. w1’in varsayılan değeri 0.2’dir. w2’nin varsayılan değeri 1’dir [51]. Algoritma başlatılmadan önce istenilen uygunluk fonksiyonu bu bölümden seçilebilir. 5 – Yönetim : Algoritmanın başlatılması için gerekli son 2 adım bu pencereden gerçekleştirilmektedir. Bu adımlardan birincisi verilerin temizlendiği, nitelik ve değerleri tanıtılıp, kromozom mimarilerinin kurulduğu adımdır. Bu adım başladığında ilk olarak. Şekil 3.8.’de gösterilen “ADIM 1.0 ANA TABLO” penceresi kullanıcının veriler üzerinde değişiklik yapması için yüklenir. Bu tabloda yapılan değişiklikler “Durumu kaydet” düğmesine basıldığında veritabanına yansıtılır. 87 Şekil 3.8. MEPAR-SQL Adım 1.0 Niteliklerin değerlerinde yapılan değişiklikler sınıflandırma aşamasını etkileyecek boyutlarda ise bu tablonun tekrar ayrıma tabi tutulması şarttır. Gerekli düzeltmeler yapıldıktan sonra “Adım 1.1” düğmesine basıldığında Şekil 3.9.’da gösterilen “ADIM 1.1 NİTELİK & DEĞER ÇİFTLERİNİN TANITILMASI” penceresi kullanıcıya gösterilir. 88 Şekil 3.9. MEPAR-SQL Adım 1.1 Şekil 3.9.’da gösterilen pencere bütün örnekleri içeren ana tablonun yapısı hakkında detaylı bilgilerin bulunduğu bir penceredir. Ana tabloda bulunan niteliklerin adları, veri tipleri, boş geçilebilme gibi özellikleri gösterilmektedir. Niteliklerin hangi değerlere sahip oldukları ve değerlerin sıklıkları da bu pencereden öğrenilebilmektedir. Bu adımda amaç niteliği olarak seçilmek istenen nitelik üzerine sağ-tuş basıldığında çıkan menüden “Amaç Niteliği Olarak Ata” seçilerek belirlenmektedir. Amaç niteliğinin kural türetmede kullanılmamasını sağlayan “DIŞLA” özelliği sistem tarafından işaretlenir. Ayrıca kuralda yer alması istenmeyen diğer niteliklerin “DIŞLA” özelliği seçilerek kuralda bulunmamaları sağlanır. Amaç niteliği seçilmeden bir sonraki adıma geçilemez. İkinci olarak bu adımda yapılması gereken; kurallarda bulunacak niteliklerin kesikli veya sürekli olarak değerlendirilme kararının verilmesidir. Kullanıcı sürekli değer olarak kullanılmasını istediği niteliklerin “Sürekli” özelliğini seçmelidir. Sürekli özelliğini seçtiği her nitelik için Şekil 3.10.’da bir örneği gösterilen “AYRIM PENCERESİ” gösterilecektir. 89 Şekil 3.10. MEPAR-SQL Ayrım Penceresi Sürekli değere sahip olduğu belirlenen her nitelik için kullanıcıya gösterilen bu pencere, niteliğin değerleri ve bu değerlerin veri kümesindeki örneklerde bulunma sıklıklarını, en büyük ve en küçük nitelik değerini kullanıcıya belirtir. Ayrım üç farklı yolla yapılabilir; - Kullanıcının ayrım başlangıçlarını ve bitişlerini listeden seçerek, - Kullanıcı tarafından belirlenen sayı kadar ayrımı sistemin oluşturduğu otomatik ayrım kullanarak, - Önceden kaydedilmiş “XML” formatlı ayrım dosyalarını yükleyerek. 90 Örnek olarak hepatitis veri kümesinin 15. niteliği ile ilgili ayrımları içeren “hepatitis(Col015)1329081006dvd.xml” dosyası verilmiştir. <?xml version="1.0" standalone="yes"?> <AYRIMLAR> <xs:schema id="AYRIMLAR" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemasmicrosoft-com:xml-msdata"> <xs:element name="AYRIMLAR" msdata:IsDataSet="true" msdata:Locale="trTR"> <xs:complexType> <xs:choice maxOccurs="unbounded"> <xs:element name="ARALIK"> <xs:complexType> <xs:sequence> <xs:element name="GRUPNO" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="1" type="xs:int" /> <xs:element name="BASLANGIC" type="xs:string" /> <xs:element name="BITIS" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:element> </xs:choice> </xs:complexType> </xs:element> </xs:schema> <ARALIK> <GRUPNO>1</GRUPNO> <BASLANGIC>0</BASLANGIC> <BITIS>33</BITIS> </ARALIK> <ARALIK> <GRUPNO>2</GRUPNO> <BASLANGIC>33</BASLANGIC> <BITIS>80</BITIS> </ARALIK> <ARALIK> <GRUPNO>3</GRUPNO> <BASLANGIC>80</BASLANGIC> <BITIS>120</BITIS> </ARALIK> <ARALIK> <GRUPNO>4</GRUPNO> <BASLANGIC>120</BASLANGIC> <BITIS>160</BITIS> </ARALIK> <ARALIK> <GRUPNO>5</GRUPNO> <BASLANGIC>160</BASLANGIC> <BITIS>200</BITIS> </ARALIK> <ARALIK> <GRUPNO>6</GRUPNO> 91 <BASLANGIC>200</BASLANGIC> <BITIS>250</BITIS> </ARALIK> <ARALIK> <GRUPNO>7</GRUPNO> <BASLANGIC>250</BASLANGIC> <BITIS>300</BITIS> </ARALIK> </AYRIMLAR> Yönetim bölümünün ikinci adımı öğrenme ve test veri kümelerinin sisteme tanıtılması adımıdır. Şekil 3.6.’nın ikinci bölümde bulunan öğrenme ve test listelerinde bulunan sıralı veri kümeleri sisteme tanıtılır. İkinci adım son hazırlık aşamasıdır. “MEPARSQL i BAŞLAT” düğmesine basılarak algoritma çalıştırılır. 6 – Monitör : Şekil 3.11.’de monitör penceresi gösterilmektedir. Şekil 3.11. MEPAR-SQL Monitör Görünümü 92 Bu penceredeki siyah alanda algoritma başladıktan sonraki iterasyon bilgileri, her sınıf için bulunan en iyi kural, kural listesi, öğrenme verileri ve test verileri için düzensizlik matrisi gösterilmektedir. Ayrıca kuralların doğrulukları da en iyi kuralların değişimi ile eş zamanlı kullanıcıya bildirilmektedir. Eğer süreçte bir hata ile karşılaşılır ise iterasyonlar sonunda kullanıcıya rapor edilmektedir. Örnek olarak zoo veri kümesi ile yapılan bir sınıflama çalışmasının raporu aşağıda gösterilmiştir; 51. İTERASYON 1 kuralının tekil uygunluğu=1 Doğruluk:%1 TP:32 TN:44 FP:0 FN:0 KURAL>> [Col005]= '1' 2 kuralının tekil uygunluğu=1 Doğruluk:%1 TP:14 TN:62 FP:0 FN:0 KURAL>> NOT( [Col003]= '0') 3 kuralının tekil uygunluğu=0.745671251115531 Doğruluk:%0.947 TP:2 TN:70 FP:1 FN:3 KURAL>> ([Col012]= '1' AND [Col015]<> '0' ) 4 kuralının tekil uygunluğu=1 Doğruluk:%1 TP:7 TN:69 FP:0 FN:0 KURAL>> ([Col005]= '0' AND [Col013]= '1' ) 5 kuralının tekil uygunluğu=0.6898315991505 Doğruluk:%0.868 TP:2 TN:64 FP:10 FN:0 KURAL>> (NOT( [Col009]<> '1') AND NOT( [Col004]<> '1') ) 6 kuralının tekil uygunluğu=0.934520855185321 Doğruluk:%0.973 TP:7 TN:67 FP:2 FN:0 KURAL>> [Col014]= '6' 7 kuralının tekil uygunluğu=0.93698175787728 Doğruluk:%0.974 TP:8 TN:66 FP:1 FN:1 KURAL>> ([Col010]<> '1' AND [Col008]= '1' ) DÜZENSİZLİK MATRİSİ [ÖĞRENME] SINIF 1 2 3 1 kuralı 32 0 0 2 kuralı 0 14 0 4 kuralı 0 0 0 7 kuralı 0 0 0 6 kuralı 0 0 0 3 kuralı 0 0 2 5 kuralı 0 0 2 Varsayılan 0 0 1 DOĞRULUK:0.947368421052632 DÜZENSİZLİK MATRİSİ [TEST] SINIF 1 2 3 1 kuralı 9 0 0 2 kuralı 0 6 0 4 kuralı 0 0 0 7 kuralı 0 0 0 6 kuralı 0 0 0 3 kuralı 0 0 0 5 kuralı 0 0 0 Varsayılan 0 0 0 DOĞRULUK:0.96 Hata: Yok 4 0 0 7 0 0 0 0 0 5 0 0 0 0 0 0 2 0 6 0 0 0 1 6 0 0 0 7 0 0 0 8 0 0 0 1 4 0 0 6 0 0 0 0 0 5 0 0 0 0 0 0 2 0 6 0 0 0 0 1 0 0 0 7 0 0 0 0 0 0 0 1 93 Beyaz alanda ise hesaplamalar için kullanılan süreler listelenmektedir. İki ayrı süre kullanıcıya rapor edilir. Birincisi MEPAR-SQL algoritmasının doğal seçim ve genetik operasyonların hesaplama süresini gösteren “iterasyon” satırıdır. İkincisi ise SQL Server 2000’in kuralların değerlendirilmesi için harcadığı “SQL Teslimi” süresidir. Aşağıda bu sürelerin bulunduğu rapor parçası gösterilmektedir; MEPAR-SQL SINIFLANDIRMA YAZILIMI İTERASYONLARA BAŞLADI 13:34:17 0. İterasyon ==> Zaman:13:34:17 SQL Teslimi13:34:20 1. İterasyon ==> Zaman:13:34:20 SQL Teslimi13:34:21 2. İterasyon ==> Zaman:13:34:21 SQL Teslimi13:34:22 . Sayfa tasarrufu için bu aralık yazılmamıştır. . 49. İterasyon ==> Zaman:13:35:18 SQL Teslimi13:35:19 50. İterasyon ==> Zaman:13:35:19 SQL Teslimi13:35:20 İTERASYONLAR BİTTİ / DURDURULDU13:35:20 4.BÖLÜM BULGULAR VE YORUMLAR MEPAR-SQL algoritmasının parametre kümelerini ve etkinliğini belirlemek için deney tasarımı düzenlenmiştir. Bu bölümde uygulanan deney tasarımı açıklanarak algoritmanın etkinliği araştırılmıştır. Geliştirilen MEPAR-SQL algoritmasının etkinliğinin belirlenmesi ve karşılaştırılması amacıyla çözümlerin doğruluk değerleri dikkate alınarak etkinlik ölçütü; TP + TN N (9) formülü ile hesaplanmıştır. TP; kuralın örneği sınıfa dahil olarak tahmin ettiği ve örneğin gerçekte de o sınıfa dahil olduğu durum sayısıdır. TN ise; kuralın örneği sınıfa dahil olmadığını tahmin ettiği ve örneğin gerçekte de o sınıfa dahil olmadığı durum sayısıdır. N; veri kümesinde bulunan örnek sayısını ifade etmektedir. Algoritmada Credit-App, Hepaitis, Iris, Lymphography ve Zoo veri kümeleri için 10 ayrımlı çapraz doğrulama yaklaşımı, Adult ve ENDQ veri kümeleri için %66 öğrenme %33 test kümeleri ile doğrulama yaklaşımı kullanılarak her veri alt kümesi için çalıştırılmış ve elde edilen sonuçların ortalaması etkinlik ölçütü olarak kullanılmıştır. MEPAR-SQL algoritması için öncelikle uygun parametre kümesi ve bu parametrelerin tasarımda kullanılacak düzeyleri belirlenmiştir. Deney tasarımında MINITAB® Release 14.1 yazılımının DOE (Design Of Experiment) bölümündeki L12, 2 seviyeli Taguchi tasarımı kullanılmıştır. Analizde ana etkiler (Main Effect) ve ikili etkiler (interaction effect) dikkate alınmıştır. 95 4.1. Test Problemleri Test problemleri http://www.ics.uci.edu/~mlearn/MLRepository.html adresinden alınmıştır. Adult : Bu veri kümesi sürekli ve kategorik niteliklere sahip 48842 örnek içermektedir. Veri kümesi, orjinal halinde rasgele 2/3’ü öğrenme, 1/3’ü test veri kümesi olmak üzere ikiye bölünmüştür. Çalışma esnasında bu veri kümesinde hiçbir temizlik veya uyarlama işlemi yapılmamıştır. Credit - app: Bu veri kümesi kredi kartı uygulamalarını içermektedir. Bu veri kümesi sürekli, kategorik değerlerden oluşan 690 örnek ve 15 niteliğe sahiptir. 37 eksik değer bulundurmaktadır. Bu veri üzerinde hiçbir değişiklik veya düzenleme işlemi yapılmamıştır. Hepatitis: Bu veri kümesi 155 örnek içermektedir. Her bir örnek 19 sürekli veya kategorik nitelik içermektedir. Çok fazla miktarda kayıp değer içermesine rağmen veri kümesinde hiçbir temizlik veya düzenleme işlemi yapılmadan kullanılmıştır. Iris: 150 örneğe sahip bu veri kümesi 3 sınıf tanımı, ve 4 niteliğe sahiptir. Bütün değerler süreklidir. Kayıp değer bulundurmamaktadır. Veri üzerinde hiçbir düzenleme yapılmadan kullanılmıştır. Lymphography: 4 sınıf tanımlı ve 19 niteliğe sahip bu veri kümesi toplam 148 örneğe sahiptir. Değerler kategorik olmasına karşın bütün değerlerin indisleri nitelik olarak saklanmıştır. Zoo : 101 örneğe sahip bu veri kümesi 7 sınıf tanımı barındırmaktadır. Toplam 17 nitelik içermektedir ve niteliklerin %12’si sürekli, %88’i kategorik değerlerdir. ENDQ : 2461 örneğe sahip bu veri kümesi 5 sınıf tanımı barındırmaktadır. Toplam 17 nitelik içermektedir ve niteliklerin %65’i sürekli, % 35’i kategorik değerlerdir. ENNQ veri kümesi ile ilgili açıklamalar EK-1’de verilmiştir. Tablo 4.1’de veri kümeleri hakkında özet bilgi sunulmuştur. 96 Tablo 4.1.Veri kümesi bilgileri Sürekli Nominal Değer Değer Yüzdesi Yüzdesi 2 43 57 Var 15 2 40 60 Var 155 19 2 32 68 Var Iris 150 4 3 100 0 Yok Lymphography 148 18 4 100 0 Yok Zoo 101 17 7 12 88 Yok ENDQ 2461 17 5 65 35 Var Veri Kümesi Gözlem Nitelik Sınıf Adı Sayısı Sayısı Sayısı Adult 48842 14 Credit-app 690 Hepatitis Kayıp Bilgi 4.2. Uygun Parametre Kümesinin Belirlenmesi Algoritma test problemleri için pek çok kez çalıştırılarak tasarımda kullanılacak uygun parametre kümeleri belirlenmiştir. Geliştirilen algoritmada, çaprazlama oranı (Pc), mutasyon etkisi (Fm), popülasyon sayısı, iterasyon sayısı, terminal sayısı ve fonksiyon sayısı olmak üzere 6 farklı kontrol parametresi vardır ve bu parametrelerin deney tasarımında kullanılacak düzeyleri aşağıdaki Tablo 4.2’de verilmiştir. Tablo 4.2. Parametre düzeyleri Faktörler Çaprazlama Oranı Hepatitis,Adult,Iris, Lymphography, Zoo Düzeyleri .7 - .9 Credit-App, ENDQ Düzeyleri .7 - .9 Mutasyon Etkisi .1 - .2 .1 - .2 Popülasyon Sayısı 25 - 50 25 - 50 İterasyon Sayısı 25 - 50 25 - 50 Terminal Sayısı 15 - 25 30 - 50 Fonksiyon Sayısı 20 - 40 40 - 80 4.3. Analiz Sonuçları Aşağıda geliştirilen MEPAR-SQL algoritmasının adult, credit-app, hepatitis, iris, lymphography, splice, zoo, ENDQ test problemlerinden hepatitis için analiz sonuçları 97 verilmiştir. Diğer test problemleri için analiz sonuç grafikleri EK-2’de, MEPAR-SQL sonuç çıktıları ise EK-3’te sunulmuştur. 4.3.1. Hepatitis Veri Kümesi Analiz Sonuçları Hepatitis test problemi için elde edilen ‘Delta’ ve ‘Rank’ değerleri incelendiğinde, etkinlik ölçütü üzerinde en çok “iterasyon sayısı”nın etkili olduğu daha sonra ise “popülasyon sayısı”nın etkili olduğu görülmektedir. En az etkiye sahip olan parametre ise “fonksiyon sayısı”dır. Buradaki ‘delta’ etki derecesini ölçen bir değerdir ve ‘Delta’ ne kadar büyükse, o parametrenin etkinliği o kadar yüksektir. ‘Rank’ ise parametreleri etkinliklerine göre sıralar. ‘Rank’ değeri 1 olan parametre en etkin parametredir. Sonuçlar MINITAB çıktısında aşağıdaki gibi görülmektedir. Response Table for Means Çaprazlama Mutasyon Popülasyon İterasyon Terminal Fonksiyon Level Oranı Etkisi Sayısı Sayısı Sayısı Sayısı 1 79.42 78.87 79.83 78.58 78.75 79.05 2 79.03 79.58 78.62 79.87 79.70 79.40 0.38 0.72 1.22 1.28 0.95 0.35 5 4 2 1 3 6 Delta Rank Çıktıda ortalama uygunluğun ortalamalara göre etkinlik sıralaması; 1. İterasyon Sayısı, 2. Popülasyon Sayısı, 3. Terminal Sayısı, 4. Mutasyon Etkisi, 5. Çaprazlama Oranı, 6. Fonksiyon Sayısı şeklindedir. Şekil 4.1’de ortalamalara göre ana etki grafiği incelendiğinde yine en fazla etkinin “iterasyon sayısı”, daha sonra ise “popülasyon sayısı”nın olduğu görülmektedir. En az etkiye sahip parametre ise “fonksiyon sayısı”dır. Ana etki grafiklerinde parametrenin iki düzeyi arasındaki doğru ne kadar dikse parametre o derece etkindir. Her bir parametrenin etkin düzeyi; iterasyon sayısı 50 (ikinci düzey), 98 popülasyon sayısı 25 (birinci düzey), terminal sayısı 25 (ikinci düzey), mutasyon etkisi .2 (ikinci düzey), çaprazlama oranı .7 (birinci düzey), fonksiyon sayısı 40 (ikinci düzey) olarak görülmektedir. Şekil 4.1. Hepatitis Ortalama Uygunluk İçin Ana Etki Grafiği Deney tasarımında tam sonucu elde edebilmek için ana etkiler yeterli değildir, etkileşim eğrilerine de bakmak gerekir. Etkileşim grafikleri neticesinde eğer iki faktör arasında etkileşim varsa, ana etkiler grafiğinde tek faktörü değerlendirmek doğru bir yaklaşım olarak görülmemektedir. Şekil 4.2., 4.3 ve 4.4. hepatitis problemi için etkileşim eğrilerini göstermektedir. Etkileşim eğrileri, iki faktörün düzeyindeki değişimlerin ortalama üzerindeki etkilerini gösterir. Şekil4.2.’deki “popülasyon sayısı ile iterasyon sayısın” arasındaki etkileşime bakıldığında popülasyon sayısının 25, iterasyon sayısının 50 değerinde tutularak algoritmanın çalıştırılması ortalama uygunluğu artırıcı bir etki göstereceklerdir. Buna karşın Şekil 4.3.’teki “çaprazlama oranı ile fonksiyon sayısı” arasındaki etkileşime bakıldığında çaprazlama oranının .7, fonksiyon sayısının ise 40 olduğu durumu desteklememektedir. Diğer bir durum ise parametreler arasında bir etkileşimin söz konusu olmadığı durumdur. Buna örnek olarak Şekil 4.2.’deki “popülasyon sayısı ile terminal sayısı” arasındaki etkileşim eğrisi gösterilebilir. 99 Şekil 4.2. Hepatitis Ortalama Uygunluk İçin Etkileşim Grafiği a Şekil 4.3. Hepatitis Ortalama Uygunluk İçin Etkileşim Grafiği b 100 Şekil 4.4. Hepatitis Ortalama Uygunluk İçin Etkileşim Grafiği c Sonuç olarak; iterasyon sayısı 50, popülasyon sayısı 25, terminal sayısı 25, mutasyon etkisi .2, çaprazlama oranı .7 ve fonksiyon sayısı 40 olduğu durumda MEPAR-SQL algoritması çalıştırıldığında çözümün doğruluğu artacaktır. Bu parametre değerleri ile çalıştırılan MEPAR-SQL algoritmasının örnek sonuç çıktısı; [hepatitis_training1]&[hepatitis_test1] 51. İTERASYON 0 kuralının tekil uygunluğu=0.804845969362116 Conf:%0.835714285714286 TP:91 TN:26 FP:4 FN:19 KURAL>> ((([Col014]<= 4 OR [Col012]is null ) AND [Col017]> 3.8 ) OR (([Col014]< 4 AND (([Col016]>= 500 AND [Col014]< 4 ) OR [Col012]<> '1' )) AND [Col006]<> '1' )) 1 kuralının tekil uygunluğu=0.758726484804695 Conf:%0.814285714285714 TP:22 TN:92 FP:18 FN:8 KURAL>> ([Col012]= '1' OR ([Col014]BETWEEN 2 AND 3 OR [Col017]is null )) GÜVENİLİRLİK TABLOSU [ÖĞRENME] SINIF 0 1 0 kuralı 91 4 1 kuralı 6 14 Default 13 12 CONFIDENCE:0.842857142857143 GÜVENİLİRLİK TABLOSU [TEST] SINIF 0 1 0 kuralı 10 1 1 kuralı 0 1 Default 3 0 101 CONFIDENCE:0.933333333333333 şeklindedir. 4.3.2. Adult Veri Kümesi Analiz Sonuçları Adult test problemi için elde edilen ‘Delta’ ve ‘Rank’ değerleri EK-2.a. incelendiğinde, etkinlik ölçütü üzerinde en çok “fonksiyon sayısı”nın etkili olduğu daha sonra ise “mutasyon etkisi”nin etkili olduğu görülmektedir. En az etkiye sahip olan parametre ise “iterasyon sayısı”dır. Sonuçlar aşağıdaki MINITAB çıktısında görülmektedir. Response Table for Means Çaprazlama Mutasyon Popülasyon İterasyon Terminal Fonksiyon Level Oranı Etkisi Sayısı Sayısı Sayısı Sayısı 1 77.67 79.33 77.00 78.17 77.17 76.67 2 78.50 76.83 79.17 78.00 79.00 79.50 0.83 2.50 2.17 0.17 1.83 2.83 5 2 3 6 4 1 Delta Rank EK-2 a.’da ortalama uygunluğun ortalamalara göre etkinlik sıralaması; 1. Fonksiyon Sayısı, 2. Mutasyon Etkisi, 3. Popülasyon Sayısı, 4., Terminal Sayısı 5. Çaprazlama Oranı, 6. İterasyon Sayısı şeklindedir. EK-2.b., EK-2.c., ve EK-2.d.’de adult problemi için etkileşim eğrilerini göstermektedir. Parametrelerin etkinlik ölçütüne göre ikili etkileşimleri incelendiğinde; EK-2.d.’deki “terminal sayısı ile fonksiyon sayısı” arasındaki etkileşim terminal sayısının 25, fonksiyon sayısının ise 40 olduğu durumu desteklemektedir. EK-2.d.’de “mutasyon etkisi ile terminal sayısı” arasında etkileşimin söz konusu olmadığı görülmektedir. Sonuç olarak; iterasyon sayısı 25, popülasyon sayısı 50, terminal sayısı 25, mutasyon etkisi .1, çaprazlama oranı .9 ve fonksiyon sayısı 40 olduğu durumda MEPAR-SQL algoritması çalıştırıldığında çözümün doğruluğu artacaktır. 102 4.3.3. Iris Veri Kümesi Analiz Sonuçları Iris test problemi için elde edilen ‘Delta’ ve ‘Rank’ değerleri ve EK-2.i. incelendiğinde, etkinlik ölçütü üzerinde en çok “popülasyon sayısı”nın etkili olduğu daha sonra ise “fonksiyon sayısı”nın etkili olduğu görülmektedir. En az etkiye sahip olan parametre ise “mutasyon etkisi”dir. Sonuçlar aşağıdaki MINITAB çıktısında görülmektedir. Response Table for Means Çaprazlama Mutasyon Popülasyon İterasyon Terminal Fonksiyon Level Oranı Etkisi Sayısı Sayısı Sayısı Sayısı 1 94.48 95.02 93.92 94.58 95.25 94.35 2 95.67 95.13 96.23 95.57 94.90 95.80 1.18 0.12 2.32 0.98 0.35 1.45 3 6 1 4 5 2 Delta Rank EK-2 i.’de ortalama uygunluğun ortalamalara göre etkinlik sıralaması; 1. Popülasyon Sayısı, 2 Fonksiyon Sayısı., 3. Çaprazlama Oranı, 4. İterasyon Sayısı, 5., Terminal Sayısı 6. Mutasyon Etkisi şeklindedir. EK-2 j., EK-2 k. ve EK-2 l’de iris problemi için etkileşim eğrilerini göstermektedir. Parametrelerin etkinlik ölçütüne göre ikili etkileşimleri incelendiğinde; EK-2.k.’deki “iterasyon sayısı ile terminal sayısı” arasındaki etkileşim iterasyon sayısının 50, terminal sayısının ise 15 olduğu durumu desteklemektedir, “iterasyon sayısı ile fonksiyon sayısı” arasında bir etkileşim görülmemektedir. Ayrıca EK-2.j.’deki “çaprazlama oranı ile mutasyon etkisi” arasındaki etkileşim çaprazlama oranının .9, mutasyon etkisinin ise .2 olduğu durumu desteklememektedir. Sonuç olarak; iterasyon sayısı 50, popülasyon sayısı 50, terminal sayısı 15, mutasyon etkisi .2, çaprazlama oranı .9 ve fonksiyon sayısı 40 olduğu durumda MEPAR-SQL algoritması çalıştırıldığında çözümün doğruluğu artacaktır. 103 4.3.4. Lymphograpy Veri Kümesi Analiz Sonuçları Lymphograpy test problemi için elde edilen ‘Delta’ ve ‘Rank’ değerleri ve EK-2.m. incelendiğinde, etkinlik ölçütü üzerinde en çok “mutasyon etkisi”nin etkili olduğu daha sonra ise “popülasyon sayısı”nın etkili olduğu görülmektedir. En az etkiye sahip olan parametre ise “fonksiyon sayısı”dır. Sonuçlar aşağıdaki MINITAB çıktısında görülmektedir. Response Table for Means Çaprazlama Mutasyon Popülasyon İterasyon Terminal Fonksiyon Level Oranı Etkisi Sayısı Sayısı Sayısı Sayısı 1 78.02 78.43 75.65 76.45 75.62 76.72 2 75.87 75.45 78.23 77.43 78.27 77.17 2.15 2.98 2.58 0.98 2.65 0.45 4 1 3 5 2 6 Delta Rank Ek-2.m.’de ortalama uygunluğun ortalamalara göre etkinlik sıralaması; 1. Mutasyon Etkisi, 2. Terminal Sayısı, 3. Popülasyon Sayısı, 4. Çaprazlama Oranı, 5. İterasyon Sayısı, 6. Fonksiyon Sayısı şeklindedir. EK-2.n., EK-2.o. ve EK-2.p. lymphograpy problemi için etkileşim eğrilerini göstermektedir. Parametrelerin etkinlik ölçütüne göre ikili etkileşimleri incelendiğinde; Ek-2.o.’daki, “iterasyon sayısı ile terminal sayısı” arasındaki etkileşim iterasyon sayısının 50, terminal sayısının ise 25 olduğu durumu desteklemektedir. Ancak, “iterasyon sayısı ile fonksiyon sayısı” arasındaki etkileşim iterasyon sayısının 50, fonksiyon sayısının ise 40 olduğu durumu desteklememektedir. Ayrıca “popülasyon sayısı ile terminal sayısı” arasında etkileşim görülmemektedir. Sonuç olarak; iterasyon sayısı 50, popülasyon sayısı 50, terminal sayısı 25, mutasyon etkisi .1, çaprazlama oranı .7 ve fonksiyon sayısı 40 olduğu durumda MEPAR-SQL algoritması çalıştırıldığında çözümün doğruluğu artacaktır. 104 4.3.4. Zoo Veri Kümesi Analiz Sonuçları Zoo test problemi için elde edilen ‘Delta’ ve ‘Rank’ değerleri ve EK-2.q. incelendiğinde, etkinlik ölçütü üzerinde en çok “popülasyon sayısı”nın etkili olduğu daha sonra ise “mutasyon etkisi”nin etkili olduğu görülmektedir. En az etkiye sahip “terminal sayısı”dır. Sonuçlar aşağıdaki MINITAB çıktısında olan parametre ise görülmektedir. Response Table for Means Çaprazlama Mutasyon Popülasyon İterasyon Terminal Fonksiyon Level Oranı Etkisi Sayısı Sayısı Sayısı Sayısı 1 92.57 91.62 93.07 91.93 92.43 92.63 2 91.97 92.92 91.47 92.60 92.10 91.90 0.60 1.30 1.60 0.67 0.33 0.73 5 2 1 4 6 3 Delta Rank EK-2.q.’daki ortalama uygunluğun ortalamalara göre etkinlik sıralaması; 1. Popülasyon Sayısı, 2. Mutasyon Etkisi, 3. Fonksiyon Sayısı, 4. İterasyon Sayısı, 5. Çaprazlama Oranı, 6. Terminal Sayısı şeklindedir. EK-2.r., EK-2.s. ve EK-2.t. zoo problemi için etkileşim eğrilerini göstermektedir. Parametrelerin etkinlik ölçütüne göre ikili etkileşimleri incelendiğinde; Ek-2.s.’te, “iterasyon sayısı ile terminal sayısı” arasındaki etkileşim iterasyon sayısının 50, terminal sayısının ise 15 olduğu durumu desteklemektedir. EK-2.t.’de “terminal sayısı ile fonksiyon sayısı” arasındaki etkileşim terminal sayısının 15, fonksiyon sayısının 20 olduğu durumu desteklememektedir. Ek-2.r.’de “mutasyon etkisi ile iterasyon sayısı” arasında bir etkileşim görülmemektedir. Sonuç olarak; iterasyon sayısı 50, popülasyon sayısı 25, terminal sayısı 15, mutasyon etkisi .2, çaprazlama oranı .7 ve fonksiyon sayısı 20 olduğu durumda MEPAR-SQL algoritması çalıştırıldığında çözümün doğruluğu artacaktır. 105 4.3.5. Credit App Veri Kümesi Analiz Sonuçları Credit app test problemi için elde edilen ‘Delta’ ve ‘Rank’ değerleri ve EK-2.e. incelendiğinde, etkinlik ölçütü üzerinde en çok “terminal sayısı”nın etkili olduğu daha sonra ise “iterasyon sayısı”nin etkili olduğu görülmektedir. En az etkiye sahip olan “popülasyon sayısı”dır. Sonuçlar aşağıdaki MINITAB çıktısında parametre ise görülmektedir. Response Table for Means Çaprazlama Mutasyon Popülasyon İterasyon Terminal Fonksiyon Level Oranı Etkisi Sayısı Sayısı Sayısı Sayısı 1 85.78 85.83 85.80 85.72 85.92 85.85 2 85.82 85.77 85.80 85.88 85.68 85.75 0.03 0.07 0.00 0.17 0.23 0.10 5 4 6 2 1 3 Delta Rank EK-2.e’deki ortalama uygunluğun ortalamalara göre etkinlik sıralaması; 1. Terminal Sayısı, 2. İterasyon Sayısı, 3. Fonksiyon Sayısı, 4. Mutasyon Etkisi, 5. Çaprazlama Oranı, 6. Popülasyon Sayısı şeklindedir. EK-2.f., EK-2.g. ve EK-2.h. credit app problemi için etkileşim eğrilerini göstermektedir. Parametrelerin etkinlik ölçütüne göre ikili etkileşimleri incelendiğinde; Ek-2.h’de, “mutasyon etkisi ile terminal sayısı” arasındaki etkileşim mutasyon etkisinin .1, terminal sayısının ise 30 olduğu durumu desteklememektedir. Ayrıca “çaprazlama oranı ile terminal sayısı” arasında bir etkileşim görülmemektedir. Sonuç olarak; iterasyon sayısı 50, popülasyon sayısı 25, terminal sayısı 30, mutasyon etkisi .1, çaprazlama oranı .9 ve fonksiyon sayısı 40 olduğu durumda MEPAR-SQL algoritması çalıştırıldığında çözümün doğruluğu artacaktır. 106 4.3.6. ENDQ Veri Kümesi Analiz Sonuçları ENDQ test problemi için elde edilen ‘Delta’ ve ‘Rank’ değerleri ve EK-2.u.. incelendiğinde, etkinlik ölçütü üzerinde en çok “terminal sayısı”nın etkili olduğu daha sonra ise “popülasyon sayısı”nın etkili olduğu görülmektedir. En az etkiye sahip olan “çaprazlama oranı”dır. Sonuçlar aşağıdaki MINITAB çıktısında parametre ise görülmektedir. Response Table for Means Çaprazlama Mutasyon Popülasyon İterasyon Terminal Fonksiyon Level Oranı Etkisi Sayısı Sayısı Sayısı Sayısı 1 69.62 70.70 68.10 68.81 71.36 69.19 2 69.51 68.43 71.03 70.32 67.78 69.95 0.11 2.28 2.93 1.52 3.58 0.76 6 3 2 4 1 5 Delta Rank EK-2.u’daki ortalama uygunluğun ortalamalara göre etkinlik sıralaması; 1. Terminal Sayısı, 2. Popülasyon Sayısı, 3. Mutasyon Etkisi, 4. İterasyon Sayısı, 5. Fonksiyon Sayısı, 6. Çaprazlama Oranı şeklindedir. EK-2.v., EK-2.y. ve EK-2.z. ENDQ problemi için etkileşim eğrilerini göstermektedir. Parametrelerin etkinlik ölçütüne göre ikili etkileşimleri incelendiğinde; EK-2.v.’de “mutasyon etkisi ile popülasyon sayısı” arasındaki etkileşim mutasyon etkisinin .1, popülasyon sayısının ise 50 olduğu durumu desteklemektedir. Ayrıca mutasyon etkisi ile iterasyon sayısı” arasındaki etkileşim mutasyon etkisinin .1, iterasyon sayısının ise 50 olduğu durumu desteklememektedir. EK-2.y.’de “iterasyon sayısı ile fonksiyon sayısı” arasında etkileşim görülmemektedir. Sonuç olarak; iterasyon sayısı 50, popülasyon sayısı 50, terminal sayısı 30, mutasyon etkisi .1, çaprazlama oranı .7 ve fonksiyon sayısı 80 olduğu durumda MEPAR-SQL algoritması çalıştırıldığında çözümün doğruluğu artacaktır. 107 4.4. Sonuçların Diğer Çalışmalar ile Karşılaştırması Geliştirilen MEPAR-SQL algoritması için düzenlenen deney tasarımları uygulandığında test problemleri için bulunan parametre düzeyleri kullanılarak tekrar çalışılan problemlerin sonuçları Tablo 4.3., 4.4. ve 4.5.’te Weka Yazılımındaki NaiveBayes, DecisionTree, PART, C4.5, DOEA [51] ve CellularGP [50] algoritmaları ile bulunan sonuçlar ile karşlaştırılmıştır. Tablo 4.3. MEPAR-SQL Karşılaştırmalı Sonuçlar (2 sınıflılar) Veri Kümesi NaiveBayes Ortalama Adult Credit-App Hepatitis 83.25 DecisionTable 85.94 PART 85.29 C4.5 86.04 MEPAR-SQL DOEA Cellular GP 83.33 Standart Sapma 0.23 0.24 0.33 0.30 1.15 Minimum 82.87 85.51 84.52 85.67 82.00 Maksimum 83.66 86.28 85.71 86.54 84.00 Ortalama 77.86 85.04 84.45 85.56 86.09 85.48 83.75 Standart Sapma 4.18 4.44 4.35 3.96 4.05 3.14 - Minimum 66.67 75.36 73.91 73.91 78.26 - - Maksimum 86.96 95.62 94.20 92.75 91.30 89.35 86.00 Ortalama 84.34 79.38 79.80 79.22 82.80 Standart Sapma 10.42 7.74 8.55 9.56 7.67 Minimum 60.00 62.50 56.25 60.00 73.00 Maksimum 100.00 100.00 100.00 100.00 93.00 Tablo 4.3.’te 2 sınıfa sahip veri kümelerinin sonuçları görülmektedir. Credis-App veri kümesi için en iyi ortalama doğruluğu MEPAR-SQL bulmuştur. Hepatitis veri kümesi için ise ikinci en iyi ortalama yine MEPAR-SQL tarafından bulunmuştur. Tablo 4.4. MEPAR-SQL Karşılaştırmalı Sonuçlar (çoklu sınıflılar) Veri Kümesi İris Lymphography Zoo NaiveBayes DecisionTable PART C4.5 MEPAR-SQL DOEA Cellular GP Ortalama 96.00 92.67 94.00 96.00 96.60 92.10 95.00 Standart Sapma 4.66 5.84 5.84 5.20 4.72 4.29 - Minimum 86.67 86.67 86.67 86.67 86.70 - - Maksimum 100.00 100.00 100.00 100.00 100.00 98.04 96.00 Ortalama 82.38 71.52 81.00 74.90 82.40 82.41 Standart Sapma 8.55 8.68 9.45 8.12 6.47 5.53 Minimum 66.67 57.14 66.67 64.29 73.33 - Maksimum 93.33 86.67 93.33 86.67 93.33 92.16 Ortalama 97.19 91.19 92.19 92.19 93.33 92.10 Standart Sapma 6.25 7.10 8.94 8.94 6.71 4.29 Minimum 81.82 80.00 80.00 80.00 80.00 - Maksimum 100.00 100.00 100.00 100.00 100.00 97.14 108 Tablo 4.4.’te çoklu sınıf veri kümelerinin sonuçları görülmektedir. Iris ve Lymphography veri kümeleri için en iyi ortalama doğruluk MEPAR-SQL tarafından bulunmuştur. Zoo veri kümesinde ise ikinci en iyi ortalama doğruluk yine MEPARSQL tarafından bulunmuştur. Tablodan anlaşılacağı üzere çoklu sınıflandırma problemleri için MEPAR-SQL diğer sıklıkla kullanılan güçlü algoritmalardan genellikle daha iyi sonuç vermektedir. Sınıf sayısı ve örnek sayısı arttığında SQL sorgularıyla MS SQL Server 2000’ı kullanan MEPAR-SQL algoritmanın performansı karşılaştırılan algoritmalara göre daha az etkilenmektedir. Bu durum algoritmanın çok miktarda örneğe sahip gerçek verilerle çalışabilmesini kolaylaştırmıştır. Tablo 4.5. MEPAR-SQL Karşılaştırmalı Sonuçlar Veri Kümesi ENDQ NaiveBayes DecisionTable PART C4.5 MEPAR-SQL 74.74 Ortalama 62.89 74.96 71.48 75.41 Standart Sapma 1.81 0.73 1.02 0.08 0.01- Minimum 59.81 72.97 69.86 75.30 74.63 Maksimum 65.83 75.47 72.99 75.47 74.80 Tablo 4.5.’te görüldüğü gibi ENDQ veri kümesi için ikinci en iyi doğruluğu DecisionTable algoritması ile MEPAR-SQL paylaşmaktadır. 5. BÖLÜM SONUÇ VE ÖNERİLER Yapılan bu çalışmada çoklu ifade programlamanın sabit kromozom uzunluğu kullanarak farklı büyüklük ve şekildeki ağaç yapılarının kodlanabilme avantajı ile SQL dilinin fonksiyonelliği ve anlaşılabilirliği birleştirilmeye çalışılmıştır. Ayrıca MEPAR-SQL algoritması veri ile ilgili bellek yönetimini ve veri işlemlerini MS SQL Server 2000 veritabanı yönetim sistemine bırakarak kendi yükünü büyük miktarda azaltmaktadır. MEPAR-SQL, MS SQL Server 2000 sistemi için istemcidir. MS SQL Server ailesinden herhangi bir sistem seçilerek kullanılabilir. Kullanacağınız bilgisayarda donanım olarak 166 MHz işlemci ve 64 MB bellek, yazılım olarak Windows 98 bulunması MEPARSQL yazılımını kullanmanız için yeterlidir. MS SQL Server çalıştıran sunucu görevi yapacak bilgisayarın özellikleri doğrudan MEPAR-SQL yazılımının çözüm süresini etkileyecektir. Ayrıca uzak bilgisayarlara bağlanarak bu bilgisayarları veritabanı sunucusu olarak kullanabilirsiniz. Tüm bu avantajların yanında MEPAR-SQL yazılımının sonuç kural listesi temel seviyede SQL dili bilen bir kullanıcı için tamamıyla anlamlı olacaktır. MEPAR-SQL farklı özellikler içeren Adult, Credit-App, Hepatitis, Iris, Lymphography, Zoo ve ENDQ veri kümeleri ile çalıştırılmıştır. MEPAR-SQL’in Adult gibi geniş, hem sürekli, hem de kategorik nitelikler barındıran veri kümelerinde, Hepatitis gibi fazla sayıda kayıp bilgi içeren veri kümelerinde, Irıs, Lymphography ve Zoo gibi çoklu sınıfa sahip veri kümelerinde etkili bir algoritma olduğu gösterilmiştir. Ayrıca ENDQ gibi gerçek bir üretim verisi üzerinde yüksek bir doğruluk değeri yakalayarak gerçek problemlerde de MEPAR-SQL yazılımının kullanılabileceği görülmüştür. MEPAR-SQL yazılımının etkinliği ve doğruluğu umut verici bulunmuştur. 110 İleride yapılması düşünülen çalışmada; -‘OLE DB for Data Mining’ desteğinin eklenerek fonksiyonelliğin artırılması , -Kullanıcı tanımlı uygunluk fonksiyonu desteği eklenmesi, -Bilinen sürekli veriyi kategorize etme düşünülmektedir. 110 tekniklerinin sisteme eklenmesi 111 KAYNAKLAR 1. Vahaplar, A., İnceoğlu, M.M., Veri Madenciliği ve Elektronik Ticaret, Türkiye’de İnternet Konferansları-VII. Elektronik Poster Bildiri, 2001. 2. Two Crows Corporation, Introduction to Data Mining and Knowledge Discovery, 10500 Falls Road, Potomac, MD 20854, Maryland, USA, 1999. 3. Wong, M. L., Leung, K. S., Data Mining Using Grammar Based Genetic Programming and Applications, Kluwer Academic Publishers, London, 1999. 4. Carvalho, D.R., Freitas, A.A., A Genetic-Algorithm For Discovering SmallDisjunct Rules in Data Mining, Applied Soft Computing 2, 75-88, 2002. 5. Kamrani, A., Rong, W., Gonzalez, R., A Genetic Algorithm Methodology For Data Mining And Intelligent Knowledge Acquisition, Computers & Industrial Engineering, 40, 361-377, 2001. 6. Fayyad, U., Madigan, D., Piatetsky-Shapira, G., Smyth, P., From Data Mining To Knowledge Discovery In Databases, AI Magazine, 17, 37-54, 1996. 7. Adriaans, P., Zantige, D., Data Mining, Harlow: Addison-Wesley, 158, 1996. 8. Falco, I.D, Cioppa, A.D., Tarantino, E., Discovering Interesting Classification Rules With Genetic Programming, Applied Soft Computing, 1, 257-269, 2002. 9. Zhou, Z., Three perspectives of data mining, Artificial Intelligence, 143, 139146, 2003. 10. Tan, K.C., Yu, Q., Heng, C.M., Lee, T.H., Evolutionary Computing For Knowledge Discovery In Medical Diagnosis, Artificial Intelligence In Medicine 27, 129-154, 2003. 11. Data Distilleries, Introduction to Data Mining - Discover Hidden Value in Your Databases, Amsterdam, The Netherlands, pp. 7-9, 1999. 12. Fayyad, U., Data Mining and Knowledge Discovery in Databases: Implications for Scientific Databases, Proceedings of the 9th. International Conference on Scientific and Statistical Databases Management,. 2-11, 1997. 13. Han, J., What Is Data Mining?, Kluwer Academic Publishers, 1999. 14. Karakaş, M., Veri Madenciliği Üzerine, http://www.bilgiyonetimi.org/cm/pages/mkl_gos.php?nt=132, 2002. 112 15. Heckerman, D., Bayesian Networks For Knowledge Discovery. Advances In Knowledge Discovery And Data Mining, 273-305, American Association For Artificial Intelligence Pres, Menlo Park, CA, USA, 1996. 16. Feelders, A., Daniels, H., Holsheimer, M., Methodological And Practical Aspects Of Data Mining, Information And Management, Elsevier Science, Amsterdam, 37, pp. 271-281, 2000. 17. Subramanian, A., Smith, L.D., Nelson, A.C.,Campbell, J.F., Bird, D.A., Strategic Planning For Data Warehousing, Information And Management, 33, 99-113, 1997. 18. Yevich, R., Data Mining, Englewood Cliffs, Prentice-Hall, N.J., 309-321, 1997. 19. Chen, Z., Data Mining And Uncertain Reasoning, A Wiley-Interscience Publication, USA, pp.392, 2001. 20. Matteo Matteucci, K-Means Clustering, http://www.elet.polimi.it/upload/matteucc/Clustering/tutorial_html/kmeans.html, 2006. 21. Germano, T., ,http://davis.wpi.edu/~matt/courses/soms/, March, 1999. 22. Beck, M. S. L., G., Applied regression an introduction, London : Sage Publications, 1991. 23. Han, J., Kamber, M., Data Mining: Concept and Techniques. Morgan Kaufmann Publishers, San Francisco, 24-703, 2001. 24. Paolo Giudici, P., Applied Data Mining Statistical Methods for Business and Indusrty, Wiley Pres, England, 120, 2003. 25. Aynekin, G., İnternet İçerik Madenciliğinde Yapay Sinir Ağları ve Bir Uygulama, Yüksek Lisans Tezi, Uludağ Üniversitesi, Bursa, 2006. 26. Elmas, Ç., Yapay Sinir Ağları, Seçkin Yayıncılık, Ankara, 192, 2003. 27. Haykin, S., Neural Networks, Macmillan College Publishing Company, 696, USA, 1994. 28. Komorowski, J., Zytkow, J., Principles Of Data Mining And Knowledge Discovery, 510, Springer, Germany, , 1997. 29. Akpınar, H., Veritabanlarında Bilgi Keşfi ve Veri Madenciliği, İstanbul Üniversitesi, İşletme Fakültesi Dergisi,1-22, Nisan 2000. 30. Eker, H., Veri Madenciliği Veya Bilgi Keşfi, http://www.bilgiyönetimi.org/cm/pages/mkl_gos.php?nt=538, 2004. 113 31. Tseng, B., Kwon, Y., Yalçın, E., Feature-based Rule Induction in Machining Operation Using Rough Set Theory for Quality Assurance, Robotics and Computer-Integrated Manufacturing, 21:6, 559-567, 2005. 32. Menon R., Tong, L.H., Sathiyakeerth, S., Brombacher, A., Leong, C., The Needs and Benefits of Applying Textual Data Mining within The Product Development Process, Quality and Reliability Engineering International, 20:115; 2004. 33. Jothishankar, M.C., Wu, T., Johnie, R., Shiau, J.Y., M. C., Case Study: Applying Data Mining to Defect Diagnosis, Journal of Advanced Manufacturing Systems, 3:1, 69-83, 2004. 34. Last, M., Kandel, A., Discovering Useful and Understandable Patterns in Manufacturing Data, Robotics and Autonomous Systems, 49, 137-152, 2004. 35. Porzio G. C., Ragozini, G., Visially Mining Off-line Data for Quality Improvement, Quality and Reliability Engineering International, 19, 273-283, 2003. 36. Bae, H., Kim, S., Kim, Y., Lee, M.H., Woo, K.B, e-Prognosis and Diagnosis for Process Management Using Data Mining and Artificial Intelligence, IEEE, 3, 2537-2542, 2003. 37. Lian, J., Lai, X.M., Lin, Z.Q., Yao, F.S., Application of Data Mining and Process Knowledge Discovery in Sheet Metal Assembly Dimensional Variation Diagnosis, Journal of Materials Processing Technology, 129, 315-320, 2002. 38. Adams, L., Mining The World of Quality Data, Quality, 40, 8, ABI/INFORM Global, 36, Aug 2001. 39. Kusiak, A., Kurasek, C., Data Mining of Printed-Curcuit Board Defects, IEEE Transactions on Robotics and Automation, 17:2, April, 2001. 40. McDonald, C. J., New Tools for Yield Improvement in Integrated Circuit Manufacturing: Can They be Applied to Reliability?, Microelectronics Reliability, 39, 731-739, 1999. 41. Milne, R., Drummond, M., Renoux, P., Predicting Paper Making Defects Online Using Data Mining, Knowledge-Based Systems, 11, 331-338, 1998. 42. Konence, D. A., Fang, C., Tsai, S., A Data Mining Tool for Learning from Manufacturing Systems, Computers ind. Engng, 33:1-2, 27-30, 1997. 114 43. Kim, S. H., Lee, C. M., Nonlinear Prediction of Manufacturing Systems Through Explicit and Implicit Data Mining, Computers ind. Enging, 33:3-4, 461-464, 1997. 44. Stepien, D., Refractory Management Using Fact-Based Analysis for The Cement Kiln, IEEE/PCA Cement Industry Technical Conference, XXXIX Conference Record,. 359-369, Hershey, PA, USA, 1997. 45. Baykasoğlu A., Özbakır L., “A New Multiple Expression Programming Based Approach to Discover Classification Rules For Data Mining Applications”, CIE 35, 35th International Conference on Computers and Industrial Engineering, 1922, İstanbul, 2005. 46. Canbulut F., Gürbüz F., Kulluk S., Özbakır L., “Dairesel Cepli Hidrostatik+Hidrodinamik Yataklarda Sürtünme Güç Kaybı’, YA/EM’2005, 4-6 Temmuz Koç Üniversitesi, Rumelifeneri Kampüsü, Sarıyer-İstanbul, 2005. 47. Takac, A., Cellular Genetic Programming Algorithm Applied To Classification Task,Institute of Informatics, Faculty of Mathematics, Physics and Informatics Comenius University, Brastislava, Slovakia, 2002. 48. Baykasoğlu, A.,Özbakır L., MEPAR Miner: MEP for Classification Rule Mining, 2006. 49. Bojarczuka, C. C., Lopesa, H.S., Freitasb, A.A., Michalkiewiczc, E.L., A constrained-syntax genetic programming system for discovering classification rules: application to medical data sets, Artificial Intelligence In Medicine, 30, 27-48, 2004. 50. G.Folino, G., Pizzuti, C., Spezzano, G., A Cellular Genetic Programming Approach to Classification, Proc. Of the Genetic and Evolutionary Computation Conference GECCO99, Morgan Kaufmann, 1015-1020, Orlando, Florida, 1999. 51. Tan, K. C., Yu, Q., Ang, J.H., A Dual-Objective Evolutionary Algorithm for Rules Extraction in Data Mining, omputational Optimization And Applications, 34, 273-294, 2006. 52. Wong, M. L., Leung, K. S., Data Mining Using Grammar Based Genetic Programming And Applications, Kluwer Academic Publishers, Londan, 2000. 53. Bojarczuk, C. C., Lopes, H.S., Freitas, A.A., Genetic Programming For Knowledge Discovery In Chest-Pain Diagnosis, IEEE Engineering In Medicine And Biology Magazine, 4:19, 38-44, 2000. 115 54. Clark, P., Boswell, R., Rule Induction With CN2: Some Recent Improvments, Machine Learning - Proceedings of the Fifth European Conference, 1991. 55. Michalewicz, Z., Genetic Algorithms + Data Structure = Evolutionary Programs, 2nd Edition, Springer-Verlag, Berlin, 1996. 56. Telcioğlu M.B., Montaj Hattı Dengeleme Problemlerinin Genetik Algoritma Tekniği Kullanılarak Çözülmesi ve Bilgisayar Programı Uygulaması Pegasus Yazılımı, Yüksek Lisans Tezi, Erciyes Üniversitesi, 2002. 57. Holland, J. H., Adaptation in Natural and Artificial Systems. University of Michigan Press, Ann Arbor, 1975. 58. Koza, J.R., Genetic Programming: On the Programming of Computers by Means of Natural Selection,MIT Press, Cambridge, 1992. 59. Gruau, F. Cellular Encoding Of Genetic Neural Networks, Technical Report 9221, 1992. 60. Teller, A., Veloso, M., PADO: A New Learning Architecture For Object Recognition, Oxford University Pres, 81-116, 1996. 61. Ferreira, C., Analyzıng The Founder Effect In Sımulated Evolutionary Processes Using Gene Expression Programming, Soft Computing Systems: Design, Management And Applications, 153-163, IOS Pres, Netherlands, 2002 62. Ryan M, Rayward-Smith, V., TheEevolution Of Decision Trees, In: Koza J, editor, Proceedings of the Third Annual Conference on Genetic Programming, , Morgan Kaufmann; 350-8, San Francisco, 1998. 63. Eggermont, J.,Eiben, A.E.,Van Hemert, J.I., A comparison of genetic programming variants for data classication, Advances in Intelligent Data Analysis, Third International Symposium, IDA-99, 1999. 64. Freitas, A. A., A Survey Of Evolutionary Algorithms For Data Mining And Knowledge Discovery, In Ghosh A, And Tsutsui S, Editors. Advances In Evolutionary Computation, Berlin,Springer, 2002. 65. Freitas, A. A., A Genetic Programming Framework For Two Data Mining Tasks: Classification And Generalized Rule Induction. Proc. 2nd Annual Conf., Genetic Programming, Morgan Kaufmann, Stanford University, 96-101, 1997. 66. Carvalho, D.R., Freitas, A.A., A genetic algorithm with sequential niching for discovering small-disjunct rules. In Langdon, W.B., et al, editors, Proceedings 116 Genetic and Evolutionary Computation Conference (GECCO-2002), New York and San Francisco, USA, July 2002. Morgan Kaufmann,1035-1042, 2002. 67. Carvalho, D.R., Freitas, A.A., New Results For a Hybrid Decision Tree/genetic Algorithm For Data Mining. In Garibaldi, J., et al., editors, Proc. 4th Int. Conf. on Recent Advances in Soft Computing (RASC-2002), Nottingham Trent University, 260-265, 2002. 68. Fidelis, M.V., Lopes, H.S., Freitas, A.A., Discovering comprehensible classification rules with a genetic algorithm. Proc. Congress on Evolutionary Computation (CEC-2000). La Jolla, CA, USA, 805-810, 2000. 69. Bojarczuk, C.C., Lopes, H.S., and Freitas, A.A., Genetic Programming For Knowledge Discovery In Chest Pain Diagnosis. IEEE Engineering in Medicine and Biology magazine - Special Issue on Data Mining and Knowledge Discovery, 19:4, 38-44, 2000. 70. Bojarczuk, C.C., Lopes, H.S., and Freitas, A.A., Michalkiewicz, E.L., A Constrained-Syntax Genetic Programming System For Discovering Classification Rules, Application To Medical Data Sets. Artificial Intelligence in Medicine 30, 27-48, 2004. 71. Hassan, Y., Tazaki, E., Rule Extraction Based On Rough Set Theory Combined With Genetic Programming and Its Application To Medical Data Analysis. Seventh Australian and New Zeland Intelligent Information Systems Conference, Perth, Western Australia, 18-21, 2001. 72. Koza, J., Genetic Programming: A Paradigm For Genetically Breeding Populations of Computer Programs to Solve Problems. PhD Thesis, Stanford University, Stanford, 1990. 73. Koza, J.R., http://www.genetic-programming.com/gpanimatedtutorial.html, Ağustos 2003. 74. Koza, J.R., http://www.genetic-programming.com/gppreparatory.html, Ağustos 2003. 75. Koza, J.R., http://www.genetic-programming.com/gpflowchart.html, Ağustos 2003. 76. Brameier, M., On Linear Genetic Programming, PhD.Thesis, Dortmund University, Dortmund, 2004. 117 77. Ferreira, C., Gene Expression Programming in Problem Solving, WSC6 Tutorial, 2001. 78. Ferreira, C., GEP: A New Adaptive Algorithm For Solving Problems, 2000. 79. Oltean, M., Multi Expression Programming, Technical Report, Babes-Bolyai Univ, Romania, 2006. 80. Oltean, M., Grosan, C., Evolving Evolutionary Algorithms Using Multi expression Programming, The 7th European Conference on Artificial Life, September 14-17, 2003, Dortmund, Edited by W. Banzhaf, LNAI 2801, 651658, Springer-Verlag, Berlin, 2003. 81. Clark, P.,Boswell, R., Rule Induction With CN2: Some Recent Improvements, In Proceedings of The Sixth European Working Session on Learning, 151–163, Porto, Portugal, 1991. 82. Panagi, G., Dounias, G., Tsakonas, A., Computational Intelligence Based Differential Diagnosis of MultipleSclerosis and Cerebrovascular Disease, 2001. 118 EKLER EK-1 ENDQ Veri Kümesi Hakkında Bilgiler ENDQ veri kümesi dokuma bez üreten bir tekstil firmasının ham bez kalite kontrol departmanının 6 aylık yüzde kalite değerlerini içermektedir. Kalite edilen tezgah çıkışı bezler kalite masalarında kalite edilerek parti miktarındaki hata değerinin yüzdeleri veritabanına kaydedilmiştir. Hata bilgileri bezin dokuma işleminde önemli olan parametreleri nitelik olarak eklenerek ENDQ veri kümesi oluşturulmuştur. Bu nitelik değerleri ürünün kimlik bilgileri olduğu için şirket tarafından saklı tutulmuştur. Şirket standartları çerçevesinde bu parti üretim kayıtları 5 ayrı sınıfa atanmıştır. 119 EK-2. MINITAB Analiz Grafikleri EK-2.a. Adult Ana Etki Grafiği EK-2.b. Adult Etkileşim Grafiği 1 120 EK-2.c. Adult Etkileşim Grafiği 2 EK-2.d. Adult Etkileşim Grafiği 3 121 EK-2.e. Creadit-App Ana Etki Grafiği EK-2.f. Credit-App Etkileşim Grafiği 1 122 EK-2.g. Credit-App Etkileşim Grafiği 2 EK-2.h. Credit-App Etkileşim Grafiği 3 123 EK-2.i. Iris Ana Etki Grafiği EK-2.j. Iris Etkileşim Grafiği 1 124 EK-2.k. Iris Etkileşim Grafiği 2 EK-2.l. Iris Etkileşim Grafiği 3 125 EK-2.m. Lymphography Ana Etki Grafiği EK-2.n. Lymphography Etkileşim Grafiği 1 126 EK-2.o. Lymphography Etkileşim Grafiği 2 EK-2.p. Lymphography Etkileşim Grafiği 3 127 EK-2.q. Zoo Ana Etki Grafiği EK-2.r. Zoo Etkileşim Grafiği 1 128 EK-2.s. Zoo Etkileşim Grafiği 2 EK-2.t. Zoo Etkileşim Grafiği 3 129 EK-2.u. ENDQ Ana Etki Grafiği EK-2.v. ENDQ Etkileşim Grafiği 1 130 EK-2.y. ENDQ Etkileşim Grafiği 2 EK-2.z. ENDQ Etkileşim Grafiği 3 131 EK-3. MEPAR-SQL Sonuç Çıktıları EK-3.a Adult Veri Kümesi Sonuç Çıktısı Tablo Sırası:1 [adult_train]&[adult_test] 26. İTERASYON >50K kuralının tekil uygunluğu=0.738521632704283 Conf:%0.720708823439084 TP:6974 TN:16493 FP:8227 FN:867 KURAL>> (([Col003]> 162256 OR [Col009]<> ' Amer-Indian-Eskimo' ) AND ([Col011]>= 7298 OR [Col006]= ' Married-civ-spouse' )) <=50K kuralının tekil uygunluğu=0.755568907605688 Conf:%0.831209115199165 TP:22711 TN:4354 FP:3487 FN:2009 KURAL>> (((([Col001]is not null AND [Col011]<= 2961 ) OR [Col003]> 65991 ) AND [Col011]<= 2961 ) AND (([Col006]<> ' Married-civ-spouse' OR [Col005]<= 11 ) OR [Col003]>= 1490400 )) GÜVENİLİRLİK TABLOSU [ÖĞRENME] SINIF >50K <=50K <=50K kuralı 3487 22711 >50K kuralı 4308 1752 Default 46 257 CONFIDENCE:0.837689260157858 GÜVENİLİRLİK TABLOSU [TEST] SINIF >50K <=50K <=50K kuralı 1705 11438 >50K kuralı 2119 858 Default 22 139 CONFIDENCE:0.841225968920828 EK-3.b Credit-App Veri Kümesi Sonuç Çıktısı [Credit_app_training6]&[Credit_app_test6] 51. İTERASYON 0 kuralının tekil uygunluğu=0.862382465565517 Doğruluk:%0.855072463768116 TP:278 TN:253 FP:16 FN:74 KURAL>> ([Col009]<> 1 AND (([Col003]>= 1 AND [Col005]< 3 ) AND [Col015]is not null )) 1 kuralının tekil uygunluğu=0.859128098087337 Doğruluk:%0.851851851851852 TP:252 TN:277 FP:75 FN:17 KURAL>> ([Col013]= 3 OR [Col009]<= 1 ) DÜZENSİZLİK MATRİSİ [ÖĞRENME] SINIF 0 1 0 kuralı 278 16 1 kuralı 72 248 Varsayılan 2 5 DOĞRULUK:0.855072463768116 DÜZENSİZLİK MATRİSİ [TEST] SINIF 0 1 132 0 kuralı 26 1 1 kuralı 5 37 Varsayılan 0 0 DOĞRULUK:0.91304347826087 EK-3.c Iris Veri Kümesi Sonuç Çıktısı [iris_2218200806_tr7_10]&[iris_2218200806_ts7_10] 1. İTERASYON Iris-setosa kuralının tekil uygunluğu=1 Conf:%1 TP:43 TN:92 FP:0 FN:0 KURAL>> NOT( [Col004]>= 1.00) Iris-versicolor kuralının tekil uygunluğu=0.915740191213882 Conf:%0.925925925925926 TP:38 TN:87 FP:3 FN:7 KURAL>> NOT((NOT( [Col004]BETWEEN 1.10 AND 1.70) OR [Col004]is null ) OR [Col003]> 5.10 ) Iris-virginica kuralının tekil uygunluğu=0.967359767891683 Conf:%0.97037037037037 TP:45 TN:86 FP:2 FN:2 KURAL>> (([Col004]>= 1.70 AND NOT( [Col001]< 4.30) ) OR NOT([Col003]< 5.20 OR NOT( [Col003]> 3.70) )) GÜVENİLİRLİK TABLOSU [ÖĞRENME] SINIF Iris-setosa Iris-versicolor Iris-setosa kuralı 43 0 Iris-virginica kuralı 0 2 Iris-versicolor kuralı 0 37 Default 0 6 CONFIDENCE:0.97037037037037 Iris-virginica 0 45 2 0 GÜVENİLİRLİK TABLOSU [TEST] SINIF Iris-setosa Iris-versicolor Iris-setosa kuralı 7 0 Iris-virginica kuralı 0 0 Iris-versicolor kuralı 0 4 Default 0 1 CONFIDENCE:1 Iris-virginica 0 3 0 0 EK-3.d Lymphography Veri Kümesi Sonuç Çıktısı [lymphography_2221200806_tr3_10]&[lymphography_2221200806_ts3_10] 26. İTERASYON 1 kuralının tekil uygunluğu=1 Conf:%1 TP:1 TN:132 FP:0 FN:0 KURAL>> [Col002]< 2 2 kuralının tekil uygunluğu=0.815458541413648 Conf:%0.796992481203007 TP:46 TN:60 FP:3 FN:24 KURAL>> (([Col017]is null OR [Col014]= 3 ) AND ([Col003]>= 2 OR (([Col011]<= 4 AND [Col003]>= 2 ) AND [Col004]is null ))) 3 kuralının tekil uygunluğu=0.808109281274017 Conf:%0.81203007518797 TP:44 TN:64 FP:11 FN:14 KURAL>> ([Col014]<> 3 AND [Col018]> 1 ) 4 kuralının tekil uygunluğu=1 Conf:%1 TP:4 TN:129 FP:0 FN:0 KURAL>> ([Col010]<> 1 AND [Col007]>= 2 ) 133 GÜVENİLİRLİK TABLOSU [ÖĞRENME] SINIF 1 2 3 4 1 kuralı 1 0 0 0 4 kuralı 0 0 0 4 2 kuralı 0 46 3 0 3 kuralı 0 8 44 0 Default 0 16 11 0 CONFIDENCE:0.834586466165414 GÜVENİLİRLİK TABLOSU [TEST] SINIF 1 2 3 1 kuralı 1 0 0 4 kuralı 0 0 0 2 kuralı 0 7 0 3 kuralı 0 0 2 Default 0 4 1 CONFIDENCE:0.933333333333333 4 0 0 0 0 0 EK-3.e Zoo Veri Kümesi Sonuç Çıktısı [zoo_2222200806_tr6_10]&[zoo_2222200806_ts6_10] 7. İTERASYON 1 kuralının tekil uygunluğu=1 Conf:%1 TP:35 TN:56 FP:0 FN:0 KURAL>> NOT( [Col005]<> '1') 2 kuralının tekil uygunluğu=1 Conf:%1 TP:17 TN:74 FP:0 FN:0 KURAL>> [Col003]= '1' 3 kuralının tekil uygunluğu=0.810852398226467 Conf:%0.967032967032967 TP:2 TN:86 FP:0 FN:3 KURAL>> ((NOT( [Col007]<> '0') AND NOT( [Col001]= 'housefly') ) AND (NOT( [Col009]<> '1') AND NOT( [Col014]<> '0') )) 4 kuralının tekil uygunluğu=1 Conf:%1 TP:13 TN:78 FP:0 FN:0 KURAL>> (NOT( [Col013]<> '1') AND [Col004]= '1' ) 5 kuralının tekil uygunluğu=0.847474655714106 Conf:%0.967032967032967 TP:3 TN:85 FP:3 FN:0 KURAL>> (([Col014]= '4' OR [Col014]= '4' ) AND [Col005]<> '1' ) 6 kuralının tekil uygunluğu=1 Conf:%1 TP:8 TN:83 FP:0 FN:0 KURAL>> ([Col014]= '6' AND NOT( [Col007]= '1') ) 7 kuralının tekil uygunluğu=0.950765238690299 Conf:%0.978021978021978 TP:10 TN:79 FP:2 FN:0 KURAL>> ([Col006]= '0' AND [Col010]= '0' ) GÜVENİLİRLİK TABLOSU [ÖĞRENME] SINIF 1 2 3 4 1 kuralı 35 0 0 0 2 kuralı 0 17 0 0 4 kuralı 0 0 0 13 6 kuralı 0 0 0 0 7 kuralı 0 0 0 0 5 kuralı 0 0 2 0 3 kuralı 0 0 2 0 Default 0 0 1 0 CONFIDENCE:0.978021978021978 GÜVENİLİRLİK TABLOSU [TEST] 5 0 0 0 0 0 3 0 0 6 0 0 0 8 0 0 0 0 7 0 0 0 0 10 0 0 0 134 SINIF 1 1 kuralı 6 2 kuralı 0 4 kuralı 0 6 kuralı 0 7 kuralı 0 5 kuralı 0 3 kuralı 0 Default 0 CONFIDENCE:1 2 0 3 0 0 0 0 0 0 3 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 5 0 0 0 0 0 1 0 0 6 0 0 0 0 0 0 0 0 7 0 0 0 0 0 0 0 0 EK-3.f ENDQ Veri Kümesi Sonuç Çıktısı [ENDQ_1647181206_tr1_1]&[ENDQ_1647181206_ts1_1] 51. İTERASYON B kuralının tekil uygunluğu=0.57707158338008 Doğruluk:%0.878114842903575 TP:18 TN:1603 FP:21 FN:204 KURAL>> NOT((NOT( [ASIK]>= 25.00) AND [TNO1]< 105 ) OR [AHRM]<> 'H' ) F kuralının tekil uygunluğu=0.631053117682804 Doğruluk:%0.977248104008667 TP:4 TN:1800 FP:1 FN:41 KURAL>> (([ORGU]<> '4/4' AND [DEVIR]BETWEEN 220 AND 250 ) AND [CHRM]= 'S' ) A kuralının tekil uygunluğu=0.599307851058708 Doğruluk:%0.677681473456121 TP:1040 TN:211 FP:241 FN:354 KURAL>> ([CTIP]<> 'RS' AND ((([ANE]>= 14 AND [BEZENI]NOT BETWEEN 121 AND 180 ) OR [TEZGAH]<> 'S' ) OR [CNE]<= 17 )) C kuralının tekil uygunluğu=0.567385397898501 Doğruluk:%0.94907908992416 TP:4 TN:1748 FP:4 FN:90 KURAL>> ((([ATIP]is null OR [ANE]> 16 ) AND [CNE]<> 17 ) AND [AHRM]= '2' ) D kuralının tekil uygunluğu=0.57682414501359 Doğruluk:%0.950704225352113 TP:5 TN:1750 FP:5 FN:86 KURAL>> (([ORGU]= '6/6' AND [DEVIR]is not null ) OR ([ATIP]= 'NL' OR ([ANE]>= 10 AND [AHRM]= '3' ))) DÜZENSİZLİK MATRİSİ [ÖĞRENME] SINIF B F A C F kuralı 1 4 0 0 A kuralı 136 16 1040 50 B kuralı 0 0 3 0 D kuralı 0 1 1 1 C kuralı 1 1 1 2 Varsayılan 84 23 349 41 DOĞRULUK:0.75839653304442 D 0 39 0 5 0 47 DÜZENSİZLİK MATRİSİ [TEST] SINIF B F A F kuralı 0 0 0 A kuralı 53 7 348 B kuralı 0 0 0 D kuralı 0 1 1 C kuralı 1 0 1 Varsayılan 25 6 112 DOĞRULUK:0.747967479674797 D 0 17 0 0 0 10 C 0 10 0 0 0 23 135 ÖZGEÇMİŞ 1980 yılında Kayseri’de doğan M. Burak TELCİOĞLU, ilk, orta ve lise öğrenimini Kayseri’de tamamladı. 1998 yılında Erciyes Üniversitesi Mühendislik Fakültesi Endüstri Mühendisliği Bölümü’nde üniversite öğrenimine başladı. 2002 yılında aynı fakülteden Endüstri Mühendisi diplomasını aldı.2004 yılında Erciyes Üniversitesi Fen Bilimleri Enstitüsü’nde Endüstri Mühendisliği Yüksek Lisansına başladı. Aynı yıl Birlik Mensucat A.Ş. de Sistem Analisti olarak göreve başladı. Halen aynı şirkette çalışmaktadır ve lisansüstü çalışmalarına devam etmektedir.