BÖLÜMLEYCİ KÜMELEME ALGORİTMALARININ FARKLI VERİ YOĞUNLUKLARINDA KARŞILAŞTIRMASI Hussein Ali Ridha AL-ZAND YÜKSEK LİSANS TEZİ BİLGİSAYAR BİLİMLERİ GAZİ ÜNİVERSİTESİ BİLİŞİM ENSTİTÜSÜ 2013 ANKARA Hussein Ali Ridha AL-ZAND tarafından hazırlanan BÖLÜNMELİ KÜMELEME ALGORİTMALARININ FARKLI VERİ YOĞUNLUKLARINDA KARŞILAŞTIRMASI adlı bu tezin Yüksek Lisans tezi olarak uygun olduğunu onaylarım. Yrd. Doç. Dr. Hacer KARACAN Tez Yöneticisi Bu çalışma, jürimiz tarafından oy birliği ile Bilgisayar Bilimleri anabilim dalında Yüksek lisans tezi olarak kabul edilmiştir. Başkan : Doç. Dr. Erdoğan DOĞDU Üye : Doç. Dr. Suat ÖZDEMİR Üye : Yrd. Doç. Dr. Hacer KARACAN Tarih : 31/10/2013 Bu tez, Gazi Üniversitesi Bilişim Enstitüsü tez yazım kurallarına uygundur. TEZ BİLDİRİMİ Tez içindeki bütün bilgilerin etik davranış ve akademik kurallar çerçevesinde eldeedilerek sunulduğunu, ayrıca tez yazım kurallarına uygun olarak hazırlanan buçalışmada orijinal olmayan her türlü kaynağa eksiksiz atıf yapıldığını bildiririm. Hussein Ali Ridha AL-ZAND iv BÖLÜNMELİ KÜMELEME ALGORİTMALARININ FARKLI VERİ YOĞUNLUKLARINDA KARŞILAŞTIRMASI (YÜKSEK LİSANS TEZİ) Hussein Ali Ridha AL-ZAND GAZİ ÜNİVERSİTESİ BİLİŞİM ENSTİTÜSÜ Ekim 2013 ÖZET Teknolojinin yaygın kullanılmasının neticesinde hacmi her geçen gün artan büyük veri yığınları ortaya çıkmaya başlamıştır. Bu kadar büyük boyutta verinin analizi ve içindeki herhangi bir bilgiye ulaşmak basit inceleme yöntemleriyle oldukça zor olduğundan veri madenciliği devreye girmiştir. Veri madenciliği, çok büyük veri tabanlarından, önceden bilinemeyen, geçerli ve kullanılabilir bilginin çıkarılma işlemi olarak ifade edilmektedir. Başka bir deyişle veri madenciliği, çok büyük veri tabanlarındaki ya da veri ambarlarındaki veriler arasında bulunan ilişkiler, örüntüler, değişiklikler, sapma ve eğilimler, belirli yapılar gibi ilginç bilgilerin ortaya çıkarılması işlemidir.Veri madenciliği alanında son zamanlarda yaygın bir şekilde kullanılan yöntemlerden biri kümeleme yöntemidir. Kümeleme, veri setindeki bilgileri farklı kümelere ayırarak küme içindeki verilerin özelliklerinin benzerlik oranı minimum ve kümeler arasında benzerlik oranını maksimum yapmaktadır. Bu çalışmada bölümleyici kümeleme yöntemleri ele alınarak farklı dağılımlı veri setleri üzerinde bölümleyici kümeleme algoritmalarının karşılaştırması gerçekleştirilmiştir. Bölümleyici kümeleme algoritmaları arasından "k-means" ve "kernel k-means" algoritmaları seçilmiştir. Farklı dağılımlı veri setlerini kümeleyerek iki algoritmanın hızı, kümeleme kalitesi ve v bellek kaplaması açısından bilgiler elde edilmiş ve bu bilgiler ışığında iki algoritmanın karşılaştırma sonuçları sunulmuştur. Bilim Kodu : 902,1.014 Anahtar Kelime : Kümeleme, veri madenciliği, kümelemealgoritmaları,Kmeans algoritması, kernel metotları, kümeleme analizi. Sayfa Adedi : 92 Tez Yöneticisi : Yrd. Doç. Dr. Hacer KARACAN vi COMPARISON OF PARTITIONING-BASED CLUSTERING ALGORITHMS ON DIFFERENTLY DISTRIBUTED DATA (M.Sc. Thesis) Hussein Ali Ridha AL-ZAND GAZİ UNIVERSITY INFORMATICS INSTITUTE October 2013 ABSTRACT As a result of widespreadtechnology usage, large volumes of collected data began to emerge. It is impossible to discover and analyze any information in such large data collection, so data mining comes into play. Data mining is a process that discovers unpredictable and usable knowledge from databases. In other words, data mining is the process of finding relation patterns, changes, deviations and trends, as well as interesting information like specific structures from large databases. One of the widely used data mining methods is clustering, which divides the data set into different clusters while trying to make the likelihood ratio as minimum inside the cluster and as maximum among other clusters depending on the options in the database. In this study, partitioningbased clustering methods are compared by applying them on data sets with different distribution patterns. We used k-means and kernel k-means partitioning algorithms for clustering data sets. By applying clustering operations on differently distributed data sets we compared the speed, clustering quality and the size of memory used in clustering for these algorithms. The information that we gathered by this comparison is presented and discussed in the related sections of this thesis. vii Science Code : 902,1.014 Key Words : Clustering, data mining, cluster algorithms, K-means algorithm, kernel methods, cluster analysis. Page Number: 92 Adviser : Assist. Prof. Dr. Hacer KARACAN viii TEŞEKKÜR Bu araştırmanın konusu, deneysel çalışmaların yönlendirilmesi, sonuçların değerlendirilmesi ve yazımı aşamasında yapmış olduğu büyük katkılarından dolayı tez danışmanım Sayın Yrd. Doç. Dr. Hacer KARACAN, her konuda öneri ve eleştirileriyle yardımlarını gördüğüm hocalarıma ve arkadaşlarıma teşekkür ederim. Bu araştırma boyunca maddi ve manevi desteklerinden dolayı aileme teşekkür ederim. ix İÇİNDEKİLER ÖZET...........................................................................................................................iv ABSTRACT ................................................................................................................vi TEŞEKKÜR .............................................................................................................viii İÇİNDEKİLER ...........................................................................................................ix ÇİZELGELERİN LİSTESİ..........................................................................................xi ŞEKİLLERİN LİSTESİ ............................................................................................xiii SİMGELER VE KISALTMALAR ..........................................................................xiv 1. GİRİŞ .......................................................................................................................1 1.1.Literatürde yapılan çalışmalar.............................................................................3 2. Veri Madenciliği...................................................................................................... 7 2.1.Veri madenciliğinde bilgi keşif sürecinin aşamaları………………………….8 2.2.Veri Madenciliği modelleri……………………………………………….....9 2.2.1. Sınıflandırma Modelleri ve algoritmaları………………………..…....10 2.2.2. Kümeleme modelleri………………………….………………………14 3. Kümeleme Analizi ve Algoritmaları……………………..………………………15 3.1.Kümeleme Analizi……………………………………...…………………...15 3.1.1. Aralık – Ölçekli değişkenler………………………………………….20 3.1.2. Binary değişkenler…………………………………………………….21 3.1.3. Kategorik değişkenler……..………………………………………….22 3.1.4. Sıralı değişkenler………………..……………….……………………23 3.1.5. Oran - Ölçekli değişkenler……………………..……………………..25 3.1.6. Karışık değişkenler………………………………..…………..………26 x 3.2.Kümeleme algoritmaları…………………………………...………..………27 3.2.1. Sonek Ağaçları algoritması……………..…………………………….28 3.2.2. DBSCAN Algoritması (Density Based Spatial Clustering of Applications with Noise)…………...…....…..…………………….….30 3.3.Bölümleyici kümeleme algoritmaları………………………...…………..…33 3.3.1. K-Medoid algoritması…………………………………..……………..34 3.3.2. Clara ve Clarans algoritması…………………………………..……...36 3.3.3. Fuzzy C-means Algoritması………………………………..…………38 3.3.4. K-Means Algoritması…………………………………….……..…….39 3.3.5. Kernel esaslı kümeleme ve Kernel k-means algoritması…………..…42 4. Uygulama………………………………………..……………………………….46 4.1.Program Ara Yüzü……….…………………………..…………..………….46 4.2.Karşılaştırma………………………..……………………………..………...54 4.2.1. Büyük veri setleri karşılaştırma sonuçları………………………….....56 4.2.2. Orta hacimli veri setleri karşılaştırma sonuçları…………………..….61 4.2.3. Küçük hacimli veri setleri karşılaştırma sonuçları……...……….…...65 5. Sonuç...…………..………………………..….………………………………….71 5.1.İki algoritmanın farklı yoğunluklu ve aynı hacimli veri setlerinde uygulama sonucu karşılaştırması……………………………..………..……………….71 5.2.Algoritmaların farklı yoğunluklu ve farklı hacimli veri setlerinde uygulama sonucu karşılaştırması………………………….……………..……………..83 KAYNAKLAR…………………………………………..………………………….87 ÖZGEÇMİŞ……………………………………………………………………......92 xi ÇİZELGELERİN LİSTESİ Çizelge Sayfa Çizelge 3.1. Hasta bilgileri tablosu……………...…………..................................... 22 Çizelge 3.2. Hasta test 1 sonucu……………………………………………..……...24 Çizelge 3.3. Hasta test 2 sonucu…………………………………………..………...25 Çizelge 3.4. Hasta testlerinin sonucu………………………………………...……...27 Çizelge 5.1. k-means algoritması (Öklid formülü) kernel k-means algoritması (RBF fonksiyonu) büyük hacimli veri setleri üzerinde karşılaştırma tablosu sonucu……………………………………..…………………………...57 Çizelge 5.2. k-means algoritması (Öklid formülü) kernel k-means algoritması (Polynomial fonksiyonu) büyük hacimli veri setleri üzerinde karşılaştırma Tablosu Sonucu….……………………………..…….....58 Çizelge 5.3. k-means algoritması (Kosinüs formülü) kernel k-means algoritması (RBF fonksiyonu) büyük hacimli veri setleri üzerinde karşılaştırma tablosu sonucu…………………………………………..……...……...59 Çizelge 5.4. k-means algoritması (Kosinüs formülü) kernel k-means algoritması (Polynomial fonksiyonu) büyük hacimli veri setleri üzerinde karşılaştırma tablosu sonucu.........……………………………...……...59 Çizelge 5.5. k-means algoritması (Kosinüs formülü) k-means algoritması (Öklid formülü) büyük hacimli veri setleri üzerinde karşılaştırma tablosu sonucu………..…………………………………………..…………….60 Çizelge 5.6. kernel k-means algoritması (RBF fonksiyonu) kernel k-means algoritması (Polynomial fonksiyonu) büyük hacimli veri setleri üzerinde karşılaştırma tablosu sonucu……...……………………….....60 Çizelge 5.7. k-means algoritması (Öklid formülü) kernel k-means algoritması (RBF fonksiyonu) orta hacimli veri setleri üzerinde karşılaştırma tablosu sonucu……………………..…………………………………………...61 Çizelge 5.8. k-means algoritması (Öklid formülü) kernel k-means algoritması (Polynomial fonksiyonu) orta hacimli veri setleri üzerinde karşılaştırma tablosu sonucu…………………...……………………...62 xii Çizelge Sayfa Çizelge 5.9. k-means algoritması (Kosinüs formülü) kernel k-means algoritması (RBF fonksiyonu) orta hacimli veri setleri üzerinde karşılaştırma tablosu sonucu……………………………………………..…………..63 Çizelge 5.10. k-means algoritması (Kosinüs formülü) kernel k-means algoritması (Polynomial fonksiyonu)orta hacimli veri setleri üzerinde Karşılaştırma tablosu sonucu………..………...……………………...63 Çizelge 5.11. k-means algoritması (Kosinüs formülü) k-means algoritması (Öklid formülü) orta hacimli veri setleri üzerinde karşılaştırma tablosu sonucu…………………………………..……………….……………64 Çizelge 5.12. kernel k-means algoritması (RBF fonksiyonu) kernel k-means algoritması (Polynomial fonksiyonu)orta hacimli veri setleri üzerinde karşılaştırma tablosu sonucu………………..………………………...65 Çizelge 5.13. k-means algoritması (Öklid formülü) kernel k-means algoritması (RBF fonksiyonu) küçük hacimli veri setleri üzerinde karşılaştırma tablosu sonucu……………………..…………………………………66 Çizelge 5.14. k-means algoritması (Öklid formülü) kernel k-means algoritması (Polynomial fonksiyonu) küçük hacimli veri setleri üzerinde karşılaştırma tablosu sonucu……...…………………………..……...67 Çizelge 5.15. k-means algoritması (Kosinüs formülü) kernel k-means algoritması (RBF fonksiyonu) küçük hacimli veri setleri üzerinde karşılaştırma tablosu sonucu……………………………………..……………...…68 Çizelge 5.16. k-means algoritması (Kosinüs formülü) kernel k-means algoritması (Polynomial fonksiyonu) küçük hacimli veri setleri üzerinde karşılaştırma tablosu sonucu………………………………..………...68 Çizelge 5.17. k-means algoritması (Kosinüs formülü) k-means algoritması (Öklid formülü) küçük hacimli veri setleri üzerinde karşılaştırma tablosu sonucu………………………..……………………………………….69 Çizelge 5.18. kernel k-means algoritması (RBF fonksiyonu) kernel k-means algoritması (Polynomial fonksiyonu) küçük hacimli veri setleri üzerinde karşılaştırma tablosu sonucu.……..………………………...70 xiii ŞEKİLLERİN LİSTESİ Şekil Sayfa Şekil 2.1. Veri Madenciliği Bilgi Keşif Sürecinin Aşamaları......................................9 Şekil 2.2. Veri Madenciliği Modelleri………………………………………………10 Şekil 3.1. Ağacın genel yapısı…………………………………..…………….…….28 Şekil 3.2. Bilişim kelimesi için Sonek Ağacı……………………………………….30 Şekil 3.3. Eps uzaklığı……………………………………………………………...31 Şekil 3.4. A) Doğrudan Yoğunluk Erişilebilir B) Yoğunluk Erişilebilir noktalar….32 Şekil 3.5. DBSCAN algoritması…………………………………………………….33 Şekil 3.6. K-medoid algoritması A) sınıflandırmadan önce veri seti B) İlk rastgele seçilen temsilcilere göre gruplandırmak C) İkinci hesaplanan temsilcilere göre gruplandırmak sonucu.……...….……………………….35 Şekil 3.7. A) K-means kümeleri B) fuzzy C-means kümeleri……………………...38 Şekil 3.8. K-means algoritması ile guruplara ayrılmış veri tabanı nesneleri K=3…..40 Şekil 4.1. Kümeleme uygulamasının ekran görüntüsü…...…………………………48 Şekil 4.2. Veri seti seçme ekranı………………………………………………….…49 Şekil 4.3. veri seti seçmek için göz at ekran görüntüsü……………………..………49 Şekil 4.4. k-means ve kernel k-means algoritmaların çalıştıran kısmının ekran görüntüsü…………………………………………………………………50 Şekil 4.5. k-means algoritması için benzerlik formülü seçim kutusu……………….51 Şekil 4.6. k-means algoritması ve kernel k-means algoritmasının sonuç bölümü…..52 Şekil 4.7. k-means algoritması ve kernel k-means algoritmasının kümeleme yapmış ekran çıktısı…………………………………………………………….....54 xiv SİMGELER VE KISALTMALAR Bu çalışmada kullanılmış bazı simgeler ve kısaltmalar, açıklamaları ile birlikte aşağıda sunulmuştur. Simgeler Açıklama δ Delta Log Logaritma ∑ Toplam µ Mu exp Eksponansiyel Fi xv Kısaltmalar Açıklama VTBK Veri Tabanlarında Bilgi Keşfi MKM Modified K-Means FCM Fuzzy C-Means KDD Knowledge Discovery in Database SVM Support Vector Machine DBSCAN Density-Based Spatial Clustering of Applications With Noise CLARA Clustering Large Applications CLARANS Clustering Large Applications Based on Randomized Search PAM Partitioning Around Medoids RBF Radial Basis Function 1 1. Giriş Her geçen gün teknoloji büyük gelişmeler göstermektedir. Bu gelişmelerle birlikte veri boyutları da aynı oranda artmaktadır. Yüksek kapasiteli işlem yapma gücünün ucuzlamasının bir sonucu olarak, veri saklama hem daha kolaylaşmış, hem de verinin kendisi ucuzlamıştır. Veri tabanlarında saklanan veri, bir arşive benzetilirse, bu veri arşivi tek başına değersizdir ve kullanıcı için çok fazla bir anlam ifade etmez. Ancak bu veri arşivi, belirli bir amaç doğrultusunda sistematik olarak işlenir ve analiz edilirse, değersiz görülen veri yığınında, amaca yönelik sorulara cevap verebilecek çok değerli bilgilere ulaşılabilir [1]. Büyük veri tabanlarının içinde bulunan değerli ve aranan veya bilinmeyen bilgiyi ortaya çıkarmak için bulunan uygulamalar ve mümkün çözümler üretmek için önemli bir araştırma alanı olan, veri tabanlarında bilgi keşfi (VTBK) ortaya çıkmıştır. veri madenciliği VTBK sürecinin içerisinde modelin değerlendirilmesi aşamalarından ortaya çıkan en önemli kesimi oluşturmaktadır. Bundan dolayı birçok kaynakta VTBK ile veri madenciliği eş anlamlı olarak kullanılmaktadır. Veri madenciliği verilerin içindeki bilgilerin, ilişkilerin, değişikliklerin, hataların ve istatistiksel olarak önemli olan bilgi ve değerlerin otomatik olarak keşfedilmesidir [2].Veri madenciliği VTBK tanımından yola çıkarak büyük miktardaki veriden anlamlı bilginin çıkarılması ile ilgili bir yöntemden ibarettir. Başka bir deyişle önceden bilinmeyen yararlı bilginin büyük miktardaki veri arasından bulunup çıkarılmasıdır. Büyük miktardaki veri setinde bulunan nesnelerin keşfedilmesinde ve bu verilerle ilgili tahminler yapılmasında kullanılabilecek ilişkilerin çıkarılmasıdır [3]. Veri madenciliğinin veritabanı üzerinde uygulanmasının yanı sıra kullanıldığı diğer alanlara da bakarsak, son yıllarda sıkça ihtiyaç duyulan ve üzerinde bulunan dev veri tabanlarının güçle kontrol edilmesi nedeni ile web sitelerinin verileridir. Web verilerini kontrol etmek ve içindeki bilgileri yararlı ve anlaşılan bir hale getirtmek için veri madenciliği yöntemleri kullanılmıştır ve buna Web madenciliği adı verilmiştir. Web madenciliği, WWW üzerinden kullanışlı bilgiyi keşfetme ve analiz etme işlemi şeklinde geniş olarak tanımlanır. Bu geniş tanım bir yandan milyonlarca siteden, çevrimiçi (online) veri tabanlarından, kaynakların otomatik 2 olarak aranması ve elde edilmesi işlemi olan Web İçerik Madenciliğini tarif ederken, diğer yandan bir yada daha çok Web sunucusu veya çevrimiçi servisten kullanıcı erişim desenlerinin keşfi ve analizi işlemi olan Web Kullanım Madenciliğini tarif eder. Daha sonradan bu iki kategoriye, Web sitelerinin bağlantı (link) yapılarını da kapsayan yapısal özetini üreten Web Yapı Madenciliği de eklenmiştir [4]. Veri Madenciliğinin bir büyük dalını temsil eden ve son zamanlarda çok ilgi çeken belirleyici yöntemlerden olan kümeleme yöntemidir. Kümeleme veri tabanındaki nesneleri genel olarak belli sayıda kümelere ayırmaktadır. Aynı özelliği taşıyan nesneler aynı grupta olurken birbirinden farkı çok olan nesneler farklı gruplarda yer almalarını sağlamaktadır, yöntemin hedeflediği gruplar arası farkı maksimuma yükseltirken gruplar içi minimum olmasıdır. Kümelenme verileri gruplandırarak birkaç homojen gruba dağıtılmasını amaçlayan bir veri analiz aracıdır. Yıllar çalışmalarının ardından sunulan kümeleme bazı uygulamalarda kümelemeye ihtiyaç duyurduğundan dolayı çıkan sorunları ortadan kaldırmak amacı ile geliştirilmiştir. Başka bir deyişle çalışılan fenomeni anlamak veya yorumlamak için çok sayıda bilim dalının verilerin kümelemesine ihtiyaç durmuştur[5]. İlk yaklaşımları sezgisel veya geometrik prosedürleri dayanmaktaydı. Çift gözlemler arasındaki benzersizliği göze alarak hesaplanmaktadır. Kümeleme ayrıca olasılık çerçevesinde de kıyaslanmaktadır, kümeleme kavramının şekillendirmesini kendi olasılık dağıtımında yapmaktadır. Günümüzde çoğunlukla hesaplama işlemleri çok boyutlu yöntemleri kullanarak gerçekleşmektedir ki bu yöntemlerle ilgili model tabanlı metotlarla gerçekleşmektedir. Çok boyutlu kümeleme yönteminin günümüzde bir çok bilim dalının ihtiyaç bulduğu bir yöntemdir ve buna da örnek olarak resim analizidir. Çok boyutlu kümeleme yöntemi zor olduğu kadar etkili bir yöntemdir, içinde hesaplamaları yapmak için kullanılmakta olan genellikle gauss formülünü kullanılmaktadır[6]. 3 1.1. Literatürde yapılan çalışmalar Son yıllarda veri tabanlarında yapılan işlemleri kolaylaştırmak amacıyla veri madenciliği sıklıkla kullanılmıştır. Veri madenciliği tanımlayıcı ve tahmin edici yapılardan oluşmaktadır. Tanımlayıcı yapılarda önde gelen metotlardan biri kümeleme metodudur. Kümeleme işleminde veri tabanının üzerinde kullanılan algoritmaya dayanarak nesneler gruplara ayrılır. Grup içi nesnelerin birbirine benzeme oranı maksimum yapılırken gruplar arası nesnelerin benzerlik oranının minimum olması sağlanır. Kümeleme algoritmalarından olan merkez esaslı k-means algoritması bu alanda çok yaygın kullanıma sahiptir. K-means algoritması nesnelerin merkezlere uzaklıklarını hesaplayarak grupların belirlenmesini sağlar. K-means algoritmasının yaygın kullanımı nedeni ile araştırmacılar bu algoritmanın geliştirmesine ve iyi performansla çalışmasına yönlenmişlerdir. Algoritmanın küme kalitesinin artırılması açısından yapılan çok sayıda çalışmamevcuttur.Mat Isa ve arkadaşları (2010) k-means algoritmasının performansının artırması için nesnelerin optimum merkezi bulunmasını sağlayan fuzzy k-means algoritmasını, daha kaliteli sonuç verdiğini kanıtlamak için, ele almıştır. Standart k-means algoritması ile fuzzy k-means algoritmasının arasında yapılan karşılaştırmada standart k-means algoritması ile FCM fuzzy c-means algoritmasını birleştirmiş ve nesnelerin daha başarılı ve etkili şekilde merkezleri bulmasında ve algoritmanın başarılı performans gösterdiğini veriler üzerinde deneyerek kanıtlamıştır[7]. Wang, J (2011) gürültülü veri tabanının normal halindeyken ve gürültülü nesneleri çıkararak k-means algoritmasını uygulayarak karşılaştırma yapmıştır. standart k-means algoritması veri tabanında uygulanırken grupların yeni merkezlerini bulmakta bir grup nokta grup merkezinden uzakta olabilir. Bu grup nokta gürültülü nokta sayılır küme merkezinin hesaplanmasını etkileyebilir ve yeni merkez noktalar yanlış hesaplanmış olabilir. Bu sorunun ortadan gidermek için gerçekleştirilmiş çalışmada önce bu tür gürültülü noktaları kümeden çıkaracak yöntemler kullanıpveri setini gürültüsüz hale getirlir, sonra k-means algoritmasını kullanarak küme merkezleri hesaplanmıştır. Böylece kmeans algoritmasının daha etkili ve kaliteli sonuç vererek daha iyi performansla çalıştığını göstermiştir[8]. S. Ren ve arkadaşları (2011) k-means algoritmasının sadece Öklid formülünün kullanılmasını yetersiz görmüş, Öklid formülü sadece 4 mesafe kıyaslamak için kullanıldığı nedeni ile nesnelerin hepsini merkez nokta koordinatlarına göre eşit görmektedir. Oysa nesnelerin bazıları grup merkezlerine alakalı diğerleri alakasızdır, böylece alakasız nesneler kümeye karmaşıklık katma imkânı olabilir. Bunu önlemek için her nesneye bir değişim katsayısı eklenir, her nesnenin değişim katsayısına göre alakalı ise küme uzantısına alınır değilse kısıtlanacaktır[9]. D. Li ve arkadaşları (2009) k-means algoritmasını büyük hacimde veri tabanında birden uygulaması ve aynı veri tabanını parçalara bölerek uygulaması arasında kalite açısından bir karşılaştırma gerçekleştirmişlerdir. k-means algoritması çok büyük hacimdeki veri setlerinin standart yöntemle sıkıntılı çalışmasını göstermiştir ve bunu ızgara yöntemi yoluyla verinin azaltılması ve parçalara bölünüp k-means algoritmasının daha iyi performansla çalıştığını göstermiştir. Çok büyük olan veri setlerini küçük parçalı hücrelere bölerek ızgaralı bir yapı haline dönüştürerek kümeleme işlemini gerçekleştirmektedir. Her hücrenin kendi merkez ağırlığı var ve böylece büyük hacimde veri setinin küçük parçalara ayrılması kontrolünün kolaylaştırmasını sağlar[10]. k-means küme kalitesini artırmak için Prasanta K. Jana (2012) bir çalışmada Voronoi diyagramını kullanarak k-menas algoritmasını uygulamış ve standart k-means ile karşılaştırmasını gerçekleştirmiştir. Yapılan çalışmada rasgele merkez nesnesinin seçilmesinin ortaya çıkardığı problemini ortadan kaldırmak için bu rasgele nesnenin seçiminin yerine merkezleri bulmakta Voronoi diyagramını kullanmışlardır. Veri setini Voronoi diyagramının uzayında verteks haline getirerek yarıçaplılarına göre voronoi daireleri sınırlarında yerleştirilir. Her yuvarlak kendi hesaba alınacak en büyük yarıçaplı yuvarlaktan başlayarak, eğer yuvarlağın içindeki her hangi iki noktanın arasındaki mesafe yarıçapından küçük ise iki noktadan bir tanesi silinecektir ve şu aşamaya kadar seçilen merkez nokta ile seçilen yuvarlağın içinde bir noktanın arasındaki mesafe yarıçapından daha küçük ise yuvarlaktaki nokta silinecektir. Bu işlem tüm merkezler seçilinceye kadar devam eder, bu yöntemi kullanarak daha kaliteli kümeleme elde edilmiştir[11]. 5 Ayrıca k-means algoritması küme kalitesinin arttırılmasının yanında kümeleme hızını yükseltmek içinde yapılan çalışmalar gerçekleşmiştir, D. Chang ve arkadaşları (2009) k-means algoritmasının performans ve hazınının artırması için algoritmanı genetik algoritma ile birleştirmişler. Kullandıkları stratejiye göre kümenin merkezini bulmakta olası bölme işlemi veri noktalarına dayanmasının yerine koromsum merkez şifresini kullanarak bulmaktadır. Algoritma kümenin ölçümünü optimize ederek en uygun küme merkezi bulmaya çalışır[12]. A.M. Bagirov ve arkadaşları (2011) global k-means ve standart k-means arasında hız açısından bir karşılaştırma yapmışlardır. Algoritma küme merkezlerini önceki aşamalara bakarak sürekli test eder ve kbölünme problemini (en uygun merkez sayısı) çözmeye çalışır. Algoritmanın en önemli aşaması küme merkezinin başlangıç noktasını hesaplamaktır. Başlangıçta k tane rasgele merkez seçmek yerine sadece bir merkeze göre kümelemeyi yapar. sonrak tane uygun merkezi bulmak için N defa algoritmanı uygular ve bunların arasından en uygun ikinci merkezi buluri her defasında yeni bir merkez ekleyerek aynı hesaplamaları yapar ve en uygun merkez sayısını buluncaya kadar devam eder. Başlangıç noktanın hesaplanması için kümede bilinen ve ekstradan bulunan fonksiyonların minimize edilmesidir. Yapılan testlere göre global k-mens algoritmasının standart algoritmadan daha hızlı sonuç vermesi tespit edilmiştir[13]. A.H.Beg ve arkadaşları (2011) yeni k-means algoritması ile standart k-means algoritması arasında karşılaştırma yapmışlar. k-means yeni algoritması ile standart k-means algoritmasının arasındaki hız farkını göstermiştir. Geliştirilmiş algoritma merkezi bulmak için maksimum ve minimum noktaları kullanmaktadır. Başlangıçta merkez olarak maksimum nokta alınır ve sonra minimum nokta alınır, sonra alınan noktaların ortalaması alınır ve yeni merkez nokta inşa edilir. Sonra inşa edilen merkez noktalar aynı mekanizmaya göre devam eder. Sonuç olarak standart kmeans algoritmasından son kümeleri %60 daha az aşama ile göstermiş[14]. T. Hitendra Sarma ve arkadaşları (2012) k-means algoritmasının hızlandırılması için yeni metot uygulayarak daha hızlı bir k-means algoritması geliştirmişler ve standart k-means algoritması ile karşılaştırmışlar. Veri setini belli sabit hacimde parçalara 6 ayırarak her parçaya bir tane prototip veriyor, ileri seviyelerde verilen prototiplere standart algoritmanı uygulayarak parçaları gruba katarak kümeleme işlemi yapıyor. Sonuçlar standart algoritmanın aynısını veriyor ama daha hızlı sürede elde ediliyor[15]. Arthur ve Vassilvitskii k-means algoritması ile k-means++ algoritması arasında karşılaştırma yapmışlardır. k-means algoritmasının rasgele merkez seçiminin daha dikkatlice ve optimal seçilmesi sağlayan k-means++ algoritması daha hızlı performans göstermiştir. Algoritma önceden k tane merkezin seçilmesi için rasgele bir tane nesne seçilir, seçilen bu nesneye göre her aşamada O(log k) olasılığına göre yeni bir merkez seçilir. Bu işlem k tane nesne seçilinceye kadar devam eder, bu aşama bitikten sonra standart k-means adımları seçilen merkezlere uygulanır [16]. 7 2. Veri Madenciliği Veri Madenciliği büyük hacimde olan ve genellikle denetimsiz kalan veri setlerini makul ve kullanılır bir hale getirmek amacıyla kullanılmaktadır. Veri Madenciliği kullanıcıları genellikle iş dünyasında ağır sayıda bulunmaktadır, bunun nedeni ise iş dünyasında ağır hacimde ve sayıda bulunan verilerdir. Bualanda veri madenciliğinin kullanılması şirket sahiplerinin şirketleri daha rekabetçi ve karlı olmasıdır. Veri Madenciliği veri setini makul bir hale getirmektense veri setinin içinden bilgileri keşfedip anlaşılan, kullanılır, geçerli ve faydalı hale getirmektedir. Veri Madenciliğinin kullanılmasının nedenleri veritabanındaki veri setinin hacmi, küçük veri setleri için normal şartlar altında belirli tollar kullanarak veri setini analiz etmektedir veya bazen gözetleyerek sınıflandırılır. Hâlbuki büyük veri setleri, örneğin AT&T cep teflon şirketi her gün milyonlarca veri toplamaktadır veya NASA gibi büyük kurumlar yer gözleminde yüzlerce gigabayt saat başına toplamaktadır. İşte bunlara benzer çok büyük hacimde veri setlerinin analizi ve sınıflandırması gözetleme yoluyla imkânsız oluyor. İşte bu yüzden veri madenciliği teknikleri bu alanda kullanıyor. Demek ki Veri madenciliği, diğer bir adla veri tabanında bilgi keşfi; çok büyük veri hacimleri arasında tutulan, anlamı daha önce keşfedilmemiş potansiyel olarak faydalı ve anlaşılır bilgilerin çıkarıldığı ve arka planda veri tabanı yönetim sistemleri, istatistik, yapay zekâ, makine öğrenme, paralel ve dağınık işlemlerin bulunduğu veri analiz teknikleridir. Son zamanlarda kurumların ağırlıkla verileri analiz etmek istenen ve sürekli büyüyen veriler ki bu verileri analiz etmek için çok sayıda uygulama geliştirilmeye başlatılmıştır. Örneğin ağ trafiğini izleme, banka veri sistemi, web tıklama akışı analizi ve kredi kartı dolandırıcılığı algılama, bu nedenle şuan yeni hızlı güçlü veri algoritmaları bu alanda kullanılmaktadır. Kısaca Veri Tabanlarında Bilginin Keşfi” (KDD) olarak adlandırılmaktadır.[17] Alternatif veri madenciliği isimleri: “Veri Tabanlarında Bilginin Keşfi” (Knowledge Discovery in Database, KDD), “Bilgi çıkarımı” (Knowledge Extraction), “Veri ve Örüntü Analizi” (Data/PatternAnaysis), “Veri Arkeolojisi” (Data Archeology), “Veri Eşeleme” (Data Dredging) vb. [18]. 8 2.1. Veri Madenciliğinde Bilgi Keşif Sürecinin Aşamaları Büyük veri tabanlarında ilginç ve değerli olan bilgiyi algılamak ve erişmek oldukça zordur. Veri tabanında bilgi keşif sürecinin aşamaları (Knowledge Discovery in Databases) bu değerli, öncede bilinmeyen kullanılabilir olan bilgiye belirli metotlar uygulayarak tanımlamada çok büyük rol oynamaktadır. Genelde bilinen veri madenciliği ve bilgi keşif süreci kavramları işlemleri aynı şeyleri hedeflediği için aynı anlama gelmektedir ve aynı alanı ifade etmekte kullanılır, hâlbuki bu iki kavram birbirinden ayrı alanları ifade eder ve genelde bilgi keşfi bir büyük alan olarak veri madenciliği bilgi keşfinin aşamalarından birini temsil etmektedir. Bilgi keşfi süreci araştırmacılar tarafından makine öğrenme, örüntü tanıma, veri tabanı, istatistik, yapay zekâ, veri görüntüleme ve yüksek performanslı hesaplama alanlarında geliştirilmiştir ve hala geliştirilmektedir. Bilgi keşfi yukardaki alanlarda yüksek boyutlu bilgiler arasından yararlı bilgileri elde etmeyi hedefler[19]. Şekil (2.1.) bilgi keşfinin aşamalarını göstermektedir. Bilgi keşfinin aşamalarında veri madenciliği yöntemleri ve algoritmaları kullanılmaktadır. Fakat sadece veri madenciliği yöntemlerini kullanarak iyi bir sonuca varamayız bu yüzden bilgi keşfinin süreci iyi bir şekilde uygulanması için bir kaç aşamanın üzerinden dikkatlice geçmekte fayda vardır ve bu aşamalar şu şekilde sıralanabilir[20]: 1. Uygulama alanının incelenmesi: Öncelikle konuyla ilgili bilgi ve uygulama amaçların belirlenmesi. 2. Amaca uygun veri kümesi yaratma: Analiz edilecek verinin hangi veritabanında yapılacağını belirterek, veri seçmek ya da keşfedilecek alt veri örnekleri oluşturma. 3. Veri ayıklama ve önişlem: Gürültülü ve tutarsız verileri silme. 4. Veri azaltma ve veri dönüşümü: Analizde gerekli özellikleri (boyutları) seçme, özellikler arasındaki ilişkiyi belirleme, veri dönüşümü ya da veri birleşimi yaparak boyut azaltma. 9 5. Veri madenciliği tekniği seçme: Sınıflandırma (classify), bağlantı kuralları (association rules), kümeleme (clustering). 6. Veri madenciliği algoritması seçme. 7. Model değerlendirme ve bilgi sunma. 8. Bulunan bilginin yorumlanması. Şekil 2.1. Veri Madenciliği Bilgi Keşif Sürecinin Aşamaları. 2.2. Veri Madenciliği modelleri Veri madenciliğinde iki tür kullanılan model vardır, bu modeller tahmin edici modeller ve tanımlayıcı modellerdir. Tahmin edici modellerde, sonuçları bilinen verilerden yola çıkarak bir model geliştirilir, bu modelden yararlanılarak sonuçları bilinmeyen veri kümeleri için sonuç değerlerin tahmin edilmesinde karar vermede kullanılmaktadır. Örneğin bir banka önceki dönemlerde vermiş olduğu kredilere ilişkin gerekli tüm verilere sahip olabilir. Bu verilerde bağımsız değişkenler kredi alan müşterinin özellikleri, bağımlı değişken değeri ise kredinin geri ödenip 10 ödenmediğidir. Bu müşterinin verilerine olan uygun olarak kurulan model olacaktır, daha sonraki kredi taleplerinde bulunduğunda mevcut olan müşteri özelliklerine dayanarak verilecek olan kredinin geri ödenip ödenmeyeceğinin ihtimallerinde kullanılmaktadır. Tanımlayıcı modellerde ise verilecek kararda rehberlik etmede kullanılabilecek mevcut verilerdeki nesnelerin tanımlanması sağlanmaktadır. X/Y aralığında geliri ve iki veya daha fazla arabası olan çocuklu aileler ile çocuğu olmayan ve geliri X/Y aralığından düşük olan ailelerin satın alma örüntülerinin birbirlerine benzerlik gösterdiğinin belirlenmesi tanımlayıcı modellere bir örnektir, aşağıdaki şekil (2.2.) Veri Madenciliği modellerini göstermektedir. 2.2.1. Sınıflandırma Modelleri ve algoritmaları Mevcut verilerden hareket ederek geleceğin tahmin edilmesinde faydalanılan ve veri madenciliği teknikleri içerisinde en yaygın kullanıma sahip olan sınıflandırma modelleridir. Sınıflandırma modelleri çok sayıda algoritmalar kullanarak sınıflandırma işlemini gerçekleştiriyor. Bu modelin koşullarından biri temel bilginin mevcut olmasıdır. Şekil 2.2. Veri Madenciliği Modelleri [18]. 11 Mevcut olan veri bilgilerinin özelliklerinden yola çıkarak gelecek verilerin sınıflandırılması için uygun model oluşturulur. Bu mevcut verilerin modeli eğitmek için kullanılan yönteme eğitim seti denir. Oluşturulan modelde sınıflandırma algoritmaları kullanarak verilerin sınıflandırması gerçekleştirilmektedir. Sınıflandırmayla ilgili çok sayıda algoritma bulunmaktadır, aşağıda sınıflandırma algoritmaları gösterilmektedir. Karar ağaçları (ID3) Karar ağaçları, ağaç şeklinde sınıflandırıcılardır. Bu ağaçtaki her düğüm bir yaprağı veya karar düğümünü belirtir. Yaprak düğümü hedef niteliğin değeridir. Karar düğümü ise, bir nitelikte uygulanacak olan test değeridir, bu düğümü, o niteliğe ait olan tüm olası nitelik değerleri izler, bu değerler ise ağacın dallarını oluşturur. Karar ağaçlarının öğrenme algoritmaları, bir hipotezi sunmak için bir küme karar ağacı kullanılırlar. Öğrenme kümesinde, ham veri incelenerek mümkün olan en iyi şekilde sınıflandırılır. Algoritma bu işlemi özyineli olarak tekrar eder ve en son ortaya çıkardığı karar ağacı en son hipotezi oluşturur. Karar ağacı algoritması veriyi iki bölüme ayırmaktadır; öğrenme ve test setleri, bu iki grup veri oldukça homojen olmaktadır [21]. Karar ağacı algoritması aşamaları şöyledir: Algoritma: Karar-Ağacı-Oluştur Giriş Değişkenleri : Örnek kümesi, nitelik-listesi Metot : 1. N düğümünü oluştur 2. Eğer örnek değerlerinin tümü aynı sınıftaysa (Sınıf C) i. N düğümünü C etiketinde bir yaprak düğümü olarak döndür 3. Eğer nitelik-listesi bossa i. N düğümünü Örnek kümesindeki en fazla kullanılan sınıf etiketinde bir yaprak düğümü olarak döndür 4. Nitelik-Listesi’nden en fazla bilgi kazançlı test-niteliğini seç 12 5. N düğümünün etiketine test-niteliği ismini ver 6. Test-niteliğinin her bir bilinen değeri için dön i. N düğümünden test-niteliği=ai olacak şekilde bir dal çiz 7. si = örnek kümesinde test-niteliği= ai olan örnekler olsun 8. Eğer si bossa i. Örnek kümesi içinde en fazla kullanılan sınıf etiketinde bir yaprak çiz 9. Değilse Karar-Ağacı-Oluştur(si, nitelik-listesi, test-nitelik)’ dan dönen düğüm değerini ağaca ekle[21]. K-NN Algoritması K en yakın komşuluk algoritması sorgu vektörünün en yakın K tane komşu vektör ile sınıflandırılmasının bir neticesi olan denetlemeli bir algoritmasıdır. Bu algoritma ile yeni bir vektörü sınıflandırabilmek için dokuman vektörü ve eğitim dokümanları vektörleri kullanılır. Bir sorgu örneği ele alınır, bu verilen noktaya en yakın K tane eğitim noktası bulunur. Sınıflandırma verilen bu K tane noktanın en fazla olanı ile yapılır. K en yakın komşuluk uygulaması verilen sorgu örneğini sınıflandırmak bir komşuluk sınıflandırma algoritmasıdır. K en yakın komşuluk algoritması çok kolaydır. K en yakın komşulukları bulmak için sorgu örneği ile eğitim dokümanları arasındaki mevcut tüm uzaklıklar dikkate alınır. En yakın komşuları bulunmasından sonra mevcut olan komşulardan kategorisi en çok olan dokümanın kategorisini tahmin etmekte kullanılır. Tüm dokümanlar vektör halinde olarak temsil edilir. Sorgu dokümanı ile diğer dokümanlar arasındaki kosinüs benzerliği hesaplanır. Benzerlik oranı 1’e en yakın olan n tane vektörün kategorisinden çok olanı dokümana atanır. Diyelim ki K=(V1,….,Vi) eğitim seti farz etsek ve P=(P1,P2 ,…., Pj) doküman vektörleri olsa, herhangi bir P vektörünün bulunması için: sim(Pi,K) = Max(Pi,Vi) maksimum benzerlik vektörün kategorisini bulmak üzere kosinüs benzerliği kullanılmaktadır [22]. 13 SVM algoritması SVM (Support Victor Machine) algoritması bir makina öğrenme metodu olarak 1990 yılında Vapnik tarafından ortaya çıkarılmıştır. Bu algoritma statik öğrenme teorilerine göre geliştirilmiştir[23]. Avantajlarından biri çok boyutlu örüntü tanıma problemlerini çözmekte kullanılıyor. SVM algoritması ikiye ayrılmaktadır. Doğrusal SVM ve doğrusal olmayan SVM. Bu algoritma makina öğrenme yöntemini kullanan algoritmalar arasında en güçlü ve kesin sonuçlar veren algoritma sayılabilir[24]. Yapay sinir ağları Yapay sinir ağları beyin hücreleri olan nöronların çalışma prensibini modelleyen öğrenebilen algoritmalardır. Sınıflandırma amaçlı kullanılan yapay sinir ağları genelde back propagation algoritması ve RBF ağlarını kullanmaktadır. RBF (radial Bases Functıon Network ) girdi, gizli ve çıktı dökümlerinden oluşan yapay sinir ağlarıdır. Girdi düğümü gizli düğümüne doğrusal olmayan, gizli düğümü çıktı düğümüne doğrusal olan fonksiyonlarla bağlanmaktadır. Yapay sinir ağları öğrenme ve genelleştirme kabiliyetleri olan uyarlanabilir ve hata payını en aza düşüren güçlü bir metottur.[25] Bayes sınıflandırması Bayes sınıflandırıcısı istatistik metotlara dayanan tipik bir sınıflandırma modelidir. Özel bir sınıfa ait olarak verilen bir olasılık gibi, sınıf üyeliklerine ait olasılıklarını önceden söyleyebilirler. Bayes sınıflandırıcısı Bayes teoremi için kuramsal temelledir, bayes teorimi kullanarak sınıflandırmanı gerçekleştiriyor[26]. Bayes teorimi ise diyelim X sınıf uyeliği bilinmeyen veri orneği olsun. H ise bu veri orneği X in C sınıfına ait olduğunu öngören bir hipotez olsun. ( ) ( ( ) ( ) ) ( ) ( ) 14 2.2.2. Kümeleme Modelleri Kümeleme modellerinde amaç, küme üyelerinin birbirlerine çok benzediği, ancak özellikleri birbirlerinden çok farklı olan kümelerin bulunması ve veri tabanındaki kayıtların bu farklı kümelere bölünmesidir. Başlangıç aşamasında veri tabanındaki kayıtların hangi kümelere ayrılacağı veya kümelemenin hangi değişken özelliklerine göre yapılacağı bilinmemekte, veritabanının iyice analiz edilmesi gerekmektedir ve sonra kümelerin neler olacağı tahmin edilir[21]. Kümelenme verileri gruplandırarak birkaç homojen gruba dağıtılmasını amaçlayan bir veri analiz aracıdır. Yıllar çalışmalarının ardından sunulan kümeleme bazı uygulamalarda kümelemeye ihtiyaç duyurduğundan dolayı çıkan sorunları ortadan kaldırmak amacı ile geliştirilmiştir. Başka bir deyişle çalışılan fenomeni anlamak veya yorumlamak için çok sayıda bilim dalının verilerin kümelemesine ihtiyaç durmuştur[27]. İlk yaklaşımları sezgisel veya geometrik prosedürleri dayanmaktaydı. Çift gözlemler arasındaki benzersizliği göze alarak hesaplanmaktadır. Kümeleme ayrıca olasılık çerçevesinde de kıyaslanmaktadır, kümeleme kavramının şekillendirmesini kendi olasılık dağıtımında yapmaktadır [28]. Kümelemeye genel bir bakışla bakılırsa iki parçadan oluşmaktadır ve bunlar Bölümleyici metotlar ve hiyerarşik metotlardır. Benzerlik-esaslı metotlar ve model-esaslı metotlar Bölümleyici-esaslı metotların ana dallarını temsil etmektedir. Benzerlik-esaslı metotların en basit örneğini vermiş olursak standart k-means algoritmasının çalışma şeklidir (nesnelerin birbirine benzerlik oranına göre guruplara ayırması)[5]. Kümeleme ayrıca içinde kullanılan tekniklere göre sınıflandırılır ve hesaplamada kullanılan mesafe formülleri içermektedir, bunlar kullanılan algoritmaya göre değişir, üçüncü bölümde kümelemenin analizi, teknikleri ve algoritmaları detaylı bir şekilde anlatılmıştır. 15 3. Kümeleme Analizi ve Algoritmaları 3.1. Kümeleme Analizi Kümeleme analizi sayısal, dilsel veya yapısal veri setleri içinde saklanan grupları (kümeler) ortaya çıkarmak için tasarlanmıştır. Her grup üyeleri benzer özelliklere sahiptir. Kümeleme analizi ayrıca sınıflamaları geliştirerek karmaşık verileri çözmek için kullanılır ve bu verileri anlaşılır bir hale getirerek önemli verileri ortaya çıkarmakta katkıda bulunur. Yazılım teknolojisinin gelişimi nedeni ile bilim ve iş alanında, birçok durumda uygulanan etkili ve kolay yorumlanabilen bir yöntem görünmüştür. Bu yöntem 1960 yılının başında ortaya çıkmıştır. O zamanlarda Aldenderfer ve Blashfield kümelemenin tüm sınıflandırma sisteminin kullandığı bilim dallarında uygulanmasına öneride bulunmuşlardır[29]. Kümeleme analizinin asıl amacı objeleri guruplara ayırıp verileri sınıflandırmaktır. Nesneleri tanımlayan özellikler bir guruba benzerlik veya benzersizlik oranına göre alınmaktadır. Nesnelerin birbirine benzerliğini dikkate alıp grubun üyelerini belirler veya başka gruplardan olan üyelerin farklılıklarına göre grup sınırlarını çizmektedir. Örüntü tanıma, veri analizi, görüntü işleme, market araştırması gibi çeşitli uygulamalarda yaygın olarak kullanılmaktadır. Kümeleme analizi nesnelerin sınıflandırılmasına ile ilgili ayrıntılı açıklama yapılmasını hedeflemektedir. Nesnenin özellikleriyle grupların özellikleri karşılaştırılarak aralarındaki benzerliğe göre guruplar belirlenir. Daha sonra guruplara dahil edilen nesnelerin profilleri ortaya konur. Kümelemenin diğer amacı ise verinin guruplara ayrılması dışında veri hacmini küçültmektir ve kontrolünün kolaylaşmasıdır. Satış hareketleri veya çağrı merkezi kayıtları gibi çok fazla parametre içeren çok büyük miktarlardaki verileri analiz etmede en uygun yöntemlerden biri kümelemedir. Kümeleme analizinin veriye uygulandığında sağladaığı avantajlar şöyledir: Verinin alt yapısı: verinin gözetlenmesini kolay bir şekilde sağlamak, onunla ilgili uygun hipotezler oluşturmak ve verinin belirgin özelliklerini belirlemek. 16 Verinin doğal sınıflandırması: formlar veya organizmalar arasındaki benzerliğin derecesini tespit etmek. Verinin sıkıştırılması: veriyi organize ederek küme prototipinin özetlenmesini sağlayan metotlar gibi. İlişkilerin görünmesi: gösterebilme özelliği kümelemenin sayesinde grafiksel görüntüleri benzerliklerin kolayca ile tespit sonuçları edilmesini sağlamaktadır. Sıra dışı nesnelerin tespiti: anormal durumların kolayca tespit edilmesi, böylece sıra dışı verilerin kolayca belirlenmesi. Başka veri madenciliği algoritmalarına katkıda bulunması: bazı veri madenciliği algoritmalarının büyük hacimde verilerle sıkıntılı çalışması nedeni ile kümeleme analizi bu verilere uygulanarak verinin parçalar haline getirerek en uygun başlangıç noktasını seçmesine yardım etmektedir[30]. Kümeler, nesnelerin uzayda birbirlerine olan yakınlıklarını temsil ederek ifade edilir. Önceki söze dayanarak nesneler arasındaki benzerlik veya benzersizlik uzaydaki birbirleri arasındaki mesafe ile ifade edilmektedir. Uzaydaki çok boyutlu nesnelerin arasındaki uzaklıkların hesaplanması için genelde geometrik uzaklık formülleri kullanılmaktadır. Çeşitli sayıda değişkene göre nesneler arasındaki benzerlik ve uzaklıkları hesaplamak için kullanılan ölçüler[31]: 1. Sayısal veriler için ölçüler: Öklid uzaklığı Manhattan uzaklığı Maksimum uzaklığı Minkowski uzaklığı Mahalanobis uzaklığı Kosinüs uzaklığı Ortalama uzaklığı 2. Kategorik veriler için ölçütler: Basit eşleştirme uzaklığı 17 Katsayı eşleştirme uzaklığı 3. Zaman serisi verileri için ölçütler: Minkowski uzaklığı Dinamik zaman tüneli uzaklığı Yukarıdaki uzaklık formüllerinden faydalanarak bireyler arasındaki uzaklık ve dolayısıyla benzerlik veya benzersizlikler belirlenir. Kümeleme işlemi belirlenen bireyler arası uzaklıklara göre küme içi homojen ve kendi aralarında heterojen gruplar kurmaktadır. Bu grupları farklı kümeleme yöntemlerine göre oluşturmaktadır. Kümeleme yöntemleri farklı teknikler yardımıyla uygulanır ve bu teknikler kümenin farklı özelliklerine göre kümenin şeklini tespit eder. Genel olarak kullanılan yöntemler ve teknikler aşağıdaki gibidir: Model Esaslı Kümeleme Yöntemleri Bu tekniklere, model esaslı kümeleme yöntemleri denmesinin nedeni; kullanılan algoritmaların veri setine uygun bir model seçerek çalışıyor olmasıdır. Kısaca algoritmalar, veriler ile bazı matematiksel modeller arasındaki uyumu optimize etmeye çalışırlar. Bu teknikler genellikle verilerin mevcut olasılık dağılımları tarafından oluşturulduğunu varsaymaktadır[32]. Yöntem model olarak bir yoğunluk fonksiyonu inşa eder ki bu fonksiyon veri noktalarının uzaysal bir dağılımını yansıtır ve bu yöntemle kümeleri yerleştirir. Ayrıca istatistik yöntemleri kullanarak kümelerin sayısını otomatik olarak belirler ve gürültüleri göze alarak en iyi kümelemeyi elde eder. EM algoritması bu tekniği kullanan en iyi statik algoritmalardandır. Merkeze Dayalı Bölümleyici Kümeleme Yöntemleri Merkeze dayalı bölümleyici kümeleme yöntemleri, n adet nesneden oluşan veri setini başlangıçta belirlenen k(k<n) adet kümeye ayırmaktadır. Kümeleme sonucunda elde edilen kümelerde, küme içi benzerlik maksimum iken kümeler arası benzerlik minimumdadır. Merkeze dayalı kümeleme yönteminin uygulanmasının iki amacı vardır;1) her veri nesnesinin bir tane kümeye ait olma zorunluluğu, 2) her kümenin 18 en az bir tane nesnesinin olması zorunluluğudur. Amaçların birincisi bazı fuzzy algoritmalar için geçerli değildir. Bunun sebebi o algoritmalarda her nesnenin iki kümeye ait olması olasılığıdır. En çok kullanılan merkeze dayalı bölümleyici kümeleme teknikleri k-means, algoritmalarıdır. Bölümleyici k-medoid, PAM, CLARA ve CLARANS yöntemleri daha detaylı bir şekilde aşağıda anlatılmaktadır. Hiyerarşik Kümeleme Yöntemleri Hiyerarşik yöntemler verilen veri setinin nesneleri için bir hiyerarşik ayrışma inşa etmektedir. Hiyerarşik küme, bir veri setindeki her bir nesnenin dizi içindeki bir sonraki nesnenin içinde yer aldığı bir nesneler dizisidir. Hiyerarşik kümeleme tekniklerinde, başlangıçta küme sayısı belirtilmemektedir. Algoritma, x: veri seti s: uzaklıklar matrisi olmak üzere; (x, s) girdi olarak tanımlanmaktadır. Sonuçta çıktı olarak elde edilen kümeler hiyerarşiktir. Hiyerarşik kümeleme tekniklerinin birçoğunda uygulanan süreç optimizasyon esaslı değildir. Bu tekniklerdeki amaç, birleşme tamamlanıncaya kadar bölmenin ilerlemesi için tekrarlamalar kullanarak temel yaklaşımlar bulmaktır[25]. Hiyerarşik kümeleme metotları, nesnelerin iç içe gruplanma ilişkisini ve gruplanmaların değiştiği benzerlik seviyelerini ağaç yapısı şeklinde gösteren bir yapı oluşturma temeline dayanır. Hiyerarşik tekniğini kullanan metotlar inşa etme tipine bağlı olarak iki gruba ayrılır: Birleştirici Hiyerarşik Kümeleme (top - down) Ayrıştırıcı Hiyerarşik Kümeleme (bottom - up) Yoğunluk Bazlı Yöntem Birçok kümeleme yöntemi, nesnelerin arasındaki mesafe farkına ve benzerliklerine göre kümeleme yapar ve çıkan sonuç genelde küreseldir. Bu yöntemler buldukları değişik kümelerin tespitinde yetersiz kalmaktadır. Yoğunluk bazlı yöntemler ise nesnelerin yoğunluğuna göre gruplama yapar. Komşuluk içindeki yoğunluk belli bir seviyeyi aşana kadar kümeler büyümeye devam eder. Bu yöntemin gürültülü verilerden etkilenme oranı düşüktür. Yoğunluk bazlı yöntemlere örnek olarak Dbscan ve Optics algoritmaları verilebilir. 19 Izgara Tabanlı Kümeleme Yöntemleri Izgara Tabanlı Kümeleme Teknikleri, veri setini ızgaralı bir yapı oluşturmak için belli sayıda hücreye bölmekte ve bütün kümeleme işlemlerini bu ızgara yapı üzerinde gerçekleştirmektedir. Izgara hücrelerin yoğun noktalarına göre küme sayısının belirlenmesi ve veri nesnesi olmayan ızgara hücreler ile küme merkezleri arasındaki uzaklığın hesaplanması bu teknik içerisinde yer alan algoritmaların hızlı çalışmasını sağlar. Bu durum ızgara tabanlı tekniklerin en büyük avantajı olarak kabul edilmektedir[33]. Kümeleme analizi yukarıda anlatılan yöntemlere uyan algoritmaları uygulayarak veri nesnelerinin kümelemesini sağlar. Kümeleme analizi farklı veri türlerine uygulanmaktadır, verinin türüne göre nesneler arası mesafeler hesaplanarak kümeler elde edilir. Diyelim ki kümelenmesi gereken veri seti n tane nesne içermektedir. Örneğin kişi, ev, doküman, devletler vb… .Veri setinin kümelenmesi genel olarak aşağıda anlatılan 2 tür veri yapısından birine göre yapılmalıdır. Kare kodun(Data Matrix): bu veri yapısı ntane obje bilgisini sunmaktadır. Örneklendirmek gerekirse; bu bilgiler birkaç kişinin bilgileri olabilir, bu kişiler p tane bilgi özelliği içermektedir; yaş, boy, cins gibi. Veri setinin yapı şekli nesne-ileözellik matrisi şeklinde ifade edilebilir. Farklılık Matrisi (Dissimilarity matrix): bu veri seti yapısında n tane verilerin arasındaki yakınlık oranına göre hesaplama yapmaktadır. Bu veri yapısında genellikle nesne-ile-nesne arasındaki ilişki tablo şeklinde sunulmaktadır. Kare kodun veri yapısı genellikle farklılıklar göstermektedir. Bu yüzden bazen kare kodun veri matrisine iki-Modelli matrisi denmektedir. Birçok kümeleme algoritması genelde kümelerin hesaplanmasında farklılık matrisini kullanmaktadır. Eğer veri seti kare kodun matrisi ile sunulmuşsa, önce bu veriyi farklılık matrisine dönüştürülüp sonra hesaplanması gerçekleştirilmektedir. Aşağıda tüm veri türlerini anlatıp ve 20 kümelenmesi için her veri türünün nasıl farklılık matrisine uzaklık formüllerini kullanarak dönüştürülmesini göstermekteyiz. 3.1.1. Aralık – Ölçekli değişkenler Aralık – ölçekli değişken veri türleri sürekli ölçülenen doğrusal ölçeklerdir. İçinde bulunan örnekler standart ölçeklerle değerlendirilir, örneğin ağırlık ve yükseklik, enlem ve boylam(ev gibi nesneden bahsedilirse), ve hava durumu ölçekleri. Bu verilerde kullanılan ölçü birimi kümeleme analizini etkileyebilir. Örneğin bir veri setinin metre ve inç birimlerini içermesi ve ağırlık ünitelerinden kilogram ve pound birimlerini içermesi kümeleme yapısını etkilemektedir. Genelde küçük veri birimleri kullanılırsa küme içinde büyük hacim aralığa yol açar ve buda kümeleme yapısında büyük etki bırakmaya neden olur. Birim ölçülerinin seçimine bağlılık probleminin ortadan kaldırılması için verilerin standartlaştırılması yapılmaktadır. Standartlaştırma işlemi tüm verilerin aynı ağırlıkları vermelerini amaçlamaktadır. Standartlaştırma işlemi verilerin kullanıldığı birimle ilgili bilgi verilmiş halinde olursa pratik ve etkili olur.[34] Standartlaştırma işlemlerini gerçekleştirmek için (diyelim ki f kullanılan bir değişkendir ve değişkenin standartlaştırılması için) aşağıdaki iki adım uygulanmaktadır: Mutlak sapma hesaplanması, sf: (| | | | | |) ( ) X1f … Xnf f ’e ait olan n tane ölçektir, ve mf f” in ortalamasıdır. Standartlaşmanın hesaplaması: ( ) Standartlaştırma işlemi tamamlandıktan sonra nesnelerin arasındaki mesafeleri kıyaslama işlemi gerçekleştirilir.Aralık-ölçekli değişkenlerinin içerdiği nesnelerin arasındaki benzersizlik hesaplama işlemi her çift nesne arasındaki mesafeyi hesaplamaya dayanarak yapılmaktadır. Benzersizlik hesaplama işlemleri daha önce 21 belirlenen formülleri kullanarak hesaplanmaktadır. Aralık-ölçekli değişkenler için en çok kullanılan formül Öklid formülüdür ve bu formülun ifade şekli aşağıdaki gibidir. ( ) √( ) ( ) ( ) ( ) i=(xi1,xi2, … , xin) ve j=(xj1,xj2, … , xjn) iki n-boyutlu veri nesnesidir. Öklid formülünü verilere uygulayarak aşağıdaki matematiksel gereksinimleri karşılamaktadır: d(i,j)≥0: hesaplanan mesafe negatif numara olmaz. d(i,j)=0: nesnenin mesafesi kendisi ile hesaplanmış anlamına gelir. d(i,j)= d(j,i): mesafe simetrik fonksiyonudur. 3.1.2. Binary değişkenler Binary değişkenler başka bir deyişle ikili değişkenler ikili durumda bulunmaktadır: 0 ve 1. 0 değişkenleri iletimi yoktur anlamına gelmektedir, 1 ise değişkenin iletildiğini ifade etmektedir. İkili değişkenler iki halde ifade edilen veri değişkenlerinin üzerinde etkili bir şekilde uygulanır. Örneğin hasta bilgilerinden sigara içer değişkeninin yanıtı iki yanıt içerir; içer ve içmez. Bu değişkeni binary değişkeni ifadesine çevirirsek hasta sigara içiyorsa 1 ve içmiyorsa 0 şeklinde ifade edilir. Binary değişkenlerinin benzersizliklerinin hesaplanması için değişken veri setinde olan tüm bilgileri bir ve sıfır üzerinden sınıflandırmalıyız. Diyelim ki iki nesnemiz var:i ve j. Nesneler için hesaplanmak istenen değişken ihtimalleri q sayısı bire eşit olan i ve j nesneleri içeriyor.R, i değeri 1 olan ve j değeri 0 olan nesne sayısını içeriyor, s ise i değeri 0 ve j değeri 1’e eşit olan nesne sayısını içeriyor. Son olarak t her iki nesnenin değeri 0 olan nesne sayısını içeriyor[35]. Hesaplamaları yaptıktan sonra i ve j nesnelerinin arasındaki benzersizlik hesaplaması aşağıdaki formüle göre yapılır: ( ) ( ) 22 Ayrıca iki nesnenin arasında mesafeyi hesaplamak için sadece benzersizlik kullanılmaz, bunun yerine benzerlik özelliğini de kullanabiliriz. Binary değişkenleri için nesnelerin arasındaki benzerliği hesaplamak için aşağıdaki formül kullanılır: ( ) ( ) Örnek: Diyelim ki hastaa bilgisi tablosu var, aşağıdaki çizelge 3.1. de üç tane hasta kaydı gösterilmektedir. Bu hastaların muayenesi sonucu öksürük ve ateşlerinin olup olmadığı hastalar tablosuna kaydedilmiştir. Hastaların durumunun değerlendirilmesi sonucunda, ateş veya öksürükleri varsa kayıtta E, yoksa H yazılır. Bu bilgilerin binary formatına çevirken E için 1 ve H için 0 değerini veriyoruz. Bu üç tane hastanın öksürük ve ateş bilgilerine göre aralarındaki benzersizliklerin hesaplaması şöyle yapılır: ( ) ( ( ) ) Çizelge 3.1. Hasta bilgileri tablosu. Hasta ismi Ateş Öksürük Ahmet E H Ayşe E H Ali E E 3.1.3. Kategorik değişkenler Kategorik değişkenler binary değişkenlerinin genellenmiş halidir ki içinde iki durumdan fazla içerir. Örnek olarak harita renkleri bir kategorik değişkendir ve beş durumdan oluşmaktadır: kırmızı, sarı, yeşil, mavi ve pembe. Değişkenler genel 23 olarak harf serileri, semboller veya bir seri rakamlarla gösterilebilir. Eğer değişkenler rakamlarla ifade edilirse bu rakamlar sadece o değişkenleri ifade etme anlamına gelir. Fakat herhangi sıralamalı değerini ifade etmez[36]. Diyelim ki i ve j nesneleri kategorik değişkenler içeriyorsa, bu iki nesnenin arasındaki benzersizliğin hesaplanması değişkenlerin arasındaki uyumsuzluk oranına göre yapılır. Hesaplama işlemi aşağıdaki formülle de gösterilmektedir: ( ) ( ) Nesnelerin arasındaki uyumsuz değişkenlerinin sayısını m ifade etmektedir.P ise toplam değişkenlerin sayısını ifade ediyor. 3.1.4. Sıralı Değişkenler Sıralı değişkenler genelde kategorik değişkenlere benzemektedir. Onlardan tek farkı içindeki bilgiyi ifade eden M tane veri durumunun belirli ve anlamlı bir sıra halinde olmasıdır. Sıralı değişkenler objektif halinde ölçülemeyen öznel değerlendirmeleri kaydetmekte çok yararlıdır. Örneğin profesyonel rütbeler sık sık düzenli sıra halinde numaralandırılır, asistan, doçent ve profesörler gibi. Sıralı değişkenlerin değerleri rütbelerine göre sınıflara ayrılır. Sıralı değişkenlerinin nesneleri arasındaki benzersizliğin hesaplanması Aralık-ölçekli değişkenlerinde olduğu gibi yapılmaktadır. Diyelim ki f bir set sıralı değişkenler arasından bir değişkendir ve bu değişken n tane nesne içermektedir. Nesnelerin arasındaki benzersizlikler aşağıdaki adımlara göre hesaplanır: F değişkeninin içindeki i nesnesinin değeri xif’dir ve f,mf sıralı durum içermektedir. Her xif kendisiyle uyan rütbe ile değiştirilir. Her sıralı değişken farklı durum sayısına sahip olduğu için değişken durumlarının eşit bir şekilde 0.0,1.0 arasında sıkıştırılarak yer alması gerekir. Bu 24 işlemi gerçekleştirmek için her durumun rif’si kullanılarak aşağıdaki formüle göre hesaplanmaktadır[37]. ( ) Durumların değerlerini hesapladıktan sonra nesneler arasındaki benzersizlikleri mesafe hesaplama formüllerinden (Öklid, Manhatten vb.) birini kullanarak hesaplamalar yapılır. Örnek: Aşağıdaki çizelge 3.2. hastalarla ilgili bir test sonucuna göre üç sıralı durum içermektedir: makul, iyi, çok iyi. Tablo üç durum içerdiği için mf değeri 3 olmaktadır. Belirlenen bu durumlara göre hastaların arasındaki benzersizlikleri hesaplamak için birinci adıma göre önce sıralı olan durumların rütbelerine göre eşitlenmesidir. Makul eşittir 1, iyi eşittir 2 ve çok iyi eşittir 3. İkinci adımda standartlaştırma işlemleri başlatılır ve sıralı değişkeninin rütbelenmiş üç durumuna(0.0,1.0) değerleri arasında eşit değerler verilir ve bunların hesaplaması aşağıdaki gibi olur: Bu hesaplamaları yaptıktan sonra her durum için standartlaştırılmış değer yerine yerleştirilerek Öklid formülünü kullanarak benzersizlik değeri hesaplanır. Çizelge 3.2. Hasta test 1 sonucu. Nesne Tanımlayıcı Test Sonucu 1 Çok iyi 2 Makul 3 İyi 4 Çok iyi 25 3.1.5. Oran - Ölçekli Değişkenler Oran – Ölçekli değişken, lineer olmayan ölçekler üzerinde pozitif ölçümler yapar, eksponansiyel ölçüler gibi. Benzer örnekler bakteriyel nüfusu büyüme oranı veya bir radyoaktif elementinin çürümesidir. Genelde Aralık – Ölçekli değişkenlere çok benzemektedir ve benzersizliklerin hesaplanmasına doğru işlenmesi için üç tane yöntem vardır ve bunlar: Değişkenler Aralıklı – Ölçekli değişken gibi davranmak. (Genelde bu yöntem çok kullanılmamaktadır.) Oran – Ölçekli olan f değişkeninin içinde bulunan i nesnenin xif değerine yif=log(xif) formülü olan logaritmik dönüşümü uygulamak. Ortaya çıkan yifdeğeri Aralık – Ölçekli değişken gibi hesaplamaları yapılır. Değişkeni sıralı sürekli veri gibi davranmak ve rütbelerine aralıklı değer gibi davranmak[34]. Örnek:Aşağıdaki çizelge 3.3. te test sonuçlarının arasındaki benzersizlikleri bulmak için logaritmik formülü kullanılarak ortaya çıkan değerler, birinci nesne için 2.65, ikinci nesne için 1.34, üçüncü nesne için 2.21 ve dördüncü nesne için 3.08’dir. Bu değerleri bulduktan sonra Öklid formülü uygulanarak nesneler arasındaki benzersizlik şöyle bulunmuştur: Çizelge 3.3. Hasta test 2 sonucu. Nesne Tanımlayıcı Test Sonucu 1 445 2 22 3 154 4 1,210 Dis(1,2) = 1.31 Dis(1,3) = 0.44 Dis(1,4) = 0.43 26 Dis(2,3) = 0.87 Dis(2,4) = 1.74 Dis(3,4) = 0.87 3.1.6. Karışık Değişkenler Birçok veri tabanlarında nesneler farklı karışık değişken türleri ile ifade edilirler. Genel olarak veri tabanları daha önce belirlediğimiz veri türlerinin tümünü içerebilir. Bu tür veri tabanlarının nesneleri arasındaki benzersizliğin hesaplanması için iki yöntemden biri kullanılmaktadır. Birincisi her değişkeni ayrı ayrı gruplara ayırmak ve aralarındaki mesafeleri değişkenlere uyan yöntemlere göre yapmaktır. Bu yöntem uyumlu bir şekilde sonuçlandırılırsa uygulaması mümkün olur. İkincisi ise tek kümeleme analizi kullanarak tüm değişkenlerin türlerini birden işlemektir. Bu teknik farklı türde değişkenleri bir benzersizlik matrisinde birleştirir, tüm anlamlı değişkenleri (0.0,1.0) aralıklı benzer ölçeğe getirmektedir. Diyelim ki veri seti p tane karışık değişken türü içermektedir. İki nesnesi olan i ve j arasındaki d(i,j)‘nin hesaplanması şöyle tanıtılır: ( ) ( ) ( ) ∑ Gösterge ∑ ( ) ( ) ( ) = 0 eğer iki nesnenin içerdiği değerlerinden biri veya ikisi yoksa (kayıt edilmemiş ise) veya nesneler binary değişkenler ise ve değerleri 0 ise. ( ) Benzersizlikleri f değişkeninde etkileyen değer değeridir ve bu değer şöyle hesaplanır: | ( ) Eğer f aralıklı tabanlı ise: Eğer f binary veya kategorik ise: ( ) | =0 eğer xif =xjf , başka durmalarda değeri 0 dır. Eğer f sıralı ise: rütbeleri hesaplayıp sonra değerleri standartlaştırıp sıralı değişken formülünü uygulayarak hesaplamalar yapılır. 27 Eğer f oran ölçekli ise: oran ölçekli değişkenlerin üç hesaplama yönteminden birini kullanarak benzersizlikler yapılır[36]. Örnek:Aşağıdaki çizelge 3.4. yukarıda anlatılan veri durumlarının verildiği test sonucu örneklerinin toplanmış halidir. Test sonuçlarının toplanmış hali bir veri tabanında gerçekleştiği için bu tür veri seti karışık değişken türü olarak belirlenir. Nesnelerin arasındaki benzersizliği hesaplamakta test 1 sonucu (kategorik) ve test 2 sonucu (sıralı) üzerinde olan işlemler yukarıdakinin aynısıdır. Test 3 sıralı ölçekli değişkenlerikapsar. Bu değişkenler yukarıdaki gibi önce logaritmik formülüne uygulanarak her nesne için sonuçlar, sırasıyla 2.65,1.34, 2.21’dir. Bu sonuçların 3.08 değeri maxhxh değeri olarak ve 1.34 değeri minhxh değeri olarak belirlenmiştir. Sonuçları standartlaştırmak için her iki nesnenin arasındaki farkın sonucunu alarak (3:08-1:34) = 1.74 de bölünür. Tüm test türlerinin sonuçları hesaplandıktan sonra bu sonuçları karışık değişken formülünde uygulayarak benzersizlik sonuçları her iki nesne arasında hesaplanır. Örneğin 1 ve 2 nesnelerinin arasındaki karışıklık benzersizliği şöyle hesaplanır: Bu formül tüm nesneler için uygulanır ve sonuçlar şöyle olur. dis(1,2) = 0.92 dis(1,3) = 0.58 dis(1,4) = 0.08 dis(2,3) = 0.5 dis(2,4) = 1.00 Çizelge 3.4. Hasta testlerinin sonucu. Nesne Tanımlayıcı Test 1 Test 2 Test 3 1 Kod-A Çok iyi 445 2 Kod-B Makul 22 3 Kod-C İyi 164 4 Kod-A Çok iyi 1210 28 3.2. Kümeleme algoritmaları Kümeleme analizinin amacı, verilerin belirli bir model üzerinden geçip farklı gruplara ayrılmasıdır. Bu gruplar küme olarak adlandırılmıştır. Kümeleme işlemleri verilerin içerdiği nesnelerin özelliklerine göre yapılır. Benzer özellikli nesneler aynı kümede yer alır. Farklı özellikli nesnelerise farklı kümelerde yer alır. Yukarıdaki bahsi geçen değişken türleri kümeleme analizinden geçirilerek kümelere dağılımı yapılır. Bu veri değişkenlerinin kümelenmesi için kümeleme algoritmaları kullanılır. Kümeleme algoritmaları belirlenen bir model üzerinde çalışan ve verilerin içerdiği nesne özelliklerine göre kümelere ayırmaktadır. Kümeleme algoritmalarının birbirinden farklı çalışma yöntemleri vardır; bazı yoğun bölgelere göre, bazı merkez noktalara göre ve bazı veriyi hiyerarşik şekilde gruplarlar. Yukarıda anlatılan kümeleme yöntemlerine göre her yöntemle ilgili farklı sayıda algoritma vardır, aşağıda önde gelen ve çok yaygın olarak kullanılan kümeleme algoritmalarını anlatmaktayız. 3.2.1. Sonek Ağaçları algoritması Bilgisayar Biliminde en yüksek erişim hızını sağlayan veri yapıları, ağaçlardır ve ağaçlar bu özelliklerini hiyerarşik yapılarına borçludur. Şekil (3.1.)’daki örnek ağaçta oval şekiller düğümleri, oklar ise kenarları temsil eder. Ağaçta bir adet kök düğüm vardır ve arama işlemleri her defasında kök düğümden başlar. Şekil 3.1. Ağacın genel yapısı.[38] 29 Sonek, kök veya gövdesinin sonunda yer alan ektir (Gusfield, 1997). Bir dizinin daha hızlı analiz edilmesi için kullanılan kapsamlı bir veri yapısıdır [38]. Örneğin; karşımızda Gazi Üniversitesi gibi bir harf serisi olursa bu serinin her kelimesi veya serinin her harfini bir kelime farz edersek serinin sonekleri şöyle tanımlanır: T1 = Gaziüniversitesi = txt T2 = aziüniversitesi T3 = ziüniversitesi T4 = iüniversitesi T5 = üniversitesi T6 = niversitesi T7 = versitesi T8 = ersitesi T9 = rsitesi T10 =sitesi T11 =itesi T12= tesi T13 = esi T 14 = si T 15 = i Başka bir örnek “bilişim” kelimesi için tanımlanabilecek sonekler şunlardır: “bilişim, ilişim, lişim, işim, şim, im, ve m”. Dolayısıyla bir kelimenin harf sayısı kadar soneki olur. “Bilişim” kelimesine ait sonekler Şekil (3.2.)’deki ağaçta dizginlenmiştir. Bütün ağaç veri yapılarında olduğu gibi Sonek Ağacı da bir tane kök düğüm içerir ve bütün arama işlemleri kök düğümden başlar. Kökten yaprak düğüme giden yolda karşılaşacağımız alt harf serilerinin birleşimi bir soneki temsil eder. Boyutu ne olursa olsun, her sonek için ağaçta özel bir yol oluşturur. Sonek bilgisinin veri tabanında hangi adreste saklandığını ise yaprak düğümler belirler. Eğer aranan kelime ya da desen yaprak düğüme gelene kadar bulunduysa desen veri tabanında var manasına gelir. Sonek ağacı, verilen bir kelimeye ait tüm sonekleri dizinleyen ağaca denir. Sonek ağacında erişim süresi sadece sorgunun boyutuna bağlıdır. Örneğin “bilişim” kelimesi yedi harften oluşmaktadır ve sonek ağacında “bilişim” kelimesini 30 aradığımızda en çok yedi adım sonunda bilgi erişimi garanti edilir. Veri tabanının büyüklüğünün terabyte mertebesinde olması dahi arama süresini değiştirmez. Şekil 3.2. Bilişim kelimesi için Sonek Ağacı.[34] Ağaçta sorgu ya da desen arama süreci hiçbir zaman desenin boyutundan fazla olamaz. Çünkü ağaç üzerinde kökten yaprak düğüme doğru hareket ederken, her düğüm erişiminde en az bir karakter okunur. Eğer ağaçta aranılacak desen m karakterden oluşuyorsa, en çok m düğüm erişimi sonunda aranılan desene ağaçta ulaşılır. Sonek ağacı, en hızlı veri erişimini sağladığı için etkileyici bir dizinleme tekniğidir. Öte yandan, ağacın önemli dezavantajları da vardır. Bunlar kötü bellek yerleşimi, ağacın çok fazla yer kaplaması ve ağacın dengesiz yapısıdır. Bu sebeplerden dolayı ağacın oluşturulma süreci çok uzun sürebilir. Sonek ağacı konusundaki araştırmalar, bu sorunları çözmeyi amaçlar [39]. 3.2.2. DBSCAN (Density Based Spatial Clustering of Applications with Noise) Algoritması Veri madenciliği kümeleme modellerinden biri olan yoğunluk tabanlı yöntemlere dayalı bu algoritma nesnelerin komşuları ile olan mesafelerini hesaplayarak belirli bir bölgede önceden belirlenmiş eşik değerden daha fazla nesne bulunan alanları 31 gruplandırarak kümeleme işlemini gerçekleştirir. DBSCAN algoritmasını hesaplaması için kullanılan bazı terim ve yaklaşımlar içermektedir ve bunlar: Şekil 3.3. Eps uzaklığı [40] Çekirdek nesne: Bir veri nesnesi önceden belirlenen bir eşik değerden daha çok nokta içeriyorsa bu nesne çekirdek nesnedir. Eps: Bir veri nesnesinin komşularını belirlemek için gerekli olan yakınlık mesafesidir. MinPts: Bir bölgenin yoğun olarak adlandırılabilmesi için Eps komşuluğunda bulunması gereken en az komşu sayısıdır. Doğrudan Yoğunluk Erişilebilir Nokta : p noktası q nun Eps komşuluğunda ise ve q noktası p ye göre çekirdek nesne ise p noktası q ya göre doğrudan yoğunluk erişilebilir noktadır. Yoğunluk Erişilebilir Nokta : diyelim ki pi+1 noktası p noktasına göre Doğrudan Yoğunluk Erişilebilir Noktadır, ve p1,p2,p3… pn Doğrudan Yoğunluk Erişilebilir Nokta olmasını farz edelim p1=p ve pn=q ise q noktası Eps ve MinPts değerlerine göre p noktasına yoğunluk erişilebilirdir. 32 Şekil 3.4. A) Doğrudan Yoğunluk Erişilebilir B) Yoğunluk Erişilebilir noktalar.[40] DBSCAN algoritmasının çalışması iki önemli değer MinPts ve Eps parametreleri bildirilmelidir. Başlangıç olarak rasgele bir p noktası seçilir. Diyelim ki p noktası olarak rasgele seçildi, MinPts ve Eps değerlerine göre yoğunluk erişilebilir olan tüm noktaları bulur, eğer p çekirdek nokta koşulunu sağlıyor ise yeni bir küme keşfetmek üzereyiz anlamında gelir ve bu noktanın komşularını tek tek ele alırız. p noktasına yoğunluk erişilebilir olan tüm noktalara teker teker alarak aynı işlem uygulanır, eğer herhangi bir nokta çekirdek nokta koşulunu sağlamıyorsa bu nokta kümenin sınır noktasıdır. İncelenen tüm noktalardan hiçbiri çekirdek nokta koşulunu sağlamadığı zaman kümenin sınırları belirlenmiş olur. algoritma yeni bir rasgele nokta seçerek aynı işlemleri tekrar eder. Eğer rasgele seçilen nokta çekirdek nokta koşulunu sağlamıyorsa bu nokta gürültü ya da istisna olarak tanımlanır.[41] DBSCAN algoritmasının Çalışma Yöntemi DBSCAN algoritması, veri noktalarının iki ya da çok boyutlu uzayda birbirleri ile olan komşuluklarını ortaya çıkarır. DBSCAN algoritmasının amacı, Bazı bölgelerde kendiliğinden oluşan kümelenmeleri tespit etmek ve bu kümelenmelerden anlamlı sonuçlar çıkarmaktır. Bu tür kümelenmeler bazı noktaların ortak bir eğilimi hakkında önemli bilgiler verir. Örneğin deprem noktalarının kayıtlarının tutulduğu veri tabanındaki kümelenmeler bir fay hattını belirtebilir. Öncelikle veritabanı, Eps ve MinPts değerlerini giriş parametresi olarak alır. Veritabanındaki herhangi bir nesneden başlayarak tüm nesneleri kontrol eder. Eğer kontrol edilen nesne daha önce bir kümeye dahil edilmişse işlem yapmadan diğer nesneye geçer. Eğer nesne daha önce kümelenmemiş ise, bir bölge sorgusu yaparak nesnenin Eps komşuluğundaki 33 komşularını bulur. Komşu sayısı MinPts ’den fazla ise, bu nesne ve komşularını yeni bir küme olarak adlandırır. Daha sonra, önceden kümelenmemiş her bir komşu için yeni bölge sorgusu yaparak yeni komşular bulur. Bölge sorgusu yapılan noktaların komşu sayıları MinPts ’den fazla ise kümeye dahil eder. Bu işlem, incelenen noktaların komşu sayısı MinPts ’den az çıkana kadar sürer. Bu durum kümenin sınırlarına gelindiğini işaret eder [40]. Bölge sorgusunun tekrarlı olarak uygulanması Şekil (3.5. A) de görülmektedir. Şekil (3.5. A) bir küme olmak üzere Q1,Q2,Q3… bölge sorgularını temsil etmektedir. Rastgele seçilen ilk nokta Q1 sorgusunun merkezindeki nokta olsun. Örneğin MinPts=3 için bu nokta çevresinde Q1 bölge sorgusu gerçekleştirildiğinde iki yeni nokta bulunmuştur. Bu noktalar kümeye dahil edilmiştir. Noktalardan biri üzerinde Q2 sorgusu oluşturulmuş ve yeni bir nokta daha bulunmuştur. Bu şekilde bulunan her yeni nokta için Q3, Q4, Q5 sorguları oluşturularak kümenin tamamı bulunmuştur. Şekil 3.5. DBSCAN algoritması [42] DBSCAN algoritması veritabanının her elemanını bir kümeye dahil etmez, istisna verileri süzme yeteneğine sahiptir [42]. 3.3. Bölümleyici kümeleme algoritmaları Bölümleyicikümeleme algoritmaları veri setinden n tane giriş parametre kabul eden ve bu parametreleri k tane kümeye bölen algoritmalardır. Bu tekniği kullanan tüm algoritmalar merkez noktaların kümeni temsil etmesi esasına dayanır. Bölümleyici algoritmaların kolay uygulanabilirliği ve verimli sonuçlar vermesi neden ile yaygın bir şekilde kullanılmamaktadır. Bölümleyici algoritmaların arasından yaygın 34 kullanılan algoritmalar k-means, k-medoid, clara ve clarans, c-means algoritmalarıdır. Bu algoritmalarla ilgili aşağıda temel bilgiler verilmektedir ve açıklamalar yapılmaktadır. Ayrıca tezde kullanılan k-means ve kernel k-means algoritmalarını detaylı bir şekilde anlatılmaktadır. 3.3.1. K-Medoid algoritması Bir grup nesneyi k tane kümeye bölerken esas amaç, birbirine çok benzeyen nesnelerin bir arada olduğu ve farklı kümelerdeki nesnelerin mümkün olduğunca birbirinden benzersiz olduğu kümeleri bulmaktır. K-medoids algoritmasının temeli verinin çeşitli yapısal özelliklerini temsil eden k tane temsilci nesneyi bulma esasına dayanır. En yaygın kullanılan k-medoids algoritması 1987 yılında Kaufman ve Rousseeuw tarafından geliştirilmiştir. Temsilci nesne diğer nesnelere olan ortalama uzaklığı minimum yapan kümenin en merkezi nesnesidir. Bu nedenle, bu bölünme metodu her bir nesne ve onun referans noktası arasındaki benzersizliklerin toplamını küçültme mantığı esas alınarak uygulanır. Kümeleme literatüründe temsilci nesnelere çoğunlukla merkez tipler denilmektedir[43]. Amacın k tane nesneyi bulmak olmasından dolayı bu k-medoids metodu olarak adlandırılmaktadır. k adet temsilci nesne tespit edildikten sonra her bir nesne en yakın olduğu temsilciye atanarak k tane küme oluşturulur. Sonraki adımlarda her bir temsilci nesne, temsilci olmayan nesne ile değiştirilerek kümelemenin kalitesi yükseltilinceye kadar ötelenir. Bu kalite nesne ile ait olduğu kümenin temsilci nesnesi arasındaki ortalama benzersizlik maliyet fonksiyonu kullanılarak değerlendirilir. K-medoids algoritmasında birinci aşama yapılandırma aşamasıdır. Bu aşama kümelemenin başlangıç aşamasıdır, k adet temsilci nesne seçilene kadar devam eder. Başlangıç merkezleri rastgele atanabileceği gibi çeşitli işlemler sonucu da belirlenebilir. Algoritmanın ikinci aşaması değiştirme (Swap) aşamasıdır. Bu aşama temsilci nesneleri geliştirerek kümeleme işleminin verimini arttırmak için uygulanır. Her bir (i,h) çifti için hesaplama yapılır. Değişim ihtimallerinin kümelemeye nasıl bir etkisi olduğu incelenerek her nesnenin diğer nesne ile 35 benzerlik oranını kıyaslayarak kayıt edilir ve bu kıyaslamalar belli mekanizmalarla hesaplanır, sonuca bakarak her bir kombinasyon için kümeleme kalitesi hesaplanır. Şekil 3.6. K-medoid algoritması A) sınıflandırmadan önce veri seti B) İlk rastgele seçilen temsilcilere göre gruplandırmak C) İkinci hesaplanan temsilcilere göre gruplandırmak sonucu.[43] Yapılan benzerlik hesaplamaları sonucunda her nesne için bulunan değer toplanır. Toplamı minimum olan nesnenin kümenin yeni merkezi olarak alınır ve tüm kümeler için benzer işlem yapılır. Yeni temsilci nesneler yeni baştan kümelerin hesaplama işlemlerini yapar ve yeni küme sonuçları elde edilir[44]. K-medoid algoritması aşağıdaki adımlarla gerçekleşir: 1. Başlangıç medoidleri rastgele seçilir 2. Kalan her nesne en yakın olduğu medoid’in kümesine atanır; 3. Medoid olmayan rastgele bir nesne seçilir, Orandom; 4. Oj medoid’i ile Orandom’ın değişişimi için toplam maliyet TCih hesaplanır; 5. Eğer TCih< 0 ise Oj ve Orandom değiştirilerek medoid kümesi yenilenir; 6. Hiçbir değişim olmayıncaya kadar ikinci adıma geri dönülür.[44] K-Medoid algoritmasının Avantajları Kümeleme algoritmaları arasında kararlı sonuç üreten algoritmalardan sayılır. Veri işlemi esnasında ilk adımda merkez seçilen nesneler kümeni etkilelemez. 36 K-Medoid algoritmasının Dezavantajları Veriye uygun k sayısının belirlenmesi için birden fazla denemenin yapılması gerekir. Farklı büyüklüklerde kümelerin tespitinde doğru olmamak imkânı var. Karmaşıklık probleminin hassasiyetinin nedeni ile sadece küçük veri setlerinde uygun olur [44]. 3.3.2. Clara ve Clarans algoritmaları CLARA algoritması büyük veritabanlarında etkili olan 1990 yılında Kaufman ve Rousseeuw tarafından bulunan bölümleyici bir metottur. Bu algoritma K-medoid algoritmasının büyük hacimde verilerin sınıflandıramaması nedeni ile bu soruna çözüm olarak ortaya çıkarılmıştır. Clara algoritması verilerin tümünü kullanarak gruplara ayrılmasının yerine veritabanının temsilcisi olarak içinden bir grup örnek ele alarak gruplandırma işleminde kullanılır. Bu örneğin içindeki merkez noktaları K-Medoid algoritması kullanılarak bulunur. Örnek küme doğru bir şekilde algoritmanı uyguladıktan sonra bulunan merkez noktalar, tüm veritabanı için kullanılarak bulunan merkez noktalarla aynı olur. Bulunan örnek veri seti merkezleri tüm veri seti için merkez olarak alınır ve veriler o merkeze göre sınıflandırılır. Clara algoritmasının iyi avantajlarından biri büyük hacimde olan verilerin sınıflandırmasıdır fakat algoritmanın performansı örnek grubunun boyutuna bağlıdır. Bulunan alınan örnek gruplar içinde bulunan merkezler doğru bir şekilde bulunmuşsa iyi performans ve iyi sonuç elde etmiş olunur fakat gerçek merkezler alınan örnek grubunun içinde olmadığı durumda clara algoritması başarılı sonuçlar vermemektedir[45]. Clarans algoritması 1994 yılında Raymond T. Ng ve Jiawei Han tarafından sunulmuştur, ve algoritmanın esas amacı clara algoritmasının performansını artırmak ve sonuçların örnek grubunun seçimine bağlı olduğu için yanlış gurup merkezi seçmelerini önlemektir. CLARANS algoritmasında CLARA’dan farklı olarak örnek gurubu noktalar algoritmanın her aşamasında değişebilmektedir. Böylece tüm veritabanının örnek 37 gurubunun seçimi tarafsızca gerçekleşmiş olur. Algoritmanın örnek seçimi sürekli değişmektedir ve her seçimde gurup merkezinin performansını hesaplayarak bellekte tutmak gerekmektedir. Clarans algoritmasının hesaplamasında iki esas tanım vardır, bu tanımlar local numara ve max komşu bu iki yaklaşım algoritmanın farklı örnekler üzerinde çalışmasını ve test etmesini sağlar, local numara algoritmanın kaç tane örnek alacağını belirler diğeri ise gurubun etrafındaki maksimim komşu sayısını belirler. Algoritma ilk baştan akışı rastgele bir guruba verir. Seçilen düğümün maliyeti hesaplanır, sonra örnek gurubun etrafındaki komşulardan rastgele birini seçer ve toplam maliyetlerini karşılaştırır, eğer komşunun maliyeti daha eksikse değerler değiştirilir ve yeni seçilen komşu ele alınır ve minimum maliyet kendi maliyeti olarak seçilir buna ilave en iyi merkez düğüm olarak alınır. Aksi takdirde eğer asıl düğümün maliyeti daha az ise komşu hesaptan çıkar ve etrafta yeni komşu ile karşılaştırma başlar. Bu işlem maksimum komşu sayısını doldurana kadar devam eder, komşu sayısı dolunca işlem sonlanır ve başka bir örnek grup seçmeye başlar, yeni örnek grupta aynı işlemi uygular ve bu işlemler local numara sayısına varınca sona erer[46]. Aşağıda verilen adımlar clarans algoritmasının prosedürüdür: Local numara ve max komşu parametreleri girilir. İ değeri 1 eşitlenir ve mini maliyet değerini en büyük değere eşitlenir. Akım rasgele bir düğüme ayarlanır. J parametresi tanımlanır ve değeri 1 e eşitlenir. Akımdan geçerli rasgele bir komşu seçilir S, ve iki düğümün maliyet farkı hesaplanır. Eğer S düğümünün maliyeti akımdaki düğümün maliyetinden daha az ise akım maliyeti S maliyetine eşitlenir ve 3. Adıma tekrar dönülür. Aksi durumda j parametresi 1 değer aratılır. Eğer j parametresi max komşu değerine eşitse adım dörtte geri dön. Aksi durumda j max komşudan büyükse, akım maliyeti ile mini maliyet karşılaştırılır, eğer mini maliyetten eksik ise mini maliyet olarak alınır ve şuandaki akım düğümünü en iyi düğüm olarak alınır. 38 İ parametresi bir değer artırılır, eğer i local numaradan büyükse en iyi düğümü ortaya çıkar ve işlemi sondur, aksi durumda adım 2 ye geri dön[46]. 3.3.3. Fuzzy C-means Algoritması Bulanık Bölümleyici kümeleme tekniklerini en başarılı şekilde kullanan algoritmalar arasından Fuzzy c-means (FCM) algoritmasıdır, bu alanda en iyi yöntem sayılır. Fuzzy c-means algoritması 1973 yılında Dunn tarafından ortaya atılmış ve 1981’ de Bezdek tarafından geliştirilmiştir[47]. Algoritmanın esas mantığı nesnelerin iki veya daha fazla kümeye ait olabilmesine izin vermektir. Bulanık mantık prensibi gereği her veri, kümelerin her birine [0,1] arasında değişen birer üyelik değeri ile aittir. Eğer bir nesne mevcut olan tüm kümelere ait olursa, o nesnenin üyelik değerinin toplamı “1” olmalıdır. Nesne hangi küme merkezine yakın ise o kümeye ait olma üyeliği diğer kümelere ait olma üyeliğinden daha büyük olacaktır. Çoğu bulanık kümeleme algoritması amaç fonksiyon tabanlıdır. Amaç fonksiyonun belirlenen minimum ilerleme değerine yakınlaşırsa kümeleme işlemi tamamlanır. Temel olarak k-means algoritmasına çok benzemekle beraber fuzzy c-means’in k-means’den en önemli farkı, görüldüğü gibi verilerin her birinin sadece bir sınıfa dâhil edilme zorunluluğunun olmamasıdır. Aşağıdaki şekil (3.7.) de k-means ve Fuzzy c-means arasındaki fark gösterilmektedir. Şekil 3.7. A) K-means kümeleri B) fuzzy C-means kümeleri[47]. 39 Fuzzy c-means algoritması amaç fonksiyonu temelli bir metottur. Algoritma, en küçük kareler yönteminin genellemesi olan aşağıdaki amaç fonksiyonunu öteleyerek minimize etmek için çalışır: ∑∑ ‖ ‖ ( ) X veritananında bulunan nesnedir, m üyelik değerinin ağırlığını temsil ediyor ve Cj küme merkezinin prototipini temsil eder. U üyelik matrisi rastgele atanarak algoritma başlatılır. İkinci adımda ise merkez vektörleri hesaplanır. Hesaplanan küme merkezlerine göre U matrisi yeniden hesaplanır. Eski U matrisi ile yeni U matrisi karşılaştırılır ve fark ε’dan küçük olana kadar işlemler devam eder. 3.3.4. K-Means Algoritması K-Means algoritması, veritabanındaki n tane nesnenin k adet kümeye bölümlenmesini sağlar. Kümeleme sonucu küme içi elamanlar arasındaki benzerlikler çok iken, kümeler arası (inter-cluster) elamanları arasındaki benzerlikler çok düşüktür. K-means algoritması veri madenciliğinde kullanılan tipik algoritmadır büyük hacimde olan veri setlerini sınıflandırmasında ve farklı sayıda gruplara ayırmakta kullanılır. K-means algoritması ilk olarak MacQueen tarafından 1967 yılında önerilmiştir, iyi tanımlanırmış kümeli problemleri çözmekte kullanılıyordu. K-means algoritması iki ana parçadan oluşmaktadır birinci parça k merkez değerlerini rastgele belirlemektir, belirlenen k merkez değeri sabit olmalıdır. Diğer parça ise veri setindeki her nesnenin belirlenen k merkez değerlerine uzaklıkları ve değerini kıyaslamaktır, ortaya çıkan her nesnenin her k merkezine uzaklık değerini göze alarak bu nesnelerin hangi kümelere ait olduğu belirlenir, nesnenin hangi merkeze uzaklık açısından daha yakınsa o merkezin kümesine dâhil olmaktadır[48]. Daha sonra, her bir kümenin ortalama değeri hesaplanarak yeni küme merkezleri belirlenir ve tekrar nesne-merkez uzaklıkları incelenir. Şekil (3.9.) K-means algoritmasının örnekleri guruplara ayırmasını göstermektedir. 40 Kümeleme sürecinde türüne özgü olarak hata kareleri ölçütü “square-error criterion” toplamı kullanılır. En düşük E değerine sahip kümeleme en iyi sonucu verir. ∑∑ | | ( ) Şekil 3.8. K-means algoritması ile guruplara ayrılmış veri tabanı nesneleri K=3 [34]. E: veritabanındaki bütün nesnelerin “square error” toplam kümelerin toplam vektörlerinin arasındaki uzaklıklarının karesidir. X: uzayda bir nesneye verilen noktayı gösterir. Xi: Ci kümesinin merkez noktasını gösterir Yukardaki fonksiyonun değerinin ne kadar az olursa k-means algoritmasının o kadar başarılı bir şekilde nesneleri guruplara ayarmış anlamında geliyor. Nesneleri özeliklerine göre koordinasyon uzayında temsil edilir ve koordinasyonun her vektörü nesnenin bir özelini temsil etmektedir ki bu koordinasyonla merkez nokta koordinasyonu (nesneler arasından rastgele seçilen) arasındaki mesafeyi hesaplayarak işleme başlanır [48]. Nesne koordinasyonu ve merkez koordinasyonu arasındaki mesafeyi kıyaslamak için öklit uzaklığı fonksiyonu kullanılır[41]: 41 ( ) [∑( ) ] ( ) D(Xi,Yi) : bulunması istenen iki noktanı arasındaki mesafeni temsil etmektedir. ∑ ( ) : her koordinasyonun x-axis ve y-axis değerlerinin toplam farklarının karesini temsil etmektedir. Dikkate alınması gereken şey koordinasyonla tüm merkezler arasında bu uzaklık formülü uygulanır ve en kısa mesafeye sahip olan merkez nesneni kendi gurubuna almış olmaktadır. k-means algoritmasının aşamaları adım adım olarak şöyle ifade ederiz : 1. Başlangıçta küme merkezini belirlemek için D veri tabanında k tane alt küme oluşturulacak şekilde rasgele n tane nesne seçilir. 2. Her nesnenin ortalaması hesaplanır. Merkez nokta kümedeki nesnelerin niteliklerinin ortalaması, 3. Her nesne en yakın merkez noktanın olduğu kümeye dâhil edilir. 4. Nesnelerin kümelemesinde değişiklik olmayana kadar adım 2’ye geri dönülür[49]. K-means algoritmasının en büyük problemi başlangıçta merkez noktayı belirlemek için seçilen nesnelerin küme içindeki seçiciliğiyle ilgilidir. Eğer kötü bir seçim yapılırsa nesnelerin kümelenmesindeki değişiklik çok sık olur ve farklı sonuçlar doğurabilir. K-means yöntemi, sadece kümenin ortalaması tanımlanabildiği durumlarda kullanılabilir, kullanıcıların k değerini, yani oluşacak küme sayısını belirtme gerekliliği bir dezavantaj olarak görülebilir. Esas önemli olan dezavantaj ise dışarıda kalanlar (outliers) olarak adlandırılan nesnelere karşı olan duyarlılıktır. Değeri çok büyük olan bir nesne, dâhil olacağı kümenin ortalamasını ve merkez noktasını büyük bir derecede değiştirebilir. Bu değişiklik kümenin hassasiyetini bozabilir. Bu sorunu gidermek için kümedeki nesnelerin ortalamasını almak yerine, kümede ortaya en yakın noktada konumlanmış olan nesne anlamındaki medoid kullanılabilir. 42 K-means Algoritmasının Avantajları Bu algoritmanın avantajları uygulanabilirliğinin kolay olması ve büyük veri kümelerinde hızlı çalışabilmesidir. Büyük veri setlerini işlerken nispeten ölçeklenebilir ve verimlidir. Karmaşıklığı diğer kümeleme yöntemlerine göre az. Kmeans algoritması yoğun kitlelerden (bulutlanmış) oluşan veritabanılarda daha iyi uygulanır ve daha verimli sonuçlara varmaktadır [50]. K-means Algoritmasının Dezavantajları Kullanıcının küme sayısını belirlemek zorunluluğu vardır. Kategorik sel ve metin sel içeren veritabanlarının üzerinde uygulanması gerçekleştirilemez. Gürültülü ve sıra dışı verilere duyarlı bir metottur. Kümelemede kullanılan özelliklerin hangisinin kümelemeye daha fazla katkısı olduğunu bilmeyiz. Kümelemeden sonra bazı kümeler boş küme olması ihtimali vardır bu yüzden böyle bir durumda bazı optimizasyonların yapılması gerekir[50]. 3.3.5. Kernel esaslı kümeleme ve Kernel k-means algoritması Kernel esaslı kümeleme standart kümelemeden farklı uzaylarda çalışır. Veri setindeki nesne vektörlerini alıp lineer olmayan fonksiyonları kullanarak farklı daha yüksek uzaya taşır. Kernel esaslı kümeleme yöntemleri vektörleri çok boyutlu uzaya taşır ve kümeleme işlemlerini n boyutlu ortamda yapar. Vektörlerin yüksek uzaylara taşınıp kümelenmesi daha kolay, daha etkili ve kaliteli kümeler elde edilmesini sağlamaktadır[51]. Kernel k-means algoritması standart k-means kümeleme algoritmasının lineer olmayan uzantısıdır. Bu yöntem eş yönlü ve doğrusal ayrılamayan uzayların kümeleme işlemlerini etkili bir şekilde yapılmış olması kanıtlanmıştır. Bu metot tekrarlamalı bir metottur, ki başlangıçta veri noktaları lineer olmayan dönüşümleri (.) kullanarak giriş uzayından çok boyutlu uzayına dönüştürür ve sonra işlemi gerçekleştirir ve kümeleme hata oranını minimize etmeye çalışır. Başka bir deyişle 43 kernel k-means algoritması aynı standart k-means algoritmasının işini çok boyutlu uzayda gerçekleştirir. Veri setindeki x ve y noktalarının çok boyutlu uzayda (x). (y) transformasyonunun hesaplaması için K(x,y) fonksiyonu kullanılır, ki K: D X D→ R ve buna kernel fonksiyonu adı verilir. Kernel fonksiyonları farklı türlerde bulunmaktadır ve genelde en çok sayda kullanılan temel fonksiyonlar şunlardır: Lineer kernel : K(xi, xj) = xi ・ xj, Polynomial kernel a rütbesinde: K(xi, xj) = (xi ・ xj + 1)a, Radial(RBF) kernel: K(xi, xj) = k(xi, xj) = exp(−r||xi − xj ||2). Kernel k-means algoritmasının tekrarlamalı işlevinde algoritmanın K(xi, xj) değerinin hesaplamasını gerçekleştirir, tekrarlamalı adımalar başlamadan önce hazırlanması gereken metris hazırlanır ki bu metris kernel metrisidir H = [Kij]nxn, ve nesnenin (i,j) li girişi Kij= K (xi,xj). Kernel k-means algoritması için zaman ve alan gereksinimleri O(n2)dir, ki burada n veri setinin hacmini ifade ediyor. Ayrıca algoritmanın gereksinimlerinden olan küme sayısının belirlenmesi k ve başlangıç noktaların belirlenmesidir[52]. Diyelim ki D= {x1,x2,… ,xn} n hacminde olan bir veri setidir, k veri setinin bölünmesi istenen küme sayısıdır. µ(0) başlangıç çekirdek noktaları ve π(0) veri setinin başlangıç bölünmesidir. Kernel k-means algoritması tekrarlamalı bir metottur, k, µ(0) ve başlangıç çekirdek noktaları ve π(0) girdi olarak alır ve veri seti için son bölme sonuçlarını ΠD çıkış olarak elde eder. Kernel k-means algoritmasını temsil eden ve kriter fonksiyonunu minimize etmek için kullanılan fonksiyon şöyledir: ∑ ‖ ( ) ∑ ‖ ( ) ( ) Bu fonksiyonda mj kendi kümesine ait Ci kümesini temsil etmektedir ki mj: ∑ ( ) ( ) | | ( ) 44 Taşınılmış çok boyutlu uzayda. Nesnelerin taşındığı hesaplama uzayında iki nokta ϕ(xi) ve ϕ(xj) arasındaki uzaklığı hesaplamak için aşağıdaki fonksiyon kullanılır: ‖ ( ) ( )‖ ( ) ( ( ) ) ( ( ) ( ) ) ( ‖ hesaplaması Ayrıca ‖ ( ) ) ( ) değerini göze almadan aşağıdaki açıklamaya göre hesaplayabiliriz: ‖ ( ) ‖ ‖ ( ) ∑ ( ) ( ) | | ( ) ( ) ( ‖ ) ( ) Ki, ( ) | | ∑ ( ) ( ) ( ) Ve ( ) | | ∑ ( ) ∑ ( ( ) ( ) ( ) ) Fonksiyonlarına göre hesaplanmaktadır. Tekrarlamalı kernel k-means algoritmasının adımları aşağıdaki gibidir[53]: | ve G(Cj) bulunur. 1. Her Cj kümesi için,| 2. Her xi nesnesi için her kümeye göre F(xi,Cj) değeri hesaplanır. 3. ‖ ( ) ‖ değeri hesaplanır ve xi nesneyi en yakın olan kümeye dahil edilir. 4. Küme merkezi mj değeri güncellenir ki j=1… k ya kadar. 45 5. 1. Adımdan 4. Adıma kadar kümelerin sonuçları birbirine yaklaşıncaya kadar tekrar edilir. Çıkış: Son bölünme sonuçları ve kümeler ΠD={C1,C2,…,Ck}. 46 4. Uygulama 4.1. Program Arayüzü Bu bölümde üçüncü bölümde anlatılan bölümleyici kümeleme algoritmaları ele alınacaktır. Bölümleyici kümeleme algoritmalarını bu bölümde pratik bir şekilde gösterilmeye çalışılacaktır. Bölümleyici kümeleme algoritmaları arasından ele alınacak iki algoritma k-means algoritması ve kernel k-means algoritmalarıdır. Bu iki algoritma farklı dağılımlı ve yoğunluklu veri setlerinde test edilecek ve çıkan sonuçlar karşılaştırılacaktır. K-means algoritmasında mesafe kullanmak için iki tane yöntem kullanılacaktır; bunların ilki Öklid formülü diğeri ise kosinüs formülüdür. Bu iki yöntem vektörlerin arasındaki benzerliği hesaplayarak mesafeyi ve vektörle hangi merkeze daha yakın olduğunu belirler. Diğer tarafta ise kernel k-means algoritması içinde RBF (Radial Basis Function) kernal ve polynomial kernel yöntemleri olmak üzere iki adet yöntem kullanılmaktadır. Veri setleri kullanılan bu yöntemlere uygulanarak her veri setinin türüne göre sonuçlar elde edilmektedir. Kullanılan veri setleri hacmi ve dağılım şekline göre şöyle sıralanmaktadır: 1. Küçük hacimli düz dağılımlı veri setleri. 2. Orta hacimli düz dağılımlı veri setleri. 3. Büyük hacimli düz dağılımlı veri setleri. 4. Küçük hacimli yığılı dağılımlı veri setleri. 5. Orta hacimli yığılı dağılımlı veri setleri. 6. Büyük hacimli yığılı dağılımlı veri setleri. Yukarıdaki belirtilen özellikte veri setleri iki algoritmanın yöntemlerine tek tek uygulanarak sonuçlar elde edilir. Elde edilen sonuçlar tüm yöntemler ve veri türleri için karşılaştırılır. Karşılaştırma yöntemi aşağıdaki gibidir: 1. Standart k-means kosinüs ve Öklid yöntemleri arasında hız karşılaştırması. 2. Standart k-means kosinüs ve Öklid yöntemleri arasında bellek kaplama karşılaştırması. 47 3. Standart k-means kosinüs ve Öklid yöntemleri arasında kalite tamlık skoru karşılaştırması. 4. Standart k-means kosinüs ve kernel k-means RBF yöntemleri arasında hız karşılaştırması. 5. Standart k-means kosinüs ve kernel k-means RBF yöntemleri arasında bellek kaplama karşılaştırması. 6. Standart k-means kosinüs ve kernel k-means RBF yöntemleri arasında kalite tamlık skoru karşılaştırması. 7. Standart k-means kosinüs ve kernel k-means polynomial yöntemleri arasında hız karşılaştırması. 8. Standart k-means kosinüs ve kernel k-means polynomial yöntemleri arasında bellek kaplama karşılaştırması. 9. Standart k-means kosinüs ve kernel k-means polynomial yöntemleri arasında kalite tamlık skoru karşılaştırması. 10. Standart k-means Öklid ve kernel k-means RBF yöntemleri arasında hız karşılaştırması. 11. Standart k-means Öklid ve kernel k-means RBF yöntemleri arasında bellek kaplama karşılaştırması. 12. Standart k-means Öklid ve kernel k-means RBF yöntemleri arasında kalite tamlık skoru karşılaştırması. 13. Standart k-means Öklid ve kernel k-means polynomial yöntemleri arasında hız karşılaştırması. 14. Standart k-means Öklid ve kernel k-means polynomial yöntemleri arasında bellek kaplama karşılaştırması. 15. Standart k-means Öklid ve kernel k-means polynomial yöntemleri arasında kalite tamlık skoru karşılaştırması. Uygulama ara yüzü,matlab 7.7.0 2009 ortamında hazırlanmıştır. Kümeleme kalite karşılaştırması için “completeness score” fonksiyonu kullanılmıştır. Bu fonksiyonu kullanmak için python 2.3.7 versiyonundansklern kütüphanesinden yararlanılmıştır. Bunun sonucunda matlab ortamında hazırlanan ara yüz meydana gelmiştir. 48 Uygulama çalıştırıldığında ilk olarak programın genel ara yüzü ile karşılaşırız. Programın ara yüzü genel olarak üç kısımdan oluşmaktadır; ilk kısmı veri seti seçme kısmı, ikinci kısmı iki algoritmanın çalıştırma tuşları ve çizim ekranı, üçüncü kısmı ise algoritmaların performanslarına göre verilen sonuçlar ki bu sonuçları karşılaştırmada kullanacağız. Uygulamanın genel ekran görüntüsü aşağıdaki şekil (4.1) deki gibi görülmektedir: Şekil 4.1. kümeleme uygulamasının ekran görüntüsü. Uygulamanın ilk parçasına bakacak olursak, bu bölüm veri seti bölümü adı altında geçmektedir. Bu bölümde programa yüklenen veri setleri (.txt) uzantılı veri setlerinden ibarettir. Bunun nedeni (.txt) uzantısı veri setlerinin kolay kullanış sekli ve matlab programı içinde esneklik göstermesi, ayrıca az bellek kullanması ve hızlı bir şekilde programa yüklenmesidir. Veri seti bölümünde bir tane frame içinde dört nesne bulunmaktadır, Bunlar veri seti seçme tuşu, veri setinin bulunduğu dosya uzantısı, veri setinin orijinal kümeleme etiket dosyası ve etiket tuşunun bulunduğu dosya uzantısıdır. Veri seti seçme ekranı aşağıdaki şekil (4.2) de gösterilmektedir. 49 Şekil 4.2. Veri seti seçme ekranı. Veri setini seçmek için şekilde göründüğü gibi dosya seç tuşuna basılır, dosya seç tuşuna basıldığında yeni bir dosya seçme ekranı açılacak, bu ekrandan veri seti (.txt) uzantılı olarak seçilir. Ayrıca veri setinin orijinal kümeleme dosyasını seçmek için lebel seç tuşu kullanılır ve aynı şekilde dosya yüklenir. Aşağıdaki şekil (4.3) te veri tabanı seçme ekranı gösterilmektedir. Şekil 4.3. veri seti seçmek için göz at ekran görüntüsü. Yukarda bahsedilen konu hazırlanan uygulamanın ilk parçası olan veri seti yükleme kısmı idi. Uygulamanın ikinci kısmı algoritmaların çalıştırma nesnelerini içermektedir. Bu bölüm iki parçadan oluşmaktadır, her parça bir tane algoritma çalıştırır. Bölümlerin bir parçası standart k-means algoritması için diğeri ise kernel kmeans algoritması için kullanılmıştır. Her iki parçada aynı sayıda nesne içermektedir ve içerikleri hariç birçoğunun görevi aynıdır. Aşağıdaki şekil (4.4) uygulamanın ikinci parçasını göstermektedir. 50 Şekil 4.4. k-means ve kernel k-means algoritmaların çalıştıran kısmının ekran görüntüsü. Yukarıdaki şekil (1) de görülen iki parçanın sol tarafı standart k-means algoritmasını ifade etmektedir. K-means algoritmasını çalıştırmak için kendine özel olan alanda dört tane nesne bulunmaktadır, bu nesneler algoritma çalıştırma tuşu, metin kutusu, seçenek kutusu ve çizim ekranından oluşmaktadır. Veri seti yüklendikten sonra kmeans algoritması bölümünün metin kutusuna küme sayısı yazılması gerekir. Metin kutusuna yüklenen veri setinin kaç adet sınıfa ayrılacağına dair bilgi girilmesi gerekir. Sınıf sayısını belirledikten sonra seçenek kutusuna sıra gelir, seçenek kutusunun görevi algoritmanın kümelemede hangi benzerlik formülünü kullanacağını belirlemektir. Standart k-means algoritmasının uygulamasını hesaplamak için iki tane benzerlik hesaplama formülü kullanılmıştır, bunların birincisi Öklid formülü diğeri ise kosinüs formülüdür. Benzerlik formülü seçimi aşağıdaki şekil 4.5’te gösterilmektedir. 51 Şekil 4.5. k-means algoritması için benzerlik formülü seçim kutusu. Kümeleme işleminde kullanılacak hesaplama formülü kutudan seçildikten sonra sıra uygulama tuşuna gelecek. Uygulama tuşuna basılarak k-means algoritması yüklenen veri setini alıp, belirlenen sınıf sayısı ve seçilen benzerlik formülüne göre veri setindeki her nesneyi en yakın kümeye göndererek kümeleme işlemini gerçekleştirir. İkinci algoritmanın (kernel k-means algoritması) tarafına gelirsek çalıştırma tuşunun kodlama kısmı ve hesaplama yöntemi seçimi kısmı hariç diğer nesneler standart kmeans algoritmasının nesnelerinin aynısını içermektedir. Kernel k-means algoritması için iki tane hesaplama fonksiyonu kullanılmıştır, bunlar RBF kernel ve Polynomial kernel fonksiyonlarıdır. Veri seti yüklendikten sonra sınıf sayısı girilir ve hesaplamak için iki kernel fonksiyonlarından biri seçilir ve sonra da algoritmayı çalıştırmak için uygula tuşuna basılır ve sonuçlar elde edilir. 52 Uygulamanın üçüncü kısmı sonuçlar kısmından ibarettir. Uygulama başlangıcından beri iki algoritmanın çalıştırılması ve sonuçlarının elde etmesini hedeflemektedir. Sonuçlar kısmı bu uygulamanın en önemli kısmı sayılabilir çünkü algoritmaların çalıştırma performansını yansıtan bir bölümdür. Veri setleri üzerinde iki algoritmanın arasındaki karşılaştırma sonuçları ve analizi bu bölüme bağlıdır. Aşağıdaki şekil 4,6’da uygulamanın sonuçlar bölümünü göstermektedir. Şekil 4.6. k-means algoritması ve kernel k-means algoritmasının sonuç bölümü. Sonuç bölümü iki parçadan oluşmaktadır ve bunların biri standart k-means sonuçlarını diğeri kernel k-means algoritmasının sonuçlarını içerir. Her iki parça aynı nesneleri içermektedir. Bu bölümde bulunan nesneler algoritmaların hız, kalite ve bellek kaplama performanslarını göstermektedir. Bu bölümde her algoritmaya ait olan parça kümeleme hızı ile ilgili birer kutu içermektedir. Algoritmalar çalıştırılınca program her iki algoritma için farklı olarak uygulama hızını hesaplama işlemini gerçekleştirir ve programın içindeki hız değişkeninin değerini sonuç bölümündeki 53 kümeleme hızı kutucuğuna yerleştirir. Kümeleme hızının hesaplamasında matlab programlama dilinin içindekitik…tok komutundan yaralanılmıştır. Kümeleme hızının alt tarafında ise ikinci performans hesaplama kutusu yerleştirilmiştir ve buda kümeleme işleminin kalitesini hesaplamaktadır. Kalite hesaplama kısmı küme tamlık skoru adı altında geçmektedir. Kümeleme işleminin tamamlanması ile birlikte veri setinin kümeleme sonucu ele alınıyor ve veri setinin gerçek sınıfları ile karşılaştırılıyor. Sonuçta tamlık değeri 0-1 arasında çıkmaktadır. Bu çıkan tamlık değeri ise algoritmaların ne kadar gerçek kümelemeye yakın olduğunu yansıtır. Değer ne kadar yüksek ise algoritma o kadar iyi kümeleme işlemi yapmış anlamına gelmektedir. Tamlık skorundan sorumlu olan program parçası matlab haricinde olup Python programlama dilinde gerçekleştirilmiştir. Python da sklren kütüphanesi kullanılarak içindeki completness_scorefonksiyonu ile bu işlem gerçekleştirilmiştir, sonrada hesaplama sonucunu matlab’taki ara yüzüne taşıyarak kalite kutusuna özel olan bölgeye yerleştirilmiştir. Sonuç bölümünün üçüncü nesnesi bellek kaplama kutucuğudur. Bellek kaplama kutusu tamlık skoru nesnesinin tam altında yer almaktadır. Bu nesnede algoritmalar çalıştırıldığında kümeleme işlemi gerçekleştirilinceye kadar kaç MB bellek kullanılması gerektiğini göstermektedir. İki algoritmadan hangisi çalıştırılırsa program bellek hesaplama bölümü ile devreye girmeye başlar, algoritmanın ne yaptığını ve ne kadar değişken kullandığını ve her değişkenin kaç MB bellek kullandığını hesaplamaya başlar. Hesaplamanın sonunda toplam bellek kullanımında ne kadar kullanıldığıyla ilgili bilgi bellek kaplamaya özleştirilen bölgeye gönderilir. Bellek kaplama işlemini uygulamadaki programlama kısmı matlab programlama dilindeki who-whos komutunu kullanarak belleği byte halinde hesaplamayı gerçekleştirir ve sonra program byte ile olan hacmi MB haline dönüştürüp ara yüzünde belleğe özel bölgeye yerleştirir. Uygulamanın ara yüzü genel olarak yukarıdaki anlatılan kısımlardan oluşmaktadır. Programı çalıştırmak için veri seti yüklenir. Veri seti text olarak yüklendikten sonra program kullanıcısı veri setinin kaç kümeye ayrılması gerektiğini belirlemeli ve 54 kutuya girişi sayı olarak gerçekleştirmelidir. Kümeleme algoritmalarının daha iyi performans göstermesi için küme sayısının girişi veri setinin orijinal küme sayısına göre girilmesi gerekir. Bu yüzden kullanıcının seçtiği veri seti ile ilgili bilgi sahibi olması gerekir. Kullanıcı, küme sayısı kutusunun alt tarafında bulunan seçenek kutusundan kullanılacak formülü seçecek, bu seçenek iki algoritma için de geçerli olacaktır. Yukarıdaki bilgilerin tamamı kullanıcı tarafından girildikten sonra kullanıcı iki algoritmanın müstakil olan uygulama tuşlarını kullanarak algoritmanın çalıştırılmasını gerçekleştirir. Aşağıdaki şekil 4.7, algoritmaların çalıştırıldığı an ve veri setinin nasıl kümelere ayrıldığı çizim ekranını göstermektedir. Şekil 4.7. k-means algoritması ve kernel k-means algoritmasının kümeleme yapmış ekran çıktısı. Yukarıdaki şekilde görüldüğü gibi k-means ve kernal k-means algoritmalarının kümeleme yapmış hali böyle yansımaktadır. Kümeleme yapan algoritmaların sağ tarafında bulunan sonuç ekranı da aynı anda sonuç verir. Her iki algoritma için hız, tamlık skoru ve bellek kaplama sonuçlarını gösterir ve hangi algoritmanın daha iyi performansla çalıştığını belirler. 4.2. Karşılaştırma Karşılaştırma bu tezde bahsi geçen iki algoritmanın arasında 4. bölümde anlatılan ara yüzü kullanarak üç performans açısından yapılmaktadır. Bunlar kümeleme hızı, 55 kümeleme tamlık skoru ve küme bellek kaplamasıdır. Karşılaştırma iki algoritma arasında olacaktır ve kümeleme işlemi belli veri setleri üzerinde gerçekleştirilecektir. Algoritmaların her biri iki yöntem kullanmaktadır. Karşılaştırma işlemi bu yöntemleri göz önünde bulundurarak karşılaştırmalar gerçekleştirilecektir. Standart k-means algoritması için kullanılan yöntemler uzaklık formülleri veya bazı kaynaklara göre benzerlik formüllerinden ibarettir. Bu tezde standart k-means algoritması için kullanılan uzaklık formüllerinden olan Öklid formülü ve kosinüs formülleridir. Kernel k-means algoritması için kernel esaslı fonksiyonlar kullanılmıştır ve bu tezde kernel k-means algoritması için kullanılan fonksiyonlar RBF kernel fonksiyonu ve Polynomial kernel fonksiyonlarıdır. Karşılaştırmalar veri setlerini ara yüzünde uygulayarak sonuçları tablolar halinde göstermiştir. Tablolar veri setinin hacmi, dağılımı ve algoritma performansına göre düzenlenmektedir. Veri setlerinin hacmi ve dağılımlarının algoritmaların üzerinde gösterdiği etkiye göre tabloların sonuçları elde edilmiştir. Tabloların sonuçlarından yola çıkarak sonuçlar bölümü gösterilecektir. Yapılan karşılaştırma sonuçları iki algoritma için üç aşamada gösterilmektedir. Gösterilen üç aşama veri setlerinin hacmine göre yapılmıştır. Bu tezde büyük hacimli veri setlerinin sınırları 5000-10000 nesne aralığında, orta hacimli veri setleri 20005000 nesne aralığında ve küçük veri setleri 2000 nesnenin altında olarak belirlenmiştir. İlk aşamada büyük hacimli veri setleri kullanılarak algoritmalar uygulanmıştır. Büyük hacimli veri setlerinde kullanılan veri setlerinin bilgileri sırasıyla şöyledir. S1 adlı veri seti küzey finlanda üniversitesi görüntü çözümleme web sitesinden alınmıştır. Veri seti sentatik veri içermektedir[54]. S2 adlı veri seti küzey finlanda üniversitesi görüntü çözümleme web sitesinden alınmıştır. Veri seti sentatik veri içermektedir[54]. S3 adlı veri seti küzey finlanda üniversitesi görüntü çözümleme web sitesinden alınmıştır. Veri seti sentatik veri içermektedir[54]. 56 S4 adlı veri seti küzey finlanda üniversitesi görüntü çözümleme web sitesinden alınmıştır. Veri seti sentatik veri içermektedir[54]. İkinci aşamada orta hacimli veri setleri kullanılarak algoritmalar uygulanmıştır Kullanılan veri setleri ise. D15 adlı veri seti şekillendirlmiş veriler içermektedir[55]. D31 adlı veri seti şekillendirlmiş veriler içermektedir[56]. Dim veri setileri resim pixelleri verileri içermektedir[55]. Yeast veri seti protein lokalizasyon verşleri içerir[57]. Küçük veri setleri ise R15 adlı veri seti şekillendirlmiş veriler içermektedir[55]. Aggregation adlı veri seti şekillendirlmiş veriler içermektedir[58]. Compound veri seti çok boyutlu görüntü işleme verileri içerir[59]. Elements veri seti FTS şirketinin elemanlarının hareket bilgilerini içerir[60]. Bu uygulamada kullanılan veri setleri uluslararası makine öğrenme veri kaynağı UCI ve SIPU sitelerinden alınmıştır[61],[62][63]. 4.2.1. Büyük veri setleri karşılaştırma sonuçları Bu aşamada büyük veri setleri kullanılarak her iki algoritmanın uygulanması gerçekleştirilmiştir. Sonuçlar aşağıdaki tablolarda yerleştirilmiştir. Karşılaştırma tablolarında k-maeans algoritması tarafından iki hesaplama formülü kullanılmıştır. Bunlar Öklid ve kosinüs hesaplama formülleridir. Kernel k-means algoritması tarafında ise RBF ve polynomial kernel fonksiyonlarıdır. İki algoritma için belirtilen bu formüller ve fonksiyonlar için karşılaştırmalar aşağıda göstermektedir: İlk karşılaştırma (Bkz. çizelge 5.1) k-means Öklid formülü ile kernel k-means (RBF fonksiyonu) arasında yapılmıştır. K-means kümeleme hız ortalaması dört veri seti için 6.768 saniye, kümeleme tamlık skoru ise 0.683ve kümeleme bellek kaplaması ise 0.337 MB olarak elde edilmiştir. Diğer tarafta kernel k-means algoritması için hız ortalaması 9.819 saniye, kümeleme tamlık skoru ise 0.858 ve kümeleme bellek kaplaması ise 226.3 MB olarak elde edilmiştir. 57 Çizelge 5.1. k-means algoritması (Öklid formülü) kernel k-means algoritması (RBF fonksiyonu) büyük hacimli veri setleri üzerinde karşılaştırma tablosu sonucu. NO. Dağılım K-means algoritması Kernel k-means algoritması Türü (Öklid formülü) (RBF fonksiyonu) Hız Tamlık Bellek Hız skoru Tamlık Bellek skoru 1 Kütleli 8.367 0.659 0.363 13.63 0.930 261.5 2 Düz 6.258 0.651 0.363 11.15 0.846 261.5 3 Kütleli 6.936 0.796 0.311 7.252 0.923 191.1 4 Düz 5.513 0.629 0.311 7.245 0.734 191.1 Ortalama 6.768 0.683 0.337 9.819 0.858 226.3 Düz dağılım Ort. Kütleli dağılımlı Ort. 5.885 0.64 0.337 9.197 0.79 226.3 7.651 0.727 0.337 10.441 0.927 226.3 İkinci karşılaştırma (Bkz. çizelge 5.2) k-means Öklid formülü ile kernel k-means (polynomial fonksiyonu) arasında yapılmıştır. K-means kümeleme hız ortalaması dört veri seti için 6.768 saniye, kümeleme tamlık skoru ise 0.683ve kümeleme bellek kaplaması ise 0.337 MB olarak elde edilmiştir. Diğer tarafta kernel k-means algoritması için hız ortalaması 9.668 saniye, kümeleme tamlık skoru ise 0.8435ve kümeleme bellek kaplaması ise 226.3 MB olarak elde edilmiştir. Aşağıdaki üçüncü tabloda ise k-means (kosinüs formülü) ile kernel k-means (RBF fonksiyonu) arasındaki karşılaştırma sonuçları verilmiştir. K-means kümeleme hız ortalaması dört veri seti için 6.457 saniye, kümeleme tamlık skoru ise 0.628 ve kümeleme bellek kaplaması ise 0.337 MB olarak elde edilmiştir. Diğer tarafta kernel k-means algoritması için hız ortalaması 9.816 saniye, kümeleme tamlık skoru ise 0.858 ve kümeleme bellek kaplaması ise 226.3 MB olarak elde edilmiştir. Karşılaştırmanın dördüncü tablosu ise k-means (kosinüs) formülü ile kernel k-means (polynomial fonksiyonu) arasındaki karşılaştırma sonuçlarını içermektedir. K-means 58 kümeleme hız ortalaması dört veri seti için 6.457 saniye, kümeleme tamlık skoru ise 0.628 ve kümeleme bellek kaplaması ise 0.337 MB olarak elde edilmiştir. Diğer tarafta kernel k-means algoritması için hız ortalaması 9.668 saniye, kümeleme tamlık skoru ise 0.843 ve kümeleme bellek kaplaması ise 226.3 MB olarak elde edilmiştir. Çizelge 5.2. k-means algoritması (Öklid formülü) kernel k-means algoritması (Polynomial fonksiyonu) büyük hacimli veri setleri üzerinde karşılaştırma tablosu sonucu. NO. Dağılım K-means algoritması Kernel k-means algoritması Türü (Öklid formülü) (Polynomial fonksiyonu) Hız Tamlık Bellek Hız skoru Tamlık Bellek skoru 1 Kütleli 8.367 0.659 0.363 10.60 0.856 261.5 2 Düz 6.258 0.651 0.363 8.845 0.804 261.5 3 Kütleli 6.936 0.796 0.311 8.767 0.931 191.1 4 Düz 5.513 0.629 0.311 10.46 0.783 191.1 Ortalama 6.768 0.683 0.337 9.668 0.843 226.3 Düz dağılım Ort. Kütleli dağılımlı Ort. 5.885 0.64 0.337 9.652 0.793 226.3 7.651 0.727 0.337 9.684 0.893 226.3 K-means (Öklid formülü) ile k-means (kosinüs formülü) arasında yapılan karşılaştırma sonuçlarında da (Bkz. Çizelge 5.5) k-means (Öklid) kümeleme hız ortalaması dört veri seti için 6.768 saniye, kümeleme tamlık skoru ise 0.683ve kümeleme bellek kaplaması ise 0.337 MB olarak elde edilmiştir. Diğer tarafta kmeans (kosinüs) kümeleme hız ortalaması dört veri seti için 6.457 saniye, kümeleme tamlık skoru ise 0.628 ve kümeleme bellek kaplaması ise 0.337 MB olarak elde edilmiştir. 59 Çizelge 5.3. k-means algoritması (Kosinüs formülü) kernel k-means algoritması(RBF fonksiyonu) büyük hacimli veri setleri üzerinde karşılaştırma tablosu sonucu. NO. Dağılım K-means algoritması Kernel k-means Türü (Kosinüs formülü) algoritması (RBF fonksiyonu) Hız Tamlık Bellek Hız Tamlık skoru Bellek skoru 1 Kütleli 8.367 0.659 0.363 13.63 0.930 261.5 2 Düz 6.085 0.700 0.363 11.15 0.846 261.5 3 Kütleli 5.724 0.694 0.311 7.252 0.923 191.1 4 Düz 5.655 0.459 0.311 7.245 0.734 191.1 Ortalama 6.457 0.628 0.337 9.816 0.858 226.3 Düz dağılım Ort. 5.87 0.579 0.337 9.197 0.79 226.3 Kütleli dağılımlı Ort. 7.046 0.676 0.337 10.441 0.927 226.3 Çizelge 5.4. k-means algoritması (Kosinüs formülü) kernel k-means algoritması (Polynomial fonksiyonu) büyük hacimli veri setleri üzerindekarşılaştırma tablosu sonucu. NO. Dağılım K-means algoritması Kernel k-means Türü (Kosinüs formülü) algoritması (Polynomial fonksiyonu) Hız Tamlık Bellek Hız skoru Tamlık Bellek skoru 1 Kütleli 8.367 0.659 0.363 10.60 0.856 261.5 2 Düz 6.085 0.700 0.363 8.845 0.804 261.5 3 Kütleli 5.724 0.694 0.311 8.767 0.931 191.1 4 Düz 5.655 0.459 0.311 10.46 0.783 191.1 Ortalama 6.457 0.628 0.337 9.668 0.843 226.3 Düz dağılım Ort. 5.87 0.579 0.337 9.652 0.793 226.3 Kütleli dağılımlı Ort. 7.046 0.676 0.337 9.684 0.893 226.3 60 Çizelge 5.5. k-means algoritması (Kosinüs formülü) k-means algoritması (Öklid formülü) büyük hacimli veri setleri üzerinde karşılaştırma tablosu sonucu. NO. Dağılım K-means algoritması K-means algoritması Türü (Kosinüs formülü) (Öklid formülü) Hız Tamlık Bellek Hız skoru Tamlık Bellek skoru 1 Kütleli 8.367 0.659 0.363 8.367 0.659 0.363 2 Düz 6.085 0.700 0.363 6.258 0.651 0.363 3 Kütleli 5.724 0.694 0.311 6.936 0.796 0.311 4 Düz 5.655 0.459 0.311 5.513 0.629 0.311 Ortalama 6.457 0.628 0.337 6.768 0.683 0.337 Düz dağılım Ort. 5.87 0.579 0.337 5.885 0.64 0.337 Kütleli dağılımlı Ort. 7.046 0.676 0.337 7.651 0.727 0.337 Çizelge 5.6. kernel k-means algoritması (RBF fonksiyonu) kernel k-means algoritmas (Polynomial fonksiyonu) büyük hacimli veri setleri üzerinde karşılaştırma tablosu sonucu. NO. Dağılım Kernel k-means algoritması Kernel k-means algoritması Türü (RBF fonksiyonu) (Polynomial fonksiyonu) Hız Tamlık Bellek Hız skoru Tamlık Bellek skoru 1 Kütleli 13.63 0.930 261.5 10.60 0.856 261.5 2 Düz 11.15 0.846 261.5 8.845 0.804 261.5 3 Kütleli 7.252 0.923 191.1 8.767 0.931 191.1 4 Düz 7.245 0.734 191.1 10.46 0.783 191.1 Ortalama 9.816 0.858 226.3 9.668 0.843 226.3 Düz dağılım Ort. 9.197 0.79 226.3 9.652 0.793 226.3 61 4.2.2. Orta hacimli veri setleri karşılaştırma sonuçları İkinci aşamada yukarıdaki aşamada olduğu gibi karşılaştırmalar yapılmaktadır. Bu aşamada orta hacimli veri setleri kullanılarak her iki algoritmanın üzerinde uygulanmıştır ve sonuçlar aşağıdaki tablolarda yerleştirilmiştir. Karşılaştırma tablolarında k-maeans algoritması tarafından iki hesaplama formülü kullanılmıştır: İlk karşılaştırma (Bkz. çizelge 5.7) k-means Öklid formülü ile kernel k-means (RBF fonksiyonu) arasında yapılmıştır. K-means kümeleme hız ortalaması dört veri seti için 2.22saniye, kümeleme tamlık skoru ise 0.657ve kümeleme bellek kaplaması ise 0.161MB olarak elde edilmiştir. Diğer tarafta kernel k-means algoritması için hız ortalaması 2.708saniye, kümeleme tamlık skoru ise 0.881 ve kümeleme bellek kaplaması ise 24.07 MB olarak elde edilmiştir. Çizelge 5.7. k-means algoritması (Öklid formülü) kernel k-means algoritması (RBF fonksiyonu) orta hacimli veri setleri üzerinde karşılaştırma tablosu sonucu. NO. Dağılım K-means algoritması Kernel k-means algoritması Türü (Öklid formülü) (RBF fonksiyonu) Hız Tamlık Bellek Hız skoru Tamlık Bellek skoru 1 Kütleli 1.991 0.782 0.097 2.396 0.930 17.28 2 Düz 1.803 0.656 0.088 1.871 0.851 14.03 3 Kütleli 2.970 0.673 0.158 3.825 0.997 47.88 4 Düz 2.117 0.617 0.300 2.738 0.746 17.12 Ortalama 2.22 0.657 0.161 2.708 0.881 24.07 Düz dağılım Ort. Kütleli dağılımlı Ort. 1.96 0.636 0.194 2.30 0.798 15.58 2.48 0.728 0.128 2.51 0.964 32.58 İkinci karşılaştırma (Bkz. çizelge 5.8) k-means Öklid formülü ile kernel k-means (polynomial fonksiyonu) arasında yapılmıştır. K-means kümeleme hız ortalaması dört veri seti için 2.22 saniye, kümeleme tamlık skoru ise 0.657ve kümeleme bellek kaplaması ise 0.161 MB olarak elde edilmiştir. Diğer tarafta kernel k-means 62 algoritması için hız ortalaması 2.607 saniye, kümeleme tamlık skoru ise 0.864 ve kümeleme bellek kaplaması ise 24.07 MB olarak elde edilmiştir. Çizelge 5.8. k-means algoritması (Öklid formülü) kernel k-means algoritması (Polynomial fonksiyonu) orta hacimli veri setleri üzerinde karşılaştırma tablosu sonucu. NO. Dağılım K-means algoritması Kernel k-means algoritması Türü (Öklid formülü) (Polynomial fonksiyonu) Hız Tamlık Bellek Hız skoru Tamlık Bellek skoru 1 Kütleli 1.991 0.782 0.097 2.180 0.932 17.28 2 Düz 1.803 0.656 0.088 1.872 0.781 14.03 3 Kütleli 2.970 0.673 0.158 4.180 0.994 47.88 4 Düz 2.117 0.617 0.300 2.196 0.749 17.12 Ortalama 2.22 0.657 0.161 2.607 0.864 24.07 Düz dağılım Ort. Kütleli dağılımlı Ort. 1.96 0.636 0.194 2.034 0.765 15.58 2.48 0.728 0.128 3.18 0.963 32.58 Üçüncü karşılaştırma (Bkz. çizelge 5.9) k-means (kosinüs formülü) ile kernel kmeans (RBF fonksiyonu) arasındaki karşılaştırma sonuçları verilmiştir. K-means kümeleme hız ortalaması dört veri seti için 2.196 saniye, kümeleme tamlık skoru ise 0.628 ve kümeleme bellek kaplaması ise 0.161 MB olarak elde edilmiştir. Diğer tarafta kernel k-means algoritması için hız ortalaması 2.708 saniye, kümeleme tamlık skoru ise 0.881 ve kümeleme bellek kaplaması ise 24.07 MB olarak elde edilmiştir. 63 Çizelge 5.9. k-means algoritması (Kosinüs formülü) kernel k-means algoritması(RBF fonksiyonu) orta hacimli veri setleri üzerinde karşılaştırma tablosu sonucu. NO. Dağılım K-means algoritması Kernel k-means algoritması Türü (Kosinüs formülü) (RBF fonksiyonu) Hız Tamlık Bellek Hız skoru Tamlık Bellek skoru 1 Kütleli 2.089 0.709 0.097 2.396 0.930 17.28 2 Düz 1.824 0.294 0.088 1.871 0.851 14.03 3 Kütleli 2.845 0.640 0.158 3.825 0.997 47.88 4 Düz 2.026 0.627 0.300 2.738 0.746 17.12 Ortalama 2.196 0.567 0.161 2.708 0.881 24.07 Düz dağılım Ort. Kütleli dağılımlı Ort. 1.925 0.460 0.194 2.30 0.798 15.58 2.467 0.675 0.128 2.51 0.964 32.58 Çizelge 5.10. k-means algoritması (Kosinüs formülü) kernel k-means algoritması (Polynomial fonksiyonu) orta hacimli veri setleri üzerinde karşılaştırma tablosu sonucu. NO. Dağılım K-means algoritması Kernel k-means algoritması Türü (Kosinüs formülü) (Polynomial fonksiyonu) Hız Tamlık Bellek Hız skoru Tamlık Bellek skoru 1 Kütleli 2.089 0.709 0.097 2.180 0.932 17.28 2 Düz 1.824 0.640 0.088 1.872 0.781 14.03 3 Kütleli 2.845 0.294 0.158 4.180 0.994 47.88 4 Düz 2.026 0.627 0.300 2.196 0.749 17.12 Ortalama 2.196 0.567 0.161 2.607 0.864 24.07 Düz dağılım Ort. 1.925 0.460 0.194 2.034 0.765 15.58 Karşılaştırmanın dördüncü tablosu ise k-means (kosinüs) formülü ile kernel k-means (polynomial fonksiyonu) arasındaki karşılaştırma sonuçlarını içermektedir. K-means 64 kümeleme hız ortalaması dört veri seti için 2.196 saniye, kümeleme tamlık skoru ise 0.567 ve kümeleme bellek kaplaması ise 0.161 MB olarak elde edilmiştir. Diğer tarafta kernel k-means algoritması için hız ortalaması 2.607 saniye, kümeleme tamlık skoru ise 0.864 ve kümeleme bellek kaplaması ise 24.07 MB olarak elde edilmiştir. Çizelge 5.11. k-means algoritması (Kosinüs formülü) k-means algoritması (Öklid formülü) orta hacimli veri setleri üzerinde karşılaştırma tablosu sonucu. NO. Dağılım K-means algoritması K-means algoritması (Öklid Türü (Kosinüs formülü) formülü) Hız Tamlık skoru Bellek Hız Tamlık Bellek skoru 1 Kütleli 2.089 0.709 0.097 1.991 0.782 0.097 2 Düz 1.824 0.640 0.088 1.803 0.656 0.088 3 Kütleli 2.845 0.294 0.158 2.970 0.573 0.158 4 Düz 2.026 0.627 0.300 2.117 0.617 0.300 Ortalama 2.196 0.567 0.161 2.22 0.657 0.161 Düz dağılım Ort. Kütleli dağılımlı Ort. 1.925 0.460 0.194 1.96 0.636 0.194 2.467 0.675 0.128 2.48 0.728 0.128 K-means (Öklid formülü) ile k-means (kosinüs formülü) arasında yapılan karşılaştırma sonuçlarında da (Bkz. Çizelge 5.11) k-means (Öklid) kümeleme hız ortalaması dört veri seti için 2.22 saniye, kümeleme tamlık skoru ise 0.657ve kümeleme bellek kaplaması ise 0.161 MB olarak elde edilmiştir. Diğer tarafta kmeans (kosinüs) kümeleme hız ortalaması dört veri seti için 2.196 saniye, kümeleme tamlık skoru ise 0.567 ve kümeleme bellek kaplaması ise 0.161 MB olarak elde edilmiştir. Kernel k-means (RBF fonksiyonu) ile kernel k-means (polynomial fonksiyonu) arasında yapılan karşılaştırma sonuçları da kernel k-means (RBF fonksiyonu) algoritması için hız ortalaması 2.708 saniye, kümeleme tamlık skoru ise 0.881 ve kümeleme bellek kaplaması ise 24.07 MB olarak elde edilmiştir. Diğer tarafta kernel 65 k-means (Polynomial) algoritması için hız ortalaması 2.607 saniye, kümeleme tamlık skoru ise 0.864 ve kümeleme bellek kaplaması ise 24.07 MB olarak elde edilmiştir. Çizelge 5.12. kernel k-means algoritması (RBF fonksiyonu) kernel k-means algoritması (Polynomial fonksiyonu) orta hacimli veri setleri üzerinde karşılaştırma tablosu sonucu. NO. Dağılım Kernel k-means Kernel k-means algoritması Türü algoritması (RBF (Polynomial fonksiyonu) fonksiyonu) Hız Tamlık Bellek Hız skoru Tamlık Bellek skoru 1 Kütleli 2.396 0.930 17.28 2.180 0.932 17.28 2 Düz 1.871 0.851 14.03 1.872 0.781 14.03 3 Kütleli 3.825 0.997 47.88 4.180 0.994 47.88 4 Düz 2.738 0.746 17.12 2.196 0.749 17.12 Ortalama 2.708 0.881 24.07 2.607 0.864 24.07 Düz dağılım Ort. Kütleli dağılımlı Ort. 2.30 0.798 15.58 2.034 0.765 15.58 2.51 0.964 32.58 3.18 0.963 32.58 4.2.3. Küçük hacimli veri setleri karşılaştırma sonuçları Üçüncü aşamada da yukarıdaki aşamalarda yapıldığı gibi karşılaştırmalar yapılmaktadır. Bu aşamada küçük hacimli veri setleri kullanılarak iki algoritmanın üzerinde uygulanmıştır ve sonuçlar aşağıdaki tablolarda yerleştirilmiştir. İlk karşılaştırma (Bkz. çizelge 5.13) k-means Öklid formülü ile kernel k-means (RBF fonksiyonu) arasında yapılmıştır. K-means kümeleme hız ortalaması dört veri seti için 1.172 saniye, kümeleme tamlık skoru ise 0.676ve kümeleme bellek kaplaması ise 0.054MB olarak elde edilmiştir. Diğer tarafta kernel k-means algoritması için hız ortalaması 1.207saniye, kümeleme tamlık skoru ise 0.885 ve kümeleme bellek kaplaması ise 3.469 MB olarak elde edilmiştir. 66 İkinci karşılaştırma (Bkz. çizelge 5.14) k-means Öklid formülü ile kernel k-means (polynomial fonksiyonu) arasında yapılmıştır. K-means kümeleme hız ortalaması dört veri seti için 1.172 saniye, kümeleme tamlık skoru ise 0.676ve kümeleme bellek kaplaması ise 0.054 MB olarak elde edilmiştir. Diğer tarafta kernel k-means algoritması için hız ortalaması 1.204 saniye, kümeleme tamlık skoru ise 0.867 ve kümeleme bellek kaplaması ise 3.469 MB olarak elde edilmiştir. Çizelge 5.13. k-means algoritması (Öklid formülü) kernel k-means algoritması (RBF fonksiyonu) küçük hacimli veri setleri üzerinde karşılaştırma tablosu sonucu. NO. Dağılım K-means algoritması Kernel k-means algoritması Türü (Öklid formülü) (RBF fonksiyonu) Hız Tamlık Bellek Hız skoru Tamlık Bellek skoru 1 Kütleli 1.382 0.666 0.054 1.357 0.945 4.803 2 Düz 0.867 0.533 0.030 0.875 0.821 1.251 3 Kütleli 1.069 0.725 0.042 1.178 0.943 2.798 4 Düz 1.368 0.781 0.128 1.421 0.834 5.024 Ortalama 1.172 0.676 0.064 1.208 0.885 3.469 Düz dağılım Ort. Kütleli dağılımlı Ort. 1.117 0.657 0.079 1.148 0.883 3.137 1.225 0.696 0.048 1.267 0.889 3.800 K-means (Öklid formülü) ile k-means (kosinüs formülü) arasında yapılan karşılaştırma sonuçlarında da (Bkz. Çizelge 5.17) k-means (Öklid) kümeleme hız ortalaması dört veri seti için 1.172 saniye, kümeleme tamlık skoru ise 0.676ve kümeleme bellek kaplaması ise 0.054 MB olarak elde edilmiştir. Diğer tarafta kmeans (kosinüs) kümeleme hız ortalaması dört veri seti için 1.129 saniye, kümeleme tamlık skoru ise 0.606 ve kümeleme bellek kaplaması ise 0.054 MB olarak elde edilmiştir. 67 Çizelge 5.14. k-means algoritması (Öklid formülü) kernel k-means algoritması (Polynomial fonksiyonu) küçük hacimli veri setleri üzerinde karşılaştırma tablosu sonucu. NO. Dağılım K-means algoritması Kernel k-means algoritması Türü (Öklid formülü) (Polynomial fonksiyonu) Hız Tamlık Bellek Hız skoru Tamlık Bellek skoru 1 Kütleli 1.382 0.666 0.054 1.417 0.896 4.803 2 Düz 0.867 0.533 0.030 0.876 0.747 1.251 3 Kütleli 1.069 0.725 0.042 0.671 0.946 2.798 4 Düz 1.368 0.781 0.128 1.446 0.882 5.024 Ortalama 1.172 0.676 0.064 1.204 0.867 3.469 Düz dağılım Ort. Kütleli dağılımlı Ort. 1.117 0.657 0.079 1.161 0.815 3.137 1.225 0.696 0.048 1.044 0.921 3.800 Üçüncü karşılaştırma (Bkz. çizelge 5.14) k-means (kosinüs formülü) ile kernel kmeans (RBF fonksiyonu) arasındaki karşılaştırma sonuçları verilmiştir. K-means kümeleme hız ortalaması dört veri seti için 1.29 saniye, kümeleme tamlık skoru ise 0.606 ve kümeleme bellek kaplaması ise 0.054 MB olarak elde edilmiştir. Diğer tarafta kernel k-means algoritması için hız ortalaması 1.208 saniye, kümeleme tamlık skoru ise 0.885 ve kümeleme bellek kaplaması ise 3.469 MB olarak elde edilmiştir. Karşılaştırmanın dördüncü tablosu ise (Bkz. Çizelge 5.16) k-means (kosinüs) formülü ile kernel k-means (polynomial fonksiyonu) arasındaki karşılaştırma sonuçlarını içermektedir. K-means kümeleme hız ortalaması dört veri seti için 1.129 saniye, kümeleme tamlık skoru ise 0.606 ve kümeleme bellek kaplaması ise 0.054 MB olarak elde edilmiştir. Diğer tarafta kernel k-means algoritması için hız ortalaması 1.204 saniye, kümeleme tamlık skoru ise 0.867 ve kümeleme bellek kaplaması ise 3.054 MB olarak elde edilmiştir. 68 Çizelge 5.15. k-means algoritması (Kosinüs formülü) kernel k-means algoritması (RBF fonksiyonu) küçük hacimli veri setleri üzerinde karşılaştırma tablosu sonucu. NO. Dağılım K-means algoritması Kernel k-means algoritması Türü (Kosinüs formülü) (RBF fonksiyonu) Hız Tamlık Bellek Hız skoru Tamlık Bellek skoru 1 Kütleli 1.241 0.482 0.054 1.357 0.834 4.803 2 Düz 0.856 0.431 0.030 0.875 0.821 1.251 3 Kütleli 1.064 0.751 0.042 1.178 0.943 2.798 4 Düz 1.355 0.758 0.128 1.421 0.945 5.024 Ortalama 1.129 0.606 0.063 1.208 0.885 3.469 Düz dağılım Ort. Kütleli dağılımlı Ort. 1.106 0.595 0.079 1.208 0.885 3.137 1.153 0.617 0.048 1.148 0.883 3.800 Çizelge 5.16. k-means algoritması (Kosinüs formülü) kernel k-means algoritması (Polynomial fonksiyonu) küçük hacimli veri setleri üzerinde karşılaştırma tablosu sonucu. NO. Dağılım K-means algoritması Kernel k-means algoritması Türü (Kosinüs formülü) (Polynomial fonksiyonu) Hız Tamlık Bellek Hız skoru Tamlık Bellek skoru 1 Kütleli 1.241 0.482 0.054 1.417 0.896 4.803 2 Düz 0.856 0.431 0.030 0.876 0.747 1.251 3 Kütleli 1.064 0.751 0.042 0.671 0.946 2.798 4 Düz 1.355 0.758 0.128 1.446 0.882 5.024 Ortalama 1.129 0.606 0.063 1.204 0.885 3.469 Düz dağılım Ort. 1.106 0.595 0.079 1.161 0.815 3.137 69 Çizelge 5.17. k-means algoritması (Kosinüs formülü) k-means algoritması (Öklid formülü) küçük hacimli veri setleri üzerinde karşılaştırma tablosu sonucu. NO. Dağılım K-means algoritması K-means algoritması (Öklid Türü (Kosinüs formülü) formülü) Hız Tamlık skoru Bellek Hız Tamlık Bellek skoru 1 Kütleli 1.241 0.482 0.054 1.382 0.666 0.054 2 Düz 0.856 0.431 0.030 0.867 0.533 0.030 3 Kütleli 1.064 0.751 0.042 1.069 0.725 0.042 4 Düz 1.355 0.758 0.128 1.368 0.781 0.128 Ortalama 1.129 0.606 0.064 1.172 0.676 0.064 Düz dağılım Ort. Kütleli dağılımlı Ort. 1.106 0.595 0.079 1.117 0.657 0.079 1.153 0.617 0.048 1.225 0.696 0.048 Kernel k-means (RBF fonksiyonu) ile kernel k-means (polynomial fonksiyonu) arasında yapılan karşılaştırma sonuçları da (Bkz. Çizelge 5.18) kernel k-means (RBF fonksiyonu) algoritması için hız ortalaması 1.208 saniye, kümeleme tamlık skoru ise 0.885 ve kümeleme bellek kaplaması ise 3.469 MB olarak elde edilmiştir. Diğer tarafta kernel k-means (Polynomial) algoritması için hız ortalaması 1.204 saniye, kümeleme tamlık skoru ise 0.867 ve kümeleme bellek kaplaması ise 3.469 MB olarak elde edilmiştir. 70 Çizelge 5.18. kernel k-means algoritması (RBF fonksiyonu) kernel k-means Algoritması (Polynomial fonksiyonu) küçük hacimli veri setleri üzerinde karşılaştırma tablosu sonucu. NO. Dağılım Kernel k-means algoritması Kernel k-means algoritması (RBF fonksiyonu) (Polynomial fonksiyonu) Türü Hız Tamlık Bellek Hız skoru Tamlık Bellek skoru 1 Kütleli 1.357 0.834 4.803 1.417 0.896 4.803 2 Düz 0.875 0.821 1.251 0.876 0.747 1.251 3 Kütleli 1.178 0.943 2.798 0.671 0.946 2.798 4 Düz 1.421 0.945 5.024 1.446 0.882 5.024 Ortalama 1.208 0.885 3.469 1.204 0.867 3.469 Düz dağılım Ort. Kütleli dağılımlı Ort. 1.208 0.885 3.137 1.161 0.815 3.137 1.148 0.883 3.800 1.044 0.921 3.800 71 5. SONUÇ Bu tezde bölümleyici kümeleme algoritmalarının farklı veri hacmi ve yoğunluklarında karşılaştırma çalışması gerçekleştirilmiştir. Söz konusu algoritmalar k-means algoritması ve kernel k-means algoritmasıdır, ele alınan bu algoritmalarla ilgili bir yazılım gerçekleştirilmiştir. Gerçekleştirilen yazılım detaylı bir şekilde dördüncü bölümde anlatılmıştır. Bu yazılımı kullanarak karşılaştırma tabloları hazırlanmıştır. Toplam 12 farklı hacimli ve dağılımlı veri setleri kullanılarak karşılaştırma tabloları elde edilmiştir. Karşılaştırma tablolarının ortalama sonuçlarını ele alarak bölümleyici kümeleme algoritmalarının farklı veri yoğunluklarında uygulamasının sonucu şöyle elde edilmiştir: 5.1. İki algoritmanın farklı yoğunluklu ve aynı hacimli veri setlerinde uygulama sonucu karşılaştırması Büyük hacimli veri setlerinde elde edilen sonuçlar Büyük hacimli farklı dağılımlı veri setlerini ele aldığımızda hazırlanan ara yüzünü kullandıktan sonra elde edilen sonuçlarda iki algoritma arasında dikkat edilen noktalar hız kalite ve bellek hacmi kullanımı açısından şöyledir: 1. Algoritma karşılaştırması A- Standart k-means algoritması (Öklid formülü) ve kernel k-means algoritması (RBF fonksiyonu) kullanıldığında iki algoritmanın hız değerlendirmesinde standart k-means algoritması hız ortalaması 6.768 saniye olarak elde edilmiştir. Kernel k-means algoritması için ise 9.819 saniye olarak elde edilmiştir. Değerlendirmenin sonucuna bakarsak 3.051 saniye standart k-means algoritması daha hızlı çalışma elde etmiştir ve sonuç olarak k-means algoritması kernel kmeanse algoritmasına göre az farkla daha hızlı çalışmaktadır. Karşılaştırmanın küme tamlık skoru sonuçlarına bakarsak k-means algoritması için 0.683 tespit edilmiştir. Kernel k-means algoritması için 0.858 tespit edilmiştir. Bu sonuçların değerlendirmesine bakarsak 0.175 farkla kernel k-means algoritması daha 72 kaliteli kümeleme elde etmektedir. Sonuç olarak kernel k-means algoritması standart k-means algoritmasından daha kaliteli kümeleme yaptığı görülmektedir. İki algoritmanın bellek sonuçlarına bakılırsa k-means algoritması 0.337 MB. Kernel k-means algoritması bellek kullanımı 226.3 MB olarak tespit edilmiştir. Bu yüksek bellek kullanımında nedeni kernel fonksiyonlarında veri setinin yüksek boyutlara taşmak için yapılan çarpma işlemlerinden kaynaklanıyor. Bu aşamanın değerlendirmesine bakarsak k-means algoritması daha az bellek kullanarak kümeleme işlemini tamamlamaktadır. B- Standart k-means algoritmasının Öklid formülüve Kernel k-means algoritmasının polynomial fonksiyonu karşılaştırıldığında hız açısından k-means algoritmasının kümeleme hızı 6.768 saniye olarak tespit edilirken; kernel kmeans algoritmasının kümeleme hızı ise 9.668 saniye olarak tespit edilmiştir. Bu sonuçlara göre k-means algoritmasının 2.9 saniye daha hızlı kümeleme yaptığı gözlemlenmiştir. Küme kalitesi incelendiginde k-means algoritmasının tamlık skoru 0.337; kernel k-means kümeleme tamlık skoru ise 0.844 olarak tespit edilmiştir. Bu sonuçlardan yola çıkarak kernel k-means algoritması k-means algoritmasından 0.161 farkla daha iyi kümeleme işlemi yapmaktadır. İki algoritmanın bellek sonuçlarına bakılırsa k-means algoritması 0.363 MB, kernel k-means algoritması226.3 değerlendirildiğinde MB bellek kullanmaktadır. Bu aşama k-means algoritmasının daha az bellek kullanarak kümeleme işlemini tamamladığı kanısına varılmaktadır. C- Standart k-means algoritmasının kosinüs formülüve Kernel k-means algoritmasının RBF fonksiyonu karşılaştırıldığında hız açısından k-means algoritmasının kümeleme hızı 6.457saniye olarak tespit edilirken; kernel kmeans algoritmasının kümeleme hızı ise 9.816saniye olarak tespit edilmiştir. Bu sonuçlara göre k-means algoritmasının 3.35 saniye daha hızlı kümeleme yaptığı gözlemlenmiştir. Küme kalitesi incelendiginde k-means algoritmasının tamlık skoru 0.628 ; kernel k-means kümeleme tamlık skoru ise 0.858 olarak tespit edilmiştir. Bu sonuçlardan yola çıkarak kernel k-means algoritması k-means algoritmasından 0.23 farkla daha iyi kümeleme işlemi yapmaktadır. İki 73 algoritmanın bellek sonuçlarına bakılırsa k-means algoritması 0.337 MB, kernel k-means algoritması226.3 değerlendirildiğinde MB bellek kullanmaktadır. Bu aşama k-means algoritmasının daha az bellek kullanarak kümeleme işlemini tamamladığı kanısına varılmaktadır. D- Standart k-means algoritmasının kosinüs formülüve Kernel k-means algoritmasının polynomial fonksiyonu karşılaştırıldığında hız açısından k-means algoritmasının kümeleme hızı 6.457saniye olarak tespit edilirken; kernel kmeans algoritmasının kümeleme hızı ise 9.668 saniye olarak tespit edilmiştir. Bu sonuçlara göre k-means algoritmasının 3.21 saniye daha hızlı kümeleme yaptığı gözlemlenmiştir. Küme kalitesi incelendiğinde k-means algoritmasının tamlık skoru 0.628; kernel k-means kümeleme tamlık skoru ise 0.843 olarak tespit edilmiştir. Bu sonuçlardan yola çıkarak kernel k-means algoritması k-means algoritmasından 0.21 farkla daha iyi kümeleme işlemi yapmaktadır. İki algoritmanın bellek sonuçlarına bakılırsa k-means algoritması 0.337 MB, kernel k-means algoritması226.3 değerlendirildiğinde MB bellek kullanmaktadır. Bu aşama k-means algoritmasının daha az bellek kullanarak kümeleme işlemini tamamladığı kanısına varılmaktadır. E- Standart k-means algoritmasının kosinüs formülüve standart k-means algoritmasının Öklid formülü karşılaştırıldığında hız açısından k-means (kosinüs) algoritmasının kümeleme hızı 6.457saniye olarak tespit edilirken; kmeans (Öklid) algoritmasının kümeleme hızı ise 6.768saniye olarak tespit edilmiştir. Bu sonuçlara göre k-means (kosinüs) algoritmasının 0.331 saniye daha hızlı kümeleme yaptığı gözlemlenmiştir. Küme kalitesi incelendiğinde kmeans (kosinüs) algoritmasının tamlık skoru 0.628; k-means (Öklid) kümeleme tamlık skoru ise 0.683 olarak tespit edilmiştir. Bu sonuçlardan yola çıkarak kmeans (Öklid) algoritması k-means (kosinüs) algoritmasından 0.075 farkla daha iyi kümeleme işlemi yapmaktadır. F- Kernel k-means algoritmasının RBF fonksiyonuve standart k-means algoritmasının polynpmial fonksiyonu karşılaştırıldığında hız açısından kernel k- 74 means (RBF) algoritmasının kümeleme hızı 9.816saniye olarak tespit edilirken; kernel k-means (polynomial) algoritmasının kümeleme hızı ise 9.668saniye olarak tespit edilmiştir. Bu sonuçlara göre kernel k-means (kosinüs) algoritmasının 0.148 saniye daha hızlı kümeleme yaptığı gözlemlenmiştir. Küme kalitesi incelendiğinde kernel k-means (RBF) algoritmasının tamlık skoru 0.858; kernel k-means (polynomial) kümeleme tamlık skoru ise 0.843 olarak tespit edilmiştir. Bu sonuçlardan yola çıkarak kernel k-means (RBF) algoritması kernel k-means (polynomial) algoritmasından 0.075 farkla daha iyi kümeleme işlemi yapmaktadır. 2. Yoğunluk karşılaştırması Karşılaştırma tablolarında farklı yoğunluklu veri setleri kullanılmıştır. Bu veri setlerinin dağılımlarının şekli ve sıklığına göre genel olarak kütleli dağılımlı ve düz dağılımlı olarak ayrılmıştır. Farklı yoğunluklu veri setlerini algoritmalara uygularken aralarında fark izlenmiştir. Bu farklar: A- Standart k-means algoritması (Öklid formülü) düz dağılımlı veri setleri uygulamasının hız ortalaması sonucu 5.885 saniye olarak tespit edilmiştir. Kütleli veri setleri ise 7.65 saniye olarak tespit edilmiştir. Bu sonuçtan yola çıkarak düz dağılımlı veri setlerinin kümeleme işlemi 1.765 saniye farkla daha hızlı tamamlamaktadır. Tamlık skoru ise düz dağılımlı veri setlerinde 0.64 olarak tespit edilmiştir. Kütleli veri setlerin tamlık skoru ise 0.727 olarak tespit edilmiştir. Bu sonuçlara göre kütleli veri setleri 0.087 farkla daha iyi kümeleme işlemi yapmaktadır. B- Standart k-means algoritması (kosinüs formülü) düz dağılımlı veri setleri uygulamasının hız ortalaması sonucu 5.87 saniye olarak tespit edilmiştir. Kütleli veri setleri ise 7.046 saniye olarak tespit edilmiştir. Bu sonuçtan yola çıkarak düz dağılımlı veri setlerinin kümeleme işlemi 1.176 saniye farkla daha hızlı tamamlamaktadır. Tamlık skoru ise düz dağılımlı veri setlerinde 0.579 olarak tespit edilmiştir. Kütleli veri setlerin tamlık skoru ise 0.676 olarak tespit 75 edilmiştir. Bu sonuçlara göre kütleli veri setleri 0.097farkla daha iyi kümeleme işlemi yapmaktadır. C- kernel k-means algoritması (RBF fonksiyonu) düz dağılımlı veri setleri uygulamasının hız ortalaması sonucu 9.197 saniye olarak tespit edilmiştir. Kütleli veri setleri ise 10.441 saniye olarak tespit edilmiştir. Bu sonuçtan yola çıkarak düz dağılımlı veri setlerinin kümeleme işlemi 1.244 saniye farkla daha hızlı tamamlamaktadır. Tamlık skoru ise düz dağılımlı veri setlerinde 0.79 olarak tespit edilmiştir. Kütleli veri setlerin tamlık skoru ise 0.927 olarak tespit edilmiştir. Bu sonuçlara göre kütleli veri setleri 0.137 farkla daha iyi kümeleme işlemi yapmaktadır. D- kernel k-means algoritması (polynomial fonksiyonu) düz dağılımlı veri setleri uygulamasının hız ortalaması sonucu 9.625 saniye olarak tespit edilmiştir. Kütleli veri setleri ise 9.68 saniye olarak tespit edilmiştir. Bu sonuçtan yola çıkarak düz dağılımlı veri setlerinin kümeleme işlemi 0.055 saniye farkla daha hızlı tamamlamaktadır. Tamlık skoru ise düz dağılımlı veri setlerinde 0.793 olarak tespit edilmiştir. Kütleli veri setlerin tamlık skoru ise 0.893 olarak tespit edilmiştir. Bu sonuçlara göre kütleli veri setleri 0.1 farkla daha iyi kümeleme işlemi yapmaktadır. Orta hacimli veri setlerinde elde edilen sonuçlar Orta hacimli farklı dağılımlı veri setlerini ele aldığımızda hazırlanan ara yüzünü kullandıktan sonra elde edilen sonuçlarda iki algoritma arasında dikkat edilen noktalar hız kalite ve bellek hacmi kullanımı açısından şöyledir: 1. Algoritma karşılaştırması A- Standart k-means algoritmasının Öklid formülü ve Kernel k-means algoritmasının RBF fonksiyonu karşılaştırıldığında hız açısından k-means algoritmasının kümeleme hızı 2.22 saniye olarak tespit edilirken; kernel k-means algoritmasının kümeleme hızı ise 2.708 saniye olarak tespit edilmiştir. Bu 76 sonuçlara göre k-means algoritmasının 0.48 saniye daha hızlı kümeleme yaptığı gözlemlenmiştir. Küme kalitesi incelendiginde k-means algoritmasının tamlık skoru 0.657; kernel k-means kümeleme tamlık skoru ise 0.881 olarak tespit edilmiştir. Bu sonuçlardan yola çıkarak kernel k-means algoritması k-means algoritmasından 0.224 farkla daha iyi kümeleme işlemi yapmaktadır. İki algoritmanın bellek sonuçlarına bakılırsa k-means algoritması 0.161 MB, kernel k-means algoritması 24.07 MB bellek kullanmaktadır. Bu aşama değerlendirildiğinde k-means algoritmasının daha az bellek kullanarak kümeleme işlemini tamamladığı kanısına varılmaktadır. B- Standart k-means algoritmasının Öklid formülüve Kernel k-means algoritmasının polynomial fonksiyonu karşılaştırıldığında hız açısından k-means algoritmasının kümeleme hızı 2.22saniye olarak tespit edilirken; kernel k-means algoritmasının kümeleme hızı ise 2.607saniye olarak tespit edilmiştir. Bu sonuçlara göre k-means algoritmasının 0.387 saniye daha hızlı kümeleme yaptığı gözlemlenmiştir. Küme kalitesi incelendiğinde k-means algoritmasının tamlık skoru 0.657; kernel k-means kümeleme tamlık skoru ise 0.864 olarak tespit edilmiştir. Bu sonuçlardan yola çıkarak kernel k-means algoritması k-means algoritmasından 0.207 farkla daha iyi kümeleme işlemi yapmaktadır. İki algoritmanın bellek sonuçlarına bakılırsa k-means algoritması 0.161 MB, kernel k-means algoritması 24.07 MB bellek kullanmaktadır. Bu aşama değerlendirildiğinde k-means algoritmasının daha az bellek kullanarak kümeleme işlemini tamamladığı kanısına varılmaktadır. C- Standart k-means algoritmasının kosinüs formülüve Kernel k-means algoritmasının RBF fonksiyonu karşılaştırıldığında hız açısından k-means algoritmasının kümeleme hızı 2.196saniye olarak tespit edilirken; kernel kmeans algoritmasının kümeleme hızı ise 2.708saniye olarak tespit edilmiştir. Bu sonuçlara göre k-means algoritmasının 0.512 saniye daha hızlı kümeleme yaptığı gözlemlenmiştir. Küme kalitesi incelendiğinde k-means algoritmasının tamlık skoru 0.567; kernel k-means kümeleme tamlık skoru ise 0.881 olarak tespit 77 edilmiştir. Bu sonuçlardan yola çıkarak kernel k-means algoritması k-means algoritmasından 0.32 farkla daha iyi kümeleme işlemi yapmaktadır. İki algoritmanın bellek sonuçlarına bakılırsa k-means algoritması 0.161 MB, kernel k-means algoritması 24.07 MB bellek kullanmaktadır. Bu aşama değerlendirildiğinde k-means algoritmasının daha az bellek kullanarak kümeleme işlemini tamamladığı kanısına varılmaktadır. D- Standart algoritmasının k-means kosinüs formülüve Kernel k-means algoritmasının polynomial fonksiyonu karşılaştırıldığında hız açısından k-means algoritmasının kümeleme hızı 2.191saniye olarak tespit edilirken; kernel kmeans algoritmasının kümeleme hızı ise 2.607saniye olarak tespit edilmiştir. Bu sonuçlara göre k-means algoritmasının 0.416 saniye daha hızlı kümeleme yaptığı gözlemlenmiştir. Küme kalitesi incelendiğinde k-means algoritmasının tamlık skoru 0.567; kernel k-means kümeleme tamlık skoru ise 0.864 olarak tespit edilmiştir. Bu sonuçlardan yola çıkarak kernel k-means algoritması k-means algoritmasından 0.3 farkla daha iyi kümeleme işlemi yapmaktadır. İki algoritmanın bellek sonuçlarına bakılırsa k-means algoritması 0.161 MB, kernel k-means algoritması 24.07 MB bellek kullanmaktadır. Bu aşama değerlendirildiğinde k-means algoritmasının daha az bellek kullanarak kümeleme işlemini tamamladığı kanısına varılmaktadır. E- Standart k-means algoritmasının kosinüs formülüve standart k-means algoritmasının Öklid formülü karşılaştırıldığında hız açısından k-means (kosinüs) algoritmasının kümeleme hızı 2.196saniye olarak tespit edilirken; kmeans (Öklid) algoritmasının kümeleme hızı ise 2.22saniye olarak tespit edilmiştir. Bu sonuçlara göre k-means (kosinüs) algoritmasının 0.024 saniye daha hızlı kümeleme yaptığı gözlemlenmiştir. Küme kalitesi incelendiğinde kmeans (kosinüs) algoritmasının tamlık skoru 0.567; k-means (Öklid) kümeleme tamlık skoru ise 0.657 olarak tespit edilmiştir. Bu sonuçlardan yola çıkarak kmeans (Öklid) algoritması k-means (kosinüs) algoritmasından 0.09 farkla daha iyi kümeleme işlemi yapmaktadır. 78 F- Kernel k-means algoritmasının RBF fonksiyonuve standart k-means algoritmasının polynpmial fonksiyonu karşılaştırıldığında hız açısından kernel kmeans (RBF) algoritmasının kümeleme hızı 2.708saniye olarak tespit edilirken; kernel k-means (polynomial) algoritmasının kümeleme hızı ise 2.607saniye olarak tespit edilmiştir. Bu sonuçlara göre kernel k-means (kosinüs) algoritmasının 0.101 saniye daha hızlı kümeleme yaptığı gözlemlenmiştir. Küme kalitesi incelendiğinde kernel k-means (RBF) algoritmasının tamlık skoru 0.881; kernel k-means (polynomial) kümeleme tamlık skoru ise 0.864 olarak tespit edilmiştir. Bu sonuçlardan yola çıkarak kernel k-means (RBF) algoritması kernel k-means (polynomial) algoritmasından 0.017 farkla daha iyi kümeleme işlemi yapmaktadır. 2. Yoğunluk karşılaştırması A- Standart k-means algoritması (Öklid formülü) düz dağılımlı veri setleri uygulamasının hız ortalaması sonucu 1.96 saniye olarak tespit edilmiştir. Kütleli veri setleri ise 2.48 saniye olarak tespit edilmiştir. Bu sonuçtan yola çıkarak düz dağılımlı veri setlerinin kümeleme işlemi 0.52 saniye farkla daha hızlı tamamlamaktadır. Tamlık skoru ise düz dağılımlı veri setlerinde 0.636 olarak tespit edilmiştir. Kütleli veri setlerin tamlık skoru ise 0.728 olarak tespit edilmiştir. Bu sonuçlara göre kütleli veri setleri 0.092 farkla daha iyi kümeleme işlemi yapmaktadır. B- Standart k-means algoritması (kosinüs formülü) düz dağılımlı veri setleri uygulamasının hız ortalaması sonucu 1.925 saniye olarak tespit edilmiştir. Kütleli veri setleri ise 2.647 saniye olarak tespit edilmiştir. Bu sonuçtan yola çıkarak düz dağılımlı veri setlerinin kümeleme işlemi 0.722 saniye farkla daha hızlı tamamlamaktadır. Tamlık skoru ise düz dağılımlı veri setlerinde 0.460 olarak tespit edilmiştir. Kütleli veri setlerin tamlık skoru ise 0.675 olarak tespit edilmiştir. Bu sonuçlara göre kütleli veri setleri 0.215farkla daha iyi kümeleme işlemi yapmaktadır. 79 C- kernel k-means algoritması (RBF fonksiyonu) düz dağılımlı veri setleri uygulamasının hız ortalaması sonucu 2.3 saniye olarak tespit edilmiştir. Kütleli veri setleri ise 2.51 saniye olarak tespit edilmiştir. Bu sonuçtan yola çıkarak düz dağılımlı veri setlerinin kümeleme işlemi 0.21 saniye farkla daha hızlı tamamlamaktadır. Tamlık skoru ise düz dağılımlı veri setlerinde 0.798 olarak tespit edilmiştir. Kütleli veri setlerin tamlık skoru ise 0.964 olarak tespit edilmiştir. Bu sonuçlara göre kütleli veri setleri 0.166 farkla daha iyi kümeleme işlemi yapmaktadır. D- kernel k-means algoritması (polynomial fonksiyonu) düz dağılımlı veri setleri uygulamasının hız ortalaması sonucu 2.034 saniye olarak tespit edilmiştir. Kütleli veri setleri ise 3.18 saniye olarak tespit edilmiştir. Bu sonuçtan yola çıkarak düz dağılımlı veri setlerinin kümeleme işlemi 1.146 saniye farkla daha hızlı tamamlamaktadır. Tamlık skoru ise düz dağılımlı veri setlerinde 0.765 olarak tespit edilmiştir. Kütleli veri setlerin tamlık skoru ise 0.963 olarak tespit edilmiştir. Bu sonuçlara göre kütleli veri setleri 0.198 farkla daha iyi kümeleme işlemi yapmaktadır. Küçük hacimli veri setlerinde elde edilen sonuçlar Küçük hacimli farklı dağılımlı veri setlerini ele aldığımızda hazırlanan ara yüzünü kullandıktan sonra elde edilen sonuçlarda iki algoritma arasında dikkat edilen noktalar hız kalite ve bellek hacmi kullanımı açısından şöyledir: 1. Algoritma karşılaştırması A- Standart k-means algoritmasının Öklid formülü ve Kernel k-means algoritmasının RBF fonksiyonu karşılaştırıldığında hız açısından k-means algoritmasının kümeleme hızı 1.172 saniye olarak tespit edilirken; kernel kmeans algoritmasının kümeleme hızı ise 1.208 saniye olarak tespit edilmiştir. Bu sonuçlara göre k-means algoritmasının 0.036 saniye daha hızlı kümeleme yaptığı gözlemlenmiştir. Küme kalitesi incelendiğinde k-means algoritmasının tamlık 80 skoru 0.676; kernel k-means kümeleme tamlık skoru ise 0.885 olarak tespit edilmiştir. Bu sonuçlardan yola çıkarak kernel k-means algoritması k-means algoritmasından 0.209 farkla daha iyi kümeleme işlemi yapmaktadır. İki algoritmanın bellek sonuçlarına bakılırsa k-means algoritması 0.052 MB, kernel k-means algoritması 3.469 MB bellek kullanmaktadır. Bu aşama değerlendirildiğinde k-means algoritmasının daha az bellek kullanarak kümeleme işlemini tamamladığı kanısına varılmaktadır. B- Standart k-means algoritmasının Öklid formülüve Kernel k-means algoritmasının polynomial fonksiyonu karşılaştırıldığında hız açısından k-means algoritmasının kümeleme hızı 1.172saniye olarak tespit edilirken; kernel kmeans algoritmasının kümeleme hızı ise 1.204saniye olarak tespit edilmiştir. Bu sonuçlara göre k-means algoritmasının 0.032 saniye daha hızlı kümeleme yaptığı gözlemlenmiştir. Küme kalitesi incelendiğinde k-means algoritmasının tamlık skoru 0.676; kernel k-means kümeleme tamlık skoru ise 0.867 olarak tespit edilmiştir. Bu sonuçlardan yola çıkarak kernel k-means algoritması k-means algoritmasından 0.191 farkla daha iyi kümeleme işlemi yapmaktadır. İki algoritmanın bellek sonuçlarına bakılırsa k-means algoritması 0.054 MB, kernel k-means algoritması 3.496 MB bellek kullanmaktadır. Bu aşama değerlendirildiğinde k-means algoritmasının daha az bellek kullanarak kümeleme işlemini tamamladığı kanısına varılmaktadır. C- Standart k-means algoritmasının kosinüs formülüve Kernel k-means algoritmasının RBF fonksiyonu karşılaştırıldığında hız açısından k-means algoritmasının kümeleme hızı 1.129saniye olarak tespit edilirken; kernel kmeans algoritmasının kümeleme hızı ise 1.208saniye olarak tespit edilmiştir. Bu sonuçlara göre k-means algoritmasının 0.079 saniye daha hızlı kümeleme yaptığı gözlemlenmiştir. Küme kalitesi incelendiğinde k-means algoritmasının tamlık skoru 0.606; kernel k-means kümeleme tamlık skoru ise 0.885 olarak tespit edilmiştir. Bu sonuçlardan yola çıkarak kernel k-means algoritması k-means algoritmasından 0.279 farkla daha iyi kümeleme işlemi yapmaktadır. İki 81 algoritmanın bellek sonuçlarına bakılırsa k-means algoritması 0.054 MB, kernel k-means algoritması 3.469 MB bellek kullanmaktadır. Bu aşama değerlendirildiğinde k-means algoritmasının daha az bellek kullanarak kümeleme işlemini tamamladığı kanısına varılmaktadır. D- Standart algoritmasının k-means kosinüs formülüve Kernel k-means algoritmasının polynomial fonksiyonu karşılaştırıldığında hız açısından k-means algoritmasının kümeleme hızı 1.129saniye olarak tespit edilirken; kernel kmeans algoritmasının kümeleme hızı ise 1.204saniye olarak tespit edilmiştir. Bu sonuçlara göre k-means algoritmasının 0.075 saniye daha hızlı kümeleme yaptığı gözlemlenmiştir. Küme kalitesi incelendiğinde k-means algoritmasının tamlık skoru 0.606; kernel k-means kümeleme tamlık skoru ise 0.867 olarak tespit edilmiştir. Bu sonuçlardan yola çıkarak kernel k-means algoritması k-means algoritmasından 0.261 farkla daha iyi kümeleme işlemi yapmaktadır. İki algoritmanın bellek sonuçlarına bakılırsa k-means algoritması 0.054 MB, kernel k-means algoritması 3.469 MB bellek kullanmaktadır. Bu aşama değerlendirildiğinde k-means algoritmasının daha az bellek kullanarak kümeleme işlemini tamamladığı kanısına varılmaktadır. E- Standart k-means algoritmasının kosinüs formülüve standart k-means algoritmasının Öklid formülü karşılaştırıldığında hız açısından k-means (kosinüs) algoritmasının kümeleme hızı 1.129saniye olarak tespit edilirken; kmeans (Öklid) algoritmasının kümeleme hızı ise 1.172saniye olarak tespit edilmiştir. Bu sonuçlara göre k-means (kosinüs) algoritmasının 0.043 saniye daha hızlı kümeleme yaptığı gözlemlenmiştir. Küme kalitesi incelendiğinde kmeans (kosinüs) algoritmasının tamlık skoru 0.606; k-means (Öklid) kümeleme tamlık skoru ise 0.676 olarak tespit edilmiştir. Bu sonuçlardan yola çıkarak kmeans (Öklid) algoritması k-means (kosinüs) algoritmasından 0.07 farkla daha iyi kümeleme işlemi yapmaktadır. F- Kernel k-means algoritmasının RBF fonksiyonuve standart k-means algoritmasının polynpmial fonksiyonu karşılaştırıldığında hız açısından kernel k- 82 means (RBF) algoritmasının kümeleme hızı 1.208saniye olarak tespit edilirken; kernel k-means (polynomial) algoritmasının kümeleme hızı ise 1.204saniye olarak tespit edilmiştir. Bu sonuçlara göre kernel k-means (kosinüs) algoritmasının 0.004 saniye daha hızlı kümeleme yaptığı gözlemlenmiştir. Küme kalitesi incelendiğinde kernel k-means (RBF) algoritmasının tamlık skoru 0.885; kernel k-means (polynomial) kümeleme tamlık skoru ise 0.869 olarak tespit edilmiştir. Bu sonuçlardan yola çıkarak kernel k-means (RBF) algoritması kernel k-means (polynomial) algoritmasından 0.016 farkla daha iyi kümeleme işlemi yapmaktadır. 2. Yoğunluk karşılaştırması A- Standart k-means algoritması (Öklid formülü) düz dağılımlı veri setleri uygulamasının hız ortalaması sonucu 1.117 saniye olarak tespit edilmiştir. Kütleli veri setleri ise 1.225 saniye olarak tespit edilmiştir. Bu sonuçtan yola çıkarak düz dağılımlı veri setlerinin kümeleme işlemi 0.108 saniye farkla daha hızlı tamamlamaktadır. Tamlık skoru ise düz dağılımlı veri setlerinde 0.657 olarak tespit edilmiştir. Kütleli veri setlerin tamlık skoru ise 0.696 olarak tespit edilmiştir. Bu sonuçlara göre kütleli veri setleri 0.039 farkla daha iyi kümeleme işlemi yapmaktadır. B- Standart k-means algoritması (kosinüs formülü) düz dağılımlı veri setleri uygulamasının hız ortalaması sonucu 1.106 saniye olarak tespit edilmiştir. Kütleli veri setleri ise 1.153 saniye olarak tespit edilmiştir. Bu sonuçtan yola çıkarak düz dağılımlı veri setlerinin kümeleme işlemi 0.047 saniye farkla daha hızlı tamamlamaktadır. Tamlık skoru ise düz dağılımlı veri setlerinde 0.595 olarak tespit edilmiştir. Kütleli veri setlerin tamlık skoru ise 0.617 olarak tespit edilmiştir. Bu sonuçlara göre kütleli veri setleri 0.022 farkla daha iyi kümeleme işlemi yapmaktadır. C- kernel k-means algoritması (RBF fonksiyonu) düz dağılımlı veri setleri uygulamasının hız ortalaması sonucu 1.148 saniye olarak tespit edilmiştir. 83 Kütleli veri setleri ise 1.153 saniye olarak tespit edilmiştir. Bu sonuçtan yola çıkarak düz dağılımlı veri setlerinin kümeleme işlemi 0.005 saniye farkla daha hızlı tamamlamaktadır. Tamlık skoru ise düz dağılımlı veri setlerinde 0.883 olarak tespit edilmiştir. Kütleli veri setlerin tamlık skoru ise 0.889 olarak tespit edilmiştir. Bu sonuçlara göre kütleli veri setleri 0.006 farkla daha iyi kümeleme işlemi yapmaktadır. D- kernel k-means algoritması (polynomial fonksiyonu) düz dağılımlı veri setleri uygulamasının hız ortalaması sonucu 1.161 saniye olarak tespit edilmiştir. Kütleli veri setleri ise 1.044 saniye olarak tespit edilmiştir. Bu sonuçtan yola çıkarak kütleli dağılımlı veri setlerinin kümeleme işlemi 0.117 saniye farkla daha hızlı tamamlamaktadır. Tamlık skoru ise düz dağılımlı veri setlerinde 0.815 olarak tespit edilmiştir. Kütleli veri setlerin tamlık skoru ise 0.921 olarak tespit edilmiştir. Bu sonuçlara göre kütleli veri setleri 0.106 farkla daha iyi kümeleme işlemi yapmaktadır. 5.2. Algoritmaların farklı yoğunluklu ve farklı hacimli veri setlerinde uygulama sonucu karşılaştırması Farklı yoğunluklu veriler üzerinde uygulanan standart k-means (Öklid formülü, kosinüs formülü) algoritması ve kernel k-means algoritması farklı hacimde bulunan veri setler arasında dikkate alınan bazı noktalar tespit edilmiştir. Dikkat edilen noktalar algoritmaların hız, kümeleme tamlığı ve bellek kullanımı açılarındandır. 1. Algoritmalar arasında dikkat edilen noktalar Hız açısından dikkate alınan nokta, kernel k-means (RBF fonksiyonu, ploynomial fonksiyonu) algoritması veri seti hacmi küçüldükçe daha hızlı kümeleme işlemi yapmaktadır. Bu sonuçlar özellikle küçük veri setleri uygulama sonuçlarında net bir şekilde görülmüştür ve neredeyse standart k-means algoritması (Öklid formülü, kosinüs formülü) ile aynı hızla işlemi tamamlamaktadır. Aşağıda standart k-means (Öklid formülü, kosinüs formülü), kernel k-means (RBF fonksiyonu, ploynomial 84 fonksiyonu)’ten saniye olarak hız ortalaması üstünlük farkları sırası ile büyük, orta, küçük veri setlerindeki sonuçları verilmiştir. Standart k-means (Öklid) - kernel k-means (RBF): 3.051, 0.48, 0.036. Standart k-means (Öklid) - kernel k-means (polynomial): 2.90, 0.39, 0.032. Standart k-means (kosinüs) - kernel k-means (RBF): 3.35, 0.51, 0.079. Standart k-means (kosinüs) - kernel k-means (polynomial): 3.21, 0.42, 0.075. Kümeleme tamlık skoru açısından bakılırsa tespit edilen nokta kernel k-means (RBF fonksiyonu, ploynomial fonksiyonu) algoritması tüm yoğunluklu veri setleri üzerinde standart k-means (Öklid formülü, kosinüs formülü) algoritmasından üstün kaliteli kümeleme sonucu ortaya çıkarmıştır. Algoritmaların net performansını ortaya çıkarmak için birbirinden farklı ve her türlü dağılımlı veri setleri kullanıldı ve tüm veri setleri sonucunda kernel k-means (RBF fonksiyonu, ploynomial fonksiyonu) algoritması daha iyi performans göstermiştir. Veri seti hacmi ne kadar büyük olursa olsun kernel k-means algoritması üstünlüğünü korumuştur. Aşağıda kernel k-means (RBF fonksiyonu, ploynomial fonksiyonu)standart k-means (Öklid formülü, kosinüs formülü)’ten küme tamlama skoru ortalaması üstünlük farkları sırası ile büyük orta küçük veri setlerindeki sonuçları: Standart k-means (Öklid) - kernel k-means (RBF): 0.275, 0.224, 0.209. Standart k-means (Öklid) - kernel k-means (polynomial): 0.207, 0.191, 0.161. Standart k-means (kosinüs) - kernel k-means (RBF): 0.32, 0.27, 0.23. Standart k-means (kosinüs) - kernel k-means (polynomial): 0.3, 0.26, 0.21. Bellek kaplama açısındaysa kernel k-means (RBF fonksiyonu, ploynomial fonksiyonu) algoritması standart k-means (Öklid formülü, kosinüs formülü) algoritmasından daha çok bellek kullandığı izlenmiştir. Kernel k-means algoritmasının çok bellek kullanımı nedeni kernel metotlu fonksiyonların veri setinin yüksek boyutlu uzaylara taşımak için yapılan çarpımlardan kaynaklıdır. Böylece veri setlerinin yüksek boyuta taşınması için daha çok bellek kullanımı gerektirir. Kernel k-means (RBF fonksiyonu, ploynomial fonksiyonu) algoritmasının veri seti hacmi 85 düştükçe kullandığı belleğin büyük ölçüde düştüğü izlenmiştir. Standart k-means (Öklid formülü, kosinüs formülü) algoritmasının aynı şekilde veri seti hacmi düştükçe daha az bellek ile kümeleme işlemini tamamlamadığı izlenmiştir. Kernel kmeans algoritmasının RBF fonksiyonu ve polynomial fonksiyonu aynı veri seti üzerinde uygulandığında aynı hacimde bellek kullandığı izlenmiştir ve aynı şekilde standart k-menas algoritmasının Öklid ve kosinüs formülleri aynı veri seti üzerinde uygulandığında aynı hacimde bellek kullanılması gerektiği izlenmiştir.Aşağıda standart k-means (Öklid formülü, kosinüs formülü) kernel k-means (RBF fonksiyonu, ploynomial fonksiyonu)’ten bellek kaplama (MB olarak) ortalaması üstünlük farkları sırası ile büyük, orta, küçük veri setlerindeki sonuçları verilmiştir. Standart k-means (Öklid) - kernel k-means (RBF): 225.961, 23.909, 3.417. Standart k-means (Öklid) - kernel k-means (polynomial): 225.961, 23.909, 3.417. Standart k-means (kosinüs) - kernel k-means (RBF): 225.961, 23.909, 3.417. Standart k-means (kosinüs) - kernel k-means (polynomial): 225.961, 23.909, 3.417. 2. Veri yoğunlukları arasında dikkat edilen noktalar Farklı hacimli veri setleri kullanılarak farklı yoğunluklu veri setlerinin uygulaması sonucunda kümeleme hızı açısından dikkate alınan noktalar izlenmiştir. Düz dağılımlı veri setleri uygulandığında kümeleme işlemini tamamlamak için kütleli veri setleri daha az zaman harcayarak işlemi tamamlamıştır. Ayrıca veri setinin hacmi düştükçe kümeleme hızının da önemli ölçüde düştüğü izlenmiştir. Kümeleme tamlık skoru hesaplamasında ise kütleli dağılımlı veri setler, düz dağılımlı veri setlerinden daha kaliteli kümeleme sonucu elde etmiştir. Aşağıda farklı yoğunluklu ve farklı hacimli veri setlerinin uygulama sonuçları düz ve kütleli olarak her algoritma için sırası ile büyük, orta ve küçük veri setleri için göstermektedir. 86 Hız sonuçları Büyük Orta Küçük K-means (Öklid formülü): (5.885, 7.65), (1.96, 2.48), (1.117, 1.225). K-means (kosinüs formülü): (5.87, 7.046, (1.925,2.467), (1.106. 1.153). Kernel K-means (RBF fonksiyonu): (9.197,10.44), (2.30,2.51), (1.148, 1.267). Kernel K-means (polynomial fonksiyonu): (9.652, 9.68), (2.034,3.18), (1.161, 1.044). Küme tamlık skoru sonuçları Büyük K-means (Öklid formülü): Orta Küçük (0.641, 0.727), (0.636, 0.728), (0.657, 0.696). K-means (kosinüs formülü): (0.579, 0.676), (0.46, 0.675), (0.595, 0.617). Kernel K-means (RBF fonksiyonu): (0.79, 0.927), (0.798, 0.964), (0.881, 0.889). Kernel K-means (polynomial fonksiyonu): (0.793, 0.893), (0.765, 0.963), (0.815, 0.921). Yukarıda bahsi geçen izlenmiş sonuçlar bölümleyici kümeleme algoritmasının farklı yoğunluklu veri setleri üzerinde uygulama sonuçları idi. Bu tezde bölümleyici algoritmalardan standart k-means algoritması ve kernel k-means algoritması kullanılmıştır. Sonuçlardan yola çıkarak standart k-means algoritması daha hızlı ve kernel k-means algoritması daha kaliteli kümeleme yapmaktadır. Ayrıca kümeleme algoritmalarının kütleli veri setleri üzerinde daha başarılı olduğu kanısına varılmıştır. 87 KAYNAKLAR 1. Keselj, V. and Liu ,H., “Combined mining of Web server logs and web contents for classifying user navigation patterns and predicting users future requests”, ScinceDirect digital library, 61(2): 304-330 (2007). 2. Dujovne, E., Huillier, G. and Vela´squez,D., “Extracting significant Website Key Objects: A Semantic Web mining approach”, ScinceDirect digital library, 24(8): 1532-1542 (2007). 3. Internet: Istanbul Üniversitesi “Veri Tabanlarında Bilgi Keşfi ve Veri Madenciliği”, http://www.istanbul.edu.tr/isletme/dergi/nisan2000/1.HTM, (2012). 4. Liu B., “Web Data Mining : Exploring Hyperlinks, Contents, and Usage Data, 13”, M.J. Carey S. Ceri,Springer-Verlag Berlin Heidelberg, Chicago USA, 3-485:(2009). 5. Bouveyron C. and Brunet-Saumard C.,“Model-based clustering of high-dimensional data: A review”, Elsevier, in press (2012). 6. Bouveyrona C., Girardb S. and Schmidc C., “High-Dimensional Data Clustering”, ScinceDirect digital library, 52(1): 502-519(2008). 7. Ashidi N., Mat Isa and Noraini Sulaiman, S., “Adaptive Fuzzy-K-means Clustering Algorithm for Image Segmentation”, IEEE, 56(4): 0083-3063(2010). 8. Su X. and Wang J.,” An improved K-Means clustering algorithm”,IEEE, 58(4): 790798 (2011). 9. Fan A. and Ren s., “K-means Clustering Algorithm Based On Coefficient Of Variation”, IEEE, 4: 2076-2079(2011). 10. Chen H., Li D. and Shen J.,” A Fast K-Means Clustering Algorithm Based on Grid Data Reduction”, IEEE,1-6 (2009). 11. Eswara Reddy B. , Hitendra Sarma T. and Viswanath P., “A hybrid approach to speed-up the k-means clustering method”, Springer-Verlag ,4(2): 107-117 (2012). 12. Chang D., Xian D. and Chang W., ” A genetic algorithm with gene rearrangement for K-means clustering. Pattern Recognition”, IEEE, 42(7): 1210-1222(2009). 13. Bagirov A.M., Ugon J. and Webb D., “Fast modified global k-means algorithm for incremental cluster construction”, ACM Digital Library,44(4): 866-876 (2011). 14. Binti W., Maseri W. and Mohd A.H. and Herawan T., K.F.Rabbi, “An Improved Parameter less Data Clustering Technique based on Maximum Distance of Data and Lioyd k-means Algorithm”, ScinceDirect, 1: 367-371(2011). 88 15. Prasanta, K. and Reddy, D. Jana, “Initialization for K-means clustering using Voronoi diagram”, Elsevier Ltd.,4: 395-400 (2012). 16. Brunsch, T. and Röglin, H., “A bad instance for k-means++”, Elsevier, in press: (2012). 17. Mozafari, B., Thakkar H. and Zaniolo C., “A Data Stream Mining System”, IEEE International Conference on Data Mining Workshops,887-990(2008). 18. Kaya, H. ve Köymen, K.,“Veri Madenciliği Kavramı Ve Uygulama Alanları”,Doğu anadollu araştırmaları, İstanbul,(2008). 19. FayyadU., Piatetsky-Shapiro G., Smyth, P., “Knowledge Discovery and Data Mining:Towards a Unifying Framework”, AAAI, 82-88(2009). 20. Ionescu, F. and Pupezescu, V.,“Advances In Knowledge Discovery In Databases”, Journal of Applied Economic Sciences,4(6): 444-450(2008). 21. An, A., Wang, Y., “Comparisons of Classification Methods for Screening Potential Compounds”, IEEE Digital jornal, 7176463:11-18(2010). 22. Miyamoto, S., “Classification and Clustering: A Perspective toward Risk Mining”,IEEE Xplor, 9342851:726 – 730(2008). 23. Changjiang Z., Yubo J., Zhangxiao Y., Weijie L., “Algorithm Research for Freeway Incident Detection Based on SVM”, Geotechnical Special Publication ASCE library, 25:196-205(2011). 24. Jiang, X.,Sun, D. and Wang, Q.,” The Application of Support Vector Machines (SVM) for Traffic ConditionPrediction Using ITS Data”, ASCE library, 83:882890(2010). 25. Koutroumbas, K. and Theodoridis, S., “Clustering algorithms”, An Introduction to Pattern Recognition, Elsevier Inc Digital library, The Boulevard, LangfordLane Kidlington, Oxford,216, (2010). 26. Wu Z., Zhang B., Zhu Y., Zhao W. and Zhou Y., “Transformer fault portfolio diagnosis based on the combination of the multiple Bayesian classifier and SVM”, IEEE Digital journal,10500719:379-382(2009). 27. Kasper M., Osei-Bryson K. and Sharma S., “Evaluation of an integrated Knowledge Discovery and Data Mining process model”,ScienceDirect digital journal, 39(13):11335-11348(2012). 89 28. Takigawa I., Zhu S., Mamitsuka H. and Zeng J.,” Field independent probabilistic model for clustering multi-field documents”, Elsevier Ltd,45(5):555–570(2009). 29. Droege M. and Sean T. Leonard, “The uses and benefits of cluster analysis in pharmacy research”, Elsevier,4(1):1-11(2008). 30. Jain A. K., “Data Clustering: 50 Years Beyond K-Means”, International Conference on Pattern Recognition (ICPR) Michigan State University,31(8):651–666(2010). 31. Gun G., Ma C., Wa J., “Similarity and dissimilarity measures”, Data Clustering Theory, Algorithm and Applications, Library of Congress Cataloging in Publications Data, the American Statical Association and the Society for Industrial and Applied Mathematics, 255, (2007). 32. Han J., Kamber M., “Data Mining: Concepts and Techniques”, Second Edition, page 429,ScienceDirect digital journal, (2008). 33. Wong H. and Yu Z., “GCA: A Real-Time Grid-Based Clustering Algorithm For Large DataSet”, 18th International Conference on Pattern Recognition, USA 1051-4651(2008). 34. Jiawei, H., “Cluster Analysis”, Data Mining: Concepts and Techniques, 383, Elsevier Inc., USA 290-673(2006). 35. Atrice Dufour, A., Gachet, S., Daniel H., Pavoine, S. and Vallet, J., “On the challenge of treating various types of variables: application for improving the measurement of functional diversity”, Journal compilation,(2009). 36. David, T.,” Advances in Classification of Sequence Data”,IGI Global,143, (2008). 37. Krzysztof J., Pedrycz W., Roman W., “Data Mining A Knowledge Discovery Approach”, Springer Science+Business Media, (2007). 38. Handojo, A.,Santo, J. and Wibowo, A., ”Clustering Search Engine At Petra Christian University Library Using Suffix Tree Clustering”, International Conference on Uncertainty Reasoning and Knowledge Engineering, USA,45,(2011). 39. Haruechaiyasak ,C., Kongthon, A., Palingoon, P.and Thaiprayoon S., “Search Result Clustering for Thai Twitter Based on Suffix Tree Clustering”, IEEE Digital journal, (2012). 40. Maneewongvatana S. and Tepwankul A., “Customized DBSCAN for Clustering Uncertain Objects”, Third International Conference on Knowledge Discovery and Data Mining, USA, 95, (2010). 90 41. Albayrak S. and Tekbir M., “Recursive-Partitioned DBSCAN”, library, (2010). IEEE digital 42. Altıntop Ü., “Internet TabanlıÖğretimdeVeriMadenciliğiTekniklerininUygulaması”, YüksekLisanstezi, Kocaeli Üniversitesi - Fen Bilimleri Enstitüsü, Kocaeli, (2007). 43. Nemala, V., “Efficient clustering techniques for managing large datasets”, UNLV, January (2009). 44. Joshi, R., Patidar, A. and Mishra, S., “Scaling k-medoid Algorithm for Clustering Large Categorical Dataset and its performance analysis”, IEEE Digital journal, (2011). 45. Kaufman, L. and Rousseeuw, P., “clustering large applications”, Finding Groups in Data: an Introduction to Cluster Analysis, WILEY, 126, (2005). 46. Punithavalli, M. and Murugavel, P., “Improved Hybrid Clustering and DistancebasedTechnique for Outlier Removal”, International Journal on Computer Science and Engineering (IJCSE), 1 Jan (2011). 47. Feng J., Gong M., Jiao L.C., Sun T., Zhang X., “Robust non-local fuzzy c-means algorithm with edge preservation for SAR image segmentation”, SinceDirect, (2012). 48. Na, S., Xumin, L. and yong, G., “Research on k-means Clustering Algorithm An Improved k-means Clustering Algorithm”, IEEE computer society, (2010). 49. Wang J., Su X., “An improved K-Means clustering algorithm”, IEEE digital journal, (2011). 50. Liu, G., Sun, Y., Xu, K., “A k-Means-Based Projected Clustering Algorithm”, IEEE digital journal, (2010). 51. Foresti G.L., Piciarelli C. and Micheloni C., “Kernel-based clustering”, IEEE Explore, (2013). 52. Hitendra Sarma T., Viswanath P., Eswara Reddy B., “Speeding-up the kernel kmeans clustering method: A prototype based hybrid approach”, SinceDirect, (2012). 53. Hitendra Sarma T., Viswanath P., Eswara Reddy B., “A Fast Approximate Kernel kmeans Clustering Method For Large Data sets”, IEEE Explore, (2011). 54. P. Fränti and O. Virmajoki, "Iterative shrinking method for clustering problems", Pattern Recognition, 39 (5), 761-765, May (2006). 91 55. Veenman, C.J., M.J.T. Reinders, and E. Backer, “A maximum variance cluster algorithm. Pattern Analysis and Machine Intelligence”, IEEE Transactions, 24(9): p. 1273-1280,(2002). 56. P. Horton, K. Nakai, "A Probablistic Classification System for Predicting the Cellular Localization Sites of Proteins", Intelligent Systems in Molecular Biology, 109-115,(1996). 57. Veenman, C.J., M.J.T. Reinders, and E. Backer, A maximum variance cluster algorithm. Pattern Analysis and Machine Intelligence, IEEE Transactions, 24(9): p. 1273-1280, (2002). 58. Gionis, A., H. Mannila, and P. Tsaparas, “Clustering aggregation”,ACM Transactions on Knowledge Discovery from Data (TKDD), 1(1): p. 1-30,(2007). 59. Zahn, C.T., Graph-theoretical methods for detecting and describing gestalt clusters. Computers, IEEE Transactions on,100(1): p. 68-86, (1971). 60. Chang, H. and D.Y. Yeung, Robust path-based spectral clustering, Pattern Recognition, 41(1): p. 191-203, (2008). 61. Internet: UCI,”clustering data sets”,http://archive.ics.uci.edu/ml/(2013). 62. Internet: SIPU,”clustering data sets”,http://cs.joensuu.fi/sipu/datasets/(2013). 63. İnternet http: FSU,”data sets”,people.sc.fsu.edu/~jburkardt/datasets/cavity_flow/cavity_flow.html (2013). 92 ÖZGEÇMİŞ Kişisel Bilgiler Soyadı, adı:ALZAND, Hussein Ali Ridha Uyruğu: IRAK Doğum tarihi ve yeri: 27.06.1986 Bursa Medeni hali: Bekâr Telefon: 0507 575 48 39 e-mail: hussein.riza@hotmail.com. Eğitim Derece tarihi Eğitim Birimi Yüksek lisans Gazi Üniversitesi/Bilgisayar Bilimleri 2013 Lisans Kerkük Üniversitesi/BilgisayarBilimleri 2008 Lise Kerkük Lisesi 2004 Mezuniyet Yabancı Dil İngilizce, Arapça Yayınlar 1. Alzand, H. & Karacan, H.“Bölümleyici Kümeleme Algoritmalarının Farklı Veri Yoğnluklarında Uygulaması”, Erciyes Üniversitesi Fen Bilimleri Enstitüsü Dergisi, (basımda), (2013). Hobiler Futbol, Bilgisayar teknolojileri, Basketbol