Python ile Sınıflandırma Analizleri – Karar Ağaçları

Merhaba, iyi günler.

Bugün; çeşitli veri kümeleri üzerinde özel işlemler ile sayısal olmayan (kategorik) verilerin tahmini için kullanılan analiz metodu-algoritması olan Sınıflandırma (Classification) ile ilgili çeşitli bilgi ve çözümlemeler aktarmaya çalışacağım.

Genel konu özetinin bulunduğu Python Veri Analizi yazısına link üzerinden ulaşabilirsiniz.

Sınıflandırmada (Classification); bir veriyi-veri grubunu-veri kümesini (data-data group-data set) birbirinden farklı ve önceden çeşitli özellikler doğrultusunda ayrılmış-belirlenmiş sınıflardan birine atanması metodudur.

*Kısacası elimizdeki veriyi belirli özelliklere göre grupladığımız gruplara dağıtmak.

Temsili bir görsel ile;

microsoft power bi data science python mssql supervised unsupervised semi supervised reinforcemend learning classification

Genel manada sınıflandırma yöntemindeki çözüm haritamız, N etiketli grubu bir Karar Sınırı (Decision Boundary) ile ayıracak optimum düzeyde olan ve hassas alt ölçüm-hesaplamalar barındıran algoritmayı belirlemek ya da yazmak.

Sınıflandırma modeline ait metodolojiler-algoritmalar-alt teknikler; 

olarak örneklendirilebilir.

Günlük hayatta çeşitli faaliyet alanlarda çok farklı uygulamalarda sınıflandırma yöntemine başvurulmaktadır.

Karar ağaçları; Regresyon modellerine benzeyen tek bağımlı değişken ve birçok bağımsız değişken içeren bir sınıflandırma algoritmasıdır.

Karar Ağacı uygulamalarında ağırlıklı olarak veriler üzerinde uygulanan çeşitli regresyon modelleri için alternatif örüntü modeli keşfi gerçekleştirilir.

microsoft power bi data science python bussiness intelligence classification analyze decision tree

Karar ağacının araştırmayı hedeflediğimiz sınıfı için başlangıcı sağlayan düğümüne kök düğüm, ara adımlar içeren düğümlerine yaprak düğüm, ağacın bittiği son adıma ise son düğüm denir.

microsoft power bi data science python bussiness intelligence classification analyze decision tree node

İlgili veri kümesine uygulanacak hedef araştırma içeriğine göre yaprak düğüm sayısı artabilir ya da azalabilir.Araştırma üzerinde uygulanan karar ağacı modelindeki toplam düğüm sayısı ise karar ağacının derinliğini ifade etmektedir.

Karar Ağacı ile analiz ve araştırma gerçekleştirilirken her bir düğüm adımındaki değişkenler test edilir.(Çeşitli senaryolar kurgulanır ve test edilmiş olunur.)
Belirlenen veya baz alınan değişkenlerin takibi ile ana karar ağacı yeniden oluşturulur ve yeni oluşumda başlangıca göre karar ağacı derinliği değişkenlik gösterebilir.

Nedeni ise aranan örgü yapısının son düğümden önce sonuçlanması (yeni son düğüm) veya yaprak düğümlerin çeşitli dallanmalarının budanmasıdır (kırpılmasıdır).Aynı nedensel durumlar aranan örgü yapısından ziyade baz alınan parametreler içinde geçerlidir.  

En verimli modeli saptayabilmek için, çokça çeşitli örgüleri ya da parametreleri baz alıp yeni karar ağacı modelleri oluşturmaya çalışmak gerekmektedir.

microsoft power bi data science python bussiness intelligence classification analyze decision tree node group

Budama (kırpma) yöntemleri genel olarak Ön Budama ve Son Budama olarak iki sınıfta ele alınmaktadır.

Ön budama; ağacın dallandırılma aşamasında, ayırma için kullanılan istatistiki kriterler, gini indeksi veya kazanım oranı için belirli eşik değerler konularak ağacın o düğümden sonra büyümemesini esas alınır.
Son Budama‘da ise, bütün karar ağacı oluşturularak, son hali üzerinden küçültme işlemi gerçekleştirilir.

En çok tercih edilen karar ağacı algoritmaları;

Karar Ağacı Testi

İfadesel olarak dile getirdiğimiz Karar Ağacı algoritmasını uygulamalı olarak Python ve Microsoft Power BI üzerinde test etmeye çalışalım.

Python üzerinde test etmeden önce ilgili derleyici için Anaconda Navigator üzerinden Jupyter Notebook ile işlemleri ele almaya çalışacağım. Anaconda Navigator

Hızlı bir şekilde scikit-learn üzerinde bulunan açıklayıcı örnek ile karar ağacı algoritmasını ele alalım;

1-Karar Ağacı algoritmam için scikit-learn kütüphanemi yükleyerek eğitim ve değer dizilerimin tanımlamasını gerçekleştiriyorum;

>>> from sklearn import tree
>>> X = [[0, 0], [1, 1]]
>>> Y = [0, 1]
>>> clf = tree.DecisionTreeClassifier()
>>> clf = clf.fit(X, Y)

microsoft power bi data science python bussiness intelligence classification analyze decision tree example

2-Yapımı algoritmaya uygun kurduktan sonra örnek sınıfını tahmin için kullanmaya başlıyorum;

>>> clf.predict([[2., 2.]])

microsoft power bi data science python bussiness intelligence classification analyze decision tree example 2

3-Alternatif olarak aynı eğitim sınıfında olan eğitim örnekleri ile, diğer yapraklardaki değer olasılığını tahminlemeye başlıyorum;

>>> clf.predict_proba([[2., 2.]])

microsoft power bi data science python bussiness intelligence classification analyze decision tree example 3

4-Modeli oluşturduktan sonra model eğitimi için, hazır veriler içeren iris veritabanı (Genel bitki özellikleri veri bankası) üzerinden çeşitli bitki özellikleri ile oluşan genetik yapılanmayı ağaç diagramı olarak kurgulayıp-yapılandırıyorum;

>>> from sklearn.datasets import load_iris
>>> from sklearn import tree
>>> X, y = load_iris(return_X_y=True)
>>> clf = tree.DecisionTreeClassifier()
>>> clf = clf.fit(X, y)

microsoft power bi data science python bussiness intelligence classification analyze decision tree example 4

5-Model eğitimini tamamlayıp yapılandırmayı oluşturduktan sonra da karar ağacını çizdiriyoruz;

>>>  tree.plot_tree(clf) 

microsoft power bi data science python bussiness intelligence classification analyze decision tree example 5

sonuç çıktısı olarak tüm değerleri ve ağaç diagramını elde ediyoruz.

Burada ki örnek üzerinde budama işlemine yönelik herhangi bir faaliyet ya da ek işlem gerçekleştirmedik.
İlgili veritabanı üzerinden çeşitli değerleri baz alarak eğitim ya da analiz-değer verilerinden budanacak verileri-değerleri çıkartabilir ve diagram yapımızı yeniden yapılandırabiliriz.

Çıktı olarak aldığımız karar ağacı modelimizin derinliği ise 6‘dır; 1 kök, 4 yaprak, 1’de son düğümden oluşmaktadır.

Python üzerinde deneyimlediğimiz karar ağacı algoritmasını Microsoft Power BI üzerinde de test edelim.

Mevcut çözümü Python görselinde tekrarlayacağınız gibi, R üzerinde çalışan Decision Tree görselinde de içeri aldığımız verilerimiz üzerinde herhangi bir kod yazımı-düzenlemesi gerçekleştirmeden karar ağacı modellemesini uygulayabiliriz.

Decision Tree görseline; Visualizations (Görselleştirme) paneli üzerindeki Get More Visual seçeneğinde Microsoft’un lisanslı görselleri altından erişerek, raporunuza ekleyebilirsiniz.

Öğe bilgi eki;

microsoft power bi data science python bussiness intelligence classification analyze decision tree example 8
microsoft power bi data science python bussiness intelligence classification analyze decision tree example 6

Yükleme gerçekleştikten ve ilgili ayarlamalar yapıldıktan sonra mini bir test verisi ile görselimiz üzerinde test gerçekleştirebiliriz;

microsoft power bi data science python bussiness intelligence classification analyze decision tree example 7
microsoft power bi data science python bussiness intelligence classification analyze decision tree example 11
microsoft power bi data science python bussiness intelligence classification analyze decision tree example 9

İçeri atadığımız baz alınacak değer (Hedef Değer) üzerinde parametreleri çalıştırarak otomatik olarak bir ağaç diagramı oluşturuyor.

Burada budama işlemini doğrudan veri kaynağında ya da rapor üzerinde ki veri filtrelemeleri ile gerçekleştiriyoruz.

Ek olarak;

microsoft power bi data science python bussiness intelligence classification analyze decision tree example 10

Power BI üzerinde birçok istatiksel ve analize dayalı algoritmalara yönelik hazır görseller bulunmaktadır.Ek bir kod yazımı gerçekleştirmeden doğrudan görsellere ilgili parametreleri vererek çıktılarınıza kolayca ulaşabilirsiniz.

*** R üzerine küçük bir değinmede bulunmuşken R programlama dilini yeni öğrenmek isteyenler ya da ileri seviyede olan programcılar için R diline ait tavsiyeler ve pratik çalışmalar yer alan açık kaynak notlar yayınlandı.Faydalı olması dileğiyle. 

Bu bölümde genel manada Sınıflandırma metoduna ve Karar Ağaçları algoritmasına değinmeye çalıştım.

Gelecek yazımda Karar Destek Vektör Makinesi algoritmasını ele almaya çalışacağım.

İyi günler, iyi çalışmalar…

, , , , , ,

İlgili Yazılar