Karar Ağaçları (Decision Trees) – 1

Karar ağaçları, destek vektör makineleri gibi oldukça güçlü bir makine öğrenimi algoritmasıdır. Hem regresyon hem de sınıflandırma problemleri için kullanılabilirler. Ayrıca ileride değineceğimiz rastgele ormanlar (random forests) algoritmasının temel bileşenidir.

Karar ağaçlarını daha kolay anlayabilmek için bir örnek yapalım ve nasıl tahmin ettiğine bakalım.

from sklearn.datasets import load_iris
from sklearn.tree import DecisionTreeClassifier

iris = load_iris()
X = iris.data[:, 2:]
y = iris.target

tree_clf = DecisionTreeClassifier(max_depth=2)
tree_clf.fit(X, y)

Yine Iris verisetini kullandık. Karar ağacını görselleştirebilmemiz için öncelikle graf tanım dosyası (dot) olarak dışarı aktarmamız gerekiyor:

from sklearn.tree import export_graphviz

export_graphviz(
        tree_clf,
        out_file="iris_tree.dot",
        feature_names=iris.feature_names[2:],
        class_names=iris.target_names,
        filled=True)

iris_tree.dot dosyasını Graphviz yazılımı ile PDF ve PNG gibi bir formata dönüştürebiliriz. PNG dosyasına dönüştürmek için gerekli komut:

dot -Tpng iris_tree.dot -o iris_tree.png

Karar ağacımız aşağıdaki gibi görünecektir:

im_19

Şimdi karar ağacı ile nasıl tahmin yapıldığına bakalım.

Bir Iris çiçeği bulduğumuzu varsayalım ve bu karar ağacıyla bu çiçeği sınıflandıralım. Kök düğümden (root node – En üstteki düğüm) başlarız: bu düğüm, çiçeğin yaprak uzunluğunun 2.45cm den küçük olup olmadığını sormaktadır. Eğer küçükse sol tarafa, değilse sağ tarafa hareket ederiz. Eğer çiçeğimizin yaprak uzunluğu 2.45cm den küçükse sınıflandırma Iris-Setosa olmaktadır.

Bizim çiçeğimizin yaprak uzunluğu 2.45cm den büyük olsun. O halde kök düğümdeki koşul sağlanmadığından, sağ tarafa hareket ederiz. Şimdiki düğüm ise yaprak genişliğini sormaktadır. Yaprak genişliği 1.75cm den küçük ise Iris-Versicolor, değilse Iris-Virginica olarak sınıflandırma yapılmaktadır.

Bir sonraki yazımda Gini-impurity katsayısı ve Scikit-Learn’in karar ağaçları için kullandığı CART algoritmasından bahsedeceğim. Görüşmek üzere.

Kaynaklar

  1. Geron, A. (2017). Hands-On Machine Learning with Scikit-Learn and TensorFlow Concepts, Tools, and Techniques for Building Intelligent Systems. Sebastopol: OReilly UK Ltd.

 

Karar Ağaçları (Decision Trees) – 1” için bir yorum

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google fotoğrafı

Google hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s