5.4 Karar Ağaçları (Decision Tre)
Last updated
Last updated
Doğrusal regresyon ve lojistik regresyon modelleri, özellikler ile sonuç arasındaki ilişkinin doğrusal olmadığı veya özelliklerin birbiriyle etkileşimde bulunduğu durumlarda başarısız olur. İşte burada karar ağacı devreye girer! Ağaç tabanlı modeller, veriyi özelliklerdeki belirli eşik değerlerine göre birden çok kez böler. Bu bölme işlemiyle veri kümesinin farklı alt kümeleri oluşturulur ve her örnek bir alt kümeye ait olur. Nihai alt kümelere "son düğümler" veya "yaprak düğümler" denir; ara alt kümeler ise "iç düğümler" veya "bölme düğümleri" olarak adlandırılır. Her yaprak düğümde sonucu tahmin etmek için, bu düğümdeki eğitim verilerinin ortalama sonucu kullanılır. Ağaçlar hem sınıflandırma hem de regresyon için kullanılabilir.
Bir ağacı büyütebilecek çeşitli algoritmalar vardır. Bu algoritmalar, ağacın olası yapısı (örneğin, bir düğüm başına düşen bölme sayısı), bölmeleri bulma kriterleri, bölme işleminin ne zaman durdurulacağı ve yaprak düğümler içindeki basit modellerin nasıl tahmin edileceği gibi yönlerden farklılık gösterir. Sınıflandırma ve Regresyon Ağaçları (Classification and Regression Trees - CART) algoritması, muhtemelen en popüler ağaç oluşturma algoritmasıdır. Biz CART’a odaklanacağız, ancak yorumlama çoğu diğer ağaç türü için benzerdir. Daha ayrıntılı bir CART tanıtımı için ‘The Elements of Statistical Learning’ (Friedman, Hastie ve Tibshirani, 2009) kitabını öneririm.
Aşağıdaki eşitlik çıktı y ile x öznitelik matrisi arasındaki ilişkiyi göstermektedir.
Her bir örnek tam olarak bir yaprak düğüme (= alt küme ) düşer. , 𝑥 alt küme 'de ise 1, aksi takdirde 0 döndüren kimlik fonksiyonudur. Bir örnek yaprak düğüm 'ye düşerse, tahmin edilen sonuç olur; burada , yaprak düğüm 'deki tüm eğitim örneklerinin ortalamasıdır.
Peki bu alt kümeler nereden gelir? Bu oldukça basittir: CART bir özelliği alır ve bir regresyon görevi için y'nin varyansını veya sınıflandırma görevleri için y'nin sınıf dağılımına ait Gini indeksini en aza indiren kesme noktasını belirler. Varyans, bir düğümdeki y değerlerinin ortalama etrafında ne kadar yayıldığını gösterir. Gini indeksi, bir düğümün ne kadar “kirli” olduğunu ifade eder; örneğin, tüm sınıflar aynı sıklığa sahipse düğüm kirli, yalnızca bir sınıf mevcutsa düğüm en saf haldedir. Varyans ve Gini indeksi, düğümlerdeki veri noktalarının y için çok benzer değerlere sahip olduğu durumlarda en aza iner. Sonuç olarak, en iyi kesme noktası, hedef sonuç açısından iki oluşan alt kümeyi mümkün olduğunca farklı yapar. Kategorik özellikler için algoritma, farklı kategori gruplamaları deneyerek alt kümeler oluşturmayı dener. Her bir özellik için en iyi kesme noktası belirlendikten sonra, algoritma varyans veya Gini indeksi açısından en iyi bölmeyi sağlayacak özelliği seçer ve bu bölmeyi ağaca ekler. Algoritma, yeni düğümlerde bu arama ve bölme işlemini bir durma kriterine ulaşana kadar özyinelemeli (rekürsif) olarak devam ettirir. Olası durma kriterleri şunlardır: Bir düğümün bölünmeden önce içermesi gereken minimum örnek sayısı veya bir terminal düğümde bulunması gereken minimum örnek sayısı.
Yorumlama oldukça basittir: Kök düğümden başlayarak bir sonraki düğümlere ilerlersiniz ve kenarlar size hangi alt kümelere baktığınızı söyler. Yaprak düğüme ulaştığınızda, düğüm size tahmin edilen sonucu gösterir. Tüm kenarlar “VE” ile bağlanmıştır.
Şablon: Eğer özellik x, [eşikten c'den küçük/büyük] VE … ise, tahmin edilen sonuç, o düğümdeki örneklerin y'nin ortalama değeridir.
Bir karar ağacındaki bir özelliğin genel önemi şu şekilde hesaplanabilir: Özelliğin kullanıldığı tüm bölünmelerden geçilir ve o özelliğin üst düğüme kıyasla varyansı veya Gini indeksini ne kadar azalttığı ölçülür. Tüm önem değerlerinin toplamı 100 olacak şekilde ölçeklendirilir. Bu, her bir özelliğin önem değerinin, modelin toplam önemindeki pay olarak yorumlanabileceği anlamına gelir.
Bir karar ağacının bireysel tahminleri, karar yolunun her bir düğümde özellik başına bir bileşene ayrıştırılmasıyla açıklanabilir. Karar ağacında bir kararı takip ederek, her karar düğümünde eklenen katkılarla bir tahmini açıklayabiliriz.
Karar ağacındaki kök düğüm başlangıç noktamızdır. Eğer kök düğümü kullanarak tahmin yapsaydık, bu tahmin, eğitim verilerindeki hedef değişkenin ortalama değeri olurdu. Bir sonraki bölünmede, izlediğimiz yola bağlı olarak bu toplamdan ya bir terim çıkarılır ya da eklenir. Nihai tahmini elde etmek için açıklamak istediğimiz veri örneğinin yolunu takip ederek bu formüle katkı eklemeye devam etmemiz gerekir.
Bir bireysel örneğin tahmini, hedef çıktının ortalaması artı kök düğüm ile o örneğin sona erdiği terminal düğüm arasındaki D bölünmesinin tüm katkılarının toplamıdır. Ancak biz bölünme katkılarıyla değil, özellik katkılarıyla ilgileniyoruz. Bir özellik birden fazla bölünmede kullanılabilir veya hiç kullanılmayabilir. Her bir p özelliği için katkıları toplayarak, bir tahmine her bir özelliğin ne kadar katkıda bulunduğuna dair bir yorum elde edebiliriz.
Bisiklet kiralama verilerine bir kez daha bakalım. Belirli bir günde kiralanan bisiklet sayısını bir karar ağacı ile tahmin etmek istiyoruz. Öğrenilen ağaç şu şekildedir:
İlk bölünme ve ikinci bölünmelerden biri, trend özelliği ile gerçekleştirilmiştir. Bu özellik, veri toplamanın başladığı günden itibaren geçen günleri sayar ve bisiklet kiralama hizmetinin zaman içinde daha popüler hale gelmesini kapsayan bir eğilimi gösterir. 105. günden önceki günler için tahmin edilen bisiklet sayısı yaklaşık 1800, 106. ve 430. günler arasındaki günler için yaklaşık 3900'dür. 430. günden sonraki günlerde, tahmin edilen sayı sıcaklığa bağlı olarak değişir: Sıcaklık 12 derecenin altındaysa tahmin 4600, 12 derecenin üzerindeyse tahmin 6600 civarındadır.
Özellik önemi (feature importance), bir özelliğin tüm düğümlerin saflığını ne kadar iyileştirdiğini ölçer. Burada, bisiklet kiralamayı tahmin etmek bir regresyon görevi olduğu için varyans kullanılmıştır.
Görselleştirilen ağaç, hem sıcaklık hem de zaman trendinin bölünmeler için kullanıldığını gösterir, ancak hangi özelliğin daha önemli olduğunu sayısal olarak belirtmez. Özellik önemi ölçümü, zaman trendinin sıcaklıktan çok daha önemli olduğunu göstermektedir.
Ağaç yapısı, verilerdeki özellikler arasındaki etkileşimleri yakalamak için idealdir.
Veriler, lineer regresyonda olduğu gibi çok boyutlu bir hiper düzlemdeki noktalar yerine, genellikle anlaşılması daha kolay olan ayrı gruplara ayrılır. Yorumlama oldukça basittir.
Ağaç yapısının, düğümler ve kenarlarla doğal bir görselleştirmesi vardır.
Ağaçlar, “İnsan Dostu Açıklamalar” bölümünde tanımlandığı gibi iyi açıklamalar oluşturur. Ağaç yapısı otomatik olarak bireysel örnekler için tahmin edilen değerleri karşıt durumlar olarak düşünmeye davet eder: “Bir özelliğin değeri bölünme noktasından daha büyük/küçük olsaydı, tahmin edilen değer y1 yerine y2 olurdu.” Ağaç açıklamaları karşılaştırmalıdır, çünkü bir örneğin tahminini, ağacın tanımladığı ilgili “ya şöyle olsaydı” senaryoları (ağaçtaki diğer yaprak düğümler) ile her zaman karşılaştırabilirsiniz. Ağaç kısa ise (örneğin bir ila üç bölünme derinliğinde), ortaya çıkan açıklamalar seçicidir. Derinliği üç olan bir ağaç, bir bireysel örneğin tahmini için maksimum üç özellik ve bölünme noktası kullanır. Tahminin doğruluğu, ağacın tahmin performansına bağlıdır. Kısa ağaçların açıklamaları çok basit ve geneldir, çünkü her bölünmede örnek ya bir yaprak düğümüne ya da diğerine düşer ve ikili kararlar anlaması kolaydır.
Özellikleri dönüştürmeye gerek yoktur. Lineer modellerde, bazen bir özelliğin logaritmasını almak gerekir. Bir karar ağacı, bir özelliğin herhangi bir monoton dönüşümü ile eşit derecede iyi çalışır.
Ağaçlar, lineer ilişkileri işleme konusunda başarısızdır. Girdi özellikleri ve sonuç arasındaki herhangi bir lineer ilişki, bölünmelerle yaklaşık olarak adım fonksiyonu şeklinde modellenmek zorundadır. Bu, verimsiz bir yaklaşımdır.
Bu durum, yumuşaklığın eksikliği ile de ilgilidir. Girdi özelliklerindeki küçük değişiklikler, tahmin edilen sonuç üzerinde büyük bir etkiye sahip olabilir, bu genellikle istenmeyen bir durumdur. Bir karar ağacının, bir evin değerini tahmin ettiğini hayal edin ve ağacın evin büyüklüğünü bölünme noktası olarak kullandığını varsayalım. Bölünme noktası 100.5 metrekare olsun. Kullanıcı, 99 metrekare olarak girerse tahmin 200.000 Euro, ardından bir depoyu hesaba katarak 100.0 ve 101.0 metrekare girdiğinde tahmin 200.000 Euro ve 205.000 Euro çıkar. Bu durum oldukça mantıksızdır, çünkü 99 metrekareden 100’e geçişte bir değişiklik yokken, tahminde ani bir sıçrama gözlemlenir.
Ağaçlar aynı zamanda oldukça istikrarsızdır. Eğitim veri setindeki birkaç küçük değişiklik, tamamen farklı bir ağaç yapısı oluşturabilir. Bunun nedeni, her bölünmenin bir önceki bölünmeye bağlı olmasıdır. İlk bölünme için farklı bir özellik seçilirse, tüm ağaç yapısı değişir. Bu kadar kolay değişen bir yapının güvenilir bir model oluşturduğunu söylemek zordur.
Karar ağaçları çok yorumlanabilirdir – kısa oldukları sürece. Terminal düğümlerin sayısı derinlikle hızlı bir şekilde artar. Ağaç ne kadar derinse ve terminal düğüm sayısı ne kadar fazlaysa, ağacın karar kurallarını anlamak o kadar zorlaşır. Derinlik 1 olduğunda 2 terminal düğüm, derinlik 2 olduğunda maksimum 4 düğüm, derinlik 3 olduğunda maksimum 8 düğüm vardır. Bir ağacın maksimum terminal düğüm sayısı, derinliğin 2 üssüdür.
Bu bölümdeki örnekler için R dilindeki rpart paketi kullanılmıştır. Bu paket, CART (Sınıflandırma ve Regresyon Ağaçları) algoritmasını uygular. CART, Python dahil birçok programlama dilinde mevcuttur. Ancak, CART oldukça eski ve biraz modası geçmiş bir algoritma olarak kabul edilebilir. Ağaç oluşturmak için yeni ve ilgi çekici algoritmalar mevcuttur. R dilindeki karar ağaçları için bazı paketlerin bir özetini Machine Learning and Statistical Learning CRAN Task View içinde “Recursive Partitioning” anahtar kelimesi altında bulabilirsiniz. Python dilinde, imodels paketi, ağaçları büyütmek (örneğin açgözlü veya optimal yapılandırma), budama ve düzenleme için çeşitli algoritmalar sağlar.
Friedman, Jerome, Trevor Hastie, and Robert Tibshirani. “The elements of statistical learning”. hastie.su.domains/ElemStatLearn (2009).↩︎