Karar Ağacı Öğrenmesi(Decision Tree Learning)

Benzer belgeler
Karar Ağacı Öğrenmesi(Decision Tree Learning)

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

Web Madenciliği (Web Mining)

Borsa verileri Çağrı merkezine gelen arama sayısı Gün içerisinde bir dükkana gelen müşteri sayısı

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

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

Makine Öğrenmesi 3. hafta

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Ş

Gözetimli & Gözetimsiz Öğrenme

Uzaktan Algılama Teknolojileri

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

Veri Madenciliği. Bölüm 5. Sınıflandırma 1. Doç. Dr. Suat Özdemir.

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

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

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

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

Concept Learning. Araş. Gör. Nesibe YALÇIN BİLECİK ÜNİVERSİTESİ. Yapay Zeka - Kavram Öğrenme

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

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

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

Hafta 05 - Karar Ağaçları/Kümeleme

Mekatronik Mühendisliği Uygulamalarında Yapay Zekâ. Makine Öğrenmesi. Erhan AKDOĞAN, Ph.D.

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

Boosting. Birol Yüceoğlu Migros T.A.Ş.

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

GENETİK ALGORİTMALAR. Araş. Gör. Nesibe YALÇIN BİLECİK ÜNİVERSİTESİ

Zeki Optimizasyon Teknikleri

Makine Öğrenmesi 2. hafta

Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi

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

YZM 3217 YAPAY ZEKA DERS#10: KÜMELEME

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

Veri madenciliği yöntemleri

tree) nedir? Karar Ağacı (Decision Decisiontree

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

CBS ve Coğrafi Hesaplama

2.1 Bir Sınıfı Örneklerinden Öğrenme Vapnik-Chervonenkis (VC) Boyutu Olası Yaklaşık Doğru Öğrenme... 21

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

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

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

Akış YILDIZ TEKNİK ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ

KARAR AĞAÇLARI SÜMEYYE ÖZKAN BAHAR BAKAR İZEL KOLCU

SAYI VE KODLAMA SİSTEMLERİ. Teknoloji Fakültesi/Bilgisayar Mühendisliği

Apriori Algoritması. Konu İçeriği. Giriş. Tarihçesi. Apriori Nedir? Örnekler. Algoritma. Açıklama. Weka İle Kullanımı. Kaynakça.

Programlama Dilleri 1. Ders 3: Rastgele sayı üretimi ve uygulamaları

Web Madenciliği (Web Mining)

YZM 3217 YAPAY ZEKA DERS#9: ÖĞRENME VE SINIFLANDIRMA

İleri Diferansiyel Denklemler

LKS2. Kredi Kartı Uygulamaları

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

YZM YAPAY ZEKA DERS#6: REKABET ORTAMINDA ARAMA

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

Algoritmalar. Arama Problemi ve Analizi. Bahar 2016 Doç. Dr. Suat Özdemir 1

Olasılık, bir deneme sonrasında ilgilenilen olayın tüm olaylar içinde ortaya çıkma ya da gözlenme oranı olarak tanımlanabilir.

Genel Graf Üzerinde Mutlak 1-merkez

TAMSAYILAR. 9www.unkapani.com.tr. Z = {.., -3, -2, -1, 0, 1, 2, 3, } kümesinin her bir elemanına. a, b, c birer tamsayı olmak üzere, Burada,

Sayı sistemleri-hesaplamalar. Sakarya Üniversitesi

Algoritmalar. Sıralama Problemi ve Analizi. Bahar 2017 Doç. Dr. Suat Özdemir 1

Elbistan Meslek Yüksek Okulu Güz Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU

Ağaç (Tree) Veri Modeli

Bo lu m 7: Hesap Tabloları

Dosya Sıkıştırma (File Compression) Kütük Organizasyonu 1

GENETİK ALGORİTMA ÖZNUR CENGİZ HİLAL KOCA

YZM ALGORİTMA ANALİZİ VE TASARIM DERS#9: AÇGÖZLÜ ALGORİTMALAR

Resim 1. Access açılış sayfası. Resim 2. Access veri tabanı düzenleme sayfası

Karar ağaçları overfitting e karşı çok hassastır. Birkaç alternatif karar ağacı oluşturulur ve sonuçta oylama yapılarak karar verilir.

TEMEL BİLGİTEKNOLOJİLERİ

Toplu Kayıt Kullanıcı Kitapçığı

BIP116-H14-1 BTP104-H014-1

ELEKTRONİK ÇİZELGE. Hücreleri Biçimlendirme. Formülleri Kullanma. Verileri Sıralama. Grafik Oluşturma 1) HÜCRELERİ BİÇİMLENDİRME

Örüntü Tanıma (EE 448) Ders Detayları

BCA605 Bilgisayar Oyunlarında Yapay Zeka

Gerçekten Asal Var mı? Ali Nesin

Web Madenciliği (Web Mining)

PAPATYA YAYINCILIK EĞİTİM Bilgisayar Sis. San. ve Tic. A.Ş. Veri Madenciliği Yöntemleri Dr. Yalçın ÖZKAN -II-

Kolektif Öğrenme Metotları

TANIMLAYICI İSTATİSTİKLER

ENF110 Temel Bilgisayar Uygulamaları Vize Öncesi Tüm Notlar - Episode 2 Excel

TEMEL BİLGİSAYAR BİLİMLERİ. Programcılık, problem çözme ve algoritma oluşturma

ÖĞRENME FAALİYETİ 1 ÖĞRENME FAALİYETİ 1

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

VisionLink Unified Suite

YAPAY SİNİR AĞLARI. Araş. Gör. Nesibe YALÇIN BİLECİK ÜNİVERSİTESİ

PARALEL VERİ MADENCİLİĞİ ALGORİTMALARI. BAŞARIM 09, Nisan 2009, ODTÜ, Ankara

YZM ALGORİTMA ANALİZİ VE TASARIM DERS#6: AZALT VE FETHET YÖNTEMİ

Oluşturmak istediğimiz OU ye bir isim veriyoruz. Name kısmına ISTANBUL yazıyoruz,

Kafes Sistemler. Birbirlerine uç noktalarından bağlanmış çubuk elemanların oluşturduğu sistemlerdir.

6.Hafta Kıyım Fonksiyonu (Hashing), BST. Doğrudan erişim tabloları Çarpışmaları ilmekleme ile çözmek Kıyım fonksiyonu seçimi Açık adresleme

Bağlı Dosya Oluşturma Uygulaması

BARKOD SİSTEMİ (Çizgi İm)

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

REGRESYON ANALİZİ VE UYGULAMA. Yrd. Doç. Dr. Hidayet Takcı

Fonksiyon Optimizasyonunda Genetik Algoritmalar

DAO İLE SQL KOMUTLARI. Sql komutlarını artık veri tabanında kullanmaktan başka çaremiz yok arkadaşlar. Şimdi bu sql derslerimize başlayalım.

BMB204. Veri Yapıları Ders 9. B+ Ağacı, Hash, Heap. Erdinç Uzun NKÜ Çorlu Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü

İSTİHDAM VE SOSYAL UYUM İÇİN DİJİTAL BECERİLER

1. MİCROSOFT EXCEL 2010 A GİRİŞ

BİLGİSAYAR PROGRAMLAMA. Yrd. Doç. Dr. Beytullah EREN

... ROBOTİK VE KODLAMA EĞİTİMİ ÇERÇEVESİNDE ÖĞRETİM YILI BİLİŞİM TEKNOLOJİLERİ DERSİ ÜNİTELENDİRİLMİŞ YILLIK DERS PLANI

Transkript:

Karar Ağacı Öğrenmesi(Decision Tree Learning) Bu yazımızda karar ağacı öğrenmesini inceleyeceğiz. Öncelikle karar ağacı öğrenmesi danışmanlı öğrenmenin, danışmanlı öğrenme de makine öğrenmesinin bir alt dalıdır. İlk etapta makine öğrenmesi hakkında bilgi edindikten sonra konumuz olan karar ağacı öğrenmesine giriş yapacağız. Makine Öğrenmesi, verilen bir problemi probleme ait ortamdan edinilen veriye göre modelleyen bilgisayar algoritmalarının genel adıdır. Yoğun çalışılan bir konu olduğu için önerilmiş birçok yaklaşım ve algoritma mevcuttur. Bu yaklaşımların bir kısmı tahmin (prediction) ve kestirim (estimation) bir kısmı da sınıflandırma (classification) yapabilme yeteneğine sahiptir. Makine öğrenmesinde yer alan bu terimleri açıklayacak olursak; Tahmin (prediction): Veriden öğrenen modellerde sistem çıkışının nicel olması durumunda kullanılan yöntemlerin ürettiği değerlerdir. Sınıflandırma (classification): Giriş verisine ait çıkışların nitel olduğu durumlarda kullanılan yöntemlerin her veri örneğinin hangi sınıfa ait olduğunu belirlemesidir. Makine Öğrenmesi yöntemleri verinin yapısına göre ikiye ayrılır. Bunlar; Danışmanlı (Supervised) Öğrenme ve Danışmansız (Unsupervised) Öğrenme dir. Danışmanlı öğrenmede, sınıf niteliği vardır ve görevi, sınıf nitelik değerini tahmin etmektir. Danışmansız öğrenmede, veri kümesinin sınıf niteliği yoktur ve bizim görevimiz, veri kümesinde benzer örnekleri bulmak ve bunları gruplamaktır. Bu benzer örnekleri gruplayarak, bir veri kümesinde önemli desenler bulabiliriz. Örneğin, tweet atma sıklığı çeşitli olaylar için farklı olduğu için denetimsiz öğrenme Twitter daki olayları tanımlamak için

kullanılabilir. Denetimsiz öğrenmeyi kullanarak, tweet ler göründükleri zamana göre gruplandırılabilir ve bu şekilde tweet lerin karşılık gelen gerçek dünyadaki olaylarını tanımlayabilir. Karar Ağacı Nedir? Karar Ağaçları, belirli bir parametreye göre verilerin sürekli olarak bölündüğü bir Denetimli Makine Öğrenmesi türüdür. Ağaç, karar düğümleri ve yapraklar olmak üzere iki varlık tarafından açıklanabilir. Yapraklar kararlar veya nihai sonuçlardır. Ve karar düğümleri verilerin nereye bölündüğünü gösterir. Şekil 1. Karar Ağacı Örneği Bir karar ağacı örneği, yukarıdaki ikili ağaç kullanılarak açıklanabilir. Diyelim ki, bir insanın yaş, yeme alışkanlığı ve fiziksel aktivite gibi verilmiş bilgilerle fit olup olmadığını tahmin etmek isteyebilirsiniz. Buradaki karar düğümleri, Yaş durumu, Sabahları egzersiz yapıyor mu?, Fazla pizza yer mi? ve yapraklar da, fit ya da fit değil şeklindedir. Bu durumda bu, binary(ikili) bir sınıflandırma problemiydi (evet hayır tip problemi).

Karar Ağaçları ile Sınıflandırma Sınıflandırma problemleri için yaygın kullanılan yöntemdir. Sınıflandırma doğruluğu diğer öğrenme metotlarına göre çok etkindir. Öğrenmiş sınıflandırma modeli ağaç şeklinde gösterilir ve karar ağacı (decision tree) olarak adlandırılır. Karar ağaçları akış şemalarına benzeyen yapılardır. Her bir nitelik bir düğüm tarafından temsil edilir. Dallar ve yapraklar ağaç yapısının elemanlarıdır. En son yapı yaprak en üst yapı kök ve bunların arasında kalan yapılar dal olarak isimlendirilir. Sınıflandırma Uygulamaları Kredi başvurusu değerlendirme Kredi kartı harcamasının sahtekarlı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 Sınıflandırma yöntemleri olarak Karar ağaçları nın yanı sıra Yapay Sinir Ağları (Artificial Neural Networks), Bayes Sınıflandırıcılar (Bayes Classifier), İlişki Tabanlı Sınıflandırıcılar (Association-Based Classifier), k-en Yakın Komşu Yöntemi (k- Nearest Neighbor Method), Destek Vektör Makineleri (Support Vector Machines) ve Genetik Algoritmalar (Genetic Algorithms) gibi yöntemler bulunmaktadır. Karar ağaçlarında sınıflandırma yöntemleri 2 çeşittir. Bunlar Entropiye Dayalı Algoritmalar ve Sınıflandırma ve Regresyon Ağaçları(CART) dır. ID3 Algoritması ve C4.5 Algoritması

Entropiye dayalı algoritmalar arasındayken Twoing Algoritması ve Gini Algoritması Sınıflandırma ve regresyon ağaçları sınıfındadır. Karar Ağacı Oluşturma Yöntemleri Karar ağacı oluşturma yöntemleri genel olarak iki aşamadan oluşur; 1.Ağaç oluşturma En başta bütün öğrenme kümesi örnekleri kökte seçilen niteliklere bağlı olarak örnek yinelemeli olarak bölünüyor. 2. Ağaç budama Öğrenme kümesindeki gürültülü verilerden oluşan ve sınama kümesinde hataya neden olan dalları silme (sınıflandırma başarımını artırır) Karar ağacı oluşturma yinelemeli bir işlemdir. Ağaç bütün verinin oluşturduğu tek bir düğümle başlar. Eğer örneklerin hepsi aynı sınıfa aitse düğüm yaprak olarak sonlanır ve sınıf etiketini alır. Eğer değilse örnekleri sınıflara en iyi bölecek olan nitelik seçilir. İşlemin sona ermesi için ise aşağıdaki şartların sağlanması gerekmektedir. Örneklerin hepsi (çoğunluğu) aynı sınıfa ait olduğunda Örnekleri bölecek nitelik kalmamışsa Kalan niteliklerin değerini taşıyan örnek yoksa Aşırı uyum(overfitting) olması durumunda ağacın budanması(pruning) gerekir.

Veriye Aşırı Uyumun Önüne Geçme Eğitim verilerini en iyi sınıflandıracak şekle kadar her dalını derinleştirir.bu mantıklı bir stratejiyken, veriler arasında gürültü varsa zorluklara sebep olabilir.gürültü varken, her yaprak saf (pure) olana dek bölünmeye izin vermek, veriyi ezberleyen (overfitting) çok büyük bir karar ağacı oluşmasına neden olabilir. Şekil 2. Doğruluk Oran Grafiği Budama(Pruning) Nedir? Verideki gürültüyü azaltmak için budama yaparız.düşük öneme sahip özellikleri kullanan dalları kaldırmayı içerir. Böylece ağaçların karmaşıklığı düşer ve aşırı uyum azalarak tahmin gücü artar. Budama kök veya yapraklardan başlayabilir. Budama işleminin en basit yöntemi yapraklarda başlar ve bu yaprağın en popüler sınıfa sahip her bir düğümünü kaldırır; bu değişiklik doğruluk bozulmazsa tutulur. Buna hata düzeltme denir. İki çeşit budama yöntemi vardır. Bunlar; 1. Erken budama(pre-prunning)

Ağacın büyümesini erken durduran bir yaklaşımdır. 1. Geç budama(post-pruning) Ağacın tamamlanmasının ardından işlem yapılır.daha doğru bir çözümdür ID3 Nedir? Karar Ağaçları yapısını oluşturan birçok algoritmanın en iyilerinden birisi ID3 Algoritması olarak adlandırılır. ID3, Iterative Dichotomiser 3 anlamına gelir.(tekrarlı ikilikçi ağaç).id3 algoritması 3 adımı esas alır: 1. 2. 3. Henüz ağaca dahil edilmeyen özellikler ele alınıp entropi (dağınım) değerleri hesaplanır. Entropi değerlerine göre sıralanır ve aralarından en düşük değerli özellik seçilir. Seçilen özelliğin kararı ağaca eklenir. Entropi Nedir? Bir sistemin düzensizliğini ifade eden terimdir. Örneğin entropi terimini hilesiz bir yazı tura atma işleminde 1 bitlik (ikil) ve %50 ihtimallik bir değer olarak görebiliriz.hileli olarak düşünürsek sürekli tura gelen bir paranın ürettiği sayıların entropisi sıfırdır. Bilgisayar bilimleri açısından daha kesin bir tanım yapmak gerekirse elimizdeki veriyi kaç bit ile (ikil) kodlayabileceğimize entropi ismi verilir. Örneğin bir haftada bulunan günleri kodlamak için kaç ikile ihtiyacımız olduğu günlerin dağınımıdır. Tablo 1. Haftanın Günleri Örneği Görüldüğü üzere 7 gün için 3 bit yeterlidir.yani haftanın

günleri entropisi 3 tür. Genellikle bir bilginin entropisi hesaplanırken log2n formülü kullanılır. Burada n birbirinden farklı ihtimal sayısını belirler. Örneğin haftanın günlerinde bu sayı 7 dir ve log 2 7 = 2,80 olmaktadır. 0.80 gibi bir bit olamayacağı için yani bilgisayar kesikli matematik (discrete math) kullandığı için 3 bit gerektiğini söyleyebiliriz. up1, p2,.., ps toplamları 1 olan olasılıklar olmak üzere entropi formülümüz; Şekil 3. Entropi Formülü Bir örnek verecek olursak; S veri kümesinde 14 örnek bulunacak şekilde, C0 sınıfına ait 9, C1 sınıfına ait 5 örnek var diyelim. Entropi formülümüzü kullanarak işlemi hesaplayacağımızda 0.940 sonucunu buluruz bu da bu örneğin entropisini gösterir. Şekil 4. Hesaplama Bu konuyla ilişkili olarak bilmemiz gereken bir diğer bilgi de Bilgi Kazancı(Information Gain)dır.İlgili formül ise Şekil 5 de mevcuttur. Şekil 5. Bilgi Kazancı Formülü ID3 Hesaplama Örneği

Tablo 2. Örnek Veriler Şimdi devam edip karar ağacını oluşturacağız. İlk adım, H(S), mevcut durumun entropisini hesaplamaktır. Yukarıdaki örnekte toplam 5 No ve 9 Yes olduğunu görüyoruz.toplam 14 değerimiz olduğundan entropi 0.940 bulunur. Şekil 6. Hesaplama Sonucu Bütün üyelerin aynı sınıfa ait olması durumunda entropinin 0 ve bunların yarısı bir sınıfa, diğer yarısı diğer sınıfa ait olduğunda entropinin 1 (örn.: yazı-tura) olduğunu hatırlayın. Burada sonucumuz 0.94, yani dağıtımın oldukça rasgele olduğu anlamına geliyor. Şimdi bir sonraki adım, kök düğüm olarak seçeceğimiz en yüksek Bilgi Kazanımı nı veren nitelik seçmektir. Rüzgar ile başlayalım. Şekil 7. Rüzgar İçin Formül Formüldeki x bir özniteliğin olası değerleridir.burada, Rüzgar özelliği örnek veride iki olası değeri alır; dolayısıyla x = {Zayıf,Güçlü}.Hesaplanması gereken değerler; H(Szayıf),P(Szayıf),P(Sgüçlü) ve önceki işlemde hesapladığımız

H(S)=0.94. Şekil 8. PZayıf ve PGüçlü için Hesaplamalar Şimdi 8 zayıf örnekten 6 sı oynama durumu için Evet 2 si oynama durumu için Hayır idi. Yani elimizde, Şekil 9. Zayıf Rüzgar İçin Entropi Benzer şekilde 6 Güçlü örnekte sonucun oynama durumu için Evet olduğu 3, Hayır olduğu 3 örnek var. Şekil 10. Güçlü rüzgar İçin Entropi Unutmayın, burada yarım öğeler bir sınıfa aitken, diğer yarısı diğerine aittir. Dolayısıyla mükemmel rasgeleliğe sahibiz.şimdi, Bilgi Kazançını hesaplamak için gereken tüm parçaları elde ettik. Şekil 11. Rüzgar İçin Bilgi Kazancı Bu, Rüzgar özelliği ile ilgili Bilgi Kazanımını bize bildirir ve bize 0,048 lik bilgi kazandırır. Şimdi de benzer şekilde tüm özelliklerin Bilgi Kazanımlarını hesaplamalıyız. BK(S,Hava Durumu) = 0.246 BK(S,Sıcaklık) = 0.029 BK(S,Nem) = 0.151 BK(S,Rüzgar) = 0.048 (örneğimiz)

Açıkça görüyoruz ki, BK(S, Hava Durumu)=0.246 en yüksek bilgi kazanımına sahip, dolayısıyla kök düğüm olarak Hava Durumu özniteliğini seçtik. Bu noktada, karar ağacı aşağıdaki gibidir. Şekil 12. Ağacın İlk Durumu Burada, Hava durumu Bulutlu olduğunda, Oynama Durumunun her zaman Evet olduğunu gözlemlersek, bu hiçbir şekilde herhangi bir tesadüf değildir. En yüksek bilgi kazanımı, Hava Durumu özelliği tarafından verilen basit ağaçtır. Şimdi bu noktadan nasıl ilerleyebiliriz? Yineleme uygulayabiliriz, daha önce açıklanan algoritma adımlarına bakmak isteyebilirsiniz. Artık Hava Durumu nu kullandık, kalan üçümüzde Nem, Sıcaklık ve Rüzgar bulunuyor. Ve Hava Durumu nun üç olası değeri vardı: Güneşli, Bulutlu, Yağmurlu. Bulutlanmış düğümün bitiş düğümünde Evet olan yaprak düğümü olması nedeniyle, hesaplamak için kalan iki alt ağacı dallandırmaya devam ederiz; Güneşli ve Yağmurlu. BK(S,Güneşli) i hesaplayacak olursak; Tablo 3. Güneşli Durumda Veriler Şekil 13. Güneşli İçin Entropi

Aynı şekilde diğer verileri de hesapladığımızda; BK (Sgüneşli,Nem) = 0,96 BK (Sgüneşli,Sıcaklık) =0.57 BK (Sgüneşli,Rüzgar) = 0.019 Gördüğümüz gibi en yüksek Bilgi Kazancı, Nem tarafından verilir. Aynı şekilde Syağmurlu için işlemleri yaptığımızda en yüksek bilgi kazancı olanı Rüzgar olarak buluyoruz. Ağacın son durumu aşağıdaki gibidir; Şekil 14. Nihai Karar Ağacı C4.5 Ağacı C4.5 ağacı, ID3 ağacının geliştirilmiş bir hali olarak düşünülebilir. ID3 algoritmasından farklı olarak nümerik değerler kategorik değerler haline dönüştürülebilir. Ayrıca ağaç üzerinde erişim sıklıklarına göre alt ağaçların farklı seviyelere taşınması da mümkündür. C4.5 ağacının diğer bir farkı ise tam bu noktada ortaya çıkar ID3 ağacının yaklaşımından farklı olarak C4.5 ağacında budama (prunning) işlemi yapılmaktadır.

Şekil 15. Budama Örneği Nümerik değerleri kategorik hale getirmek için en büyük bilgi kazancını sağlayacak biçimde bir eşik değer belirlenir.eşik değeri belirlemek için tüm değerler sıralanır ve ikiye bölünür. Eşik değer için, +1 aralığının orta noktası alınabilir. = vi + vi+1 /2. Böylece nitelikteki değerler eşik değere göre iki kategoriye ayrılmış olur. Tablo 4. Örnek Veriler Nitelik 2 = {65, 70, 75, 80, 85, 90, 95, 96} için eşik değer (80+85)/2 = 83 alınmıştır. Tablo 5. Sayısal Verilerin İki Kategoriye İndirilmesi Şimdi yapmamız gereken ID3 hesaplamasında kullandığımız formülleri aynı şekilde kullanarak en büyük bilgi kazanımı

olan niteliği düğüm olarak seçmek. Nitelik1 için hesaplamalar; 1.H(SINIF) = -(5/14 log 2 5/14 + 9/14 log 2 9/14 ) = 0.940 2.H(NİTELİK1 A ) = -( 2/5 log 2 2/5 3/5 log 2 3/5 )= 0.971 3.H(NİTELİK1 B ) = -( 4/4 log 2 4/4 + 0/4 log 2 0/4 )= 0 4.H(NİTELİK1 C ) = 3/5 log 2 3/5 2/5 log 2 2/5 = 0.971 5.H(S,NİTELİK1,SINIF) = 5/14 H(NİTELİK1 A ) + 4/14 H(NİTELİK1 B ) + 5/14 H(NİTELİK1 C ) 6.= (5/14)(0.971) + (4/14)(0) + (5/14)(0.971) = 0.694 7.BK(NİTELİK1,SINIF) = 0.940-0.694 = 0.246 Nitelik2 için hesaplamalar; 1.H(SINIF) = 0.940 2.H(NİTELİK2 EK ) = -( 7/9 log 2 7/9 2/9 log 2 2/9 )= 0.765 3.H(NİTELİK1 B ) = -( 2/5 log 2 2/5 + 3/5 log 2 3/5 )= 0.971 4.H(S,NİTELİK2,SINIF) = 9/14 H(NİTELİK2 EK ) + 5/14 H(NİTELİK2 B ) 5.= (9/14)(0.765) + (5/14)(0.971) = 0.836 6.BK(NİTELİK2,SINIF) = 0.940-0.836 = 0.104 Nitelik3 için hesaplamalar; 1.H(SINIF) = 0.940 2.H(NİTELİK3 DOĞRU ) = -( 3/6 log 2 3/6 3/6 log 2 3/6 )= 1 3.H(NİTELİK3 YANLIŞ ) = -( 6/8 log 2 6/8 + 2/8 log 2 2/8 )= 0.811 4.H(S,NİTELİK3,SINIF) = 6/14 H(NİTELİK3 DOĞRU ) + 8/14

H(NİTELİK3 YANLIŞ ) 5.= (6/14)(1) + (8/14)(0.811) = 0.892 6.BK(NİTELİK2,SINIF) = 0.940-0.892 = 0.048 BK(NİTELİK1,SINIF) > BK(NİTELİK2,SINIF) > BK(NİTELİK3,SINIF) İşlemler bittiğinde bilgi kazancı büyüklükleri sırasıyla Nitelik1,Nitelik2 ve Nitelik3 olarak bulunmuştur. Buna göre hesaplamalar tamamlanır ve nihai karar ağacı elde edilir. Şekil 16. Nihai Karar Ağacı Sınıflandırma ve Regresyon Ağaçları (CART) 1984 te Leo Breiman tarafından ortaya atılmıştır. CART karar ağacı, herbir karar düğümünden itibaren ağacın iki dala ayrılması ilkesine dayanır. Yani bu tür karar ağaçlarında ikili dallanmalar söz konusudur. CART algoritmasında bir düğümde belirli bir kriter uygulanarak bölünme işlemi gerçekleştirilir. Bunun için önce tüm niteliklerin var olduğu değerler göz önüne alınır ve tüm eşleşmelerden sonra iki bölünme elde edilir. Bu bölünmeler üzerinde seçme işlemi uygulanır. Bu kapsamda bu yazıda üç algoritma anlatılmaktadır; 1. Twoing Algoritması 2. Gini Algoritması 3. Rastgele Orman Algoritması

Twoing Algoritması Twoing algoritmasında eğitim kümesi her adımda iki parçaya ayrılarak bölümleme yapılır. Aday bölünmelerin sağ ve sol kısımlarının her birisi için nitelik değerinin ilgili sütundaki tekrar sayısı alınır. Aday bölünmelerin sağ ve sol kısımlarındaki her bir nitelik değeri için sınıf değerlerinin olma olasılığı hesaplanır.her bölünme için uygunluk değeri en yüksek olan alınır. Şekil 17. Formül Burada, T eğitim kümesindeki kayıt sayısını, B aday bölünmeyi, d düğümü, Tsinif j ise j.sınıf değerini gösterir Tablo 6. Örnek Tablo Tablo 7. Örnek Tablonun Etkenlere Göre Düzenlenmesi MAAŞ = NORMAL için P Sol = ( B Sol )/( T ) = 1/11 = 0,09 P EVET/ tsol = ( TSınıfEVET )/( B Sol ) = 1/1 = 1 ve P HAYIR/ tsol = ( TSınıfHAYIR )/( B Sol ) = 0/1 = 0

Tablo 8.Bölünme şartı sonucu elde edilen veriler MAAŞ = DÜŞÜK,YÜKSEK için P Sağ = ( B Sağ )/( T ) = 10/11 = 0,91 P EVET/tSağ = ( TSınıfEVET )/( B Sağ ) = 6/10 = 0,6 ve P HAYIR/tSağ = ( TSınıfHAYIR )/( B Sağ ) = 4/10 = 0,4 Tablo 9.Bölünme şartı sonucu elde edilen veriler Uygunluk değeri hesaplanır(1. aday bölünme için) Şekil 18. Kullanılacak Formül = 2(0,09)(0,91)[ 1 0,6 + 0 0,4 ] = 0,13 Tablo 10. Bölünme şartı sonucu elde edilen veriler Ve ağacın ilk durumu belirlenir;

Şekil 19. Ağacın İlk Durumu Aynı işlemler ALT DÜĞÜM e de uygulanır Şekil 20. Nihai Karar Ağacı Gini Algoritması Gini algoritmasında nitelik değerleri iki parçaya ayrılarak bölümleme yapılır. Her bölünme için Gini sol ve Gini sağ değerleri hesaplanır. Şekil 21. Formül Burada, Tsinifi soldaki bölümdeki her bir sınıf değerini, Tsinifi sağdaki bölümdeki her bir sınıf değerini, B sol sol bölümdeki tüm değer sayısını, B sağ sağ bölümdeki tüm değer sayısını gösterir.

Şekil 22. Formül Her bölümlemeden sonra Gini değeri en küçük olan seçilir Tablo 11. Örnek Veriler Tablomuzdaki verileri sonuç için sıralarsak; EĞİTİM için Tablo 12. Verilerin Sonuç için Sıralanmış Hali 1.Gini sol = 1- [(1/3) 2 + (2/3) 2 ] = 0,444 2.Gini sağ = 1- [(4/5) 2 + (1/5) 2 ] = 0,320 YAŞ için 1.Gini sol = 1- [(0/2) 2 + (2/2) 2 ] = 0 2.Gini sağ = 1- [(5/6) 2 + (1/6) 2 ] = 0,278 CİNSİYET için 1.Gini sol = 1- [(1/3) 2 + (2/3) 2 ] = 0,444 2.Gini sağ = 1- [(4/5) 2 + (1/5) 2 ] = 0,320

Gini değerleri; Şekil 23. Gini Değerleri Buna göre ilk bölünme YAŞ a göre yapılacaktır. Şekil 24. Ağacın İlk Durumu Aynı işlemler alt düğümlere de uygulandığında sonuç karar ağacı elde edilir. Şekil 25. Nihai Karar Ağacı Rastgele Orman Algoritması (Random Forest Algorithm) Rastgele orman algoritması denetimli(supervised) bir sınıflandırma algoritmasıdır. Adından da anlaşılacağı gibi, bu

algoritma ağaçları bir dizi orman oluşturur. Çevremizdeki ormanlara baktığımızda bir ormanda ne kadar çok ağaç varsa orman o kadar sağlam görünür. Rastgele orman sınıflandırıcısında da aynı şekilde, ormandaki ağaç sayısı arttıkça yüksek doğrulukta sonuçlar elde edilir. Kısaca anlatacak olursak Rastgele Orman da sınıflandırma işlemi sırasında birden fazla karar ağacı kullanılarak sınıflandırma değerinin yükseltilmesi hedeflenir. Önce rastgele orman algoritması için sözde kod a(pseudo code) bakalım ve daha sonra rastgele orman algoritmasını adım adım inceleyelim. Rastgele orman algoritması için sözde kod iki aşamaya ayrılabilir.bunlar; 1. 2. Rastgele orman yaratma sözde kodu. Yaratılan rastgele orman sınıflandırıcısından tahmin yapmak için sözde kod. İlk olarak, rastgele orman yaratma sözde koduyla başlayalım. Rastgele Orman sözde kodu: 1. 2. 3. 4. 5. 6. M özelliklerinden rastgele K özelliklerini seçin. k << m olduğunda K özellikleri arasında, D düğümünü en iyi bölme noktasını kullanarak hesaplayın. En iyi bölünmeyi kullanarak düğümü çocuk düğümlere bölün. L düğüm sayısına ulaşılana kadar 1-3 basamağı tekrarlayın. N sayıdaki ağaçları oluşturmak için 1 ila 4 arasındaki adımları N kere tekrarlayarak orman oluşturun. Rastgele orman algoritmasının başlangıcı, toplam m özelliğinden k özelliklerini rastgele seçerek başlar. Bir sonraki aşamada, en iyi bölünmüş yaklaşımı kullanarak kök

düğümü bulmak için rastgele seçilen k özelliklerini kullanıyoruz. Sonraki aşamada, çocuk düğümlerini aynı en iyi bölünmüş yaklaşımı kullanarak hesaplayacağız. Bir kök düğümle ağacı oluşturana ve hedefi yaprak düğüm olarak oluşturana kadar ilk 3 aşamayı yapacağız. Sonunda, n adet rastgele oluşturulmuş ağaçlar elde etmek için 1-4 basamaklarını tekrar ederiz. Bu rastgele oluşturulmuş ağaçlar rastgele ormanı oluşturur. Rasgele Orman tahmini sözde kodu: Eğitimli rastgele orman algoritması kullanılarak tahmin yapmak için aşağıdaki yalancı kod kullanılmaktadır. 1. 2. 3. Test özelliklerini alır ve sonuçları tahmin etmek için her rastgele oluşturulmuş karar ağacının kurallarını kullanır ve tahmin edilen sonucu (hedef) depolayın. Tahmini her hedef için oyları hesaplayın. Yüksek oylanmış tahmin hedefini rastgele orman algoritmasından nihai tahmin olarak düşünün. Tahminleri eğitilmiş rastgele orman algoritması kullanarak gerçekleştirmek için, test özelliklerini her rastgele oluşturulmuş ağaçların kuralları aracılığıyla iletmemiz gerekmektedir. Rastgele orman için 100 rastgele karar ağacı oluşturduğumuzu düşünelim. Her rastgele orman, aynı test özelliği için farklı hedef (sonuç) öngörür. Daha sonra tahmin edilen her bir hedef dikkate alınarak oylar hesaplanacaktır. 100 rastgele karar ağacı tahmininin 3 benzersiz hedef x,y,z olduğunu varsayalım, buna göre, 100 ağaçtan kaç tane ağaç öngörüsü x dir buna bakacağız. Diğer iki hedef (y, z) için olduğu gibi. Eğer x yüksek oy alıyorsa. Diyelim ki 100 rastgele karar ağacından 60 ağaç hedef x olarak tahmin ediyor olacaktır. En sonunda da son rastgele orman tahmin edilen hedef olarak x i döndürür. Bu oy verme konsepti çoğunluk oylaması(majority voting) olarak bilinir.

Rastgele orman algoritmasının avantajları şu şekildedir; Herhangi bir sınıflandırma probleminde rastgele orman algoritması kullandığımızda, aşırı uyum(overfitting) problemi asla ortaya çıkmaz. Aynı rastgele orman algoritması hem sınıflandırma hem de regresyon görevi için kullanılabilir. Rastgele orman algoritması, özellik mühendisliği(feature engineering) için kullanılabilir. -Bu, eğitim verisetindeki mevcut özelliklerin dışındaki en önemli özelliklerin belirlenmesi anlamına gelir. Rastgele orman algoritması ile ilgili daha fazla bilgi için bu bağlantıya göz atabilirsiniz. Karar Ağacının Avantajları Anlamak, yorumlamak, görselleştirmek basittir.karar ağaçları örtülü olarak değişken tarama veya özellik seçimi gerçekleştirir. Hem sayısal hem de kategorik verileri işleyebilir. Aynı zamanda çoklu çıktı problemlerini de halledebilir. Karar ağaçları, veri hazırlığı için nispeten az çaba gerektirir. Parametreler arasındaki doğrusal olmayan ilişkiler ağaç performansını etkilemez. Karar Ağacının Dezavantajları Karar ağacı öğrenenleri, veriyi genelleştirmeyen aşırı karmaşık ağaçlar oluşturabilir. Buna overfitting(aşırı uygunluk,ezber) denir.açgözlü algoritmalar, küresel olarak en uygun karar ağacını geri getireceğini garanti edemez. Bu, özelliklerin ve örneklerin rastgele değiştirilmesi ile örneklendiği birden fazla ağaç eğiterek hafifletilebilir.karar ağacı öğrenenleri, bazı sınıflara hakimse, önyargılı ağaçlar oluştururlar. Dolayısıyla, karar ağacına uydurmadan önce veri setini dengelemek önerilir.

WEKA ile Bir Örnek Bu başlık altında WEKA programının kullanımını öğrenmek amacı ile karar ağacı algoritmalarından olan C4.5 algoritmasıyla örnek bir uygulama yapacağız. Öncelikle Weka programını açıp Explorer tuşuna basıyoruz. Şekil 26. Weka Giriş Ekranı Önümüze gelen ekranda Open File a tıklayıp dosyamızı seçiyoruz(dosya arrf uzantılı olmalı). Şekil 27. Dosya Seçme I

Şekil 28. Dosya Seçme II Dosyayı seçtikten sonra Şekil 29 daki gibi bir görünüm elde ettik. Ağacımızı oluşturma işlemine devam etmek için Classify sekmesine tıklıyoruz. Şekil 29. Sekmenin Dosya Seçildikten Sonraki Görünümü Buradaki ekrandan Choose a tıklıyoruz. Şekil 30. Algoritma Seçme Ardından gelen menüden en altta trees bölümünden istediğimiz karar ağacı algoritmasını seçiyoruz. Biz bu örnek için C4.5 in ücretsiz sürümü olan J48 i seçtik. Bu algoritma seçimi sonrası az önce ZeroR yazan bölüm Şekil 32 de kırmızı ile gösterilen halini aldı. Kırmızı alanla gösterilen yere tıklıyoruz.

Şekil 31. C4.5 in WEKA daki ücretsiz versiyonu olan J48 Şekil 32. Algoritma Seçimi Sonrası ZeroR Açılan seçeneklerde örnek kümemizin Minimum Number Object(minNumObj) ini 1 yapıyoruz(minimum nesneyi belirtmek için).örnekten örneğe en doğru karar ağacını elde etmek için farklı minimum nesne değerleri gerekebilir. Şekil 33. Örneğe Özgü Düzenlemeler Bunu da tamamladıktan sonra Start tuşuna basıyoruz ve algoritmamız çalışıyor. Algoritma çalıştı fakat biz görsel bir karar ağacı istiyoruz bunun için Result list bölümünde çıkan

sonucumuza sağ tıklıyoruz ve Visualize Tree ifadesine tıklıyoruz. Şekil 34. Algoritmayı Çalıştırma Şekil 35. Hesaplamanın Tamamlanması

Şekil 36. Sağ Tıklama Menüsü Şekil 37 deki gibi Ağacımızı elde etmiş oluyoruz. Şekil 37. Karar Ağacı Özet Karar ağaçları veri madenciliği için popüler araçlardır Anlaması kolaydır. Uygulaması kolaydır. Kullanımı kolaydır. Finansal açıdan ucuzdur. Overfitting(Ezber) meydana gelebilir. Önlemek için Pruning(Budama) işlemi uygulanır.kökten bir yaprağa kadar olan her yol, yaprağa götüren tüm kararların kuralın öncüsünü tanımladığı bir kurala karşılık gelir ve bunun sonucunda yaprak düğümünde sınıflandırma yapılır. Referanslar 1.https://medium.com/towards-data-science/decision-trees-in-ma chine-learning-641b9c4e8052 2.https://machinelearningmastery.com/classification-and-regres sion-trees-for-machine-learning/

3.Tom Mitchell, Princeton, Decision Tree Learning http://www.cs.princeton.edu/courses/archive/spr07/cos424/paper s/mitchell-dectrees.pdf 4.https://www.xoriant.com/blog/product-engineering/decision-tr ees-machine-learning-algorithm.html 5.Yrd.Doç.Dr. Kadriye ERGÜN, Balıkesir Üniversitesi, Veri Madenciliği 6.Yrd.Doç.Dr.Umut ORHAN, Çukurova Üniversitesi, Makine Öğrenmesi http://bmb.cu.edu.tr/uorhan/dersnotu/ders01.pdf 7.http://bilgisayarkavramlari.sadievrenseker.com/2008/12/17/en tropi-entropy/ 8.http://bilgisayarkavramlari.sadievrenseker.com/2012/11/13/c4-5-agaci-c4-5-tree/ 9.Jerry Zhu, University of Wisconsin-Madison, Machine Learning:Decision Trees http://pages.cs.wisc.edu/~jerryzhu/cs540/handouts/dt.pdf 10.http://dataaspirant.com/2017/05/22/random-forest-algorithmmachine-learing/