Rassal Ormanlar

Rassal orman (Random Forest), bir ensemble (bir araya getirme) algoritmasıdır. Hiper parametre seçimi yapmadan da iyi sonuçlar vermesinden dolayı popülerdir. Birden fazla alt ağaçlar oluşturarak overfitting’in önüne geçer. Her bir dal için Gini değişkeni hesaplanır. Alt daldaki Gini değişkeni, bir üst daldaki gini değişkeninden az ise o dal başarılıdır demektir. Yani en üstten en alta doğru gini değişkeni azalır. Hem sınıflandırma hem de regresyon problemlerini çözmek için kullanılabilir. Gözlemler bootstrap yöntemi ile , değişkenler Random subspace yöntemini kullanır. Random subspace tekniği, P adet değişkeni olan bir veri setinde, P’den daha az sayıda bir rastgele değişken seçerek her bir ağaç için, dallanmaların bu değişkenler üzerinden yapılması sağlanır. Böylece rastgelelik elde edilmiş olur. Bootstrap, benzer örnek oluşturmak için tek bir veri setini yeniden örnekleyen istatistiksel bir prosedürdür. Rastgele olacak şekilde asıl veri setinin 2/3’ü seçilir. Bootstrap veri setinde olmayan 1/3’lük kısıma “Out-of-Bag Dataset” denir. Random Forest, ensemble tekniğini kullanır. Ensemble, bir grup zayıf öğrenicinin güçlü bir öğrenici oluşturmak için bir araya gelmesidir. Ensemble, temelinde 2 yaklaşım vardır:

  • Bagging: Birçok zayıf öğrenme modelini bağımsız olarak eğitip birleştirir. Ana fikir, veri kümesinin rastgele alt küme (bootstrap) kullanılarak farklı modellerin eğitilmesi ve bu modellerin sonuçlarının birleştirilmesidir. Temel amacı varyansı azaltmaktır.
  • Boosting: Zayıf öğrenme modellerini ardışık olarak eğitir ve her bir model, önceki modelin hatalarına odaklanır. Yani, hatalı sınıflandırılan örnekler üzerinde daha fazla vurgu yaparak performansı artrır. Boosting’in temel amacı bias’ı azalmaktır.

Çalışma Adımları

  1. Özellikler ve hedef değişken belirlenir.
  2. Birden fazla karar ağacı oluşturur. Her ağaç, rastgele seçilen alt örneklem verileri üzerinde kurulur. Aynı zamanda her düğümde rastgele seçilen bir alt küme özellik kullanılır. Bu, her ağacın farklı olduğu ve çeşitliliği artırdığı anlamına gelir.
  3. Her ağac bağımsız olarak kurulur ve tahmin yapar. Bu, tek bir ağaç hatalı tahminlerde bulunursa, diğer ağaçlar da bu hatayı dengeleyebilir.
  4. Her ağacın verilen bir örnekleme için tahmin yapar. Sınıflandırma problemlerinde en çok oy alan sınıfı seçer. Regresyon problemlerinde tüm ağaçların tahminin ortalaması alınır.

Rassal ormanların avantajları;

  • Çok kararlı bir algoritmadır.
  • Sınıflandırma problemlerinde iyidir.
  • Her düğüm noktasında rastgele değişken seçimi yapılır. (Regression: p/3, Classification: square(p))
  • Her bir ağaca daha önce hesaplanan hata oranları göz önüna alınarak ağırlık verilir. Çok başarısız olan ağaçların tahmini önemsenmez. Bu özellik Random Forests’i, Bagging’ten ayıran en büyük özelliktir.

Rassal ormanların dezavantajları;

  • Yorumlaması zor.
  • Regresyon problemlerinde, sınıflandırma problemlerindeki kadar iyi bir sonuç vermez.
  • Karmaşıklık.
  • Tahmin üretmede yavaştır. Çünkü tahmin için tüm ağaçların aynı veri için tahmin yapmış olması gerekir.

Hiperparametreler

ParametreTypeDefaultAçıklama
n_estimatorsint100Ağaç sayısını belirler. Daha fazla ağaç daha iyi performans verebilir.
max_depthintNoneBir ağacın maksimum derinliğini belirler. Çok derin olursa overfitting’e yol açabilir.
min_samples_splitint/float2Bir düğümün bölünmeden önce kaç örnek içermesi gerektiğini belirler. Büyük olması, modelin daha basit ve daha az karmaşık olmasına neden olabilir.
min_samples_leafint/float1Bir yaprağın minimum örnek sayısını belirler. Yaprak düğümlerinin boyutunu kontrol eder. Küçük değer overfitting’e yol açabilir.
max_features“sqrt”, “log2”, None, int/float“sqrt”Her düğümdeki en iyi bölme özelliği seçilirken seçilen özellik sayısını sınırlar. Bu, rastgelelik ekleyerek modelin çeşitliliğini artırabilir ve aşırı uydurmayı engelleyebilir.
bootstrapboolTrueVeri örnekleme işleminin kullanılıp kullanılmayacağını kontrol eder. Her ağacın rastgele bir örneklemle eğitilmesini sağlar.

Regularized Greedy Forest

Normal RF’den hızlıdır. Daha fazla parametreye sahiptir. İki temel bileşenden oluşur:

  • Regularization (Düzenleme): Her bir karar ağacının büyüklüğünü ve karmaşıklığını kontrol etmek için bir düzenleme yöntemi kullanır. Bu düzenleme, her bir ağacın büyüklüğünü sınırlayarak overfittingi önler.
  • Greedy Learning: Her bir ağaç, bir özellik seçerek ve bu özelliğe göre bir bölme yaparak oluşturulur. Her bir bölme için en iyi özelliği seçmek için bir düzgünleştirme işlemi uygular. Bu da daha iyi genelleme sağlar.
from rgf import RGFClassifier

model = RGFClassifier(max_leaf=150, algorithm='RGF_Sib', test_interval=100)
model.fit(X_train, y_train)

Hiperparametreler

ParametreTypeDefaultAçıklama
algorithm“RGF”, “RGF_Opt”, “RGF_Sib”“RGF”“RGF”, “l2” düzenlileştirme, “RGF_Opt” min-penalty, “RGF_Sib” min-penalty + sum-to-zero sibling.
loss“LS”, “Expo”, “Log”“LS”LS square loss, Expo exponential loss, Log logistic loss