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

Mirac Öztürk
6 min readDec 6, 2020

--

python decision trees data science ml ai bi

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;

python decision trees data science ml ai bi data group

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ı (Decision Tree) nedir?

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.

python decision trees data science ml ai bi graph hierarchy

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.

python decision trees data science ml ai bi root loop

İ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.

python decision trees data science ml ai bi sub root loop

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ı Uygulama Örneği

İ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)

python decision trees data science ml ai bi import library

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

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

python decision trees data science ml ai bi predict

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.]])

python decision trees data science ml ai bi predict data

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)

python decision trees data science ml ai bi predict fitting

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

>>> tree.plot_tree(clf)

python decision trees data science ml ai bi predict plot visual preview

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;

python decision trees data science ml ai bi predict import finally data power bi report

Görseli ekledikten sonra sisteminiz üzerinde R derleyicisi yok ise hata alacak ve yükleme için yönlendirileceksiniz.

python decision trees data science ml ai bi predict import finally data power bi report r package

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

python decision trees data science ml ai power bi visual preview data
python decision trees data science ml ai power bi visual preview data visualizations
python decision trees data science ml ai power bi visual data visualizations preview

İç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;

python decision trees data science ml ai power bi visual data visual

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.

python decision trees data science ml ai power bi visual data visualizations r book

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…

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

Mirac Öztürk
Mirac Öztürk

Written by Mirac Öztürk

Data Scientist + Mathematician / Coder — Gamer miracozturk.com

No responses yet

Write a response