Random Forest (Rastgele Orman)

Yüzlerce bağımsız karar ağacının oylama veya ortalama yoluyla birleştirildiği, overfitting'e dirençli topluluk öğrenimi yöntemi.

Rastgele Orman (Random Forest), tek bir karar ağacının aşırı uyum (overfitting) zayıflığını aşmak için yüzlerce veya binlerce bağımsız karar ağacının bir arada çalıştırıldığı topluluk öğrenimi (ensemble learning) yöntemidir. Her ağaç, verinin rastgele seçilmiş bir alt kümesi üzerinde eğitilir; tahmin aşamasında tüm ağaçların çıktısı oylamaya (sınıflandırma) ya da ortalalamaya (regresyon) tabi tutularak nihai sonuç elde edilir. Yöntemin temel ilkesi "bagging" (Bootstrap Aggregating) olarak adlandırılır: eğitim verisi yerine her ağaç için rastgele örneklem çekilerek ağaçlar arasındaki korelasyon azaltılır. Ayrıca her dal bölünme noktasında yalnızca rastgele seçilmiş bir özellik alt kümesi değerlendirilir; böylece ağaçların birbirinden bağımsız kalması güvence altına alınır. Rastgele Orman'ın avantajları şunlardır: yüksek boyutlu verilerde iyi performans gösterir; eksik değerlere ve gürültüye karşı dirençlidir; özellik önem skorları (feature importance) üretir; hiperparametre ayarı görece basittir. Sınıflandırma ve regresyon görevlerinin yanı sıra anomali tespiti ve boyut azaltma uygulamalarında da kullanılır. Dezavantajları arasında büyük ağaç sayılarında yavaş tahmin süresi ve yorumlanabilirlik güçlüğü sayılabilir: binlerce ağaçtan oluşan bir ormanın "neden bu kararı verdiği" tek bir karar ağacına göre açıklamak daha zordur. Bu nedenle yorum gerektiren finans ve sağlık uygulamalarında SHAP değerleri gibi açıklanabilirlik araçlarıyla birlikte kullanılır. scikit-learn kütüphanesinde `RandomForestClassifier` ve `RandomForestRegressor` sınıfları ile kolayca uygulanır. `n_estimators` (ağaç sayısı), `max_depth` (maksimum derinlik) ve `max_features` (dal başına değerlendirilen özellik sayısı) en kritik hiperparametrelerdir. Büyük veri setlerinde XGBoost veya LightGBM gibi gradient boosting alternatifleri tercih edilse de Rastgele Orman, hızlı prototipleme ve temel performans ölçütü oluşturma açısından hâlâ standart başlangıç modeli olarak kabul görmektedir. Uygulama alanları açısından Rastgele Orman; kredi riski puanlaması, hastalık teşhisi, müşteri kaybı tahmini (churn prediction), nesne tanıma ve metin sınıflandırması gibi geniş bir yelpazede başarıyla kullanılmıştır. Türkiye'deki veri bilimi projelerinde ise bankacılık ve e-ticaret sektörlerinde sık başvurulan bir yöntem olduğu gözlemlenmektedir. Açıklanabilir yapay zeka (XAI) bağlamında SHAP kütüphanesi, Rastgele Orman modellerinin bireysel tahminlerini yorumlamak için doğrudan entegre edilebilir.

Rastgele Orman Nasıl Çalışır?

Rastgele Orman, bagging (Bootstrap Aggregating) ilkesine dayanır. Eğitim seti, yerine koymalı örnekleme (bootstrapping) ile her ağaç için ayrı bir alt kümeye bölünür. Her ağaç bu alt küme üzerinde eğitilirken her düğüm bölünmesinde yalnızca rastgele seçilmiş birkaç özellik değerlendirilir. Bu çifte rastgelelik, ağaçların birbiriyle düşük korelasyona sahip olmasını ve kolektif hatanın bireysel hatadan düşük kalmasını garantiler. Tahmin aşamasında tüm ağaçların çıktısı bir araya getirilir: sınıflandırma görevlerinde çoğunluk oyu kazanır, regresyon görevlerinde ortalama alınır.

Öne Çıkan Özellikler

Overfitting Direnci

Birden fazla ağacın ortalaması, tek ağacın gürültüye aşırı uymasını dengeler. Özellikle küçük-orta veri setlerinde güçlü genelleme sağlar.

Feature Importance

Her özelliğin karar ağaçlarındaki katkısı ölçülerek önem skoru üretilir. Değişken seçimi ve veri anlama açısından pratik bir araçtır.

Paralel Eğitim

Ağaçlar birbirinden bağımsız eğitildiği için çok çekirdekli işlemcilerde paralel eğitim mümkündür (scikit-learn n_jobs=-1).

Geniş Uygulama

Sınıflandırma, regresyon, anomali tespiti, özellik seçimi ve eksik veri tahmini dahil pek çok alanda kullanılır.

Gradient Boosting ile Karşılaştırma

  • check_circle Rastgele Orman vs XGBoost: RF ağaçları paralel eğitir, XGBoost sıralı eğitir; XGBoost genellikle daha yüksek doğruluk ama daha uzun eğitim süresi gerektirir. RF daha az hiperparametre gerektirir.
  • check_circle Rastgele Orman vs LightGBM: LightGBM yaprak bazlı bölünme kullanır, çok büyük veri setlerinde bellek ve hız avantajı sağlar. RF küçük-orta ölçekte daha kolay kullanılır.
  • check_circle Tek Karar Ağacı vs RF: Tek ağaç yorumlanabilirdir ama kolayca overfit eder. RF yüzlerce ağacı birleştirerek kararlılık kazanır, yorumlanabilirlik bir miktar azalır.

scikit-learn ile Uygulama

Python'da scikit-learn kütüphanesi aracılığıyla `from sklearn.ensemble import RandomForestClassifier` importuyla kullanılır. En kritik hiperparametreler şunlardır: `n_estimators` (ağaç sayısı, genellikle 100–500 yeterli), `max_depth` (aşırı büyümeyi sınırlar, None bırakılırsa ağaçlar tam büyür), `max_features` ('sqrt' sınıflandırmada, 'log2' veya 1/3 regresyonda önerilir), `min_samples_split` (dal bölünmesi için minimum örnek sayısı). `feature_importances_` özelliği eğitim sonrasında her değişkenin katkı skorunu verir; bu skor Gini impurity veya entropi azalmasına göre hesaplanır.

Sık Sorulan Sorular

  • check_circle Rastgele Orman neden tek karar ağacından daha iyidir?: Tek ağaç eğitim verisini ezberleyebilir (overfitting). Yüzlerce bağımsız ağacın oylama veya ortalamasıyla bu hata dengeler; test verisinde genellikle çok daha iyi performans gösterir.
  • check_circle Kaç ağaç kullanmalıyım?: 100–500 ağaç çoğu veri seti için yeterlidir. Ağaç sayısı arttıkça performans platolar; belirli bir noktadan sonra hesaplama maliyeti artmaya devam ederken doğruluk artmaz.
  • check_circle Rastgele Orman eksik verileri işleyebilir mi?: scikit-learn uygulaması eksik veriyi doğrudan desteklemez; önceden imputation gerekmez diye yaygın bir yanılgı vardır. Eksik değerleri doldurmak veya ExtraTreesClassifier gibi alternatifleri değerlendirmek gerekir.
  • check_circle Feature importance skoru yeterince güvenilir mi?: RF feature importance, yüksek kardinaliteli kategorik değişkenleri abartabilir. Daha güvenilir ölçüm için permutation importance veya SHAP değerleri önerilir.
  • check_circle Rastgele Orman sınıflandırma ve regresyonda aynı anda kullanılabilir mi?: Evet. scikit-learn'de RandomForestClassifier ve RandomForestRegressor ayrı sınıflar olarak sunulur; her ikisi de aynı temel algoritmayı farklı tahmin kuralıyla kullanır.