CART (Classification and Regression Tree)

CART (Classification and Regression Tree)

855 Görüntülenme
0
0

Merhaba Değerli Java Dostları, 

Bu yazımda veri madenciliği alanı ile ilgilenenler için tanıdık olan CART algoritmasına değinmeye çalışacağım. CART, karar ağacı oluşturmada kullanılan bir algoritmadır. İkili ağaç yapısı vardır. Yani ana düğümden iki yavru düğüm oluşur. Homojen bir ağaç yapısı elde edilmeye çalışılır. CART, sayısal ve nominal değerler üzerinde çalışabilir. Algoritmada 3 temel adım vardır.

1. Maksimum agaç oluşturmak
2. Agacın derinliğini belirlemek
3. Test verilerini agaca uygulamak

Maksimum agacı oluşturmadaki temel hedef en saf, en iyi bölme durumunu elde etmektir. Bunun için iki algoritma kullanılır. Bunlar GINI ve Twoing algoritmalarıdır. Önce GINI algoritmasına bakacak olursak, amaç her adımda en büyük veri kümesini elde etmektir. Böylece en iyi bölme durumu elde edilmiş olunacaktır. Ayrıca bölme işleminden sonra ilgilenmediğimiz kısım izole edilmiş olunur.

Twoing algoritması ise, GINI’ ye göre daha dengeli bir yapı sunar. Bunun nedeni ise her defasında ana ve yavru düğümlerin %50′ sini içermeye çalışmasıdır. Bundan dolayı GINI’ ye göre bir yavaşlama olacaktır.

GINI ve Twoing ikili sınıflandırmada kullanılan iki algoritmadır. CART aynı zamanda sürekli tipteki veriler üzerinde de çalışabilir. Dolayısıyla bunun için de yöntem barındırır. Regresyon adı verilen bu yöntemde belli aralıktaki değerlere göre sınıflandırma yapılır. Örneğin; regresyon ile 1000′ den küçük mü değil mi şartı aranırken, sınıflandırma ile 1000 mi değil mi şartı aranır.

İkinci adım olarak ise ağaç derinliğinin belirlenmesi vardır. Bunun için n bir düğümün sahip olacağı minimum kayıt sayısı olsun. Eğer bu değer, kullanıcı tanımlı n değerinden küçük olursa algoritma çalışmayı durduracaktır. Bu değer genellikle örnek data setin %10′ u kadar seçilir. Daha büyük değerler seçilmesi algoritmanın çalışmasını hızlandırır yalnız bu durumda dengesiz ve yanlış karar veren bir karar ağacı oluşabilir.

Avantajlar

Parametrik değildir. Yani matematiksel bir formda tarif edilmesine gerek yoktur. Yapısı gereği önemli ve önemsiz verileri ayırt edebilir. Gürültülü verilerle çalışabilme avantajına sahiptir. Herhangi bir kabullenme gerektirmez. Hızlı ve esnektir.

Dezavantajları

Sadece ikili duruma göre karar vermesi en belirgin dezavantajıdır. Bunun yanında kullanıcı data setten bazı verileri çıkarması durumunda yanlış bir karar ağacı oluşabilir.

Bol Java’ lı günler dileğiyle…

Yazan: Faruk BOZAN (Yazılım Mimarı / Software Architect)

Yorum Yap

Kategoriler