İSTANBUL TEKNİK ÜNİVERSİTESİ FEN EDEBİYAT FAKÜLTESİ MATEMATİK MÜHENDİSLİĞİ PROGRAMI

Benzer belgeler
127 - Twoing Algoritması ile Sınıflandırma Kalp Hastalığı Uygulaması MEHMET AKİF ERSOY ÜNİVERSİTESİ İLHAN UYSAL MEHMET BİLEN SAMİ ULUKUŞ

VERİ MADENCİLİĞİ (Kümeleme) Yrd.Doç.Dr. Kadriye ERGÜN

K En Yakın Komşu Methodu (KNearest Neighborhood)

Web Madenciliği (Web Mining)

Kümeleme Algoritmaları. Tahir Emre KALAYCI

YZM 3217 YAPAY ZEKA DERS#10: KÜMELEME

VERİ MADENCİLİĞİ (Sınıflandırma Yöntemleri) Yrd.Doç.Dr. Kadriye ERGÜN

K-En Yakın Komşu Algoritması Parametrelerinin Sınıflandırma Performansı Üzerine Etkisinin İncelenmesi

Naive Bayes Yöntemi ile Spam Mail Teşhisi Kübra KURNAZ

Makine Öğrenmesi 2. hafta

VERİ MADENCİLİĞİ (Karar Ağaçları ile Sınıflandırma) Yrd.Doç.Dr. Kadriye ERGÜN

MATEMATİK MÜHENDİSLİĞİ PROGRAMI

T.C. ADANA BİLİM VE TEKNOLOJİ ÜNİVERSİTESİ SINAV VE BAŞARI DEĞERLENDİRME YÖNERGESİ

BÖLÜM 6 MERKEZDEN DAĞILMA ÖLÇÜLERİ

Tanımı Amacı Özellikleri Kullanım Alanları Varsayımları Yöntemleri Uygulama aşamaları. Neleri göreceğiz?

BÜLENT ECEVİT ÜNİVERSİTESİ BAĞIL DEĞERLENDİRME SİSTEMİNE İLİŞKİN ESASLAR

Tanımlayıcı İstatistikler. Yrd. Doç. Dr. Emre ATILGAN

Web Madenciliği (Web Mining)

CBS ve Coğrafi Hesaplama

TEMEL İSTATİSTİKİ KAVRAMLAR YRD. DOÇ. DR. İBRAHİM ÇÜTCÜ

Sınav ve Başarı Değerlendirme Yönergesi

Web Madenciliği (Web Mining)

Karadeniz Teknik Üniversitesi Ön Lisans ve Lisans Programlarında Başarı Notunun Değerlendirilmesine Dair Senato Tarafından Belirlenen Usul ve Esaslar

Yıldız Teknik Üniversitesi Fen Bilimleri Enstitüsü Bilgisayar Mühendisliği Bölümü. Bilgisayarla Görme. Final

T.C. SÜLEYMAN ŞAH ÜNİVERSİTESİ SINAV VE BAŞARI DEĞERLENDİRME YÖNERGESİ. BİRİNCİ BÖLÜM Amaç, Kapsam, Dayanak ve Tanımlar

TÜRK-ALMAN ÜNİVERSİTESİ LİSANS ÖLÇME VE DEĞERLENDİRME YÖNERGESİ. BİRİNCİ BÖLÜM Amaç, Kapsam, Dayanak ve Tanımlar

Genel olarak test istatistikleri. Merkezi Eğilim (Yığılma) Ölçüleri Dağılım (Yayılma) Ölçüleri. olmak üzere 2 grupta incelenebilir.

Bağıl Değerlendirme Sistemi ile ilgili Bilgi Notu

ISSN: El-Cezerî Fen ve Mühendislik Dergisi Cilt: 3, No: 2, 2016 ( )

KIRKLARELİ ÜNİVERSİTESİ SINAV VE BAŞARI DEĞERLENDİRME YÖNERGESİ KIRKLARELİ ÜNİVERSİTESİ

Uzaktan Algılama Uygulamaları

VERİ MADENCİLİĞİ (Veri Ön İşleme-2) Yrd.Doç.Dr. Kadriye ERGÜN

Kümeler arası. Küme içi. uzaklıklar. maksimize edilir. minimize edilir

T.C. BÜLENT ECEVİT ÜNİVERSİTESİ Öğrenci İşleri Daire Başkanlığı MÜHENDİSLİK FAKÜLTESİ DEKANLIĞINA

Hemşirelik Anabilim Dalı Yüksek Lisans Genel Bilgi Amaç ve Hedefler Amaç: Hedef: Verilen Derece: Düzeyi Bazı Kabul Koşulları

JEODEZİK VERİLERİN İSTATİSTİK ANALİZİ. Prof. Dr. Mualla YALÇINKAYA

Hemşirelik Anabilim Dalı Yüksek Lisans Genel Bilgi Amaç ve Hedefler Amaç: Hedef: Verilen Derece: Düzeyi Bazı Kabul Koşulları Kabul Koşulları:

Örnek 4.1: Tablo 2 de verilen ham verilerin aritmetik ortalamasını hesaplayınız.

CELAL BAYAR ÜNİVERSİTESİ BAĞIL DEĞERLENDİRME SİSTEMİ YÖNERGESİ

Bölüm 3. Tanımlayıcı İstatistikler

BİTLİS EREN ÜNİVERSİTESİ BAĞIL DEĞERLENDİRME SİSTEMİ UYGULAMA YÖNERGESİ

Uzaktan Algılama Teknolojileri

Görüntü Sınıflandırma

SÜREKLĠ OLASILIK DAĞILIMLARI

MANİSA CELAL BAYAR ÜNİVERSİTESİ BAĞIL DEĞERLENDİRME SİSTEMİ YÖNERGESİ

Veri Madenciliği Yaklaşımı ile Mesleki Yönlendirme Sistemi

TANIMLAYICI İSTATİSTİKLER

Oluşturulan evren listesinden örnekleme birimlerinin seçkisiz olarak çekilmesidir

Nicel / Nitel Verilerde Konum ve Değişim Ölçüleri. BBY606 Araştırma Yöntemleri Bahar Dönemi 13 Mart 2014

BÖLÜM 5 MERKEZİ EĞİLİM ÖLÇÜLERİ

Prof.Dr.İhsan HALİFEOĞLU

Karaciğerde Oluşan Hastalıkların Tespitinde Makine Öğrenmesi Yöntemlerinin Kullanılması

Büyük Veri İçin İstatistiksel Öğrenme (Statistical Learning for Big Data)

Verilerin Özetlenmesinde Kullanılan Sayısal Yöntemler

İSTANBUL AREL ÜNİVERSİTESİ AKADEMİK DEĞERLENDİRME VE KALİTE GELİŞTİRME ÇALIŞMA KOMİSYONU TOPLANTISI

T.C. AVRASYA ÜNİVERSİTESİ BAĞIL NOT DEĞERLENDİRME SİSTEMİ YÖNERGESİ

BAĞIL DEĞERLENDİRME SİSTEMİ

İSTANBUL AYDIN ÜNİVERSİTESİ NOT DEĞERLENDİRME SİSTEMİ YÖNERGESİ

Merkezi Yığılma ve Dağılım Ölçüleri

Gruplanmış serilerde standart sapma hesabı

EGE ÜNİVERSİTESİ BAĞIL DEĞERLENDİRME SİSTEMİ ve HARFLİ SİSTEM UYGULAMA KLAVUZU

ÇUKUROVA ÜNİVERSİTESİ BAĞIL DEĞERLENDİRME YÖNERGESİ

TEMEL İSTATİSTİK BİLGİSİ. İstatistiksel verileri tasnif etme Verilerin grafiklerle ifade edilmesi Vasat ölçüleri Standart puanlar

BÖLÜM III: Şebeke Modelleri. Şebeke Kavramları. Şebeke Kavramları. Şebeke Kavramları. Yönlü Şebeke (Directed Network) Dal / ok

Hatalar ve Bilgisayar Aritmetiği

Mühendislik Mekaniği Statik. Yrd.Doç.Dr. Akın Ataş

Akademik Personel ve Lisansüstü Eğitimi Giriş Sınavı. ALES / Đlkbahar / Sayısal II / 13 Mayıs Matematik Sorularının Çözümleri

Bu bölümde; Çok ölçütlü karar verme yöntemlerinden biri olan TOPSİS yöntemi anlatılacaktır.

PARÇACIK SÜRÜ OPTİMİZASYONU BMÜ-579 METASEZGİSEL YÖNTEMLER YRD. DOÇ. DR. İLHAN AYDIN

Okut. Yüksel YURTAY. İletişim : (264) Sayısal Analiz. Giriş.

Veri Madenciliği Karar Ağacı Oluşturma

DOĞU AKDENİZ ÜNİVERSİTESİ MATEMATİK BÖLÜMÜ 23. LİSELERARASI MATEMATİK YARIŞMASI

ÇUKUROVA ÜNİVERSİTESİ BAĞIL DEĞERLENDİRME YÖNERGESİ

Algoritma Geliştirme ve Veri Yapıları 10 Graf Veri Modeli. Mustafa Kemal Üniversitesi

BAYES ÖĞRENMESİ BİLECİK ÜNİVERSİTESİ. Araş. Gör. Nesibe YALÇIN. Yapay Zeka-Bayes Öğrenme

KABA KÜME TEORİSİ (Rough Set Theory) Dr. Sedat TELÇEKEN

İSTANBUL ÜNİVERSİTESİ ÖNLİSANS, LİSANS ÖLÇME VE DEĞERLENDİRME ESASLARI. BİRİNCİ BÖLÜM Amaç, Kapsam, Dayanak ve Tanımlar

Makine Öğrenmesi İle Duygu Analizinde Veri Seti Performansı

YZM 5257 YAPAY ZEKA VE UZMAN SİSTEMLER DERS#6: GENETİK ALGORİTMALAR

3.2. DP Modellerinin Simpleks Yöntem ile Çözümü Primal Simpleks Yöntem

T.C. KIRIKKALE ÜNİVERSİTESİ. Bağıl Değerlendirme Sistemi

Biyoistatistiğe Giriş: Temel Tanımlar ve Kavramlar DERS I VE II

1. BÖLÜM Mantık BÖLÜM Sayılar BÖLÜM Rasyonel Sayılar BÖLÜM I. Dereceden Denklemler ve Eşitsizlikler

VERİ MADENCİLİĞİ (Karar Ağaçları ile Sınıflandırma) Yrd.Doç.Dr. Kadriye ERGÜN

Fonksiyon Optimizasyonunda Genetik Algoritmalar

Programı başarıyla tamamlayan öğrencilere GIDA MÜHENDİSLİĞİ YÜKSEK LİSANS DERECESİ verilecektir.

10.Hafta Minimum kapsayan ağaçlar Minimum spanning trees (MST)

BİR ÖRNEKLEM İÇİN T TESTİ İLİŞKİSİZ ÖRNEKLEMLER İÇİN T-TESTİ

TIBBİ LABORATUVAR TEKNİKLERİ ÖNLİSANS PROGRAMI

BİYOİSTATİSTİK Tablo Hazırlama Dr. Öğr. Üyesi Aslı SUNER KARAKÜLAH

2- VERİLERİN TOPLANMASI

Prof.Dr.İhsan HALİFEOĞLU

Zamansal Veri Madenciliği ve Anomali Tespiti için Bir Uygulama

Microsoft Excel Uygulaması 2

BKİ farkı Standart Sapması (kg/m 2 ) A B BKİ farkı Ortalaması (kg/m 2 )

Sıklık Tabloları, BASİT ve TEK değişkenli Grafikler Ders 3 ve 4 ve 5

Kitle: Belirli bir özelliğe sahip bireylerin veya birimlerin tümünün oluşturduğu topluluğa kitle denir.

DENEY 0. Bölüm 1 - Ölçme ve Hata Hesabı

Türkçe Dokümanlar Ġçin Yazar Tanıma

Transkript:

İSTANBUL TEKNİK ÜNİVERSİTESİ FEN EDEBİYAT FAKÜLTESİ MATEMATİK MÜHENDİSLİĞİ PROGRAMI K-MEANS KÜMELEME VE K-NN SINIFLANDIRMA ALGORİTMALARININ ÖĞRENCİ NOTLARI VE HASTALIK VERİLERİNE UYGULANMASI BİTİRME ÖDEVİ Hilal ÖZKAN 090080049 Tez Danışmanı: Yar. Doç. Dr. Ahmet KIRIŞ OCAK 2013

ÖNSÖZ Bu çalışmayı hazırlarken her türlü yardımı ve desteği fazlasıyla sağlayan, hiçbir şekilde esirgemeyen saygıdeğer hocam Sayın Yar. Doç. Dr. Ahmet KIRIŞ a, Sayın Dekanımız Prof. Dr. Emanullah HIZEL e, üniversite hayatımda bana yol gösteren Sayın Hocalarım Dr. Sait KOFOĞLU, Yar. Doç. Dr. Mehmet Ali KARACA, Yar. Doç. Dr. Recep KORKMAZ ve Dr. Eti MİZRAHİ ye, bana daima destek olan, güç veren sevgili arkadaşım E. Merve KARADAĞ a, yaşantım boyunca her zaman olduğu gibi bu zorlu süreçte de yanımda olan, bana sevgi, güven ve her türlü maddi manevi desteği veren annem Psk. Filiz ÖZKAN a, babam Doç. Dr. Ömer ÖZKAN a ve sadece odamı değil çok şeyimi paylaştığım canım kardeşim Z. Reyhan ÖZKAN a en içten teşekkürlerimi sunarım. Ocak, 2013 Hilal ÖZKAN OCAK 2013 ii

İÇİNDEKİLER Sayfa ÖZET 1 1. GİRİŞ 2 2. K-MEANS KÜMELEME ALGORİTMASI 3 2.1. Tanım ve Tarihçe 3 2.2. K-means Algoritmasının Adımları 4 2.3. Algoritmanın Akış Şeması 5 2.4. k Sayısının Kümelemeye Etkisi 6 2.5. Uzaklık Ölçütleri 7 2.5.1. Öklid Uzaklık Ölçütü 7 2.5.2. Manhattan Uzaklık Ölçütü 7 2.5.3. Minkowski Uzaklık Ölçütü 8 2.5. Uygulama Alanları 8 3. K-NN SINIFLANDIRMA ALGORİTMASI 9 3.1. Tanım ve Tarihçe 9 3.2. K-NN Algoritmasının Adımları 10 3.3. k Sayısının Sınıflandırmaya Etkisi 12 3.4. Uygulama Alanları 13 4. UYGULAMA: ÖĞRENCİ HARF NOTLARININ BELİRLENMESİ 14 5. UYGULAMA: KALP HASTALIĞI TEŞHİSİ 18 6. EKLER 22 6.1. K-means Algoritmasının Kodları 22 6.2. K-NN Algoritmasının Kodları 25 KAYNAKLAR 27 iii

iv

ÖZET Öğrenci harf notlarının belirlenmesi için farklı algoritmalar kullanılmaktadır. Sapması düşük algoritmaların daha etkili olduğunu ve adil sonuçlar ortaya koyduğunu söylemek mümkündür. Tıp alanında geçmiş teşhis ve tedavi kayıtları, gelecek çalışmalara ışık tutmaktadır. Bu doğrultuda geçmiş kayıtların bilgisayar programları tarafından analiz edilmesi etkili tedaviyi destekleyici bir unsur oluşturmaktadır. Bu çalışmada kümeleme algoritmalarından K-means algoritması ve sınıflandırma algoritmalarından K-NN algoritması anlatılmış, bu iki algoritma kullanılarak öğrenci harf notlarının belirlenmesi ve kalp hastalığının teşhisi için hazırlanan uygulamalar Mathematica programı ile gerçekleştirilmiştir. 1

1. GİRİŞ İnsanoğlu hayatta karsılaştığı zorlukları yenebilmek için önceki tecrübelerine, bilgi birikimlerine ihtiyaç duyar. Bu yüzden tarih boyunca bunları saklayacak ve gerektiğinde kullanmayı sağlayacak teknikler geliştirmeye çalışmıştır. İlk çağlarda mağara duvarlarına resim seklinde kaydettiği verileri, ilerleyen çağlarda kâğıdın icadı ile birlikte kitaplara dökmüştür. Geleneksel veri kaydetme aracı olan kâğıdın yerini gün geçtikçe hızlanan ve ucuzlayan elektronik kayıt ortamlarına bırakması ile birlikte, yeryüzünde çok büyük veri yığınları oluşmaya başlamıştır. Yaşadığımız her saniye bu yığınlara yenileri eklenmektedir. Veri kendi basına bir değer ifade etmez, bir amaca yönelik olarak işlendiğinde bilgiyi oluşturur. Yakın geleceğin, geçmişten çok fazla farklı olmayacağı varsayıldığında, geçmiş veriden çıkarılmış olan kurallar gelecekte de geçerli olacak ve ilerisi için doğru tahmin yapmayı sağlayacaktır [5]. Fakat her veriden bilgi sağlamak mümkün olmayabilir. Veriden bilgi edinebilmek yani veriden öğrenmek için bazı koşulların sağlanması gerekmektedir. Bunlar Bir örüntü mevcuttur. Matematiksel olarak ifade edilemiyordur. Örnek veri kümesi vardır. şeklinde sıralanabilir [20]. Bilginin edinilebilmesi için öncelikle üzerinde çalışılacak örnek veri kümesine ihtiyaç vardır. Fakat bu veri kümesi bir örüntü içermiyor, rastgele verilerden oluşuyorsa bir algoritma geliştirmek mümkün değildir. Matematiksel formüller ile kesin çözüme ulaşılan sorunlarda ise eski veriler kullanılarak bir çıkarımda bulunmaya gerek kalmaz. Bu bitirme projesinde harf notları ve kalp hastalığı verileri kullanılarak iki farklı uygulama geliştirilmiştir. İlk uygulama, üç farklı sınavdan aldıkları notlar belli olan öğrencilerin harf notlarını adil bir şekilde belirlemeye yöneliktir. İkinci uygulamada ise veri kümesi hasta ve sağlıklı olarak ikiye ayrılmış, daha sonrasında bir kişinin hangi grupta yer alacağı belirlemek amaçlanmıştır. 2

2. K-MEANS ALGORİTMASI 2.1 Tanım ve Tarihçe K-means algoritmasının ana fikri 1957 de Hugo Steinhaus tarafından ortaya atılsa da [3] K-means terim olarak ilk defa 1967 yılında James MacQueen tarafından kullanılmıştır [4]. 50 yıldan fazla bir süre önce ortaya çıkan en eski kümeleme algoritmalarından biri olmasına rağmen, K-means algoritması günümüzde kümeleme için kullanılan en yaygın gözetimsiz öğrenme yöntemlerinden biridir [6]. Algoritmasının temelinde n tane veriyi k tane birbirinden ayrık küme oluşturacak şekilde gruplara ayırmak yatar. K-means in atama mekanizması her verinin sadece bir kümeye ait olabilmesine izin verir [8]. Birbirine yakın veriler aynı kümede yer alırken birbirinden uzak veriler farklı kümelerde yer alırlar. Algoritmanın amacı; gerçekleştirilen gruplama işleminin sonunda küme içi benzerlikleri maksimum, kümeler arası benzerlikleri ise minimum hale getirmektir. Küme benzerliği, kümenin ağırlık merkezi olarak kabul edilen bir nesne ile kümedeki diğer nesneler arasındaki uzaklıkların ortalama değeri ile ölçülmektedir [1-2]. Kümeleme, verilerin en yakın veya benzer oldukları küme merkezleri etrafına yerleştirilmesi ile gerçekleştirilir. Algoritmaya K-means adı verilmesinin sebebi, algoritmanın başlangıcında sabit bir küme sayısına ihtiyaç duyulmasıdır. k ile gösterilen küme sayısı, verilerin birbirlerine olan yakınlıklarına göre oluşacak grup sayısını ifade eder. Kümeleme işleminden önce bilinen k, kümeleme işlemi bitene kadar değeri değişmeyen sabit bir pozitif tam sayıdır [5]. K-means algoritmasının performansını k küme sayısı, başlangıç olarak seçilen küme merkezlerinin değerleri ve benzerlik ölçümü kriterleri etkiler [7]. Küme merkezlerinin değerlerine bağlı olarak, özelikle de bu değerlerin rastgele seçilmesi durumunda, bir ya da birden fazla küme boş kalabilir [9]. Ayrıca bu algoritma çakışan kümelerde iyi sonuç vermez. K-means in dezavantajlarından biri de, sadece sayısal verilerde kullanılabilir olmasıdır. Algoritmayı kategorik verilere doğrudan uygulamak mümkün değildir. Kullanılması için kategorik verilerin sayısal verilere dönüştürülmesi gerekmektedir. 3

2.2 K-means Algoritmasının Adımları Kümeleme işlemine başlamadan önce, bütün verilerin sayısal değerlere dönüştürülmesi ve verinin kaç kümeye ayrılacağının yani k sayısının belirlenmesi gerekir. Algoritmanın ilk adımında, bu k adet kümenin merkezleri için sayılar atanır. Atanan bu ilk küme merkezlerinin değerleri rastgele olabileceği gibi, algoritmanın daha iyi bir sonuç vermesi açısından farklı yöntemlerle de seçilebilir. Bir sonraki adım ise, veride bulunan her elemanın ilk küme merkezlerine olan uzaklıklarını hesaplamaktır. Hesaplanan uzaklıklar sonucu, her eleman en yakın olduğu kümeye yerleştirilir. Oluşan kümelerdeki elemanların ortalaması alınır ve bu sayı yeni küme merkezi olarak belirlenir. Verideki her elemanın yeni küme merkezlerine olan uzaklıkları hesaplanır ve en yakın olduğu kümeye yerleştirilir. Bu işlem küme merkezleri değişmeyene ya da belirlenen çevrim sayısına ulaşılana kadar tekrarlanır. K-means algoritmasının işlem basamakları şu şekilde özetlenebilir: 1. Adım: İlk küme merkezleri belirlenir. Küme merkezleri rastgele seçilebilir ya da bu işlem için farklı bir yöntem belirlenir. 2. Adım: Her nesnenin seçilen merkez noktalara olan uzaklığı hesaplanır. Elde edilen sonuçlara göre tüm elemanlar k adet kümeden kendilerine en yakın olan kümeye yerleştirilir. 3. Adım: Oluşan kümelerin yeni merkez noktaları o kümedeki tüm elemanların ortalama değeri ile değiştirilir. 4. Adım: Merkez noktalar değişmeyene kadar ya da belirlenen çevrim sayısı tamamlanana kadar 2. ve 3. adımlar tekrarlanır. 4

2.3 Algoritmanın Akış Şeması Başla k tane küme merkezi belirle i=1 i. elemanı seç i= i+1 i. elemanı en yakın olduğu küme merkezine ata HAYIR Tüm elemanlar seçildi mi? EVET Kümelerin yeni merkez noktalarını o kümedeki tüm elemanların ortalama değeri ile değiştir Merkez noktaları sabit kaldı mı? / Belirlenen çevrim sayısına ulaşıldı mı? HAYIR EVET Bitir 5

2.4 k Sayısının Kümelemeye Etkisi K-means algoritmasında kümeleme işleminden önce seçilen k sayısının önemi Şekil 2.1 de gösterilmiştir. Örnekteki verilerin dağılımı Şekil 2.1 (a) da görülmektedir. k sayısının 2 seçilmesi durumunda kümeleme sonucu oluşacak kümeler Şekil 2.1 (b) de gösterilmiş, küme merkezlerinin son halleri üçgen simgelerle temsil edilmiştir. Şekil 2.1 (c) de ise k sayısının 3 seçilmesi sonucu ortaya çıkacak durum verilmiştir. Şekillerde açıkça görüldüğü gibi başlangıçta seçilen k sayısı kümeleme işleminin sonucunu değiştirmektedir. Şekil 2.1: K-means kümeleme algoritması K-means ve benzeri kümeleme algoritmaları k sayısının belirlenmesi konusunda bir çözüm sunmazlar. Ancak birçok durumda, özel bir k değerinin belirlenmesi gerekli olmaz. Analiz aşamasında k değerinin tespiti için ön çalışma yapılır. Tahmini bir değer kullanılarak kümeleme algoritması çalıştırılır ve alınan sonuçlar değerlendirilir. Değerlendirme sonucunda beklenen kümeleme görülmez ise, başka bir k değeri kullanılarak tekrar kümeleme algoritması çalıştırılır veya veriler üzerinde değişiklik yapılabilir. Algoritmanın her çalıştırılması sonrasında, ortaya çıkan kümelerin etkinliğini hesaplamak için, küme içindeki kayıtların arasındaki ortalama uzaklık ile kümeler arası ortalama uzaklık karşılaştırılır. Hesaplamada başka yöntemler de kullanılabilir. Bu yöntemler algoritmaya dâhil edilebilir. Ancak ele alınan uygulama açısından sonucun yararlılığının belirlenmesi için kümeler mutlaka daha öznel temelde değerlendirilmelidir [10]. 6

2.5 Uzaklık Ölçütleri Bir veri setinde yer alan birimlerin kümelenmesi işlemi bu birimlerin birbirleriyle olan benzerlikleri ya da birbirlerine olan uzaklıkları kullanılarak gerçekleştirilmektedir. Değişkenlerin kesikli ya da sürekli olmalarına ya da değişkenlerin nominal, ordinal, aralık ya da oransal ölçekte olmalarına göre hangi uzaklık ölçüsünün ya da hangi benzerlik ölçüsünün kullanılacağına karar verilir [11]. K-means kümeleme algoritmasında her elemanın küme merkezlerine uzaklığını ölçmek için farklı yöntemler kullanılabilir. En yaygın olarak kullanılan Öklid uzaklık ölçütüdür. Öklid uzaklık ölçütüne ek olarak, Manhattan uzaklık ölçütü ve Minkowski uzaklık ölçütü de sık kullanılan yöntemler arasındadır. Her uzaklık ölçütü şu şartları sağlar: d i, j 0 ; Uzaklık negatif olamaz. di,i 0 ; Her elemanın kendisine olan uzaklığı sıfırdır. di, j d j,i ; Uzaklık fonksiyonu simetriktir. di, j di,h + dh, j ; Üçgen Eşitsizliği: İki eleman arasındaki uzaklık bu iki elemanın üçüncü bir elemana olan uzaklıkları toplamından küçük olamaz. 2.5.1 Öklid Uzaklık Ölçütü Öklid uzaklığı ve Öklid uzaklığının karesi formülleri ile standartlaştırılmış verilerle değil, işlenmemiş verilerle hesaplama yapılır. Öklid uzaklıkları kümeleme analizine sıra dışı olabilecek yeni nesnelerin eklenmesinden etkilenmezler. Ancak boyutlar arasındaki ölçek farklılıkları Öklid uzaklıklarını önemli ölçüde etkilemektedir. Öklid uzaklık formülü en yaygın olarak kullanılan uzaklık hesaplama formülüdür. i1 j1 i2 j2 ip jp d i, j x x x x x x 2.5.2 Manhattan Uzaklık Ölçütü Manhattan uzaklığı boyutlar arasındaki ortalama farka eşittir. Bu ölçüt kullanıldığında farkın karesi alınmadığı için sıra dışılıkların etkisi azalır. Manhattan uzaklık ölçütü kullanılarak iki birim arasındaki uzaklık 7

i1 j1 i2 j2 ip jp d i, j x x x x x x formülü ile hesaplanır. Bu ölçü de birimler arasındaki mutlak uzaklık kullanılır. Manhattan uzaklık ölçütüne, city block uzaklık ölçütü adı da verilir. 2.5.3 Minkowski Uzaklık Ölçütü Minkowski uzaklık ölçüsü genel bir formüldür. Formülde yer alan m değerinin alacağı farklı değerlere göre yeni formüller türetir. Minkowski uzaklık ölçüsü kullanılarak iki birim arasındaki uzaklık di, j x x x x x x m m m i1 j1 i2 j2 ip jp formülü ile hesaplanır. Minkowski uzaklık ölçüsündeki m değeri büyük ve küçük farklara verilen ağırlığı değiştirir. m=1 değerini alırsa, formül, Manhattan uzaklık ölçütünün formülüne, m=2 değerini alırsak, formül Öklid uzaklık ölçütü formülüne dönüşür [11]. 1m 2.6 Uygulama Alanları K-means kümeleme algoritmasının uygulama alanı oldukça geniştir. Bunlardan bazıları şu şekilde sıralanabilir: Pazarlama: Müşteri özelliklerini ve geçmiş alışveriş kayıtlarını içeren geniş bir veri havuzunda benzer tutumdaki müşterilerin tespiti Biyoloji: Özniteliklerinden yola çıkarak bitki ve hayvanların sınıflandırılması Sigorta: Yüksek ortalama talep maliyetine sahip sigorta poliçesi sahiplerinin belirlenmesi, sahtekarlıkların tespiti Şehir Planlama: Ev tiplerine bağlı olarak ev topluluklarının gruplanması, değer ve coğrafik yer Deprem Çalışmaları: Gözlemlenen deprem merkez üssüleri yardımıyla tehlikeli bölgelerin belirlenmesi [12] Medikal: Kalp hastalığı verilerinden yararlanarak kişinin kalp hastası ya da sağlıklı olarak gruplandırılması Eğitim: Sayısal not verileri kullanılarak öğrencinin harf notunun belirlenmesi. 8

3. K-NN ALGORİTMASI 3.1 Tanım ve Tarihçe ABD Hava Kuvvetleri Hava Hekimliği Okulu nun 1951 yılındaki yayınlanmamış bir raporunda Fix ve Hodges tarafından patent tanıma alanında kullanılmak üzere parametrik olmayan bir yöntem tanıtılmış ve o zamandan itibaren bu yöntem K- Nearest Neighbor algoritması olarak adlandırılmıştır. K-Nearest Neighbor algoritması daha sonra 1967 de Cover ve Hart tarafından geliştirilmiştir. Geliştirilen sınıflandırma algoritması sayesinde, yeni kabul yaklaşımları (Hellman, 1970), Bayes hata oranının geliştirilmesi (Fukunaga & Hostetler, 1975), uzaklık ağırlıklı yaklaşımlar (Dudani, 1976; Bailey & Jain, 1978), esnek hesaplama yöntemleri (Bermejo & Cabestany, 2000) ve bulanık yöntemler (Jozwik, 1983; Keller et al, 1985) de dâhil pek çok yeni araştırma ortaya çıkmıştır [15]. Kısaca K-NN olarak ifade edilen K-Nearest Neighbor (K-En Yakın Komşu) sınıflandırma algoritmasının temelinde birbirine yakın olan nesneler muhtemelen aynı kategoriye aittir mantığı yatar. Algoritmanın amacı, yeni bir nesneyi özelliklerinden faydalanarak önceden sınıflandırılmış örnekler yardımıyla sınıflandırmaktır [19]. Hangi sınıfa ait olduğu bilinmeyen nesne sınama örneği, önceden sınıflandırılmış nesneler ise öğrenme örnekleri olarak adlandırılır. K-NN algoritmasında sınama örneğinin öğrenme örneklerine olan uzaklıkları hesaplanır ve en yakınındaki k adet örnek çoğunlukla hangi sınıfa aitse sınama örneğinin de o sınıfa ait olduğu düşünülür. Şekil 3.1 K-NN Sınıflandırma Algoritması [16] 9

Şekil 3.1 de K-NN algoritmasının mantığı görsel olarak ifade edilmiştir. Burada dikkat edilmesi gereken k sayısına bağlı olarak sınıflandırmanın farklı sonuçları olabileceğidir. Bu konudan k Sayısının Sınıflandırmaya Etkisi başlığı altında detaylı olarak bahsedilecektir. K-Nearest Neighbor algoritması kolay anlaşılabilir bir algoritma olduğu için uygulaması basittir. Sayısal veriler üzerinde uygulanması kategorik verilere oranla daha kolaydır. Ayrıca gürültüye sahip veriler için de olumlu sonuçlar ortaya koyar. Fakat algoritmada kullanılacak verilerin saklanması hafızada fazla yer kaplar. K- NN in bir diğer dezavantajı da yeni bir nesneyi sınıflandırırken diğer nesnelere olan uzaklığının hesaplanması ve karşılaştırılmasının zaman almasıdır. K-Nearest Neighbor algoritmasını kullanmanın avantajları ve dezavantajları şu şekilde özetlenebilir. Avantajları; Gürültüye sahip öğrenme verilerinde de güçlü sonuçlar ortaya koyması, Öğrenme verilerinin çok olması durumunda etkili sonuç vermesidir. Dezavantajları; k sayısının belirlenmesinin gerekliliği, Uzaklığa bağlı bir sınıflandırma yöntemi olduğu için hangi uzaklık ölçütünün kullanılacağına dair bir kesinlik olmaması, Sınama örneğinin öğrenme örneklerine olan uzaklıkları tek tek hesaplanacağı için hesaplama zamanının ve masrafının fazla olmasıdır [18]. 3.2 K-NN Algoritmasının Adımları Sınıflandırma işlemine başlamadan önce, bütün verilerin sayısal değerlere dönüştürülmesi ve en yakın kaç tane komşuya bakılacağının yani k sayısının belirlenmesi gerekir. Bir örneğin sınıflandırılması için sınıfı bilinen örnekler seçilir. Sınama örneğinin sınıfını belirlerken öğrenme örnekleri kümesindeki örneklere olan uzaklıkları hesaplanır ve en yakın k tane örnek seçilir. Uzaklık hesaplanırken Öklid, Manhattan, Minkowski gibi farklı uzaklık ölçütlerinden yararlanmak mümkündür fakat çoğunlukla Öklid uzaklık ölçütü kullanılır. Daha sonra, seçilen k tane örnek 10

arasında hangi sınıfa ait örnek sayısı en fazlaysa sınama örneği de bu sınıfa aittir denir. Şekil 3.2 K-NN ile Pozitif-Negatif Teşhisi[16] Şekil 3.2 de pozitif ve negatif olarak iki kümeye ayrılmış veri yardımıyla bilinmeyen nesnenin sınıflandırılmasına bir örnek verilmiştir. Nesnenin en yakın üç komşusu pozitif kümesinde yer aldığı için kendisinin de pozitif olduğu çıkarımında bulunulabilir. Öğrenme kümesindeki örnekler x i, sınama örneği x q ile gösterilmek üzere K-NN 1 yöntemini, yakın olan örneklerin ağırlığını artırarak w formülü ile d 2 ( x, x ) uzaklık ağırlıklı K-NN yöntemi haline getirmek de mümkündür. K-NN sınıflandırma algoritmasının işlem basamakları şu şekilde özetlenebilir: 1. Adım: Sınama örneğinin öğrenme örneklerine olan uzaklıkları hesaplanır. 2. Adım: En yakın olan k tane örnek seçilir. 3. Adım: Hangi sınıfa ait örnek sayısı en fazlaysa sınama örneği de bu sınıfa atanır. q i 11

3.3 k Sayısının Sınıflandırmaya Etkisi Şekil 3.3.1 k Sayısının Sınıflandırmaya Etkisi Şekil 3.3.1 de K-NN algoritmasının mantığı görsel olarak ifade edilmiştir. Şekil 3.3.1 (a) da k sayısı 1 seçilerek en yakın bir komşu A sınıfına dâhil olduğu için sınıflandırılmak istenen nesnenin de A sınıfına ait olduğu sonucuna ulaşılmıştır. (b) de ise k sayısı 3 seçildiğinde en yakın üç komşudan ikisinin B, birinin ise A grubuna dâhil olduğu görülmüş ve sınıflandırılmak istenen nesnenin B sınıfına ait olduğu sonucuna ulaşılmıştır. Şekil 3.3.2 K-NN ile Sınıflandırma Şekil 3.3.2 de görüldüğü gibi x q örneği; 1-en yakın komşuya göre (k=1) pozitif, 5-en yakın komşuya göre (k=5) negatif olarak sınıflandırılır [18]. 12

k sayısına bağlı olarak sınıflandırmanın farklı sonuçlar verebileceği bu örnekte de görülmüştür. 3.4 Uygulama Alanları K-Nearest Neighbor algoritmasının veri madenciliği, istatistiksel patern tanıma, görüntü işleme ve pek çok alanda kullanılan bir yöntemdir [19]. Algoritmanın bazı uygulamaları aşağıdaki gibidir. Kredi başvurusu değerlendirme Kredi kartı harcamasının sahtekârlık olup olmadığına karar verme Hastalık teşhisi Ses tanıma Karakter tanıma Gazete haberlerini konularına göre ayırma Kullanıcı davranışları belirleme [17] El yazısı tanıma Uydu görüntüsü tanısı EKG örüntülerinin incelenmesi [19]. 13

4. UYGULAMA: ÖĞRENCİ HARF NOTLARININ BELİRLENMESİ Bu bölümde öğrencilerin bir derste yapılan 3 farklı sınavdan aldığı notlardan bir veri oluşturulmuştur. Öğrencilerin bu 3 sınavdan aldıkları notlar baz alınarak K-means kümeleme algoritması yardımıyla yıl sonu başarı notları belirlenmiştir. Sonrasında ise K-NN algoritması yardımıyla başlangıçta kümelemeye dahil olmayan bir öğrencinin hangi harf notunu alacağı saptanmıştır. 250 öğrencinin 3 farklı sınav notlarından oluşan veri aşağıdaki gibidir. 14

İlk küme merkezlerini rastgele seçmek yerine algoritmanın verimliliğini artırmak için bir yol geliştirilmiştir. Öncelikle not listesinin uzunluğu hesaplanmış ve ardından kümelenecek eleman sayısı olan k = 8 (AA, BA, BB, CB, CC, DC, DD, FF) e bölünmüştür. Bu bölüm sonucunda çıkan sayı tam sayıya yuvarlanmış ve notlar listesinde 8 küme oluşturulmuştur. Bu 8 kümenin ayrı ayrı aritmetik ortalamaları alınıp elde edilen sayılar ilk küme merkezleri olarak atanmıştır. 1. KUME MERKEZLERI = {{13.6613, 12.4194, 12.7581}, {20.3226, 18.8387, 18.3226}, {32.9032, 32.5806, 27.6129}, {42.4194, 44.871, 40.871}, {53.3871, 57.4516, 54.5484}, {63.8387, 68.7742, 65.5806}, {77.7742, 81.6129, 79.7742}, {83.8871, 85.8065, 84.8871}} Bu ortalamalara -yani ilk küme merkezlerine- göre, notlar listesinin tüm elemanlarının 8 ayrı küme merkezine olan uzaklıkları Öklid uzaklık ölçütü ile hesaplanmış ve notlar listesinin 3 sınav notlarından oluşan her bir elemanı, uzaklığının minimum olduğu kümeye dâhil edilmiştir. Burada göz önünde bulundurulması gereken nokta, 3 sınav notunun harf notuna etkisinin eşit kabul edilmiş olmasıdır. Sınav notlarına farklı ağırlıklar verilmek istenirse Öklid uzaklık 2 2 2 ölçütünde di, j w1 xi1 x j1 w2 xi2 x j2 wp xip x jp kullanılmalıdır. Burada geçen temsil etmektedir. formülü w i (i 1,2,...,p ) değerleri her sınav notunun ağırlığını Daha sonra oluşturulan her bir kümenin aritmetik ortalaması alınmış ve bu ortalamalar yeni küme merkezleri olarak atanmıştır. Sonraki aşamada her kümenin içi boşaltılmış, her elemanın yeni küme merkezlerine olan uzaklıkları tekrar hesaplanarak, uzaklığının minimum olduğu kümeye dâhil edilmiş ve tekrar yeni küme merkezleri oluşturulmuştur. Maksimum iterasyon sayısı 20 olarak belirlense de kümeleme işlemi 8. adımda tamamlanmıştır. En iyi sonucun küme merkezleri {{9.1764,10,14.852}, {25.363,19.045,20.09}, {33.945,35.189,27.702}, {45.292,45.292,50.682}, {48.642,80.571,18.071}, {56.857,57.964,71.964}, {73.771,72.171,67.571}, {87.641,90.359,87.692}} olarak bulunmuştur. Bu kümeleme sonucu oluşan sapma değeri 1396.20 olarak hesaplanmıştır. 15

Ancak K-means algoritması başlangıç ortalamalarına bağlı olarak farklı sonuçlar verebilmektedir. Daha iyi sonuçların elde edilebilmesi için başlangıç ortalamalarına kullanıcının belirlediği bir aralık dâhilinde keyfi ekleme-çıkarma yapılmıştır. Keyfi ekleme-çıkarma aralığı 10 olarak belirlenmiştir. Bu işlem 20 kez tekrarlanarak birbirinden farklı 20 başlangıç ortalaması elde edilmiştir. Bu işlemler sonrasında hangi başlangıç ortalamasının daha iyi sonuç verdiğini görebilmek adına her bir adımda standart sapmalar hesaplanmış ve standart sapma değeri en küçük olan kümeleme en iyi sonuç kabul edilmiştir. En iyi sonucun küme merkezleri {{16.784,17.224,22.171}, {19.495,18.585,14.624}, {23.422,29.176,25.438}, {43.675,41.434,36.697}, {60.280,49.827,48.152}, {62.05,66.455,73.571}, {76.201,79.61,83.104}, {83.464,90.045,76.983}} olarak bulunmuştur. Programda maksimum iterasyon sayısı 5 seçildiği için, bu başlangıç koşulları ile 5 iterasyon sonucunda oluşan sapma değeri 1334.31 olarak hesaplanmıştır. Bu sayı eski sapma değerinden düşük olduğu için algoritmanın verimliliğinin arttığı gözlemlenmiştir. Ayrıca Mathematica programının içerdiği FindClusters fonksiyonu ile de notlar verisi 8 kümeye ayrılmış, bu ayrışım sonucunda oluşan sapma değeri 1340.17 olarak hesaplanmıştır. K-means algoritmasının daha iyi bir sonuç verdiği görülmektedir. Program bir de FF harf notuna bir sınır getirilerek çalıştırılmıştır. {10, 12, 15} değerlerinin altında kalan notlar programda işleme sokulmamış, doğrudan FF olarak belirlenmiştir. Bu durumda ise en iyi sonucun küme merkezleri {{31.1,28.376,35.34}, {26.69,39.462,31.383}, {49.87,52.041,51.057}, {60.521,57.794,63.687}, {69.163,73.79,61.288}, {72.248,88.466,85.627}, {90.817,88.317,84.996}} olarak bulunmuştur. Bu kümeleme sonucu oluşan sapma değeri 978.38 olarak hesaplanmıştır. Buradan da görüldüğü gibi kümeleme işleminde kullanılacak veriye bir sınır getirmek algoritmanın verimliliğini artırmaktadır. Sonrasında kümelenmiş veri üzerinde K-NN algoritması ile veriye dahil olmayan birkaç öğrenci notunun hangi kümeye dahil olacağı hesaplanmıştır. İlk öğrencinin 16

sınav notları {75, 75, 60} olarak seçilmiş, en yakın olduğu 10 komşu ile BB harf notunu alacağı saptanmıştır. Bu işlem 3 farklı öğrenci için de yapılmıştır. Notları {50, 55, 30} olan öğrencinin BB, {68, 73, 80} olan öğrencinin BA, {80, 87, 92} olan öğrencinin ise AA notunu alması gerektiği hesaplanmıştır. Burada dikkat edilmesi gereken, algoritmanın son halinde 7 grup oluşturulmuş olması ve {10, 12, 15} notunun altında kalan FF harf notlu öğrencilerin kümelemeye dahil edilmemiş olmasıdır. K-NN ile öğrencinin harf notu saptanmaya başlanmadan önce FF grubuna dahil olup olmadığı kontrol edilmelidir. Aksi durumda algoritma yanlış sonuç verecektir. Bu uygulama sonucunda K-means kümeleme algoritmasının öğrenci harf notlarını belirlemek için kullanılabilecek etkili bir algoritma olduğu belirlenmiştir. 17

5. UYGULAMA: KALP HASTALIĞI TEŞHİSİ Kalp hastalığı dünyadaki başlıca ölüm sebeplerinden biridir. Dünya Sağlık Örgütü nün raporuna göre kalp hastalığı, yüksek ve düşük gelirli ülkelerde önde gelen ölüm sebepleri arasında ilk sıradadır [13]. Geçmiş yıllara ait hasta verileri yardımıyla kalp hastalığının teşhisi için farklı verimliliklere sahip çeşitli algoritmalar geliştirilmiştir. Bu çalışmada öncelikle K-means kümeleme yöntemi yardımıyla kişiler hasta ve sağlıklı olmak üzere 2 gruba ayrılmış sonrasında K-NN sınıflandırma algoritması ile veride yer almayan başka bir kişinin kalp hastası olup olmadığı teşhis edilmiştir. Çalışmada kullanılan Cleveland Kalp Hastalığı Verisi (Cleveland Heart Disease Data - CHDD) California Üniversitesi Makine Öğrenimi Veri Havuzu ndan (UCI Machine Learning Repository) alınmıştır. http://archive.ics.uci.edu/ml/datasets/heart+disease bağlantısından veriye ulaşılabilir. Veri kümesi 76 nitelik içermektedir fakat şimdiye kadar yapılan çalışmaların hepsinde bunlardan sadece 13 ü kullanılmıştır. Bu 13 niteliğin 4 ü sürekli, 9 u nominaldir. Kullanılan nitelikler aşağıdaki tablodaki gibidir. 1 YAŞ 2 CİNSİYET 1: ERKEK 0: KADIN 3 GÖĞÜS AĞRISI TİPİ 1: TİPİKAL ANJİN 2: ATİPİKAL ANJİN 3: NON-ANJİNAL AĞRI 4: SEMPTOMSUZ 4 DİNLENME HALİNDE KAN BASINCI (mm Hg) 5 KOLESTROL 6 AÇLIK KAN ŞEKERİ 1: >120 0: <120 7 DİNLENME HALİNDE KARDİYOGRAFİK SONUÇ 0: NORMAL 1: ST-T DALGASI ABNORMALİTESİ 2: SOL VENTRİKÜL HİPERTROFİSİ 8 MAKSİMUM KALP ATIŞ HIZI 9 EGZERSİZ SONUCU ANJİN 1: EVET 0: HAYIR 10 DİNLENME SONRASI EGZERSİZ SONUCU ORTAYA ÇIKAN ST DEPRESSION DEĞERİ 11 ST BÖLGESİ EĞİMİ 1: YUKARI EĞİMLİ 2: DÜZ 3: AŞAĞI EĞİMLİ 12 FLOROSKOPİ İLE BOYANAN ANA DAMAR SAYISI (0-3) 13 KAN RAHATSIZLIĞI 3: NORMAL 6: KRONİK 7: AKUT 18

Veride yer alan kalp hastası olma ya da olmama bilgisi ise algoritmanın doğruluğunu test etmek için kullanılmıştır. 14 KALP HASTALIĞI 0: DAMAR DARALMASI < %50 1: DAMAR DARALMASI > %50 Cleveland Kalp Hastalığı Verisi 303 satırdan oluşsa da 6 satır eksik bilgi içerdiği için çalışmada 297 satırdan yararlanılmıştır. 297 satırın 160 ı (%53.87 si) sağlıklı bireyleri, 137 si (%46.13 ü) ise çeşitli derecelerde kalp hastalığına sahip bireyleri içermektedir. Niteliklerin dağılımı mavi renk sağlıklı, kırmızı renk hasta bireyleri gösterecek şekilde aşağıda verilmiştir. Şekil 5.1 Cleveland Kalp Hastalığı Verisinde niteliklerin dağılımı [14] Uygulamaya başlamadan önce daha iyi bir sonuç vermesi için Cleveland Kalp Hastalığı Verisi normalize edilmiştir. Bireyler hastalıklı ve sağlıklı olarak ikiye ayrılacağı için k sayısı 2 olarak seçilmiştir. Öğrenci Harf Notlarının Belirlenmesi uygulamasında ilk küme merkezlerinin belirlenmesi için geliştirilen yöntem burada da kullanılmıştır. 1. KUME MERKEZLERI = 19

{{1.70904,1.51351,1.69215,1.69285,1.52656,1.25,1.25253,1.73721,1.25,1.26725,1.5 152,1.25,1.57143}, {2.80603,2.67568,2.79476,2.79524,2.68437,2.5,2.50169,2.82481,2.5,2.5115,2.6768, 2.5,2.71429}} olarak bulunmuştur. Daha iyi sonuçların elde edilebilmesi için başlangıç ortalamalarına kullanıcının belirlediği bir aralık dâhilinde keyfi ekleme-çıkarma yapılmıştır. Keyfi eklemeçıkarma aralığı 10 olarak belirlenmiştir. Bu işlem 20 kez tekrarlanarak birbirinden farklı 20 başlangıç ortalaması elde edilmiştir. Bu işlemler sonrasında hangi başlangıç ortalamasının daha iyi sonuç verdiğini görebilmek adına her bir adımda standart sapmalar hesaplanmış ve standart sapma değeri en küçük olan kümeleme en iyi sonuç kabul edilmiştir. En iyi sonucun küme merkezleri {{0.73254,0.83823,0.986766,0.868969,0.406885,0.846725,0.312739,0.822397,0.035 7823,0.656089,0.736774,0.129896,0.945556}, {0.516809,0.785961,0.434826,0.723922,0.837698,0.0643809,0.38759,0.578262,0.30 4528,0.180985,0.916345,0.778737,0.695027}} olarak bulunmuştur. Programda maksimum iterasyon sayısı 5 seçildiği için, bu başlangıç koşulları ile 5 iterasyon sonucunda oluşan sapma değeri 68.86 olarak hesaplanmıştır. Mathematica programının içerdiği FindClusters fonksiyonu ile de notlar verisi 2 kümeye ayrıldığında oluşan sapma değeri 73.20 olarak hesaplanmıştır. Yani bu uygulamada da K-means algoritmasının daha iyi bir sonuç verdiği gözlemlenmiştir. K-means algoritmasıyla sınıflandırılmış veri kullanılarak sınama verisi olarak seçilen {0.81, 1, 0.25, 0.72, 0.41, 1, 1, 0.74, 0, 0.37, 1, 0, 0.86} değerlerine sahip kişinin kalp hastası olup olmadığı K-Nearest Neighbor algoritması ile test edilmiştir. k sayısına 5, 20, 50, 100, 200 gibi farklı değerler atanarak program çalıştırılmış ve K- NN algoritması kişiyi her seferinde sağlıklı olarak sınıflandırılmıştır. k sayısının seçimi, bazı durumlarda ise farklı sonuçlar verebilmektedir. Bir diğer uygulamada sınama verisi olarak {0.74, 0, 1, 0.65, 0.23, 0, 0, 0.57, 1, 0.19, 0.67, 0.33, 1} değerlerine sahip kişi seçilmiştir. k sayısı 169 seçildiğinde K-NN 20

algoritması kişiyi sağlıklı olarak, 168 seçildiğinde ise kişiyi hasta olarak sınıflandırmıştır. 21

6. EKLER 6.1 K-means Algoritmasının Kodları ortilkv[list_,kumesay_]:=block[{el1,el2,el3,el4}, el1=length[list]; el2=sort[list]; el3=floor[el1/kumesay]; Do[ el4[i]=sum[el2[[j]],{j,(i-1) el3+1,i el3}]/max[{el3,10^(-10)}];,{i,1,kumesay-1}]; el4[kumesay]=min[max[sum[el2[[j]],{j,(kumesay-1) el3+1,el1}]/max[{(el1- (kumesay-1) el3),10^(-10)}],5],90]; Return[Table[N[el4[i]],{i,1,kumesay}]]] ortilkm[list_,kumesay_]:=block[{el1,uz1,el2}, el1=transpose[list]; uz1=length[el1]; el2=transpose[table[ortilkv[el1[[i]],kumesay],{i,1,uz1}]]; el2[[kumesay]]=(el2[[kumesay-1]]+el2[[kumesay]])/2; el2[[1]]=(el2[[1]]+el2[[2]])/2; Return[el2]] UzBV[vec1_,vec2_]:=Block[{uz1,top,dis}, uz1=length[vec1]; top=sum[(vec1[[i]]-vec2[[i]])^2,{i,1,uz1}]; dis=n[sqrt[top]]; Return[dis]] ayirm[list_,ortlist_]:=block[{kumesay,el0,el1,el2,orts,el3,el4,el5,el6,ortn,send,sart}, kumesay=length[ortlist]; el0=list; el1=length[el0]; Do[el2[i]={},{i,1,kumesay}]; orts=ortlist; Do[el3=el0[[i]]; 22

el4=table[uzbv[el3,orts[[j]]],{j,1,kumesay}]; el5=min[el4]; el6=position[el4,el5][[1,1]]; AppendTo[el2[el6],el3],{i,1,el1}]; Do[If[Length[el2[i]]==0,AppendTo[el2[i],el2[i+1][[1]]];el2[i+1]=Drop[el2[i+1], {1}]],{i,1,kumesay-1}]; If[Length[el2[kumesay]]==0,AppendTo[el2[kumesay],el2[kumesay- 1][[Length[el2[kumesay-1]]]]];el2[kumesay-1]=Drop[el2[kumesay- 1],{Length[el2[kumesay-1]]}]]; ortn=table[n[sum[el2[i][[j]],{j,1,length[el2[i]]}]/max[{length[el2[i]],10^(- 10)}],4],{i,1,kumesay}]; send=table[{el2[i],ortn[[i]]},{i,1,kumesay}]; Return[send]] sapmam[list_]:=block[{el0,uz0,el1,el2,el3,el4,uz1,sap,topsap}, el0=list; uz0=length[el0]; Do[el1[i]=el0[[i]]; el2[i]=length[el1[i]]; el3[i]=n[sum[el1[i][[j]],{j,1,el2[i]}]/max[{el2[i],10^(-10)}]]; el4[i]=sqrt[sum[(el1[i][[j]]-el3[i])^2,{j,1,el2[i]}]]; uz1=length[el4[i]]; sap[i]=sum[el4[i][[j]],{j,1,uz1}],{i,1,uz0}]; topsap=n[sum[sap[i],{i,1,uz0}]]; Return[topsap]] kumelemem[list_,kumesay_,ortl_,maxit_]:=block[{el0,el1,sart,ort0,kumsap,kume,ku me1,i,orts}, el0=sort[list]; el1=length[el0]; sart=true; ort0=ortl; kume[0]=ayirm[el0,ort0]; i=0; While[sart, 23

kume1=table[kume[i][[j,1]],{j,1,kumesay}]; kumsap[i]=sapmam[kume1]; Print[StringForm["``. adim KUMELEME = `` \n SAPMA= `` ",i,kume[i],kumsap[i]]] ; orts[i]=table[kume[i][[j,2]],{j,1,kumesay}]; kume[i+1]=ayirm[el0,orts[i]]; sart=kume[i+1]!= kume[i] && i<maxit; i=i+1]; Return[{kume[i],kumsap[i-1]}]] RANDKUMM[list_,kumesay_,randsay_,randara_,maxit_]:=Block[{el0,el1,uz1,el2,el 3,el4,el5,el6,el7,hata,minh,sonuc}, el0=list;hata=10^(10); el1=ortilkm[el0,kumesay]; el3=transpose[el0]; uz1=length[el3]; el2={el1}; Do[ Do[el4[i]=Min[el3[[i]]];el5[i]=Max[el3[[i]]],{i,1,uz1}]; Do[Do[el6[i,j]=Random[Real,{Max[{el4[j],el1[[i]]- randara}],min[{el5[j],el1[[i]]+randara}]}],{j,1,uz1}],{i,1,kumesay}]; el2=appendto[el2,table[el6[i,j],{i,1,kumesay},{j,1,uz1}]],{i,1,randsay}]; Do[ Print[StringForm["``. BASLANGIC ORTALAMALARI =`` \n",i,el2[[i]]]]; el7[i]=kumelemem[el0,kumesay,sort[el2[[i]]],maxit]; If[el7[i][[2]]<hata,hata=el7[i][[2]];minh=i;sonuc=el7[i]],{i,1,randsay}]; Print[StringForm[" \n \n **** SONUC **** \n \n En iyi sonucun baslangic ortalamalari =`` \n \n Sapmasi=`` \n \n GRUPLAR ve ORTALAMALARI ",el2[[minh]],hata]]; Return[sonuc]] NOTKUMEM[list_,Fsinir_,kumesay_,randsay_,randara_,maxit_]:=Block[{el0,el1,el 2,uz1,el3,el4,sart}, el0=sort[list]; el1=length[el0]; 24

el2={};el3={}; uz1=length[fsinir]; Do[ el4=el0[[i]]; sart=true; Do[If[el4[[i]]<=Fsinir[[i]],sart=False],{i,1,uz1}]; If[sart,AppendTo[el2,el4],AppendTo[el3,el4]],{i,1,el1}]; Return[{el3,RANDKUMM[el2,kumesay-1,randsay,randara,maxit]}]] gruplarm=notkumem[notlarm,{10,12,15},8,20,10,5] 6.2 K-NN Algoritmasının Kodları UzBVY[vec1_,vec2_]:=Block[{uz1,top,dis}, uz1=length[vec1]-1; top=sum[(vec1[[i]]-vec2[[i]])^2,{i,1,uz1}]; dis=n[sqrt[top]]; Return[dis]] KNM[gruplist_,new_,k_]:=Block[{el0,uz0,el1,el2,uz1,el3,el4,el5,uz2,uz3,el6,uz4,el7, el8}, el0=gruplist; uz0=length[el0]; el1={}; Do[el2=el0[[i]]; uz1=length[el2]; Do[el3=el2[[j]]; el4=insert[el3,i,-1]; AppendTo[el1,el4],{j,1,uz1}],{i,1,uz0}]; el5=new; uz2=length[el1]; uz3=length[el1[[1]]]; Do[ el6=el1[[i]]; uz4[i]={uzbvy[el6,el5],el6[[uz3]]};,{i,1,uz2}]; 25

el7=sort[table[uz4[i],{i,1,uz2}]]; el8=table[el7[[i]],{i,1,k}]; Return[el8]] grlistm=table[gruplarm[[2,1,i,1]],{i,1,length[gruplarm[[2,1]]]}] KNNM[knlist_,new_,k_]:=Block[{uz0,el0,sart,el1,el2,uz1,say,max,yer0,yer1,sinno}, uz0=k; el0=knm[knlist,new,k]; sart=true; While[sart, el1=table[el0[[i,2]],{i,1,uz0}]; el2=union[el1]; uz1=length[el2]; say=table[count[el1,el2[[i]]],{i,1,uz1}]; max=max[say]; yer0=position[say,max]; sart=length[yer0]!=1; uz0=uz0-1]; yer1=yer0[[1,1]]; sinno=el2[[yer1]]; Return[sinno]] 26

KAYNAKLAR [1] Han J., Kamber M., 2001. Data Mining Concepts and Techniques, Morgan Kauffmann Publishers Inc. [2] Berkhin P., 2002. Survey of Clustering Data Mining Techniques, San Jose, California, USA, Accrue Software Inc. [3] Steinhaus, H., 1957. "Sur la division des corps matériels en parties".bull. Acad. Polon. Sci. 4 (12): 801 804. [4] MacQueen, J. B., 1967. "Some Methods for classification and Analysis of Multivariate Observations". 1. Proceedings of 5th Berkeley Symposium on Mathematical Statistics and Probability. University of California Press. pp. 281 297. [5] Dinçer E., 2006. Veri Madenciliğinde K-means Algoritması ve Tıp Alanında Uygulanması, pp. 1, 55-64. [6] Jain, A.K., 2009. Data clustering: 50 years beyond K-means. Pattern Recognition Lett. [7] Kırmızıgül Çalışkan, S., Soğukpınar, İ. KxKNN: K-means ve K En Yakın Komşu Yöntemleri ile Ağlarda Nüfuz Tespiti, 2. Ağ ve Bilgi Güvenliği Sempozyumu, Girne, 16-18 Mayıs 2008. [8] Yıldız, K., Çamurcu, Y., Doğan, B. Veri Madenciliğinde Temel Bileşenler Analizi ve Negatifsiz Matris Çarpanlarına Ayırma Tekniklerinin Karşılaştırmalı Analizi, Akademik Bilişim Konferansı, Muğla, 10-12 Şubat 2010. [9] Naldi, M.C, Campello, R.J.G.B, Hruschka, E.R, Carvalho, A.C.P.L.F., 2009. Efficiency issues of evolutionary K-means. Applied Soft Computing. [10] Fırat, E., 2012. Öğrenci Harf Notlarının K-means Kümeleme Algoritması ile Belirlenmesi, p.16. [11] Url-1 <http://www.ist.yildiz.edu.tr/dersler/dersnotu/kum-analiz.doc>, alındığı tarih 23.12.2012. [12] Url-2 <http://home.dei.polimi.it/matteucc/clustering/tutorial_html>, alındığı tarih 24.12.2012. [13] Shouman, M., Turner, T., Stocker, R. Applying k-nearest Neighbour in Diagnosing Heart Disease Patients International Journal of Information and Education Technology, Vol. 2, No. 3, Haziran 2012. [14] Jain, T., 2012. Heart Disease Prediction Tool. Proje Sunumu. [15] Peterson, L.E., 2009. K-nearest neighbor. Scholarpedia, 4(2):1883. [16] Gündüz Öğüdücü, Ş., 2007. Veri Madenciliği Farklı Sınıflandırma Yöntemleri. Proje Sunumu. [17] Gündüz Öğüdücü, Ş., 2008. Veri Madenciliği Temel Sınıflandırma Yöntemleri. Proje Sunumu. [18] Albayrak, S., 2007. Sınıflama ve Kümeleme Yöntemleri. Proje Sunumu. [19] Teknomo, K., 2012. K Nearest Neighbors Tutorial. Online Edition. 27

[20] Abu-Mostafa, Y. S. Learning From Data, İTÜ Bilim, Sanat ve Teknoloji Seminerleri, İstanbul, 25 Aralık 2012. 28