Bölüm 4 için Ders Notları Introduction to Data Mining Veri Madenciliği Sınıflandırma: Temel Tanımlar, Karar Ağaçları ve Model Değerlendirmesi Bölüm 4 için Ders Notları Introduction to Data Mining by Tan, Steinbach, Kumar, Çeviren Yrd. Doç. Dr. Mete Çelik © Tan,Steinbach, Kumar Introduction to Data Mining 4/18/2004 1
Sınıflandırma: Tanım Bir kayıt kolleksiyonu verilsin (eğitim kümesi) Herbir kayıt parametreler grubu (x,y) ile karakterize edilir. Buradaki x özellik kümesidir ve y ise sınıf etiketidir. x: özellik, kestirici, bağımsız değişken, giriş y: etiket, cevap, bağımlı değişken, çıkış Görev: Herbir özellik kümesi x’i, daha önceden tanımlanmış sınıf etiketi y’den birine eşleştiren bir modeli öğren.
Sınıflandırma Görevi Örnekleri Özellik kümesi, x Sınıf etiketi, y E-posta mesajlarını kategorilere ayırmak Eposta üstbilgisinden veya içeriginden çıkarılan özellikler İstenmeyen e-posta (spam) veya değil ( non-spam) Tümör hücrelerini belirleme MRI görüntülerinden çıkarılan özellikler Kötü huylu veya iyi huylu hücreler Galaksileri kataloglama Teleskop resimlerinden çıkarılan özellikler Oval, spiral, or düzensiz-şekilli galaksiler
Sınıflandırma Modelinin Oluşturulması için Genel Yaklaşım
Sınıflandırma Teknikleri Temel Sınıflandırıcılar Karar Ağacı tabanlı Yöntemler Kural-tabanlı Yöntemler En yakın komşu Sinir Ağları Naïve Bayes ve Bayesian Belief Ağları Destek Vektör Makineleri Topluluk Sınıflandırıcıları (Ensemble Classifiers) Hızlandırma, Çuvallama, Rastgele Ağaçlar (Boosting, Bagging, Random Forests)
Bir Karar Ağacı Örneği Model: Karar Ağacı Eğitim Verisi kategorik kategorik sürekli sınıf Ayrılan Özellikler Home Owner Yes No NO MarSt Single, Divorced Married Income NO < 80K > 80K NO YES Eğitim Verisi Model: Karar Ağacı
Başka Bir Karar Ağacı Örneği kategorik kategorik sürekli sınıf MarSt Single, Divorced Married NO Home Owner No Yes NO Income < 80K > 80K NO YES Aynı veriye uyan birden fazla ağaç olabilir.
Karar Ağacı Sınıflandırma Görevi Decision Tree
Modelin Test Verisine Uygulanması Kökten başla Home Owner Yes No NO MarSt Single, Divorced Married Income NO < 80K > 80K NO YES
Modelin Test Verisine Uygulanması Home Owner Yes No NO MarSt Single, Divorced Married Income NO < 80K > 80K NO YES
Modelin Test Verisine Uygulanması Home Owner Yes No NO MarSt Single, Divorced Married Income NO < 80K > 80K NO YES
Modelin Test Verisine Uygulanması Home Owner Yes No NO MarSt Single, Divorced Married Income NO < 80K > 80K NO YES
Modelin Test Verisine Uygulanması Home Owner Yes No NO MarSt Single, Divorced Married Income NO < 80K > 80K NO YES
Modelin Test Verisine Uygulanması Home Owner Yes No NO MarSt Single, Divorced Married Atanan değer “No” Income NO < 80K > 80K NO YES
Karar Ağacı Sınıflandırma Görevi Decision Tree
Karar Ağacı Algoritmaları Çok Sayıda Algoritma : Hunt Algorithması (ilk algoritmalardan) CART ID3, C4.5 SLIQ,SPRINT
Karar Ağaçları Algoritmalarının Tasarım Meseleleri Eğitim verilerinin nasıl ayrılması gerekir? Test durumunu belirlemek için bir metot belirle özellik tiplerine bağlı olabilir Bir test durumunun iyiliğini değerlendirmek için ölçme yap Bölünme işleminin nasıl durması gerekir? Bütün kayıtlar aynı sınıfa ait olunca veya benzer özellik değerlerine sahip olunca dur. Erken durdurma
Test Durumlarını İfade Eden Metotlar Özellik tipine bağlı İkili Nominal Ordinal Sürekli Bölünme sayısına bağlı 2-yönlü ayırma Çok-yönlü ayırma
Nominal Değerler için Test Durumları Çok-yölü bölünme: Ayrık değerler olarak çok sayıda bölme kullanılır. İkili bölünnme Değerleri iki altkümeye ayırır Optimal bölümlemeyi bulmak gerekir.
Ornidal Değerler için Test Durumları Çok-yönlü bölünme: Ayrık değerler olarak çok sayıda bölme kullanılır. İkili bölünme: Değerleri iki altkümeye ayırır Optimal bölümlemeyi bulmak gerekir. Özellik değerleri arasındaki sıralamayı koru Bu gruplama sırayı bozar
Sürekli Değerler için Test Durumları
Sürekli Özelliklere Dayanarak Bölünme Farklı yolları vardır Ordinal kategorik özellik oluşturmak için ayrıklaştırma Statik – en başkta birkez ayrıklaştırma Dinamik – aralıklar eşit aralık veya eşit frekans veya kümeleme yolu ile bulunabilir. İkili Karar: (A < v) or (A v) bütün muhtemel ayrımları hesaba kat ve en iyi kesimi bul hesaplama maliyeti yüksek olabilir
En İyi Bölünme Nasıl Belirlenir Bölünmeden önce: Sınıf 0’da 10 kayıt, Sınıf 1’de 10 kayıt En iyi test durumu hangisidir?
En İyi Bölünme Nasıl Belirlenir Aç gözlü yaklaşım: En saf sınıf dağılımına sahip düşümler tercih edilir Düğüm safsızlığının ölçümü için bir ölçüt gerekir: Yüksek safsızlık derecesi Düşük safsızlık derecessi
Düğüm Safsızlığının Ölçüleri Gini Indeks Entropi Yanlış Sınıflandırma Hatası
En İyi Bölünmenin Bulunması Bölünmeden önce safsızlık ölçüsünü (P) hesapla Bölünmeden sonra safsızlık ölçüsünü (M) hesapla Herbir çocuk düğüm için safsızlık ölçüsünü hesapla Çocukların ortalama safsızlığını hesapla (M) En yüksek kazancı üreten özellik test durumunu seç veya aynı mantıkla, bölünmeden sonra en düşük safsızlık ölçüsünü seç (M) . Kazanç= P – M
En İyi Bölünmenin Bulunması Bölünmeden önce: P A? B? Yes No Yes No Düğüm N1 Düğüm N2 Düğüm N3 Düğüm N4 M11 M12 M21 M22 M1 M2 Kazanç= P – M1 vs P – M2
Safsızlığın Ölçüsü : : GINI Verilen t düğümü için Gini indeks : (NOT: p( j | t) t düğümündeki j sınıfının bağıl frekansıdır.). Eğer kayıtlar bütün sınıflar arasında eşit olarak dağıtıldıysa maksimum (1 - 1/nc ). Yani en az ilginç bilgi. Bütün kayıtlar tek sınıfa ait olduğune minimum (0.0) olur. Yani en ilginç bilgi.
Tek Bir Düğümün Gini Indeksinin Hesaplanması P(C1) = 0/6 = 0 P(C2) = 6/6 = 1 Gini = 1 – P(C1)2 – P(C2)2 = 1 – 0 – 1 = 0 P(C1) = 1/6 P(C2) = 5/6 Gini = 1 – (1/6)2 – (5/6)2 = 0.278 P(C1) = 2/6 P(C2) = 4/6 Gini = 1 – (2/6)2 – (4/6)2 = 0.444
Birden Fazla Düğüm için Gini Indeksinin Hesaplanması Eğer p düğümü k bölüme (çocuğa) ayırılısa ni = i çocuğundaki kayıt sayısı, n = p düğümündkei kayıt sayısı. Çocukların ağırlıklı ortalama Gini indeksini minimize eden özelliği seç Gini indeks CART, SLIQ, SPRINT gibi karar ağacı algoritmalarında kullanılır
İkili Özellikler: GINI Indeksini Hesaplanması İki bölmeye ayrılırlar Ağırlıklı bölünmenin etkisi: En büyük ve en saf bölünmeler aranıyor. B? Yes No Düğüm N2 Düğüm N1 Gini(N1) = 1 – (5/6)2 – (1/6)2 = 0.278 Gini(N2) = 1 – (2/6)2 – (4/6)2 = 0.444 Gini(Çocuklar) = 6/12 * 0.278 + 6/12 * 0.444 = 0.361
Categorical Özellikler: Gini Indeksin Hesaplanması Herbir farklı değer için, herbir sınıftaki sayılarını bul Karar vermek için sayım matrisini kullan Çok-Yönlü Bölünme Two-way split (find best partition of values)
Sürekli Özellikler: Gini Indeksin Hesaplanması Bir değere bağlı olarak İkili kararları kullan Bölünme değeri için birden fazla tercih Muhtemel bölünme değeri sayısı = Farklı değer sayısı Herbir bölünme değeri için kendisi ile ilişkili bir sayım matrisi vardır Herbir bölünme için sınıf sayıları, A < v ve A v En basit yöntem en iyi v’yi bulmak Herbir v için Gini indeksini hesaplamak ve sayım matrisini oluşturmak için veritabanını tara Hesaplama maliyeti yüksek.
Sürekli Özellikler: Gini Indeksin Hesaplanması Etkili hesaplama için; herbir özellik için, Özellikleri sırala Bu değerleri lineer olarak tara, her seferinde sayım matrisin güncelle ve gini indeksi hesapla En düşük gini indeksi olan bölünme pozisyonunu seç Sıralı değerler Bölünme pozisyonları
Safsızlığın Ölçümü : Entropi Verilen t düşümündeki Entropi: (NOT: p( j | t) t düğümündeki j sınıfının bağıl frekansıdır.). Eğer kayıtlar bütün sınıflar arasında eşit olarak dağıtıldıysa maksimum (log nc ). Yani en az ilginç bilgi. Bütün kayıtlar tek sınıfa ait olduğune minimum (0.0) olur. Yanı en ilginç bilgi. Entropy tabanlı hesaplamalar GINI indekisi hesaplamalarına benzerdir
Bir Düğümün Entropisinin Hesaplanması P(C1) = 0/6 = 0 P(C2) = 6/6 = 1 Entropi = – 0 log 0 – 1 log 1 = – 0 – 0 = 0 P(C1) = 1/6 P(C2) = 5/6 Entropi = – (1/6) log2 (1/6) – (5/6) log2 (1/6) = 0.65 P(C1) = 2/6 P(C2) = 4/6 Entropi = – (2/6) log2 (2/6) – (4/6) log2 (4/6) = 0.92
Bölünmeden Sonra Bilgi Kazancının Hesaplanması Ana düğüm p, k bölüme ayrılıyor; ni i bölümündeki kayıt sayısı En fazla indirgeme sağlayan bölünmeyi seç (GAIN’i maksimize eden) ID3 ve C4.5’de kullanılır.
Bilgi Kazancının Problemleri Bilgi Kazancı saf ve küçük parçalardan oluşan çok sayıda bölünmeli ayrıma meyillidir. Customer ID en yüksek bilgi kazancına sahiptir çünkü heribr çocuk için entropi sıfırdır.
Kazanç Oranı (Gain Ratio) Ana düğüm p, k bölüme ayrılıyor; ni i bölümündeki kayıt sayısı Bölümlemenin entropisi olarak (SplitINFO) Bilgi Kazancını ayarla. En yüksek entropi bölümleme cezalandırılır C4.5’te kullanılır Bilgi Kazancının dezavantajını ortadan kaldırmak için tasarlanmıştır.
Safsızlık Ölçüsü : Sınflandırma Hatası t düğümündeki sınıflandırma hatası: Eğer kayıtlar bütün sınıflar arasında eşit olarak dağıtıldıysa maksimum (1 - 1/nc . Yani en az ilginç bilgi. Bütün kayıtlar tek sınıfa ait olduğune minimum (0) olur. Yanı en ilginç bilgi.
Tek Düğümüm Hatasınn Hesaplanması P(C1) = 0/6 = 0 P(C2) = 6/6 = 1 Hata = 1 – max (0, 1) = 1 – 1 = 0 P(C1) = 1/6 P(C2) = 5/6 Hata = 1 – max (1/6, 5/6) = 1 – 5/6 = 1/6 P(C1) = 2/6 P(C2) = 4/6 Hata= 1 – max (2/6, 4/6) = 1 – 4/6 = 1/3
Safsızlık Ölülerinin Karşılaştırması 2-sınıf problemi için:
Yanlış Sınıflandırma Hatasına karşılık Gini Indeks Yes No Düğüm N1 Düğüm N2 Gini(N1) = 1 – (3/3)2 – (0/3)2 = 0 Gini(N2) = 1 – (4/7)2 – (3/7)2 = 0.489 Gini(Çocuklar) = 3/10 * 0 + 7/10 * 0.489 = 0.342 Gini daha iyi olur ancak hata aynı kalır!!
Karar Ağacı Tabanlı Sınıflandırma Avantajları: Kurulumları maliyetli değil Bilinmeyen kayıtları sınıflandırmada oldukça hızlıdır Küçük-boyutlu ağaçları için yorumu kolay Çoğu basit veri kümesi için doğruluğu diğer yöntemlere göre daha iyi olabilir.