Machine Learning #6 — Ağaç Bazlı Modeller, Entropi, Gini Index, Sınıflandırma ve Regresyon İçin Karar Ağaçları

Göker Güner
6 min readMay 31, 2024

--

Selamlar,

Eğer bu yazının İngilizcesiyle ilgilenmiyorsanız, bu paragrafı pas geçebilirsiniz.

This post is the sixth article in my Machine Learning series that I have written to consolidate and share what I have learned. For the fifth article of the series: link

For English version of the article: link

Merhabalar, Machine Learning serimizin altıncı bölümünde, daha önce kullanımına kısaca değindiğimiz ağaç bazlı modelleri teorik olarak daha derinlemesine ele alıyoruz.

Ağaç bazlı modeller, veri setlerini dallara ayırarak sınıflandırma ve regresyon problemlerini çözmek için kullanılan güçlü ve esnek yöntemlerdir.

Bu bölümde;

  • Entropi ve Gini index gibi temel kavramları açıklayacak, karar ağaçlarının nasıl oluşturulduğunu ve kullanıldığını detaylandıracağız.
  • Ayrıca, sınıflandırma ve regresyon problemleri için karar ağaçlarının nasıl uygulanacağını örneklerle göstereceğiz.

Sınıflandırma için Karar Ağaçları

Etiketlenmiş bir veri kümesi verildiğinde, bir sınıflandırma ağacı, etiketleri çıkarmak için bireysel özelliklerle ilgili bir dizi if-else sorusunu öğrenir. Doğrusal modellerin aksine ağaçlar, özellikler ve etiketler arasındaki doğrusal olmayan ilişkileri yakalayabilir. Ayrıca ağaçlar, örneğin standardizasyon yoluyla özelliklerin aynı ölçekte olmasını gerektirmez.

Sınıflandırma ağacı dediğimizde, aslında sınıflandırma görevi için eğitilmiş bir karar ağacını kast ediyoruz.

Bu çalışma için kullanacağımız “Wisconsin Breast Cancer Dataset” isimli veri setini import ettik. Hem bu yazı serisinde, hem de Yapay Zeka üzerine pek çok başlangıç seviye kaynakta görebileceğiniz UC Irvine ML Repository’sinden, artık .csv formatında download etmemize gerek kalmadan direkt olarak bu şekilde projemize import edebiliyoruz.

Bu linke tıklayıp “Import In Python” butonuna basarak siz de örnek kullanımı görebilirsiniz.

Basitçe, bir karar ağacını bu şekilde kullanabiliyor olduğumuzu tekrardan hatırlayalım.

Neden Karar Ağaçları?

  • Verilerinizde non-lineer ilişkiler varsa ve bu ilişkileri yakalamak istiyorsanız,
  • Modelin yorumlanabilirliği sizin için önemliyse ve karar verme sürecini görselleştirmek istiyorsanız,
  • Kategorik veri ile çalışıyorsanız ve bu veriyi sayısal verilere dönüştürmek istemiyorsanız,
  • Özellik seçimi yaparak daha önemli özellikleri öne çıkarmak istiyorsanız,
  • Çoklu sınıflandırma problemleri ile çalışıyorsanız, karar ağaçları lojistik regresyona kıyasla daha avantajlı olabilir.

Sayısal olarak kıyasladığımızda da aradaki farkı göreceğiz ama çalışma şeklini daha iyi kavramak için, öncelikle görsel olarak inceleyelim. Aşağıdaki fonksiyon yardımıyla kıyaslamayı görselleştirebiliriz.

Şimdi de Lojistik Regresyon modelimizi kurgulayıp kıyaslama grafiğimizi çizdiriyoruz.

Veri setimiz oldukça küçük olduğu için tahminleyemediğimiz veri sayısı da oldukça az. Ancak yine de, doğrusal olmayan ilişkileri yakalama konusunda Karar Ağaçlarının sınır çizme kabiliyetinin daha iyi olduğuna dikkat edin.

Karar Ağaçları Sınıfandırmayı Nasıl Öğrenir?

Öncelikle bazı terimleri tanımlayarak başlayalım. Karar ağacı, düğüm adı verilen bireysel birimlerin hiyerarşisinden oluşan bir veri yapısıdır. Düğüm, bir soru ya da tahmin içeren bir noktadır.

Kök, karar ağacının büyümeye başladığı düğümdür. Ana düğümü yoktur ve iki dal aracılığıyla 2 alt düğüme yol açan bir soruyu içerir. Dahili düğüm, ebeveyni olan bir düğümdür. Aynı zamanda 2 alt düğüme yol açan bir soruyu da içerir. Son olarak alt düğümü olmayan düğüme yaprak adı verilir. Bir yaprağın bir ana düğümü vardır ve hiçbir soru içermez. Bir tahminin yapıldığı yer burasıdır. Bir sınıflandırma ağacı etiketli bir veri kümesi üzerinde eğitildiğinde, ağacın özelliklerden kalıpları en saf yaprakları üretecek şekilde öğrendiğini hatırlayın. Başka bir deyişle ağaç, her yaprakta bir sınıf etiketinin baskın olacağı şekilde eğitilir.

Bir Karar Ağacı’nın örnek görüntüsü.

Görsel olarak da, bir karar ağacının bölümlerini bu şekilde görebiliriz. Kök(root), dal(branch), dahili düğüm(internal node) ve yaprak(leaf), bir karar ağacının bölümlerini oluşturur.

Peki, karar ağacımız bu yaprakları oluştururken nasıl bir matematik izler?

Burada, bir regresyon ağacı bir veri seti üzerinde eğitildiğinde, bir düğümün saflığının o düğümdeki hedeflerin ortalama karesel hatası kullanılarak ölçüldüğüne dikkat etmek önemlidir.

Bu, regresyon ağacının, her bir yaprakta hedef değerlerin, o yaprağın belirli ortalama değerine mümkün olduğunca yakın olduğu yapraklar üreten bölünmeleri bulmaya çalıştığı anlamına gelir.

Bir Düğüm için Ortalama Karesel Hata (MSE)

Burada N, düğümdeki örneklerin sayısıdır.

Yi, i-inci örneğin gerçek hedef değeridir.

yˉ , düğümdeki tüm örneklerin ortalama hedef değeridir.

Bir Düğümdeki Hedef Değerlerin Ortalaması

Regresyon ağacı eğitilirken, her bölünme için MSE’yi azaltmaya çalışır. Bu nedenle, her bölünmede, yapraklardaki hedef değerlerin o yaprağın ortalama hedef değerine mümkün olduğunca yakın olmasını sağlayarak toplam MSE’yi azaltmayı hedefler.

Bu kavramları birleştirerek, regresyon ağacı her bölünmede sol ve sağ alt düğümlerin MSE’lerinin toplamını minimize etmeye çalışır. Bu minimizasyona, Toplam Saflık Azalması adı verilir.

Toplam Saflık Azalması

Regresyon ağacı algoritması, her bölünmede saflık azalmasını (ΔMSE) maksimize etmeye çalışır. Bu saflık azalması kavramını ölçmek için de Bilgi Kazancı’nı kullanırız.

Bilgi Kazancı (Information Gain) Nedir?

Bilgi Kazancı, bir veri kümesini belirli bir özelliğe göre bölerek belirsizliği veya saflığı azaltma derecesini ölçer. Karar ağaçları oluşturulurken, her bölünme adımında hangi özelliğin kullanılacağını seçerken bu ölçümden yararlanılır. Amaç, bilgi kazancını maksimize edecek şekilde veri kümesini bölmektir.

Entropi ve Bilgi Kazancı

Bilgi Kazancı, entropi kavramına dayanır. Entropi, bir veri kümesindeki belirsizliğin veya rastgeleliğin bir ölçüsüdür. Yüksek entropi, veri kümesinin daha karmaşık veya daha rastgele olduğunu, düşük entropi ise daha düzenli olduğunu gösterir.

Entropi Hesaplama

Entropi, bir veri kümesindeki belirsizliği ölçmek için kullanılır. Entropi denklemi şu şekildedir:

Burada:

  • H(D) veri kümesi ( D ) için entropidir.
  • ( k ), sınıf sayısıdır.
  • p-i, i-nci sınıfın olasılığıdır.

Bilgi Kazancı Hesaplama

Bilgi kazancı, bir veri kümesini belirli bir özelliğe göre böldüğümüzde entropideki azalma miktarıdır:

Burada:

  • IG(D, A), veri kümesi (D) için özellik (A)’nın bilgi kazancıdır.
  • (H(D)), veri kümesinin (bölünmeden önceki) entropisidir.
  • Values(A), özellik ( A )’nın alabileceği farklı değerler kümesidir.
  • 𝐷𝑣, ( A ) özelliği ( v ) değerini aldığında veri kümesinin alt kümesidir.
  • |D|, veri kümesindeki toplam örnek sayısıdır.
  • |𝐷𝑣|, ( v ) değerine sahip alt kümedeki örnek sayısıdır.
  • H(𝐷𝑣), alt kümenin entropisidir.

Özet:

  • Entropi, bir veri kümesindeki belirsizliği ölçer.
  • Bilgi Kazancı, bir veri kümesini belirli bir özelliğe göre böldüğümüzde entropideki azalmayı ölçer.
  • Bilgi Kazancı yüksek olan bölünmeler, veri kümesini daha saf (daha az belirsiz) hale getirir ve bu nedenle karar ağaçları oluşturulurken tercih edilir.
  • Bilgi Kazancı, karar ağaçlarının her düğümünde en iyi bölünmeyi seçmek için kullanılır ve bu sayede daha doğru ve etkili modeller oluşturulur.

Gini indeksi ve entropi kavramları, bu bilgi kazancı kriteri için kullanılabilir. Projeden projeye, veri setinin büyüklüğü veya hiperparamatrelere göre hangi criterion değerinin kullanılması gerektiği değişebilir.

Regresyon İçin Karar Ağaçları

Regresyonda hedef değişkenin sürekli olduğunu hatırlayın. Başka bir deyişle modelinizin çıktısı bir reel sayıdır. Dolayısıyla burada da bir karar ağacı kullanmak, modelimizin veri kümesini lineer regresyondan daha iyi öğrenmesini sağlayabilir.

Bu çalışma için de yine UC Irvine Machine Learning Repository’den Auto MPG veri setini kullanıyoruz.

Regresyon ağacının lineer regresyona göre ufak da olsa bir avantaj sağladığını göstermiş olduk(Hücre çıktısını görmek için, yukarıdaki hücreyi aşağı kaydırın). Bu değerlerin de veri setinin büyüklüğü ve hiperparametrelere göre değişebileceğini unutmayın.

Son olarak bu kıyaslamayı görselleştirelim(Görselleri görmek için, alttaki hücreyi aşağı kaydırın).

Böylelikle, karar ağaçlarını derinlemesine incelediğimiz ilk yazımızın sonuna gelmiş olduk. Bundan sonraki bölümde Bias-Variance Tradeoff, Bagging, Random Forests, Boosting ve Model Tuning kavramlarına değineceğiz.

Sonraki yazılarda görüşmek üzere.

--

--