Zeki Veri Madenciliği Ethem Alpaydın Bilgisayar Mühendisliği Bölümü Boğaziçi Üniversitesi alpaydin@boun.edu.tr http://www.cmpe.boun.edu.tr/~ethem Veri Madenciliği nedir? • Büyük miktarda veri içinden, gelecekle ilgili tahmin yapmamızı sağlayacak bağıntı ve kuralların aranmasıdır. • Knowledge Discovery in Databases 2 Örnek Uygulamalar • Bağıntı “Çocuk bezi alan müşterilerin 30%’u bira da alır.” (Basket Analysis) • Sınıflandırma “Genç kadınlar küçük araba satın alır; yaşlı, zengin erkekler ise büyük, lüks araba satın alır.” • Regresyon Kredi skorlama (Application Scoring) 3 Örnek Uygulamalar • Zaman içinde Sıralı Örüntüler “İlk üç taksidinden iki veya daha fazlasını geç ödemiş olan müşteriler %60 olasılıkla krediyi geriye ödeyemiyor.” (Behavioral scoring, Churning) • Benzer Zaman Sıraları “X şirketinin hisselerinin fiyatları Y şirketinin fiyatlarıyla benzer hareket ediyor.” 4 Örnek Uygulamalar • İstisnalar (Fark Saptanması) “Normalden farklı davranış gösteren müşterilerim var mı?” Fraud detection • Döküman Madenciliği (Web Madenciliği) “Bu arşivde (veya internet üzerinde) bu dökümana benzer hangi dökümanlar var?” 5 Veri Madenciliği Sihir değildir! Veri madenciliği, veri tabanları, istatistik ve yapay öğrenme konularının kavramlarına dayanır ve onların tekniklerini kullanır. 6 Ambardan Madene Veri Ambarı Günlük Veri tabanları Veri alınır, çevrilir, temizlenir, guruplanır Standard form Amaç belirlenir, veri oluşturulur 7 Maden nasıl bulunur? Geçerleme Keşif Bilgisayar yardımıyla, Kullanıcı tarafından, Yukarıdan aşağıya Otomatik, Veri tarafından yönlendirilir, Aşağıdan yukarıya Sorgula ve Raporla OLAP (OnLine Analytical Processing) tools 8 Adımlar: 1. Amaç Tanımlama • Ürünler arasında bağıntı ? • Yeni pazar segmentleri veya potansiyel müşteriler? • Zaman içindeki satın alma örüntüleri veya ürün satım eğrileri? • Müşterileri guruplamak, sınıflandırmak ? 9 Adımlar: 2. Veri Hazırlama • Veriyi birleştir, seç ve önişle (Eğer veri ambarı varsa zaten yapılmıştır) • Var olan verinin dışında, amaç için kullanılabilecek ek bilgi var mı? 10 Adımlar: 2. Veri Hazırlama • Veri seçimi: Önemli değişkenlerin saptanması • Veri temizleme: Hata, tutarsızlık, tekrar ve eksik verilerin ayıklanması/düzeltilmesi • Veri fırçalama: Guruplama, dönüşümler • Görsel inceleme: Veri dağılımı, yapısı, istisnalar, değişkenler arasında bağıntılar • Değişken analizi: Guruplama, bölütleme 11 Adımlar: 3. Teknik Seçme • Amaç sınıfının tanımlanması Guruplama (Clustering/Segmentation), Bağıntı kurma (Association), Sınıflandırma (Classification), Zaman içinde örüntü bulma/tahmin yapma (Pattern detection/Prediction in time) • Çözüm sınıfınının tanımlanması Açıklama (Karar ağaçları,kurallar) vs Kara kutu (sinir ağı) • Model değerlendirme, geçerleme ve karşılaştırma k-kat çapraz geçerleme, istatistiksel testler • Modellerin birleştirilmesi 12 Adımlar: 4. Yorumlama • Sonuçlar (açıklamalar/tahminler) doğru mu, dikkate değer mi? • Uzmana danışma 13 Örnek • Veri, çok boyutlu değişkenler tablosudur Ad Ali Veli Gelir 25,000 $ 18,000 $ Birikim 50,000 $ 10,000 $ Medeni hali Evli Evli Default ... Hayır Evet Bir değişkenin değerini, diğer değişkenlerin değerleri cinsiden açıklamak istiyoruz. 14 Sistem Modelleme x : Gözlenebilen değişkenler. y =f (x) : f bilinmeyen ve rassal bir fonksiyon x f y 15 Veri için Model Oluşturma x y f - f* 16 Veriden Öğrenme Verilmiş örnek kümesi X={xt,yt}t üzerinde f (xt) ’ye en yakın kestirici f*(xt) ’i oluşturuyoruz. E y t f * (x t ) 2 t 17 Uygulama Tipleri • Sınıflandırma: y in {C1, C2,…,CK} • Regresyon: y in Re • Zaman Serisi Tahmini: x ’ler zaman içinde bağımlı • Öbekleme: x ’leri benzerliğe göre gurupla 18 birikim Örnek OK DEFAULT yıllık gelir 19 x2 : birikim Örnek Çözüm OK DEFAULT q2 x1 : yıllık gelir q1 KURAL: EĞER yıllık gelir> q1 VE birikim> q2 İSE OK DEĞİLSE DEFAULT 20 Karar Ağaçları x1 > q1 evet hayır x2 > q2 evet y=1 x1 : yıllık gelir x2 : birikim y = 0: DEFAULT y = 1: OK y=0 hayır y=0 21 birikim Öbekleme Tip 1 Tip 2 OK DEFAULT Tip 3 yıllık gelir 22 Veri Görselleştirme • Görsel Analiz için veriyi daha az boyutlu (tercihen 2) olarak çiz. • Verinin yapısının; gurupların, istisnaların gözlenmesi 23 z2 Veri Görselleştirme Kural İstisna z1 24 Zaman Serisi Tahmini ? zaman Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec Jan Geçmiş Discovery of frequent episodes Şimdi Gelecek 25 Metodoloji İlk Standard Form Öğrenme kümesi Model 1 Model 2 Yeterince iyi ise kabul et En iyiyi seç Model L Deneme kümesi Veri azaltma: Değişken sayısı ve değer azaltma En iyi model Eğitilmiş modelleri deneme kümesi üzerinde dene ve en başarılısını seç Olası modelleri öğrenme kümesi üstünde eğit 26 Kestiricileri Eğitmek için Teknikler • • • • Parametrik Çokboyutlu İstatistik Bellek tabanlı (Örnek tabanlı) Modeller Karar Ağaçları Yapay Sinir Ağları 27 Sınıflandırma • • • • x : d-boyutlu değişkenler vektörü C1 , C2 ,... , CK : K sınıf Şüphe Veriden P(Ci|x) hesaplanır ve olasılığı en yüksek sınıf k seçilir P(Ck|x)=maxj P(Cj|x) 28 Bayes Kuralı p(x|Cj) P(Cj) p(x) P(Cj|x) : : : : Sınıf j’den bir örneğin x olma olasılığı Sınıf j’nin ilk olasılığı Herhangi bir örneğin x olma olasılığı x olan bir örneğin sınıf j’den olma olasılığı (son olasılık) 29 İstatistiksel Yöntemler • Sınıf dağılımları, p(x|Cj) için parametrik (Gauss) model varsayılıyor Tek boyutlu x 2 ( x ) 1 j exp 2 2 j 2 j p (x | C j ) Çok boyutlu x d 1 1 T 1 p (x | C j ) exp ( x μ j ) Σ j ( x μ j ) d /2 (2 ) Σ j 2 30 Sınıflandırıcıyı Eğitmek • Veri {xt}t ’in ait olduğu sınıf Cj Tek boyutlu: p(x|Cj)~N (j,j2) xt ̂ j x t C j nj (x ˆ j 2 t ˆ j ) 2 x t C j Pˆ(C j ) nj Çok boyutlu: p(x|Cj)~Nd (j,Sj) t x μ̂ j x t C j nj nj n t t T ˆ ˆ ( x μ )( x μ ) j j ˆS 2 x C j j t nj 31 Örnek: 1 Boyutlu 32 Örnek: Farklı Varyanslar 33 Örnek: Çok Sınıf 34 Örnek: 2 Boyutlu 35 Örnek: Ortak Kovaryans 36 Örnek: Farklı Kovaryanslar 37 Davranışlar ve Riskler ai : davranış i l(ai|Cj) : Sınıf Cj iken ai davranışını almanın getirdiği kayıp. ai davranışının riski: R(ai |x) = Sj l(ai|Cj) P(Cj |x) En az riskli davranışı seç: R(ak |x) = mini R(ai |x) 38 Regresyon (Fonksiyon Yakınsama) 39 Regresyon t t y f (x | q ) gürültü. Doğrusal regresyonda parametreler w,w0 f (x t | w ,w 0 ) wx t w 0 t t 2 E (w ,w 0 ) (y wx w 0 ) t E w E E 0, 0 w w 0 40 Doğrusal Regresyon 41 Yüksek Dereceli Regresyon • Örneğin, ikinci dereceden t f (x | w 2 ,w 1 ,w 0 ) w 2 x t2 E (w 2 ,w 1 ,w 0 ) (y w 2 x t t w 1x t w 0 t2 w 1x t w 0 )2 42 Yüksek Dereceli Regresyon 43 Çok Değişkenli Doğrusal Regresyon (Scoring) • d değişken sayısı t 1 t t f (x , x 2 , , x d | w 0 ,w 1 ,w 2 , ,w d ) t 1 1 t 2 t w x w 2 x w d x d w 0 wT x E (w 0 ,w 1 ,w 2 , ,w d ) t y t t 1 t 2 t f (x , x , , x d | w 0 ,w 1 ,w 2 , ,w d ) 2 44 Özellik Seçme • Özellikler Altkümesi Seçimi İleriye veya Geriye doğru seçim • Doğrusal İzdüşüm Temel Bileşenler Analizi (PCA) Doğrusal Ayırıcı Analizi (LDA) 45 Sıralı Altküme Seçimi İleriye Doğru Seçim (x1) (x2) (x 1 x 3 ) (x3) (x4) (x2 x3) (x 1 x 2 x 3 ) (x3 x4) (x2 x3 x4) Geriye Doğru Seçim (x 1 x 2 x 3 x 4 ) (x1 x2 x3) (x1 x2 x4) (x1 x3 x4) (x2 x3 x4) (x2 x4) (x1 x4) (x1 x2) 46 Temel Bileşenler Analizi (PCA) x2 z2 z2 z1 x1 z1 Beyazlaştırma 47 Doğrusal Ayırıcı Analizi (LDA) x2 z1 z1 x1 48 Bellek Tabanlı Yöntemler • Örnek tabanlı karar verme • En yakın komşu algoritması • Bilinen geçmiş örnekleri bir liste içinde saklayıp buradan ara değerleme ile çıktı hesaplanır. 49 En Yakın Komşu x2 x1 50 Yerel Regresyon y x Uzmanların Birleşimi 51 Eksik Veri • Eksik veri olan kayıtları çıkar. • Ortalama ile doldur. • Diğer değişkenler cinsinden regresyon ile doldur. 52 Karar Ağaçlarının Eğitilmesi x2 x1 > q1 evet hayır x2 > q2 evet y=1 hayır y=0 q2 y=0 q1 x1 53 Düzensizliğin Ölçülmesi x2 x2 q 7 0 q x1 1 9 8 5 x1 0 4 54 Entropi n right n left n left n right e log log n n n n 55 Yapay Sinir Ağları x0=+1 x1 x2 w1 w2 g wd xd y g (x 1w 1 x 2w 2 w 0 ) w0 y g ( wT x) Regresyon: Öz Sınıflandırma: Sigmoid (0/1) 56 Yapay Sinir Ağının Eğitilmesi • d değişken d o g ( w x) g w i x i i 0 T X x , y t Öğrenme kümesi: t X üzerindeki hatayı en aza indiren w ’yi bul E (w | X ) y t X t o t 2 t y g w i x i t X i 2 57 Doğrusal Olmayan En İyileme E Wi E w i w i Eğim iniş: Tekrarlı öğrenme öğrenme hızı 58 Sınıflandırma için Yapay Sinir Ağları K tane sınıf için oj , j=1,..,K çıktı Her oj , P (Cj|x)’yi kestirir o j sigmoid ( wTj x ) 1 1 exp( wTj x ) 59 Çok Sınıflı Doğrusal Yapay Sinir Ağı o2 o1 oK wKd x0=+1 x1 x2 xd d t T t t o j g ( w j x ) g w ji x i i 0 60 Tekrarlı Öğrenme X xt , yt E ( w | X ) y o t j t j t 2 j o tj g ( wTj x t ) w ji E E o j y tj o tj g ' ()x i w ji o j w ji t Doğrusal Doğrusal olmayan y o w ji y tj o tj x i w ji t j o tj t j (1 o tj )x i 61 Doğrusal Olmayan Sınıflandırma Doğrusal ayırılabilir Doğrusal ayırılamaz; doğrusal olmayan bir ayırıcı gerekir. 62 Çok Katmanlı Yapay Sinir Ağı (MLP) o2 o1 oK tKH h2 h1 hH h0=+1 x0=+1 x1 x2 H t o g t jp h p p 0 d t h p sigmoid w pi x it i 0 t j wKd xd 63 Olasılık Ağları p (a ) 0.1 p ( | a ) 0.05, p ( | a ) 0.1,... 64 Modelleri Değerlendirme 1. M ’nin gelecekteki gerçek veri üzerindeki başarısını nasıl ölçebiliriz? 2. M1 , M2 , ..., ML arasında en iyisi hangi modeldir? 65 Çapraz Geçerleme 1 1 2 3 2 k-1 k 3 k-1 k k kere tekrar et ve ortalama al 66 Modelleri Birleştirme: Neden? İlk Standard Form Öğrenme kümesi Model 1 Model 2 En iyiyi seç En iyi model Model L Geçerleme kümesi 67 Modelleri Birleştirme : Nasıl? İlk Standard Form Öğrenme kümesi Model 1 Model 2 Oylama Model L Geçerleme kümesi 68 Kredi Skor Hesabı (Credit Scoring) • Başvuru (application) ve davranış (behavioral) skor hesabı • İstatistiksel bir model olarak skorkartı • İyi ve kötü risk müşteriler • Alanların doğrusal toplamı: Kredi kartı var mı? Evet: +50 Hayır: –20 69 Kredi Skor Hesabında Kullanılan Alanlar • • • • • • • • • • • İkamet adresinde oturduğu zaman: 0-1, 1-2, 3-4, 5+ yıl Ev durumu: Sahip, kiracı, diğer Postakodu: Kodlanmış Telefon: Evet, hayır Yıllık gelir: Kodlanmış Kredi kartı: Evet, hayır Yaş: 18-25, 26-40, 41-55, 55+ yıl Meslek: Memur, işçi, serbest, işsiz, ... Medeni hali: Evli, bekar, diğer Bankanın müşterisi olduğu zaman: yıl Çalıştığı kurumda çalışma zamanı: yıl 70 Kredi Skor Hesabının Yararları • Daha doğru karar vermeyi sağlar. • Skorkartı standardizasyon ve nesnel karar getirir. • Hızlı ve ucuzdur. • Kullanılan tek skorkartının üzerinde kurumun kontrolü vardır. • Yeni skorkartı otomatik olarak kolay ve hızlı bir şekilde hesaplanabilir. 71 Sepet Analizi (Basket Analysis) • X ve Y malları arasındaki ilişki • X, Y: 0/1 Destek (Support): P(X ve Y)= X ve Y mallarını satın almış müşteri sayısı / Toplam müşteri sayısı Güven (Confidence): P(X|Y)=P(X ve Y)/P(Y) = X ve Y mallarını satın almış müşteri sayısı / Y malını satın almış müşteri sayısı 72 Sepet Analizi • X, Y beğeni değerleri • Corr(X,Y)=Cov(X,Y)/(Std(X)*Std(Y)) • Cov(X,Y)=E[(X-mX) (Y-mY)] 73 Sonuçlar: Verinin Önemi • Amaç, büyük miktardaki ham veriden değerli bilginin çıkarılmasıdır. • Çok miktarda, güvenilir veri önşarttır. Çözümün kalitesi öncelikle verinin kalitesine bağlıdır. • Veri madenciliği simya değildir; taşı altına döndüremeyiz. 74 Sonuçlar: Uzmanın Önemi • Veri madenciliği, uygulama alanındaki uzmanların ve bilgisayarın ortak çalışmasıdır. • Uygulama ile ilgili ve yararlı olabilecek her tür bilginin (simetriler, kısıtlar, vb) öğrenmeye yardım için sisteme verilmesi gerekir. • Sonuçların tutarlılığının uzmanlar tarafından denetlenmesi gerekir. 75 Sonuçlar: Sabrın Önemi • Veri madenciliği tek aşamalı bir çalışma değildir; tekrarlıdır. Sistem ayarlanana dek birçok deneme gerektirir. • Veri madenciliği uzun bir çalışma olabilir. Büyük beklentiler büyük hayal kırıklıklarına neden olur. 76 Tekrar: Madencilik için Gerekenler • • Çok miktarda kaliteli veri İlgili ve bilgili uzmanlar: 1. Uygulama alanı 2. Veri Tabanları (Veri Ambarcılığı) 3. İstatistik ve Yapay Öğrenme • Zaman ve sabır 77