k-en Yakın Komşu Algoritması ve Bir Uygulama (Kredi Riskini Sınıflandırma)



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

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

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

YZM 3217 YAPAY ZEKA DERS#10: KÜMELEME

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

Web Madenciliği (Web Mining)

Eğitim seti (training set) sınıflandırma modelinin elde edileceği kayıtları içerir

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

Zeki Optimizasyon Teknikleri

Web Madenciliği (Web Mining)

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

Veri Madenciliği ve R Programlama Dili. R Programlama Dili ile Veri Madenciliği Seminerleri SEMİNER 1 21 Ocak 2016, Titanic City Hotel / Taksim

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

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

Temel Excel Kullanım Bilgisi

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

Algoritma ve Akış Diyagramları

SİMPLEKS ALGORİTMASI Yapay değişken kullanımı

Hafta 03/04 - Uzaklık/Benzerlik - En Yakın Komşular - Karar Ağaçları

K-MEANS, K-MEDOIDS VE BULANIK C-MEANS ALGORİTMALARININ UYGULAMALI OLARAK PERFORMANSLARININ TESPİTİ

Yönetim Bilişim Sistemleri (Karma) - 1. yarıyıl Hukukun Temelleri Fundamentals of Law TR

BLM401 Mobil Cihazlar için ANDROİD İşletim Sistemi İNTENT VE İNTENT. BLM401 Dr.Refik SAMET

BÜYÜK VERI UYGULAMALARı DERS 7. Doç. Dr. Yuriy Mishchenko

Makine Öğrenmesi 2. hafta

Makine Öğrenmesi 3. hafta

Ders 1 Minitab da Grafiksel Analiz-I

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

SÜREKLĠ OLASILIK DAĞILIMLARI

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

Yöneylem Araştırması II

METASEZGİSEL YÖNTEMLER

Uzaktan Algılama Teknolojileri

Temel Bilgisayar Programlama

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

VERİ MADENCİLİĞİ. Karar Ağacı Algoritmaları: SPRINT algoritması Öğr.Gör.İnan ÜNAL

T.C. KIRIKKALE ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ YAPAY SİNİR AĞLARI. Doç.Dr. Necaattin BARIŞÇI FİNAL PROJESİ

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

11. SINIF. No Konular Kazanım Sayısı GEOMETRİ TRİGONOMETRİ Yönlü Açılar Trigonometrik Fonksiyonlar

Eğiticili (supervised) öğrenme: Sınıflandırma (classification) Sınıf sayısı ve bir grup örneğin hangi sınıfa ait olduğu bilinir

Uzaktan Algılama Uygulamaları

3.2. Raster Veriler. Satırlar. Sütunlar. Piksel/hücre büyüklüğü

ÖDEV (Vize Dönemi) CEVAPLAR. 1. Ekrana Merhaba Dünya! yazdıran algoritmanın akış diyagramını çiziniz ve sözde kod olarak yazınız.

İSTATİSTİKSEL TAHMİNLEME. Örneklem istatistiklerinden hareketle ana kütle parametreleri hakkında genelleme yapmaya istatistiksel tahminleme denir.

DOKUZ EYLÜL ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ MÜDÜRLÜĞÜ DERS/MODÜL/BLOK TANITIM FORMU. Dersin Kodu: CSE 5065

Algoritmalara Giriş 6.046J/18.401J

ALGORİTMA VE PROGRAMLAMA I

Sözlük Kullanarak Türkçe için Kavram Madenciliği Metotları Geliştirme

İstatistik Nedir? Ders 1 Minitab da Grafiksel Analiz-I ENM 5210 İSTATİSTİK VE YAZILIMLA UYGULAMALARI. İstatistiğin Konusu Olan Olaylar

TEMEL EXCEL. 1 - Excel e Giriş

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

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

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

Kümeleme Tekniklerinin Temel Bilimlerde Kullanımı

Gözetimli & Gözetimsiz Öğrenme

DENEY 3: DTMF İŞARETLERİN ÜRETİLMESİ VE ALGILANMASI

Matris İşlemleri Uygulaması

ALGORİTMA VE PROGRAMLAMA I

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Ş

Kümeleme Tekniklerinin Temel Bilimlerde Kullanımı

WEB SAYFALARINA İLİŞKİN YAPAY SİNİR AĞLARI İLE SINIFLANDIRMA YÖNTEMİ

DOKUZ EYLÜL ÜNİVERSİTESİ FEN BİLİMLERİ ENSTİTÜSÜ MÜDÜRLÜĞÜ DERS/MODÜL/BLOK TANITIM FORMU. Dersin Kodu: CSE 6003

OYUN TEORİSİ. Özlem AYDIN. Trakya Üniversitesi Bilgisayar Mühendisliği Bölümü

İstatistik Laboratuvarı I Vize Ödevi Levent TERLEMEZ 30 Kasım 2016

Yazılım Proje Yönetimi (SE 320) Ders Detayları

Türev Uygulamaları ÜNİTE. Amaçlar. İçindekiler. Yazar Prof.Dr. Vakıf CAFEROV

Ö Z G E Ç M İ Ş. 1. Adı Soyadı: Mustafa GÖÇKEN. 2. Doğum Tarihi: 12 Haziran Unvanı: Yrd. Doç. Dr. 4. Öğrenim Durumu: Ph.D.

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

Instance Based Learning k-nn. YZM 3226 Makine Öğrenmesi

Örnek 02: Amaç: Şekil Wizard yardımıyla yeni proje açılması.

Problem Set 1 Çözümler

Kredi Onayı İçin Bir Sınıflandırma Algoritması Önerisi A Classification Algorithm Advice for Credit Approval

Dr. Hidayet Takçı. Veri Madenciliği Dersi G Y T E Dr. Hidayet Takçı 10/05/2008 1

BMB204. Veri Yapıları Ders 12. Dizgi Eşleme (String Matching) Algoritmaları İleri Veri Yapıları

R ile Programlamaya Giriş ve Uygulamalar

Zeki Optimizasyon Teknikleri

Mann-Whitney U ve Wilcoxon T Testleri

Algoritma ve Akış Diyagramları

12. SINIF. Ağırlık (%) SAYILAR VE CEBİR ÜSTEL VE LOGARİTMİK FONKSİYONLAR Üstel Fonksiyon 1 8 4

Mühendislikte İstatistik Yöntemler

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

bitık MOBİL TİCARET UYGULAMASI ABDULLAH ÇİÇEKCİ

Sıralı Erişimli Dosyalar. Kütük Organizasyonu 1

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

Zaman Serileri Madenciliği Kullanılarak Nüfus Artışı Tahmin Uygulaması

Görsel Programlama (COMPE 422) Ders Detayları

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

Veri madenciliği sınıflandırma ve kümeleme teknikleri yardımıyla Wisconsin veriseti üzerinde Göğüs Kanseri Teşhisi. Hazırlayan: Nury Amanmadov

MATLAB a GİRİŞ. Doç. Dr. Mehmet İTİK. Karadeniz Teknik Üniversitesi Makine Mühendisliği Bölümü

MATEMATİK MÜHENDİSLİĞİ BÖLÜMÜ

T.C. MALTEPE ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ YAZILIM MÜHENDİSLİĞİ LİSANS PROGRAMI Bahar Yarıyılı

DOKUZ EYLÜL ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ DEKANLIĞI DERS/MODÜL/BLOK TANITIM FORMU. Dersin Kodu: MME 1001

YÖNEYLEM ARAŞTIRMASI - III

ULAŞTIRMA MODELİ VE ÇEŞİTLİ ULAŞTIRMA MODELLERİ

API v1.0

İleri Algoritma (COMPE 574) Ders Detayları

K-MEANS VE AŞIRI KÜRESEL C-MEANS ALGORITMALARI İLE BELGE MADENCİLİĞİ

Veri Madenciliği Süreci

Kimya Mühendisliğinde Uygulamalı Matematik

4.1. Grafik Sihirbazını kullanarak grafik oluşturma

ALTIN ORAN ARAMA (GOLDEN SECTION SEARCH) METODU

Transkript:

k-en Yakın Komşu Algoritması ve Bir Uygulama (Kredi Riskini Sınıflandırma) M. ERDAL BALABAN (mebalaban@gmail.com) Türkiye Toplum Hizmetleri Vakfı R Programlama Dili ile Veri Madenciliği Seminerleri SEMİNER 1 21 Ocak 2016, Titanic City Hotel / Taksim

Sunumun İçeriği k-en Yakın Komşu Algoritması R ile Örnek Uygulama 21 Ocak 2016 VERİ MADENCİLİĞİNDE K-EN YAKIN KOMŞU ALGORİTMASI 2/45

En Yakın k Komşu Bana Arkadaşını söyle, sana kim olduğunu söyleyeyim. En yakın 1 komşu En yakın 3 komşu 21 Ocak 2016 VERİ MADENCİLİĞİNDE K-EN YAKIN KOMŞU ALGORİTMASI 3/45

k-en Yakın Komşu Algoritması 1. Sınıf değeri bulunmak istenen yeni örneğin veri setinde bulunan tüm örneklere uzaklığı hesaplanır. 2. Uzaklıklar büyükten küçüğe sıralanır. 3. k en küçük uzaklık değerine sahip gözlemler alınır. 4. k gözlemin içinde en sık tekrar eden sınıf tahmini sınıf değeri olarak bulunur (çoğunluk oylaması - majority voting (Bridge, 2013)). (Harrington, 2012) 21 Ocak 2016 VERİ MADENCİLİĞİNDE K-EN YAKIN KOMŞU ALGORİTMASI 4/45

Uzaklıkların Ağırlıklandırılması ve k nın Seçimi Sınıf tahmini için bazen en sık tekrar eden sınıfı seçmek yerine ağırlıklı oylama (weighted voting) kullanılmaktadır. Bu yöntemde, yeni örneğin, veri setindeki diğer örneklere olan uzaklığı ( dd) bulunduktan sonra 1/dd ya da 1/dd^2 hesaplanarak kk komşu içinde aynı sınıfa sahip olanların değerleri toplanır. Hangi sınıfa ait ağırlık değeri yüksek ise o sınıf yeni örneğin sınıfı olarak atanır. kk komşu sayısının çift seçilmesi durumunda, sınıflara ait frekansların eşit olması mümkün olduğundan kk nın tek sayı seçilmesi tercih edilir. kk nın seçimi için geliştirilmiş mutlak bir yöntem mevcut olmayıp, bu konuda literatürde yapılmış farklı çalışmalara rastlamak mümkündür. Uygulaması kolay ancak hesaplama süresi yüksektir (lazy learning), nümerik olmayan nitelikler olduğunda uzaklık ölçüsünün seçimi önemlidir. 21 Ocak 2016 VERİ MADENCİLİĞİNDE K-EN YAKIN KOMŞU ALGORİTMASI 5/45

Uzaklık Hesabı Tüm nitelikler nümerik olduğunda gözlemlerin arasındaki uzaklığı hesaplamak için en sık kullanılan uzaklık ölçüsü Öklid Uzaklığıdır (Denklem (2.8) (Dekhtyar, 2009). dd xx, yy = NN (xx jj yy jj ) 2 jj=1 21 Ocak 2016 VERİ MADENCİLİĞİNDE K-EN YAKIN KOMŞU ALGORİTMASI 6/45

Uzaklık Hesabı Tüm niteliklerin 0 ve 1 lerden oluşma durumunda gözlemler arasındaki uzaklıkları hesaplamak için çok çeşitli benzerlik ve uzaklık ölçüleri geliştirilmiştir (Choi ve diğ., 2010). xx ii = 1 xx ii = 0 yy ii = 1 A B yy ii = 0 C D simetrik nitelik Simple Matching Distance (Dekhtyar, 2009) BB + CC dd ss xx, yy = AA + BB + CC + DD asimetrik nitelik Jaccard Distance (Dekhtyar, 2009) BB + CC dd ss xx, yy = AA + BB + CC 21 Ocak 2016 VERİ MADENCİLİĞİNDE K-EN YAKIN KOMŞU ALGORİTMASI 7/45

Uzaklık Hesabı Gözlemlerde hem kategorik hem de nümerik değer içeren niteliklerin bir arada bulunması durumunda Gower (1971) tarafından önerilen Gower benzerlik ölçüsü iki gözlem arasındaki benzerliğin bulunabilmesi için geliştirilmiştir (Gan, 2011). Bu benzerlik ölçüsü 1 den çıkarılarak uzaklık ölçüsü olarak kullanılabilmektedir (Kaufman ve Rousseeuw, 1990): dd gggggg xx, yy = 1 SS gggggg xx, yy Benzerlik ölçüsünün hesabı şu şekilde yapılmaktadır (Denklem (2.12) (Cichosz, 2015; Dunn ve Everitt, 2012; Gan, 2011): SS gggggg xx, yy = dd jj=1 1 dd ww(xx jj, yy jj ) jj=1 ww xx jj, yy jj ss(xx jj, yy jj ) 21 Ocak 2016 VERİ MADENCİLİĞİNDE K-EN YAKIN KOMŞU ALGORİTMASI 8/45

Uzaklık Hesabı (d gggggg ) Eğer jj.nitelik sürekliyse: RR(aralık) jj, jj. niteliğin değişim aralığı olmak üzere Eğer jj.nitelik ikiliyse: ss xx jj, yy jj = 1 xx jj yy jj RR(aralık) jj ww xx jj, yy jj = 0, eeğeeee xx jj yyyy dddd yy jj kkyyyyıkkkkkk 1, aaaaaaaa haaaaaaaa ss xx jj, yy jj ww xx jj, y jj Eğer jj.nitelik isimsel ya da kategorikse: = 1, eeğeeee xx jj ve yy jj "var"ssss 0, aaaaaaaa haaaaaaaa = 0, eeğeeee xx jj ve yy jj "yok"ssss 1, aaaasii haaaaaaaa ss xx jj, yy jj = 1, eeğeeee xx jj = yy jj 0, aaaaaaaa haaaaaaaa ww xx jj, yy jj = 0, eeğeeee xx jj ya da yy jj kayıpsaa 1, aaaaaaaa haaaaaaaa 21 Ocak 2016 VERİ MADENCİLİĞİNDE K-EN YAKIN KOMŞU ALGORİTMASI 9/45

Uygulama Veri Seti Bankacılık uygulamalarında risk yönetimi kapsamında bir müşterinin riskini öngörebilmek için knn öğrenme algoritmasının uygulamasında; http://wps.prenhall.com/bp_evans_bus_2/ Evans ın Business Analitics kitabından yararlanılmıştır. «CreditRiskData» veriseti türkçeleştirilmiş olarak analizlerimizde veri madenciliği uygulamasında kullanılmıştır. Değişkenler (İngilizce) Değişkenler (Türkçe) Değişken Türü Loan Purpose KrediAmaci Kategorik Checking VadesizMevduat Sürekli Savings VadeliMevduat Sürekli Months Employed CalisilanAy Sürekli Months Customer MusteriSureAy Sürekli Gender Cinsiyet Kategorik Marital Status MedeniHali Kategorik Age Yas Sürekli Housing KonutSahipligi Kategorik Years KonutSuresiYıl Sürekli Job MeslekiDuzey Kategorik Credit Risk KrediRiski Kategorik 21 Ocak 2016 VERİ MADENCİLİĞİNDE K-EN YAKIN KOMŞU ALGORİTMASI 10/45

Kredi Riski Veri Seti 21 Ocak 2016 VERİ MADENCİLİĞİNDE K-EN YAKIN KOMŞU ALGORİTMASI 11/45

Kredi Riski Tahmini R Programlama dilinde k-en Yakın Komşu Algoritması uygulaması. Bankaya başvuran bir müşteriye kredi verilip verilmeyeceği öngörüsü. Kredi Riski Veri Seti k- En Yakın Komşu Algoritması Veri Seti: Credit Approval Decisions http://wps.prenhall.com/bp_evans_bus_2/ 21 Ocak 2016 VERİ MADENCİLİĞİNDE K-EN YAKIN KOMŞU ALGORİTMASI 12/45

Veri Setinin Okunması Uygulamanın yapılacağı çalışma klasörü belirlenir. setwd("c:/users/balaban/desktop/seminer1") xlsx paketi yüklenir ve çalışmaya eklenir. install.packages("xlsx") library(xlsx) read.xlsx fonksiyonu çalıştırılarak krediriskiveriseti.xlsx dosyası okunur. Veri setinin excel dosyasının hangi sayfasında olduğu «sheetindex» ile belirlenirken, veri setinde sütun adları ilk satırda bulunduğu için «header = TRUE» denir. Veri setini okurken Türkçe karakterlerde problem yaşanmaması için «encoding="utf-8"» parametresi kullanılır. kredivs <- read.xlsx(file = "krediriski.xlsx", sheetindex = 1, header = TRUE, encoding="utf-8") 21 Ocak 2016 VERİ MADENCİLİĞİNDE K-EN YAKIN KOMŞU ALGORİTMASI 13/45

Kredi Riski Veri Seti Factor=Kategorik num=nümerik Hedef Nitelik 21 Ocak 2016 VERİ MADENCİLİĞİNDE K-EN YAKIN KOMŞU ALGORİTMASI 14/45

Veri Seti Özeti Veri setinin özeti «summary» fonksiyonu yardımı ile elde edilir. Özette, kategorik niteliklerin kategorilerine ait frekansları verilirken, nümerik değişkenlere ait minimum maksimum, ortanca ve ortalama değerler ile 1., 3. kartil değerlerine yer verilmektedir. 21 Ocak 2016 VERİ MADENCİLİĞİNDE K-EN YAKIN KOMŞU ALGORİTMASI 15/45

Hedef Niteliğin İncelenmesi Hedef niteliğin kategorilerine ait frekans değerleri «table» fonksiyonu ile kontrol edilmektedir. table(kredivs$krediriski) Kredi Risk durumu «Düşük» olan müşteriler referans kategori olarak ele alınmıştır. Bu da performans değerlendirmesinde pozitif sınıf olarak «Düşük» kategorisinin ele alınacağını göstermektedir. Eğer risk durumu «Yüksek» olan müşterilerin pozitif sınıf olarak alınması istenirse yapılması gereken, «Yüksek» kategorisini «relevel» fonksiyonu yardımıyla referans kategori olarak değiştirmektir. kredivs$krediriski <- relevel(kredivs$krediriski, ref=«yüksek") table(kredivs$krediriski) 21 Ocak 2016 VERİ MADENCİLİĞİNDE K-EN YAKIN KOMŞU ALGORİTMASI 16/45

Kutu Grafiği Çizimi boxplot(yas~meslekiduzey, data=kredivs, xlab="mesleki Düzey", ylab="yaş", main="mesleki Düzeye göre Yaş Dağılımı") 21 Ocak 2016 VERİ MADENCİLİĞİNDE K-EN YAKIN KOMŞU ALGORİTMASI 17/45

Kutu Grafiği Çizimi boxplot(vadelimevduat~krediamaci, data=kredivs, xlab="kredi Amacı", ylab="vadelimevduat", main="vadeli Mevduat ile Kredi Amacı İlişkisi") 21 Ocak 2016 VERİ MADENCİLİĞİNDE K-EN YAKIN KOMŞU ALGORİTMASI 18/45

Kutu Grafiği Çizimi boxplot(yas~krediriski, data=kredivs, xlab="krediriski", ylab="yas", main="kredi Riski ile Yaş arasındaki İlişkisi") 21 Ocak 2016 VERİ MADENCİLİĞİNDE K-EN YAKIN KOMŞU ALGORİTMASI 19/45

Histogram Çizimi hist(kredivs$yas, col="blue", main="yaş", xlab = "Yaş", ylab = "Frekans") 21 Ocak 2016 VERİ MADENCİLİĞİNDE K-EN YAKIN KOMŞU ALGORİTMASI 20/45

Sütun Grafiği Çizimi frekanslar <- table(kredivs$konutsahipligi) barplot(frekanslar, main="müşterilerin Konut Durumu", xlab="konut Durumu", ylab="müşteri Sayısı") 21 Ocak 2016 VERİ MADENCİLİĞİNDE K-EN YAKIN KOMŞU ALGORİTMASI 21/45

Hedef Niteliğin Pasta Grafiği ile İncelenmesi frekanslar2 <- table(kredivs$krediriski) etiketler <- paste(names(frekanslar2), frekanslar2, sep=" ") pie(frekanslar2, labels = etiketler, main="müşteri Kredi Risk Durumu Değerlendirmesi") 21 Ocak 2016 VERİ MADENCİLİĞİNDE K-EN YAKIN KOMŞU ALGORİTMASI 22/45

Nitelikler Arasındaki İlişkilerin İncelenmesi pairs(~vadesizmevduat+vadelimevduat+calisilanay+musterisureay+yas+konutsuresiyil,data=kredivs) 21 Ocak 2016 VERİ MADENCİLİĞİNDE K-EN YAKIN KOMŞU ALGORİTMASI 23/45

Nitelikler Arasındaki İlişkilerin İncelenmesi install.packages("hmisc") library(hmisc) rcorr(as.matrix(kredivs[,c(2,3,4,5,8,10)]), type="pearson") 21 Ocak 2016 VERİ MADENCİLİĞİNDE K-EN YAKIN KOMŞU ALGORİTMASI 24/45

Normalizasyon Normalizasyon için kullanılan paketlerden biri «clustersim»dir. Normalizasyon veri setindeki nümerik niteliklere uygulanır. Bu örnekte min-max normalizasyon yöntemi kullanıldığı için «type="n4"» olarak seçilmiştir. Fonksiyon buyöntemin dışındaki birçok normalizasyon yönteminin kullanılmasına imkan vermektedir. install.packages("clustersim") library(clustersim) kredivs[,c(2,3,4,5,8,10)] <- lapply(1,function(x) data.normalization(kredivs[,c(2,3,4,5,8,10)],type="n4",normalization="column"))[[1]] 21 Ocak 2016 VERİ MADENCİLİĞİNDE K-EN YAKIN KOMŞU ALGORİTMASI 25/45

Veri Setinin Eğitim ve Test Olarak İkiye Ayrılması Veri setini parçalamak için «caret» paketinden «createdatapartition» fonksiyonu kullanılabilir. install.packages("caret") library(caret) set.seed(1) egitimindisleri <- createdatapartition(y = numerik_kredivs$krediriski, p =.80, list = FALSE) egitim <- numerik_kredivs[egitimindisleri,] test <- numerik_kredivs[-egitimindisleri,] table(egitim$krediriski) table(test$krediriski) createdatapartition fonksiyonu örnekleri veri setinden rastgele biçimde seçmektedir. Bu fonksiyondan önce «set.seed(1)» ifadesinin kullanılma sebebi her seferinde aynı indis değerlerine, dolayısıyla örneklere ulaşabilmektir. 21 Ocak 2016 VERİ MADENCİLİĞİNDE K-EN YAKIN KOMŞU ALGORİTMASI 26/45

Algoritma için Ön Hazırlık Eğitim ve Test veri setlerinde tahminde kullanılacak nitelikler ve hedef nitelik ayrı nesnelere atanır. testnitelikleri <- test[, -7] testhedefnitelik <- test[[7]] egitimnitelikleri <- egitim[, -7] egitimhedefnitelik <- egitim[[7]] k-en Yakın komşu Algoritmasında yeni örneğin sınıfı belirlenirken bakılacak komşu sayısı belirlenir. k_degeri=3 21 Ocak 2016 VERİ MADENCİLİĞİNDE K-EN YAKIN KOMŞU ALGORİTMASI 27/45

k-en Yakın Komşu Algoritmasını İçeren Fonksiyonunun Kullanımı 1 class{knn} k-en Yakın Komşu Algoritmasının uygulanabilmesi için ihtiyaç duyulan «class» paketi yüklenerek çalışmaya eklenir. install.packages("class") library(class) set.seed(1) (tahminisiniflar <- knn(egitimnitelikleri, testnitelikleri, egitimhedefnitelik, k = k_degeri)) 21 Ocak 2016 VERİ MADENCİLİĞİNDE K-EN YAKIN KOMŞU ALGORİTMASI 28/45

Algoritma Tahminleri ile Gerçek Sınıf Değerlerine Genel Bakış 21 Ocak 2016 VERİ MADENCİLİĞİNDE K-EN YAKIN KOMŞU ALGORİTMASI 29/45

Modelin Performansının Değerlendirmesi Yapılan sınıflandırmaya ait performans ölçütlerinin hesaplanabilmesi için öncelikle Kontenjans Tablosu (Confusion Matrix) oluşturulur. (tablom <- table(tahminisiniflar, testhedefnitelik, dnn = c("tahmini Siniflar", "Gercek Siniflar"))) Pozitif Negatif 21 Ocak 2016 VERİ MADENCİLİĞİNDE K-EN YAKIN KOMŞU ALGORİTMASI 30/45

Modelin Performansının Değerlendirmesi Tablo çizdirilir. fourfoldplot(tablom, color = rainbow(2)) Pozitif Negatif 21 Ocak 2016 VERİ MADENCİLİĞİNDE K-EN YAKIN KOMŞU ALGORİTMASI 31/45

Modelin Performansının Değerlendirmesi 21 Ocak 2016 VERİ MADENCİLİĞİNDE K-EN YAKIN KOMŞU ALGORİTMASI 32/45

Alternatif Performans Değerlendirme Yolu k=3 için 21 Ocak 2016 VERİ MADENCİLİĞİNDE K-EN YAKIN KOMŞU ALGORİTMASI 33/45

k nın Farklı Değerlerinde Algoritma Performansı k nın 1 ile 20 arasında aldığı değerler için algoritmaya ait performans değerlendirmesi aşağıdaki gibi elde edilebilir. for(i in 1:20) { set.seed(1) (tahminisiniflar = knn(egitimnitelikleri, testnitelikleri, egitimhedefnitelik, k = i)) dogruluk[i] <- mean(tahminisiniflar == testhedefnitelik) } dogruluk 21 Ocak 2016 VERİ MADENCİLİĞİNDE K-EN YAKIN KOMŞU ALGORİTMASI 34/45

Performansın Grafikle Gösterimi Elde edilen doğruluk değerleri dizisi grafik biçiminde aşağıdaki gibi gösterilir. plot(seq(1:20), dogruluk, type="o", xlab="k", ylab="doğruluk") text(x = dogruluk, labels=round(dogruluk,2)) 21 Ocak 2016 VERİ MADENCİLİĞİNDE K-EN YAKIN KOMŞU ALGORİTMASI 35/45

En İyi k Değerini Bulma k nın 1 den 20 ye kadar aldığı değerler için doğruluk dizisi elemanlarına isim atanır. Bunun için seq fonksiyonu yardımı ile 1 den 20 ye kadar 1 er 1 er artan bir dizi tanımlanabilir. names(dogruluk)<-seq(1,20,1) max(dogruluk) eniyi_k <- names(dogruluk)[dogruluk==max(dogruluk)] 21 Ocak 2016 VERİ MADENCİLİĞİNDE K-EN YAKIN KOMŞU ALGORİTMASI 36/45

Yeni Bir Müşteri için Tahmin yeniornek<-null yeniornek<-data.frame(vadesizmevduat= 300, VadeliMevduat= 250, CalisilanAy =60, MusteriSureAy=100, Yas=28, KonutSuresiYil= 2, KrediRiski=NA) Normalizasyon işleminden sonra yeniornek: 21 Ocak 2016 VERİ MADENCİLİĞİNDE K-EN YAKIN KOMŞU ALGORİTMASI 37/45

k=9 için Yeni Müşterinin Risk Tahmini set.seed(1) (yeniornek_sinif <- knn(egitimnitelikleri, yeniornek[,-7], egitimhedefnitelik, k = 9)) yeniornek$krediriski <- yeniornek_sinif 21 Ocak 2016 VERİ MADENCİLİĞİNDE K-EN YAKIN KOMŞU ALGORİTMASI 38/45

k-en Yakın Komşu Algoritmasını İçeren Fonksiyonunun Kullanımı 2 dprep{knngow} # Veri setini okuma install.packages("xlsx") library(xlsx) kredivs <- read.xlsx(file = "krediriski.xlsx", sheetindex = 1, header = TRUE, encoding="utf-8") # Veri setinin rastgele bicimde egitim ve test veri seti olarak ikiye ayrilmasi install.packages("caret") library(caret) set.seed(1) egitimindisleri <- createdatapartition(y = kredivs$krediriski, p =.80, list = FALSE) egitim <- kredivs[egitimindisleri,] test <- kredivs[-egitimindisleri,] Veri setindeki tüm nitelikler analize dahil edilir # k degeri secimi k_degeri=3 21 Ocak 2016 VERİ MADENCİLİĞİNDE K-EN YAKIN KOMŞU ALGORİTMASI 39/45

k-en Yakın Komşu Algoritmasını İçeren Fonksiyonunun Kullanımı 2 dprep{knngow} k-en Yakın Komşu Algoritmasını Gower uzaklığını hesaplayarak kullanabilmek için dprep paketi yüklenir ve çalışmaya eklenir. knngow fonksiyonu aşağıdaki biçimde kullanılır: install.packages("dprep") library(dprep) (tahminisiniflar <- knngow(egitim, test,k = k_degeri)) 21 Ocak 2016 VERİ MADENCİLİĞİNDE K-EN YAKIN KOMŞU ALGORİTMASI 40/45

Algoritma Tahminleri ile Gerçek Sınıf Değerlerine Genel Bakış 21 Ocak 2016 VERİ MADENCİLİĞİNDE K-EN YAKIN KOMŞU ALGORİTMASI 41/45

Modelin Performans Değerlendirmesi 21 Ocak 2016 VERİ MADENCİLİĞİNDE K-EN YAKIN KOMŞU ALGORİTMASI 42/45

Kullanılan Paketler dprep: Acuna, E., & the CASTLE research group at The University of Puerto Rico-Mayaguez. (2015). dprep: Data Pre-Processing and Visualization Functions for Classification. Retrieved from http://cran.r-project.org/package=dprep xlsx: Dragulescu, A. A. (2014). xlsx: Read, write, format Excel 2007 and Excel 97/2000/XP/2003 files. Retrieved May 28, 2015, from http://cran.r-project.org/package=xlsx Hmisc: Harrel, F. E., & contributions from Charles Dupont and many others. (2015). Hmisc: Harrell Miscellaneous. Retrieved from http://cran.r-project.org/package=hmisc caret: Kuhn, M., Wing, M. K. C. from J., Weston, S., Williams, A., Keefer, C., Engelhardt, A., Candan, C. (2015). caret: Classification and Regression Training. Retrieved from http://cran.rproject.org/package=caret class: Venables, W. N., & Ripley, B. D. (2002). Modern Applied Statistics with S (Fourth). New York: Springer. Retrieved from http://www.stats.ox.ac.uk/pub/mass4 clustersim: Walesiak, M., & Dudek, A. (2014). clustersim: Searching for optimal clustering procedure for a data set. Retrieved from http://cran.r-project.org/package=clustersim 21 Ocak 2016 VERİ MADENCİLİĞİNDE K-EN YAKIN KOMŞU ALGORİTMASI 43/45

Kaynaklar Balaban, M. E., Kartal, E. (2015). R ile Veri Madenciliği Yaz Okulu Ders Notları, Muğla, 7-13 Eylül 2015. Balaban, M. E. (2015). Project Management in Data Mining, Proje Yönetim Zirvesi (PM Summit) 2015, Boğaziçi Üniversitesi, İstanbul, 2-3 Ekim 2015. Balaban, M. E., & Kartal, E. (2015). Veri Madenciliği ve Makine Öğrenmesi Temel Algoritmaları ve R Dili ile Uygulamaları. İstanbul, Çağlayan Kitabevi, ISBN: 9789754360899. Bridge, D. (2013). Classification: k Nearest Neighbours. Retrieved April 26, 2015, from www.cs.ucc.ie/~dgb/courses/tai/notes/handout4.pdf Choi, S.-S., Cha, S.-H., & Tappert, C. C. (2010). A survey of binary similarity and distance measures. Journal of Systemics, Cybernetics and Informatics, 8(1), 43 48. Cichosz, P. (2015). Data Mining Algorithms: Explained Using R. John Wiley & Sons. Dekhtyar, A. (2009). CSC 466: Knowledge Discovery from Data - Distance/Similarity Measures. Retrieved May 20, 2015, from http://users.csc.calpoly.edu/~dekhtyar/560-fall2009/lectures/lec09.466.pdf Dunn, G., & Everitt, B. S. (2012). An Introduction to Mathematical Taxonomy. Courier Corporation. Gan, G. (2011). Data Clustering in C++: An Object-Oriented Approach. CRC Press. Harrington, P. (2012). Machine Learning in Action (1st Edition). Shelter Island, NY: Manning Publications. Kartal, E. (2015). Sınıflandırmaya Dayalı Makine Öğrenmesi Teknikleri Ve Kardiyolojik Risk Değerlendirmesine İlişkin Bir Uygulama (Doktora). İstanbul Üniversitesi, İstanbul, Türkiye. Kaufman, L., & Rousseeuw, P. J. (1990). Finding Groups in Data: An Introduction to Cluster Analysis. Hoboken, New Jersey: John Wiley & Sons, Inc. 21 Ocak 2016 VERİ MADENCİLİĞİNDE K-EN YAKIN KOMŞU ALGORİTMASI 44/45

Teşekkürler 21 Ocak 2016 VERİ MADENCİLİĞİNDE K-EN YAKIN KOMŞU ALGORİTMASI 45/45