Python Uygulaması ile Karar Ağaçları

Şengül Gedleç ve Halil Burak Yılmaz‘ın beraber hazırladığı “Python Uygulaması ile Karar Ağaçları” konulu çalışmayı aşağıda bulabilirsiniz.

Karar ağaçlarından bahsetmeden önce “Makine Öğrenmesi” nedir merak edenler bu kısa girişi okuyabilirler. Dileyenler doğrudan Karar Ağaçları (Decision Tree) başlığına geçebilirler.

Makine öğrenmesi geçmiş tecrübelerden faydalanarak, yeni olaylara karşı sergilenecek davranışları bilgisayarlara öğretme işidir. Makine öğrenmesi matematiksel olarak ifade etmekte güçlük çektiğimiz fakat mantıksal ilişkinin var olduğuna emin olduğumuz durumlarda kullanılmaktadır. Örnek vermek gerekirse otomobil kullanma işini belirli bir mantık çerçevesinde gerçekleştiriliyor olsa da formüller ya da kural kümeleri ile bunu makinelere yaptırmak oldukça güç olacaktır. Ancak makine öğrenmesi modelleri ile bu ve benzeri işleri bilgisayarlara öğretmek mümkündür. Makine öğrenmesine başarılı bir örnek olarak IBM tarafından geliştirilen “Deep Blue” adlı satranç oynayabilen süper bilgisayar gösterilebilir. Deep Blue’nun fark yaratan başarısı bir maçta dünya satranç şampiyonunu yenmesidir. Bu olay makine öğrenmesinin başarısını ortaya koymaktadır. Bu makalede yapacağımız basit uygulama da kaggle üzerinden erişebileceğiniz 20000 oyunun verisini barındıran satranç oyunları veri seti üzerinedir.

Karar ağaçlarının veri madenciliği ve makine öğrenmesi ile ilişkisi aşağıdaki görselde gösterilmektedir. Makine Öğrenmesi gözetimli (supervised) öğrenme yöntemleri altında yer alan hem sınıflandırma (classification) hem de regresyon (regression) modelleri içerisinde kullanılabilmektedir. Sınıflandırma ve regresyon nedir, farkları nelerdir diye merak edenler devam eden başlıklarda cevapları bulabilir.

Şekil 1: Veri Madenciliğinde Karar Ağaçları

 

Sınıflandırma Nedir?

Tahmin edici veri madenciliği modelleri ile geçmişte yaşanmış ve gelecekte de yaşanması muhtemel durum ve olguların sonuçlarına ulaşılmaya çalışılmaktadır. Tahmin edici veri madenciliği modelleri sınıflandırma ve regresyon olmak üzere ikiye ayrılmaktadır.

Kategorik verilerin tahmininde kullanılan Sınıflandırma, her bir birimin niteliğinin önceden belirlenmiş sınıflardan hangisine ait olduğunu keşfetmeyi hedeflemektedir. Yani, verileri sahip oldukları ortak niteliklere göre ayırır. Öncelikle, veri seti üzerinde bu tekniği uygulayabilmek için uygun bir model geliştirilmelidir. Modeli kurabilmek için, sonuçları önceden kaydedilen durumlar ve bu durumlarda ilgili etkenlerin aldığı değerler gerekmektedir.

Sınıflandırma modeli alt teknikleri; Karar Ağaçları, Bellek Temelli (Memory-Based – MBR), Karar Destek Vektör Makinesi (Support Vector Machine – SVM), Yapay Sinir Ağları (Artificial Neural Networks – YSA), Genetik Algoritmalar, Bulanık Kümeler Yaklaşımı, Lojistik Regresyon (Logistic Regression – LR) ve Bayes teoremine dayanan Bayes sınıflandırması (Bayesian Classification) şeklindedir.

Regresyon Nedir?

Regresyon, iki ya da daha çok değişken arasındaki ilişkinin fonksiyonel halini veren bir tahmin edici veri madenciliği tekniğidir. Yani, değişkenler arasındaki ilişkinin matematiksel bir ifadesidir.

Sürekli değerleri tahmin etmek için başvurulan regresyon modellerinde, girdiler ile çıktılar arası bağ kurabilecek bir fonksiyon oluşturup, tahmin başarısı eniyilemeye çalışılmaktadır. Değişkenler arası ilişkiyi doğrusal varsayarak, bir bağımsız değişkene sahip modellere basit doğrusal regresyon modeli, birden fazla bağımsız değişkene sahip modellere çoklu doğrusal regresyon modeli olarak adlandırılır.

Sınıflandırma ve Regresyon Modellerinin Karşılaştırılması

Sınıflandırma ve regresyon modelleri ortak amaçlar için kullanılmakla beraber her iki modelde de elde edilen fonksiyonlarda açıklanan değişkenin nitel veya nicel olması yöntemler arası farka sebep olmaktadır. Bir sınıflandırma modeli bir hastalık türü için başvurulan ilaçların yan etkilerini gruplandırmak amacıyla oluşturulurken; bir regresyon modeli, bina yaşı, bulunduğu kent bilgisi ve oda sayısı gibi bilgiler ile evlerin kira fiyatını tahmin etmek için oluşturulabilir. Ek olarak, bu iki modelin bir arada kullanıldığı analizlerde yapılmaktadır. Çok terimli lojistik regresyon analizinde nitel değerler tahmin edilerek, bu iki model birbirine yaklaşmakta ve beraber kullanılabilmektedir.

Karar Ağaçları Nedir?

Karar ağaçları, geçmişte yaşanmış ve sınıfı belirlenmiş verilerden hareketle hangi sınıfa ait olduğu belli olmayan verilerin sınıflarının belirlenmesini sağlayan bir tekniktir. Karar ağaçları, veri madenciliğinde tahminleyici ve tanımlayıcı niteliklere sahip olması, uygulamasının ve değerlendirilmesinin kolay oluşu, güvenilirlik düzeylerinin yüksek olması ve bilgisayar sistemlerindeki depolama ünitelerinde kolay entegre edilebilmeleri sebebiyle sıklıkla tercih edilmektedir. Karar ağaçları, doğrusal olmayan ilişkilerin, karma veri türlerinin ve aykırı değerlerin olduğu veri setlerinde sınıflandırma modelinin çıkarılmasına imkân verir. Karar ağaçları karar teorisi, sınıflama, tahmin ve kümeleme hallerinde kullanılmaktadır. Hedef değişkenin sürekli olması durumunda karar ağaçları regresyon ağaçları olarak, kategorik ise sınıflama ağaçları olarak adlandırılmaktadır. Bu farklı duruma karşın karar ağaçlarının kurulma biçimleri benzerlik göstermektedir.

Karar Ağaçları Nasıl Oluşturulur?

İstatistiksel bir yöntem olarak karar ağaçları yönteminin ilk aşaması bir ağaç yapısı oluşturmak ve veri setindeki verileri bu ağaca işlemektir. Karar ağaçlarının yapısı kök düğüm, düğüm ve dallardan oluşmaktadır. Kurallar oluşturulurken sorular sorulmakta ve cevaplara göre hareket edilmektedir. Cevaplar bir araya getirilerek, yeni kurallar oluşturulmaktadır. Sorunun sorulacağı ilk değişkene karar verildikten sonra ağaç yapısının ilk aşaması olan kök düğüm oluşturulmaktadır. Kök düğüm bağımlı değişkeni temsil etmektedir. Kök düğüm ile başlayan ağaç yapısında aşağı doğru gidildikçe veri kümeleri küçük parçalara ayrılarak dallar ve yeni düğümler oluşturulmaktadır. Her bir düğüm bir soruyu temsil etmekte ve soruya verilecek cevap sayısı kadar dala ayrılmaktadır. Dalların her birinde ‘eğer-ise’ kuralları oluşmakta ve seçilen karara göre bir sonraki düğüme geçiş yapılır. Yeni bir soru oluşana kadar ağaç yapısı bu şekilde işlenmektedir. Sonunda bir sınıfı temsil eden son düğüme ulaşılmaktadır.

Karar ağacı oluşumunu basit bir örnek üzerinden anlatmak için Şekil 2’de gösterilen veriyi inceleyebilirsiniz. Veri setinde değişken olarak müşterilerin cinsiyet, çevrim içi geçirilen süreleri ve satın aldıkları ürün bulunmaktadır. Bu örnekte, cinsiyet ve çevrim içi geçirilen süreye dayanılarak satın alınabilecek ürünü tahmin edebilen bir karar ağacı oluşturulacaktır.

Şekil 2: Örnek Veri Seti

 

Veriye sorulacak ilk soru yani oluşturulacak kök düğümü bulmak gerekiyor. Önce kök düğüm olarak cinsiyeti değişkeni seçin ve satın alınan ürün ile ilişkisini gözlemleyin.

Şekil 3: Cinsiyetin Kök Düğüm Olarak Seçimi

Şekil 3 incelendiğinde cinsiyetin satın alınan ürünü ayrıştırmada önemli bir etkisi olmadığı görülmemektedir. Bilgisayarlar kadın ve erkek müşteriler tarafından satın alınabilmektedir. Kök düğüm olarak çevrim içi geçirilen süre 20 saatin üzerinde ve altında olarak gruplandırıldığında ise Şekil 4’teki ayrıştırma ortaya çıkmaktadır.

Şekil 4: Çevrim İçi Geçirilen Sürenin Kök Düğüm Olarak Seçimi

Görüleceği üzere; çevrim içi geçirilen süre 20 saatin altında ise müşteriler bilgisayar alımına yönelmekte ve 20 saatin üzerinde çevrim içi olanların ise cinsiyete göre tablete ya da telefona yöneldiği görülmektedir. Kök düğüm belirlendiğine göre örnek karar ağacı Şekil 5’teki gibi çizebilir.

Şekil 5: Veri Setimize Göre Oluşan Karar Ağacı

Veri madenciliğinde ağaç yapısının oluşturulması için algoritmalar kullanılmaktadır. Burada uygulanan karar ağaçları yöntemi ile verilerin sınıflandırılması iki adımdan oluşmaktadır. Bu aşamaların ilki öğrenme ve diğeri sınıflama şeklindedir. İlk aşamadan önce eğitim verisi, modeli ortaya çıkarmak amacıyla sınıflandırma yöntemiyle incelenmektedir. Öğrenilen bu model karar ağacı olarak belirtilmektedir. Ağaç oluşturma sürecinde ağaç yapısının uygun bir şekilde oluşturulduğu ispat edildiğinde dallanma işlemi son bulmaktadır. Sonlandırma işlemi ağacın duyarlılığını göstermektedir. Sonlanma işlemi gecikmiş bir karar ağacında dallanma sayısı artar ve istenmeyen sonuçlar gelişmektedir. Kritik ilişkiler ve sınıflar gözlenememektedir. Sonlanma işlemi erken yapılmış bir karar ağacında tam öğrenmenin gerçekleşmemiş olma olasılığı gündeme gelmektedir. Karar ağacı oluşturma sürecinde veya süreç tamamlandıktan sonra karar sonuçlarını etkilemeyen ve sınıflamaya yararı olmayan dalların ağaçtan çıkarılması yani budanması gerekmektedir.

Sınıflama aşamasında test verisi, karar ağacının doğru olup olmadığını sorgulamak amacıyla kullanılmaktadır. Test verisine uygulanan bir modelin doğruluğu, yaptığı doğru sınıflamanın test verisindeki tüm sınıflara oranıdır. Her test örneğinde bilinen sınıf, model tarafından tahmin edilen sınıf ile karşılaştırılır. Eğer modelin doğruluk oranı kabul edilebilir bir seviyedeyse, kurallar yeni verilerin sınıflandırılması amacıyla kullanılmaktadır.

Karar Ağaçları Avantajları

Karar ağaçları yöntemi diğer istatistiksel çözümlere göre veriden türetilen bir değerin bir kişinin yorumlayabilmesi daha kolaydır. Elde edilen sonuçların anlamlılığının denetlenmesi için alanında uzman kişilere danışılabilir. Çalışma sonrasında farklı bir yöntem uygulanacak olsa bile bir pivot çalışma olarak karar ağaçları, önemli değişkenler ve takriben geçerli olabilecek kurallar hakkında araştırmacıya bilgi verecektir. Genellikle karar ağaçlarına genellikle belirlenen bir grubun olası üyelerinin belirlenmesinde, çeşitli nitelikleri evet/hayır gibi kategorilere ayırmada, geleceğe yönelik tahminler sağlayacak kuralların çıkarılmasında, bazı alt kategorilere özgü olan bağıntıların tanımlanmasında, parametrik modeller için yararlı olacak veri seti ve değişken seçiminde ve kategorilerin birleştirilmesi ve sürekli değişkenlerin kesikli hale getirilmesi konularında başvurulmaktadır.

Karar ağaçları büyük veri setleri ve karma veri setlerinde kolaylıkla uygulanmaktadır. Sınıflandırma amacı taşıyan karar ağaçları uygulamasında aşırı bir hesaplama yapılmamaktadır. Ağaç modelleri çıkarımsal modellerin tersine araştırmacı bir yapıya sahiptir. Hiyerarşik ayrışması var olan özelliklerinin önem sırasını ve ilişki yönünü ortaya koymaktadır. Parametrik olmayan model olma özelliğinden dolayı varsayımlarında çok fazla kısıt bulunmamaktadır.

Sınıflama ve tahmin için hangi değişkenlerin daha önemli olduklarını açık biçimde göstermektedirler. Bağımlı ve bağımsız değişkenler için kayıp veya eksik değerlerden etkilenmemektedir. Ağaç şeklindeki model yapısı nedeniyle bağımlı ve bağımsız değişkenler arası ilişki görsel özelliğe sahiptir ve sonuçlar kolaylıkla yorumlanabilmektedir.

Karar Ağaçları Dezavantajları

Ağaç oluşturma ve ağaç budama karmaşıklığı çok olabilmektedir. Optimum ağaç yapısı oluşturulmaya çalışılırken birden çok zor yapıda ve büyük ağaçlar oluşabilmektedir. Ağaç eğer bir tek veri kaydı kalana kadar büyütülürse, bu durum da birçok soru ve dal oluşturulmuş olmaktadır. Ancak karar ağacını bu denli büyütmek karmaşık ve büyük ağaçların oluşmasına neden olabilmektedir.

Az girdiye sahip veri seti ile oluşturulan karar ağacı gerekli bilgiyi yansıtmamaktadır.

Bazı karar ağacı algoritmaları sadece nitel veriler ile çalıştığı için sürekli değişkenlerin sınıflandırılması başarısız gerçekleşmektedir.

Yer ve zaman karmaşası değişken sayısına, öğrenme kümesi örnekleri sayısına ve oluşan ağacın yapısına bağlı olmaktadır. Zamana olan gereksinim ve ağaç karmaşıklıkları öğrenme kümesinin değişken adedine ve hacmine bağlı olarak değişlik göstermektedir. Sınıf sayısı fazla ve öğrenme kümesi örnekleri sayısı az olduğu durumlarda model oluşturma fazla başarılı olamamaktadır.

Karar Ağacı Parametreleri Nelerdir?

Karar ağacında dallanmaya hangi değişkenden başlanacağı önemli bir karardır. Çünkü, mümkün tüm ağaç yapılarını oluşturup, en uygunu ile sürece başlamak mümkün değildir. Bu sebeple algoritmalar ilk aşamada bazı değerler hesaplamakta ve sonuçlara göre ağaç oluşturma sürecine başlamaktadır. Bu parametreler entropi, kazanç ölçütü ve kazanç oranıdır. Bu parametreler hakkında detaylı bilgiye link ile erişebilir.

Karar Ağaçlarında Algoritma Seçimi

Algoritma, mevcut bir problemi çözümlemek ya da belli bir amaç doğrultusunda belli bir düzende mantıksal adımlar içeren bir çözüm yoludur. Yani, bir problemi çözmek için uygulanacak adımların tamamı algoritmayı oluşturmaktadır. Veri madenciliği çalışmalarında algoritmaların temel kullanım amacı milyonlarca veri yığını arasından anlamlı örüntülere ulaşmayı sağlayacak kuralları oluşturmasıdır. Algoritma seçimi başta uygulanacak modelin ve veri setinin özelliklerine bağlıdır. Algoritmaların seçimi model başarısını önemli ölçüde etkilemektedir. Bazı algoritmalar yalnızca nicel veriler üzerinde bazıları ise yalnızca nitel veriler üzerinde çalışmaktadır. Bazıları ise 0 ve l değerlerinden oluşan veri setleri üzerinde çalışmaktadır. Bir yapay sinir ağı çalışmasında nitel değişkenin var-yok şeklinde değerlendirilmesi ya da bir karar ağaçları çalışmasında nicel bir değişkenin kategorilere ayrılması modelin performansını arttırmaktadır. Bu örnek durumlardan hareketle, algoritmaların yöntemlere göre avantajları ve dezavantajları mevcuttur.

Karar ağaçları algoritmaları; AID (Automatic Interaction Detector Algorithm), CHAID (Chi-Squared Automatic Interaction Detector), CART (Classification and Regression Trees), ID3, C4.5, C5.0, SLIQ (Supervised Learning in Quest), SPRINT (Scalable Parallelizable Induction of Decision Trees), QUEST (Quick, Unbiased, Efficient Statistical Tree), MARS (Multivariate Adaptive Regression Splines) ve Exhaustive CHAID şeklindedir. Karar ağaçları algoritmaları kök, düğüm ve dallanma kriterlerinin seçiminde izlenen yol açısından birbirinden ayrılmaktadır. Karar ağaçlarında seçilen algoritmaya bağlı olarak ağaç şeklinin değişmesi farklı sınıflandırma sonuçlarını vermektedir. Bu algoritmalar hakkında detaylı bilgiye link ile erişilebilir.

Python ile Karar Ağaçları Uygulaması

Python uygulamasında ilk başta da belirtildiği gibi satranç turnuvalarından toplanan verileri barındıran veri setini kullanarak oyunun sonucu karar ağaçları modeli kullanılarak tahmin edilmeye çalışılmaktadır. Öncelikle her uygulamada yapıldığı gibi ilgili kütüphanelerin çağrılması gerekmektedir. Bu uygulamada modelin çağrılacağı kütüphane olarak oldukça kapsamlı Sklearn” kullanılacak. Hemen hemen tüm makine öğrenmesi modellerini bulabileceğiniz kütüphane hakkında detaylı bilgi almak için link‘e tıklayabilirsiniz.

 

Uygulamadaki bir sonraki işlem https://www.kaggle.com/datasnaek/chess adresinden indirebileceğiniz veri setini pandas dataframe’i olarak yüklemektir.

 

Veri hakkında ilk fikri edinmek için pandas dataframe’inin sağladığı columns fonksiyonu ile kolonlar görüntülenir. Burada karar ağaçları anlatılmak istenildiğinden detaya çok girilmeyecektir. Ancak, normal şartlarda veri sağlayıcı tarafından tüm kolonlar hakkında detaylı bilgi verilmesi modelin doğru şekilde eğitilebilmesi açısından kritik öneme sahiptir.

 

Değişken olarak kullanmak istenilen kolonlar features dataframe’ine, tahmin edilmek istenen kolon ise labels dataframe’i olarak tanımlanır. Bir çok kütüphane gibi Sklearn kütüphanesi de model eğitimi sırasında değişkenleri ve burada label olarak adlandırılan etiketi ayrı dataframe’ler olarak kabul etmektedir. Genellikle birleşik halde gelen değişken ve etiketlerin aşağıdaki yöntem ile ya da benzeri yöntemler aracılığıyla ayrıştırılması gerekmektedir.

 

Modelin eğitimi sırasında hangi değişkenlerin kullanılması gerektiği ise ayrı bir makale konusu olabilecek düzeyde uzun olmakla beraber özetle ilgili değişken ile etiket arasındaki ilişkinin kuvvetine göre olduğu söylenebilir. Basit bir örnek üzerinden uygulama yaparak anlaşılmasını istediğimiz için değişken seçimi hali hazırda yapılmış olarak uygulamaya devam edilecektir.

Son durumda features ve labels dataframe’lerinin ilk 5 satırı heads() fonksiyonu ile görüntülenir. head() fonksiyonu, veri hakkında fikir edinmek için faydalı pandas komutlarından biridir.

Görüleceği gibi, veri seti değişken ve etiket olarak ayrıştırılırken sıralamanın aynı kalması kritik öneme sahiptir. Eğer değişken setinin sıralamasında bir değişiklik yapmak durumunda kalınırsa, aynı değişikliğin etiket setinde de yapılması gerekmektedir.

 

Ham veri seti model eğitiminde kullanılmadan önce çoğu zaman bir takım ön işlemlerden geçirilmesi gerekmektedir. Burada ön işlem olarak metin halde bulunan ‘rated’ ve ‘victory_status’ kolonu altındaki verilerin numerik değerlere çevrilmesi gerekmektedir. Sınıf belirten bu şekildeki metinsel verileri numerik değerlere çevirirken one-hot kodlaması olarak adlandırılan yöntem kullanılmaktadır.

pandas kütüphanesi bu kodlama işlemini aşağıdaki tek satırlık kodla yapılmasını sağlamaktadır.

 

one-hot kodlama sonrasında veri seti aşağıdaki şekle dönüşmektedir. victory_status değişkeni üzerinden açıklamak gerekirse, victory_status kolonu yok olup, yerine ilgili kolonda bulunan her bir sınıf için victory_status_ ön eki ile birer kolon yaratılır. İlişkili kolonlara 1, diğerlerine ise 0 yazılarak one-hot kodlama işlemi tamamlanır ve metin halinde bulunan veri numerik hale dönüştürülmüş olur.

 

Bu örnekte çok gerekli görülmese de her hangi bir makine öğrenmesi yönteminde bir değişkenin diğerini bastırmaması için numerik değer belirten tüm değişkenler normalize edilerek 0 ile 1 arasına haritalanmaktadır. Burada öncelikle bir normalize fonksiyonu tanımlanıp, bu fonksiyon numerik halde bulunan turns değişkenine uygulanacak. Aşağıda görüleceği üzere, bu işlemin ardından tüm değişkenler model eğitimine hazırlanmış olmaktadır.

 

Model eğitimine Sklearn kütüphanesi ile başlamadan önce veri setinin eğitim ve test seti olarak ikiye ayrılması gerekmektedir. Böylelikle, eğitilen modelin başarısı ortaya konulabilecektir. X_train ve y_train‘i model eğitiminde X_test ve y_test ise modelin başarısını ölçerken kullanılacaktır. Bu işlem için Sklearn kütüphanesi altında bulunan model_selection.train_test_split fonksiyonu aşağıdaki şekilde kullanılacak. Veri setinin ne kadarının test seti için ayrılacağı test_size parametresi sayesinde belirlenebilir. Aşağıda görüleceği üzere veri setinin %20’si test setine atanmıştır.

 

Eğitim ve test setleri hazırlandığına göre, artık karar ağacı modelinin eğitimine başlanabilir. Bunun için öncelikle bir sınıflandırıcı (classifier) nesne tanımlaması yapılmaktadır. Daha sonra fit fonksiyonuna değişken ve etiket setleri atanarak model varsayılan parametre değerleri ile eğitilir. Daha iyi sonuç almak üzere varsayılan değerleri değiştirmek için link‘e tıklayarak parametreler hakkında bilgi alabilirsiniz.

 

Bu basit adımla model eğitimi tamamlanmış ve verilecek yeni değişkenler ile tahmin yapmaya hazır hale getirilmiştir. Dolayısı ile test için ayrılan değişken ve etiketleri kullanarak modelin başarısı ölçülebilir hale gelmiştir.

Model başarısının belirlenmesi için öncelikle test seti değişkeni olan X_test ile modele tahmin yaptırılır ve X_test dataframe’inin her bir değeri için modelin bir tahminde bulunması ve bu sonuçların yeni bir değişkene kaydedilmesi sağlanır. Daha sonra yapılan tahminlerin başarısını ölçmek için metrics.accuracy_score komutu aracılığıyla y_test(gerçek değerler) ve y_pred(tahmin edilen değerler) kıyaslanır.

 

Yukarıda görüleceği üzere model başarısı %89.8 olarak gerçekleşmiştir. Oluşan ağaç yapısını çizdirmek mümkündür. Ancak çizim yaptırmadan önce max_depth adlı parametreye değinmek gerekli. max_depth parametresi oluşacak ağacın art arda kaç defa dallanabileceğini ifade eden fonksiyon değişkenidir. Bu değişkenin modelin eğitim süresine, başarı oranına ve tahminleme süresine doğrudan etki ettiğini bilmekte elbette fayda var. Yukarıda tanımlanan modelde max_depth parametresine bir değer verilmediği için model tüm düğüm sonuçları tek bir çeşit sınıfı belirtene dek sürmektedir. Bu durumda da oldukça fazla sayıda düğümden oluşan karar ağacı çizilmeye çalışıldığında anlamlı sonuç almak aşağıda görüleceği üzere mümkün olmamaktadır.

 

Örnek olabilmesi için sınıflandırıcı (classifier) tanımlama adımında parantez içerisine max_depth = 2 yazarak süreç tekrar tamamlanıp yeniden ağaç çizimi yapılırsa, aşağıdaki görüntü elde edilecektir. Elbette bu şekilde oluşan modelin başarı oranının oldukça düşeceği unutulmamalıdır.

Bu uygulamada başvurulan komutlar farklı veri setleri üzerinde çalıştırılarak karar ağaçları uygulaması gerçekleştirilebilir.

 

KAYNAKÇA

Akman, M. (2010). Veri Madenciliğine Genel Bakış ve Random Forests Yönteminin İncelenmesi: Sağlık Alanında Bir Uygulama. Yayınlanmamış Doktora Tezi. Ankara; Ankara Üniversitesi, SAE.

Akpınar, H. (2000, Nisan). Veri Tabanlarında Bilgi Kesfi ve Veri Madenciliği. İ.Ü. İşletme Fakültesi Dergisi, 29(1), 1-22.

Albayrak, A. S., & Yılmaz, Ş. K. (2009). Veri Madenciliği Karar Ağacı Algoritmaları ve İMKB Verileri Üzerine Bir Uygulama. Süleyman Demirel Üniversitesi İktisadi ve İdari Bilimler Fakültesi, 14(1), 31-52.

Alpaydın, E. (2000). Zeki Veri Madenciliği. Bilişim 2000 Eğitim Semineri.

Altunkaya, H. İ. (2013). Ülkelerin Uzun Dönem Kredi Notlarının Derecelendirilmesinde Önemli Değişkenlerin Veri Madenciliği Teknikleri Kullanılarak Belirlenmesi. Yayınlanmamış Yüksek Lisans Tezi. Ankara: Hacettepe Üniversitesi, FBE. Anadolu Üniversitesi. (2017). AKEDEMA: http://avuo.anadolu.edu.tr

Atılgan, E. (2011). Karayollarında Meydana Gelen Trafik Kazalarının Karar Ağaçları ve Birliktelik Analizi ile İncelenmesi. Yayınlanmamış Yüksek Lisans Tezi. Hacettepe Üniversitesi, FBE.

Argüden, Y., & Erşahin, B. (2008). VERİ MADENCİLİĞİ Veriden Bilgiye, Masraftan Değere. İstanbul: ARGE Danışmanlık A.Ş.

Breiman, L., Friedman, J., Olshen, R., & Stone, C. J. (1987). Classification and Regression Trees.

Çalış, A., Kayapınar, S., & Çetinyokuş, T. (2014). Veri Madenciliğinde Karar Ağacı Algoritmaları ile Bilgisayar ve İnternet Güvenliği Üzerine Bir Uygulama. Endüstri Mühendisliği Dergisi, 25(3-4), 2-19.

Demirel, Ş., Karar Ağacı Algoritmaları ve Çocuk İşçiliği Üzerine Bir Uygulama. Yüksek Lisans Tezi. Marmara Üniversitesi.

Diler, S. (2016). Veri Madenciliği Süreçleri ve Karar Ağaçları Algoritmaları ile Bir Uygulama. Yayınlanmamış Yüksek Lisans Tezi. Van: Yüzüncü Yıl Üniversitesi, FBE.

Dolgun, M. Ö. (2014). Veri Madenciliği Sınıflama Yöntemlerinin Başarılarının; Bağımlı Değişken Prevelansı, Örneklem Büyüklüğü ve Bağımsız Değişkenler Arası İlişki Yapısına Göre Karşılaştırılması. Yayınlanmamış Doktora Tezi. Ankara: Hacettepe Üniversitesi, SAE.

Friedman, J. H. (1991). Multivariate Adaptive Regression Splines. The Annals of Statistics, 19(1).

Gedleç, Ş., Çok Boyutlu Birliktelil Kuralları Analizi ve İşletme Uygulaması. Yüksek Lisans Tezi. Marmara Üniversitesi.

Gökay Emel, G., & Taşkın, Ç. (2005). Pazarlama Stratejilerinin Oluşturulmasında Bir Karar Destek Aracı: Birliktelik Kuralları Madenciliği. Dokuz Eylül Üniversitesi Sosyal Bilimler Enstitüsü Dergisi, 7(3), 30-59.

Gülpınar, V. (2008). Avrupa Birliği Ülkeleri ile Türkiye’nin Ekonomik Göstergelerinin Karar Ağacı Yöntemi ile Karşılaştırılması. Yayınlanmamış Yüksek Lisans Tezi. İstanbul, Marmara Üniversitesi, SBE.

Güner, Z. B. (2015). Veri Madenciliğinde Cart ve Lojistik Regresyon Analizinin Yeri: İlaç Provizyon Sistemi Verileri Üzerinde Örnek Bir Uygulama. Sosyal Güvence (6), 53-99. http://dergipark.gov.tr/sosyalguvence/issue/16499/172290

Haciefendioğlu, Ş. (2012, Ağustos). Makine Öğrenmesi Yöntemleri ile Glokol Hastalığının Teşhisi. Yayınlanmamış Yüksek Lisans Tezi. Konya: Selçuk Üniversitesi, FBE.

Kavzaoğlu, T., Şahin, E. K., & Çölkesen, İ. (2012). Heyelan Duyarlılığının İncelenmesinde Regresyon Ağaçlarının Kullanımı: Trabzon Örneği. Harita Dergisi, 147(3), 21-33.

Kayri, M., & Boysan, M. (2007). Araştırmalarda Chaid Analizinin Kullanımı ve Baş Etme Stratejileri ile İlgili Bir Uygulama. Ankara Üniversitesi Eğitim Bilimleri Fakültesi Dergisi, 40(2), 133-149.

Kiremitçi, B. (2005). Veri Ambarlarında Veri Madenciliği ve Ulaştırma-Lojistik Sektöründe Bir Uygulama. Yayınlanmamış Yüksek Lisans Tezi. İstanbul: İstanbul Üniversitesi, SBE.

Koyuncugil, A. S., & Özgülbaş, N. (2008). İMKB’de İşlem Gören KOBİ’lerin Güçlü ve Zayıf Yönleri: CHAID Karar Ağaçları Uygulaması. Dokuz Eylül Üniversitesi İktisadi ve İdari Bilimler Fakültesi Dergisi, 23(1), 1-21.

Köktürk, F. (2012). K-En Yakın Komşuluk, Yapay Sinir Ağları ve Karar Ağaçları Yöntemlerinden Sınıflandırma Başarılarının Karşılaştırılması. Yayınlanmamış Doktora Tezi. Zonguldak: Bülent Ecevit Üniversitesi, Sağlık Bilimleri Enstitüsü.

Köse, Y. (2015). Değerli Müşterilerde Ürün Kategorileri Arasındaki Satış İlişkilerinin Veri Madenciliği Yöntemlerinden Birliktelik Kuralları ve Kümeleme Analizi ile Belirlenmesi ve Ulusal Bir Parekendecide Örnek Uygulama. Yayınlanmamış Yüksek Lisans Tezi. Konya: Selçuk Üniversitesi, SBE.

Kurt, Ü., Tokatlı, F., & Türe, M. (2009). Using Kaplan-Meier Analysis Together With Decision Tree Methods (C&RT, CHAID, QUEST, C4.5 and ID3) in Determining Recurrence- Free Survival of Breast Cancer Patients. Expert Systems with Applications, 36, 2017-2026.

Kuzey, C. (2012). Veri Madenciliğinde Destek Vektör Makineleri ve Karar Ağaçları Yöntemlerini Kullanarak Bilgi Çalışanlarının Kurum Performansı Üzerine Etkisinin Ölçülmesi ve Bir Uygulama. Yayınlanmamış Doktora Tezi. İstanbul: İstanbul Üniversitesi, SBE.

Larose, D. T. (2005). Discovering Knowledge in Data: An Introduction to Data Mining. New Jersey: John Wiley & Sons, Inc.

Oğuzlar, A. (2004, Eylül). CART Analizi ile Hanehalkı İşgücü anketi Sonuçlarının Özetlenmesi. Atatürk Üniversitesi İİBF Dergisi, 18(3-4), 79-90.

Özekes, S. (2003). Veri Madenciliği Modelleri ve Uygulama Alanları. İstanbul Ticaret Üniversitesi Dergisi, 65-82.

Özkan, Y. (2013). Veri Madenciliği Yöntemleri. 2. Basım, Papatya Yayıncılık Eğitim.

Pehlivan, G. (2006). CHAID Analizi ve Bir Uygulama. Yayınlanmamış Yüksek Lisans Tezi. İstanbul: Yıldız Teknik Üniversitesi, FBE.

Quinlan, J. R. (1993). C4.5: Programs for Machine Learning. Morgan Kaufmann Publishers. Saitoğlu, Y. S. (2015). Sınıflama ve Regresyon Ağaçları. Yayınlanmamış Doktora Tezi. İstanbul: Marmara Üniversitesi, SBE.

Silahtaroğlu, G. (2013). Veri Madenciliği Kavram ve Algoritmaları. Papatya Yayıncılık Eğtim.

Tapkan, P., Özbakır, L., & Baykasoğlu, A. (30 Eylül-01/02 Ekim 2011). Weka ile Veri Madenciliği Süreci ve Örnek Uygulama. Endüstri Mühendisliği Yazılımları ve Uygulamaları Kongresi, (s. 247-262). İzmir: MMO.

Temel, G. O., Ankaralı, H., & Yazıcı, A. C. (2010). Regresyon Modellerine Alternatif Bir Yaklaşım: MARS. Türkiye Klinikleri Journal of Biostatistics, 2(2), 58-66.

Yener, F. (2014, Aralık). Veri Madenciliği Optimizasyon Teknikleri Kullanılarak Bir Depo Tasarımı: Perakende Sektöründe Uygulanması. Yayınlanmamış Yüksek Lisans Tezi. Sakarya Üniversitesi, FBE.

Yılmaz, H. (2014, Ocak). Random Forests Yönteminde Kayıp Veri Probleminin İncelenmesi ve Sağlık Alanında Bir Uygulama. Yayınlamamış Yüksek Lisans Tezi. Eskişehir Osmangazi Üniversitesi, SBÜ.

Yücel, Y. B. (2017). Yaşam Memnuniyetini Etkileyen Faktörlerin Sınıflama ve Regresyon Ağacı ile Belirlenmesi. Yayınlanmamış Yüksek Lisans Tezi. İstanbul, İstanbul Ticaret Üniversitesi, FBE.

0
0

2 thoughts on

Python Uygulaması ile Karar Ağaçları

  • Tuncay Soylu

    Kodda bir hata mı var acaba?

    Üstte (from sklearn.tree import DecisionTreeClassifier) burada plot_tree eksik sanırım

    Altta decision_tree = tree.plot_tree(classifier)
    NameError: name ‘tree’ is not defined

    hatası veriyor.

    0
    • Halil Burak Yılmaz

      Merhaba. Haklısınız. Yayınlarken bu kısmı eklemeyi atlamışız.

      İki şekilde çözülebilir sorun;

      1. kütüphaneleri import ettiğimiz ilk kısma “from sklearn import tree” satırı eklenerek
      2. kütüphaneleri import ettiğimiz ilk satırdaki “from sklearn.tree import DecisionTreeClassifier” kısmını “from sklearn.tree import DecisionTreeClassifier, plot_tree” şeklinde değiştirip, bahsettiğiniz hata veren satırı da “decision_tree = plot_tree(classifier)” şeklinde değiştirerek.

      Katkınız için teşekkür ederiz.

      0

Bir cevap yazın

Patreon

üzerinden bize destek olabilirsiniz!

.

Birlikten kuvvet doğar! Sizde #patreon üzerinden bizim yanımızda olabilirsiniz. Yaptığımız gönüllü çalışmaları arttırmak için bize destek olun.

Ücretli ve Ücretsiz Eğitimler

Türkiye'nin en büyük veri bilimi topluluğu ile kariyerinizi inşa edin.

Data Science Earth

Data Science Earth ekibi, üst düzey Veri Bilim çözümleri üretmek amacı ile toplanmış akademisyenler ve uzmanlardan oluşmaktadır. Öncelikli olarak veri bilincini geliştirmeyi ve küreselleşen rekabet ortamında verinin gücünün doğru kullanılmasını sağlamayı amaçlamaktadır.

Sponsor

QuestionPro 35 farklı soru seçim özelliği ile anket çalışmalarımıza güç katmaktadır.