Ana içeriğe atla

Python - CART (Regresyon)

Karar ağacı algoritması, veri madenciliği sınıflandırma algoritmalarından biridir. Önceden tanımlanmış bir hedef değişkene sahiplerdir. Yapıları itibariyle en tepeden en aşağı inen bir strateji sunmaktadırlar.

Bir karar ağacı, çok sayıda kayıt içeren bir veri kümesini, bir dizi karar kuralları uygulayarak daha küçük kümelere bölmek için kullanılan bir yapıdır. Yani basit karar verme adımları uygulanarak, büyük miktarlardaki kayıtları, çok küçük kayıt gruplarına bölerek kullanılan bir yapıdır.


İki analizde de daha önce kullandığım “Hitters” veri setini kullanacağım. Bunun için verisetini jupyter notebooka getirdikten sonra ilk olarak boş değerleri analizden çıkarıyorum. Daha sonra string değişkenler için one hot coding yapıyorum. Salary’i bağımlı değişken diğer numerik değişkenleri de bağımsız değişken olarak tanımlıyorum. Dönüştürme işlemi yaptığım string değişkenleri de bağımsız değişkenlere dahil ettikten sonra veri setimi %25 test %75 train olacak şekilde ayırıyorum. Train ve test data setimi pandas data frame olarak tanımladıktan sonra modelimi kurma aşamasına geçiyorum.


DecisionTreeRegressor modülü ile modelimi kuruyorum ve modelin bileşenlerine bakıyorum. Modeli daha iyi anlayabilmek adına modelimi görselleştiriyorum ve bağımsız değişkenlerin bölündüğü katmanları inceliyorum.


Modeli görselleştirdikten sonra manuel hesaplama yapıp modeli daha iyi anlayabilmek için kural setini dışarıya çıkarıyorum.


Tahmin aşamasına geçebilirim. Kural setinden çıkan formülü ilk bağımsız değişkenim 91 için manuel hesaplama yapıyorum. Manuel hesaplamam ile modelin çıktısının aynı olduğunu teyit ettikten sonra test setimi tahmin et dedikten sonra test hatamı hesaplıyorum.


Şimdi tuning aşamasına geçebilirim. Öncelikle tekrar modelimi çağırıyorum. Parametre girişlerini manuel olarak giriyorum ve 10 katlı cross validation yapıyorum. Modelin bana bulduğu en optimum parametreleri getiriyorum.


Modelin bulduğu en optimum parametrelere göre modelimi tune ediyorum. Tune edilmiş modeli fit ettikten sonra test veri setimi tahmin et dedikten sonra test hatamı hesaplayıp analizime son veriyorum.


Yorumlar