Ders 5: Gradyan Artırma — XGBoost ve LightGBM
5.1 Giriş: Hataları Düzeltme Sanatı
Önceki derste Random Forest'un felsefesini öğrendik: birden fazla bağımsız ağaç oluştur, oylamayla karar ver. Bu "torbalama" (bagging) yaklaşımıydı. Gradyan artırma (gradient boosting) ise tamamen farklı bir felsefeye dayanır: her yeni ağaç, önceki ağaçların hatalarını düzeltir.
Tarımsal bir benzetmeyle düşünelim: Bir ziraat mühendisi ilk tarlayı ziyaret ettikten sonra verim tahminini 5.0 ton/ha olarak belirler. Gerçek verim 5.8 ton/ha çıkar -- 0.8 ton/ha hata yapmıştır. İkinci ziyarette bir diğer mühendis, yalnızca bu 0.8 ton/ha'lık hataya odaklanır: "neden 0.8 ton fazla aldı?" -- toprak neminin yüksek olduğunu fark edip bu bilgiyle 0.6 ton/ha'lık bir düzeltme önerir. Üçüncü mühendis kalan 0.2 ton/ha'lık hataya bakar ve güneş radyasyonu faktörünü bulur. Her adımda hata azalır ve toplam tahmin iyileşir.
5.2 Boosting vs Bagging: Temel Fark
| Özellik | Bagging (Random Forest) | Boosting (Gradient Boosting) |
|---|---|---|
| Ağaç oluşturma | Paralel, bağımsız | Sırasal, birbirine bağlı |
| Her ağacın görevi | Tam problemi çözmek | Önceki ağaçların hatasını düzeltmek |
| Ağaç yapısı | Derin, bağımsız ağaçlar | Sığ ağaçlar (3-8 derinlik) |
| Hata azaltma mekanizması | Varyans azaltma (ortalama ile) | Sapma azaltma (sırasal düzeltme ile) |
| Aşırı öğrenme riski | Düşük | Daha yüksek (dikkatli ayarlama gerekir) |
| Paralel eğitim | Evet | Hayır (sırasal doğası gereği) |
Bagging, birden fazla modelin varyansını azaltır -- her ağaç bağımsız olduğundan hataları birbirini iptal eder. Boosting ise sapmayı (bias) azaltır -- her yeni ağaç sistematik hatalara odaklanır.
5.3 Gradyan Artırma Nasıl Çalışır?
Adım Adım Süreç
-
Başlangıç tahmini: Basit bir tahminle başla (örneğin hedef değişkenin ortalaması). Verim tahmini için: tüm tarlaların ortalama verimi = 6.5 ton/ha.
-
Kalıntı (residual) hesapla: Her örnek için hatayı hesapla.
- Tarla A: Gerçek verim 7.2, tahmin 6.5, kalıntı = +0.7
- Tarla B: Gerçek verim 5.8, tahmin 6.5, kalıntı = -0.7
-
Tarla C: Gerçek verim 6.9, tahmin 6.5, kalıntı = +0.4
-
Bir karar ağacı eğit -- ama hedef olarak kalıntıları kullan: Ağaç, hangi özelliklerin (toprak tipi, yağış, gübre) bu hatalara yol açtığını öğrenir.
-
Tahmini güncelle: Eski tahmine, yeni ağacın çıktısını öğrenme oranı (learning rate) ile çarparak ekle.
- Yeni tahmin = Eski tahmin + öğrenme_oranı x Ağaç_tahmini
-
Tarla A: 6.5 + 0.1 x 6.8 = 6.5 + 0.68 = 7.18 (gerçek: 7.2, hata azaldı)
-
Tekrarla: Yeni kalıntıları hesapla, yeni bir ağaç daha ekle. Her adımda hatalar küçülür.
Öğrenme Oranı (Learning Rate) -- Neden Küçük Adımlar?
Öğrenme oranı, her ağacın katkısını küçülten bir çarpandır (tipik olarak 0.01-0.1). Neden büyük adımlar yerine küçük adımlar atılır?
Tarımsal benzetme: Gübre uygulama miktarını ayarlarken, bir seferde 200 kg/ha azot vermek yerine her seferinde 20 kg/ha artırmak daha güvenlidir -- aşırı gübre yanmaya yol açabilir. Aynı şekilde, büyük öğrenme oranı modelin eğitim verisine aşırı uyum yapmasına neden olabilir.
Küçük öğrenme oranı + çok sayıda ağaç = daha iyi genelleşme. Büyük öğrenme oranı + az ağaç = hızlı eğitim ama aşırı öğrenme riski.
Gradyan Kavramının Tarımsal Anlamı
"Gradyan artırma" adındaki "gradyan", kayıp fonksiyonunun türevidir. Basit dille: model her adımda "hangi yönde ilerlersem hatam en çok azalır?" sorusunu sorar ve o yönde bir adım atar. Bu, bir tepenin en dik yamacından aşağı yürümek gibidir -- her adım sizi vadiye (minimum hataya) yaklaştırır.
MSE kayıp fonksiyonu için gradyan, kalıntının kendisidir: gerçek değer - tahmin. Bu nedenle gradyan artırma, kalıntılara ağaç uydurma olarak da tanımlanır.
5.4 XGBoost -- Aşırı Gradyan Artırma
XGBoost Neden Popüler?
XGBoost (Extreme Gradient Boosting), 2016'dan bu yana Kaggle yarışmalarına hakim olmuş ve tarımsal araştırmalarda da hızla benimsenmiştir. Klasik gradyan artırmaya eklediği temel yenilikler:
-
Düzenlileştirme (Regularization): L1 ve L2 ceza terimleri, model karmaşıklığını sınırlar ve aşırı öğrenmeyi azaltır. Tarımda, gürültülü tarla verileriyle çalışırken bu özellikle yararlı olabilir.
-
Sütun alt örneklemesi: Her ağaç veya bölme için özelliklerin rastgele bir alt kümesinin seçilmesi -- Random Forest'tan alınan bu fikir, çeşitliliği artırır.
-
Erken durdurma: Doğrulama performansı iyileşmeyi bırakınca eğitimi otomatik olarak durdurur.
-
Eksik değer işleme: Eksik değerler için optimal bölme yönünü otomatik olarak öğrenir -- tarımsal veri setlerinde sık rastlanan sensör arızaları için idealdir.
-
Paralel hesaplama: Ağaç içindeki bölmelerin hesaplanması paralelleştirilmiştir (ağaçlar arası değil).
XGBoost Hiperparametreleri
| Parametre | Anlamı | Tarımsal Tavsiye |
|---|---|---|
| learning_rate (eta) | Her ağacın katkısı | 0.01-0.1 arası; düşük değer daha stabil |
| n_estimators | Toplam ağaç sayısı | 500-2000; erken durdurma ile kontrol et |
| max_depth | Ağaç derinliği | 3-8; tarımsal veride 4-6 iyi çalışır |
| subsample | Her ağaç için satır örneklemesi | 0.7-0.9 |
| colsample_bytree | Her ağaç için sütun örneklemesi | 0.7-0.9 |
| reg_alpha (L1) | LASSO tipi düzenlileştirme | 0-1 arası |
| reg_lambda (L2) | Ridge tipi düzenlileştirme | 1-10 arası |
| min_child_weight | Yaprak düğümünde min. gradient toplamı | 1-10; yüksek değerler aşırı öğrenmeyi önler |
5.5 LightGBM ve CatBoost
LightGBM -- Büyük Veri İçin Optimize
LightGBM, Microsoft tarafından geliştirilmiş olup iki temel yenilik getirir:
Yaprak tabanlı ağaç büyümesi: XGBoost seviye tabanlı (level-wise) büyürken, LightGBM yaprak tabanlı (leaf-wise) büyür. Yani en büyük hata düşümüne yol açacak yaprağı bölerek daha hızlı öğrenme sağlar. Bu, özellikle büyük uydu veri setleriyle çalışırken önemli hız avantajı verir.
Histogram tabanlı bölme: Sürekli özellikleri ayrık bölmelere (bins) dönüştürerek bölme hesaplamalarını hızlandırır. 10 milyon pikselli bir uydu görüntüsü veri setinde bu fark saatlerden dakikalara düşebilir.
Tarımsal uygulamada LightGBM, özellikle uydu türetilmiş özellik kümeleri (yüzlerce spektral bant ve indeks) ile çalışırken tercih edilir.
CatBoost -- Kategorik Verinin Gücü
CatBoost (Yandex), kategorik değişkenleri otomatik olarak işler. Tarımsal veri setlerinde "ürün çeşidi", "toprak sınıfı", "sulama tipi", "bölge" gibi birçok kategorik alan bulunur. CatBoost, bu değişkenleri one-hot kodlama yapmadan doğrudan modele dahil eder.
Ek avantajı: varsayılan hiperparametreleri çok iyidir, kapsamlı ayarlama gerektirmez -- bu açıdan RF'ye benzer bir kolaylık sunar.
5.6 Boosting vs Random Forest: Tarımsal Karşılaştırma
| Senaryo | Tercih | Neden |
|---|---|---|
| Küçük veri seti (< 500 örnek) | Random Forest | Aşırı öğrenmeye daha dayanıklı |
| Büyük, temiz veri seti (> 5000 örnek) | XGBoost/LightGBM | Daha yüksek tahmin doğruluğu |
| Çok sayıda kategorik değişken | CatBoost | Otomatik kategorik işleme |
| Hızlı prototipleme, az ayarlama | Random Forest | Varsayılan parametreler iyi |
| Maksimum tahmin doğruluğu gerektiren | XGBoost + Optuna | Dikkatli hiperparametre araması |
| Gürültülü, eksik verili tarla verisi | Random Forest | Dayanıklılık |
| Büyük uydu veri setleri | LightGBM | Hız ve bellek verimliliği |
Ennaji et al. (2024) çalışması bu farkı somutlaştırır: hiperparametre ayarlaması öncesi RF R-kare=0.71 ile XGBoost (R-kare=0.84) rekabetçi konumdaydı. Ancak ayarlama sonrası RF R-kare=0.51'e düşmüş, XGBoost R-kare=0.87'ye yükselmiştir. Bu, RF'nin varsayılan parametrelerle iyi ama ayarlama sonrası düşebileceğini, XGBoost'un ise ayarlamayla büyük fayda gördüğünü gösterir.
5.7 Araştırma Örneği 1: XGBoost ile Mısır Verim Tahmini
Ennaji et al. (2024) -- Çin'de yetiştirilen elit mısır hibriti ZhengDan 958 için 1.700'den fazla veri noktası kullanılarak sekiz farklı makine öğrenmesi algoritması karşılaştırılmıştır.
Sonuçlar (5-katlı çapraz doğrulama)
| Model | R-kare (ayarlama öncesi) | R-kare (ayarlama sonrası) | RMSE (ton/ha) |
|---|---|---|---|
| XGBoost | 0.84 | 0.87 | 0.41 |
| GBR | 0.83 | 0.86 | 0.43 |
| MLP (sinir ağı) | 0.72 | 0.75 | 0.55 |
| Random Forest | 0.71 | 0.51 | 0.78 |
| SVR | 0.69 | 0.72 | 0.59 |
| kNN | 0.64 | 0.68 | 0.63 |
Diebold-Mariano istatistiksel testi, XGBoost'un diğer tüm modellerden anlamlı şekilde üstün olduğunu doğrulamıştır.
Özellik Önem Farklılıkları -- Algoritmanın Bakış Açısı
Bu çalışmanın en ilginç bulgularından biri, farklı algoritmaların farklı değişkenleri önemli bulmasıdır:
- XGBoost: 2 metre irtifadaki minimum sıcaklık en büyük etkiye sahip -- meteorolojik değişkenlere odaklanmış
- Random Forest: Toprak organik maddesi (SOM) ve Olsen-P (yarayışlı fosfor) -- toprak özelliklerine odaklanmış
Bu farklılık, algoritmaların aynı veri setinde farklı etkileşim yapılarını yakaladığını gösterir. Pratik anlamı: tek bir algoritmaya güvenmek yerine birden fazla model kullanmak, farklı faktörlerin etkisini ortaya çıkarabilir.
Mısır Veriminde 2 m Minimum Sıcaklığın Önemi
XGBoost'un minimum sıcaklığı en önemli değişken olarak belirlemesi, agronomi açısından anlamlıdır: mısırda gece sıcaklıklarının düşük olması, gündüz fotosentezle biriken besinlerin gece solunumla tüketilmesini azaltır. Yüksek gece sıcaklıkları ise bitkinin enerji dengesi üzerinde stres yaratır. Bu bulgu, makine öğrenmesinin bilinen agronomik ilişkileri veriden yeniden keşfedebileceğini göstermektedir.
5.8 Araştırma Örneği 2: AdaBoost ile Ürün Sınıflandırma
Sri Nagesh et al. (2024) -- FAO ve Dünya Bankası verilerinden derlenen 33 özellikli bir veri setinde altı ürün (soya fasulyesi, mısır, patates, pirinç, buğday ve sorgum) sınıflandırılmıştır.
AdaBoost -- Artırmanın En Basit Formu
AdaBoost (Adaptive Boosting), gradyan artırmanın özel bir formudur. Her yanlış sınıflandırılan örneğin ağırlığını artırır, böylece sonraki ağaçlar "zor" örneklere daha fazla odaklanır.
Tarımsal benzetme: Bir ziraat mühendisi domates ve biber yapraklarını kolayca ayırt edebilir ama buğday ve arpa yapraklarını karıştırır. AdaBoost, mühendisi karıştırdığı örneklere daha fazla çalıştırarak zayıf yönlerini güçlendirir.
Sonuçlar
| Model | Doğruluk | Kesinlik | F1 Skoru |
|---|---|---|---|
| AdaBoost + GLCM özellik seçimi | %98 | %99 | %99 |
| AdaBoost (GLCM olmadan) | %94 | %95 | %95 |
| YSA (Yapay Sinir Ağı) | %94 | %95 | %94 |
| kNN | %84 | %85 | %84 |
Özellik Seçiminin Etkisi
GLCM (Gri Seviye Eş-Oluşma Matrisi) özellik seçimi, AdaBoost'un doğruluğunu %94'ten %98'e yükseltmiştir -- 4 puanlık artış. Bu, özellik mühendisliğinin (Ders 1'de işledik) model performansı üzerindeki etkisini somutlaştırır.
GLCM özellikleri, uydu görüntülerindeki doku yapılarını -- yani komşu pikseller arasındaki ilişkileri -- yakalar. Farklı ürünlerin farklı kanopi yapılarında (mısırın geniş yaprakları vs buğdayın ince yaprakları) farklı doku örüntüleri oluşturması, bu özelliklerin sınıflandırma gücünü açıklar.
Boosting + Özellik Seçimi Sinerjisi
Bu çalışmanın en önemli mesajı şudur: gradyan artırma algoritmaları güçlüdür, ancak özellik mühendisliği ile birleştirildiğinde çok daha güçlü olur. Ham veriyi doğrudan modele vermek yerine, alana özgü özellikler (GLCM doku metrikleri, spektral indeksler, fenolojik değişkenler) tasarlamak performansı önemli ölçüde artırır.
5.9 Pratik Uygulama: Tarımsal XGBoost İş Akışı
Bir verim tahmin modelinin tipik XGBoost iş akışı:
1. Veri toplama
├── Uydu verileri (NDVI, EVI zaman serileri)
├── Meteoroloji (sıcaklık, yağış, GDD)
├── Toprak analizleri (OC, pH, tekstür)
└── Yönetim (gübre, sulama, ekim tarihi)
2. Özellik mühendisliği
├── NDVI_maks, NDVI_tepe_zamanı
├── Kümülatif GDD, kuraklık günleri
└── Toprak su kapasitesi x yağış etkileşimi
3. Veri bölme (zamansal)
├── Eğitim: 2015-2020
├── Doğrulama: 2021
└── Test: 2022
4. Hiperparametre optimizasyonu (Optuna)
├── Öğrenme oranı: 0.01-0.3
├── Derinlik: 3-10
├── Ağaç sayısı: erken durdurma ile
└── Düzenlileştirme: reg_alpha, reg_lambda
5. Eğitim + erken durdurma
6. Test seti değerlendirme
7. Özellik önemliliği analizi → agronomik yorum
5.10 Özet: Gradyan Artırmanın Tarımsal Değeri
Gradyan artırma yöntemleri (XGBoost, LightGBM, CatBoost), tarımsal tablo verilerinde en yüksek tahmin doğruluğunu sunan yöntemlerdir. Ancak bu güç, dikkatli hiperparametre ayarlaması ve doğru veri bölme stratejisi gerektirir.
Temel kaideler: - Küçük veri, gürültülü koşullar: Random Forest ile başla - Büyük veri, maksimum doğruluk: XGBoost veya LightGBM kullan - Çok kategorik değişken: CatBoost değerlendir - Her durumda: Özellik mühendisliği algoritmadan daha önemlidir - Her durumda: Zamansal veya mekânsal veri bölme stratejisi kullan
Sonraki ders: Destek Vektör Makineleri ve k-En Yakın Komşu -- Spektral Veride Üstünlük