Python ile Karar Ağaçları Sınıflandırma: Başlangıç Rehberi

Karar Ağaçlarına Giriş

Yapay zeka ve makine öğrenimi dünyasında, karar ağaçları kesinlikle önemli bir yer tutmaktadır. Karar ağaçları, verileri kullanarak karar verme süreçlerini temsil eden bir modeldir. Her dal, bir özellik (ödül veya etki) ile ilgili bir karar alırken, yapraklar ise son durumu veya sınıfı temsil eder. Bu model, kullanıcıların karmaşık veri setlerinden anlamlı bilgiler çıkarmasına yardımcı olur.

Python, veri bilimi ve makine öğrenimi alanında öne çıkan bir dildir ve karar ağaçları gibi algoritmaları uygulamak için güçlü kütüphaneler sunar. Bu makalede, Python kullanarak karar ağaçları ile sınıflandırma yapmanın temellerini keşfedeceğiz. Özellikle, Sci-kit Learn kütüphanesini kullanarak nasıl karar ağaçları oluşturabileceğimizi göstereceğiz.

Karar ağacını anlamak, sadece algoritmayı öğrenmekle sınırlı değildir. Aynı zamanda, doğru özelliklerin seçimi ve modelin doğru bir şekilde yapılandırılması da başarı için kritik öneme sahiptir. Yazının ilerleyen bölümlerinde bu konulara da ışık tutacağız.

Karar Ağaçları Nasıl Çalışır?

Karar ağaçları, verileri analiz ederek bir sınıflandırma modelini oluşturmanın temel bir yoludur. İlk olarak, veri setindeki en iyi bölünmeyi bulmak için belirli kriterlere dayalı olarak ‘dallar’ oluşturulur. Bu kriterler genellikle entropi veya Gini indeksi gibi ölçümlerle belirlenir. Amaç, her bölünme ile verinin karışımını azaltmak ve daha homojen alt gruplar elde etmektir.

Bir karar ağacının yapısal bileşenleri, kök düğümü, iç düğümler ve yaprak düğümlerden oluşur. Kök düğümü, ağacın başlangıç noktasıyken, alt düğümler veri setindeki bölünmeleri temsil eder. Yaprak düğümler ise nihai sınıf etiketleridir. Her seviyedeki düğümler, verilere göre daha doğru tahminler yapmaya yardımcı olur.

Karar ağaçları, verinin yapısına göre farklı derinliklere ulaşabilir. Derinleşen ağaçlar, daha fazla karar yapısı sunarken, aşırı derin ağaçlar genellikle aşırı uyum (overfitting) problemleri yaşayabilir. Bu nedenle, ağaçları eğitirken uygun derinlikte ve uygun parametrelerle sınırlı tutmak önemlidir.

Python ile Karar Ağacı Oluşturma

Artık karar ağaçlarının nasıl çalıştığını anladığımıza göre, Python’da bir karar ağacı sınıflandırıcısı oluşturma sürecine geçelim. Öncelikle, Sci-kit Learn kütüphanesini kullanarak bir karar ağacı modeli oluşturmamız gerekecek. Sci-kit Learn, makine öğrenimi için yaygın olarak kullanılan bir Python kütüphanesidir ve karar ağaçları gibi birçok algoritmayı içerisinde barındırır.

Öncelikle gerekli kütüphaneleri yükleyelim:

import pandas as pd
from sklearn.datasets import load_iris
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
from sklearn import tree

Yukarıdaki kod parçasında, Iris veri setini yükledik. Iris veri seti, çiçek türlerini sınıflandırmak için en yaygın kullanılan örnek veri setlerinden biridir. Şimdi veri setini eğitim ve test verilerine bölelim:

iris = load_iris()
X = iris.data
y = iris.target
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

Veri setimizi eğitim ve test verilerine böldükten sonra, karar ağacımızı oluşturup eğitebiliriz:

clf = DecisionTreeClassifier()
clf.fit(X_train, y_train)

Modelimizi eğittikten sonra, doğruluğunu test verileri üzerinde değerlendirelim:

accuracy = clf.score(X_test, y_test)
print(f'Modelin Doğruluğu: {accuracy * 100:.2f}%')

Bu basit adımlar, Python’da bir karar ağaç modeli oluşturmanın temelini atmaktadır. Ancak, bununla da sınırlı değil!

Modeli İyileştirme: Hiperparametre Ayarları

Karar ağaçlarının performansını artırmak için hiperparametre ayarları önemlidir. Bu ayarlar, modelin nasıl bir yapı izleyeceğine dair çeşitli kuralları belirler. Örneğin, maksimum derinlik, bölünme kriteri (Gini veya Entropi), minimum örnek sayısı gibi parametreler modelin doğruluğunu etkileyebilir.

Maksimum derinliği sınırlamak, ağaçların aşırı uyum (overfitting) riskini azaltmaya yardımcı olur. Aşağıda, bir karar ağacı sınıflandırıcısının maksimum derinlik ayarı ile nasıl oluşturulacağını görebilirsiniz:

clf = DecisionTreeClassifier(max_depth=3)
clf.fit(X_train, y_train)

Ayarlamalar yaptıktan sonra, aynı testlerimizi gerçekleştirebilir ve modelin doğruluğunu değerlendirebiliriz. Bu şekilde, modelimizi düzenli olarak hedeflediğimiz doğruluk seviyesinde tutmayı başarabiliriz.

Sonuç ve Uygulamalar

Karar ağaçları, özellikle sınıflandırma problemleri için oldukça etkili bir yöntemdir. Python ile beraber Sci-kit Learn kullanarak kolayca uygulamalara geçebiliriz. Karar ağaçlarının sağlamlıkları, basit çözümler sunmaları ve yorumu kolay olmalarıdır. Eğitim sürecinde gözlemler yaparak modelinizi geliştirmek mümkündür.

Karar ağaçlarının çeşitli uygulamalarını düşünelim. Tıp alanında hastalık teşhisi, finans alanında kredi riski değerlendirmesi, e-ticaret sektöründe kullanıcı davranış tahminleri gibi birçok alanda karar ağaçları kullanılır. Bu uygulamalar, karar ağaçlarının güçlü yanlarını ortaya koymaktadır.

Nihayetinde, E değerleri ile karar ağaçlarını daha da geliştirerek daha iyi performanslar elde etmek için araştırmalara sürekli devam etmek önemlidir. Python ile karar ağaçlarını kullanmak, veri bilimi ve makine öğrenimi konusundaki becerilerinizi geliştirmenize yardımcı olacaktır.

Scroll to Top