Dr. Mehmet Solak Siirt Üniversitesi · Ziraat Fakültesi · Biyosistem Mühendisliği · Tarım ve Tarımsal Eğitim İçin Makine Öğrenmesi İçeriği

Ders 5: Gradyan Artırma — XGBoost ve LightGBM

dersgradient-boostingxgboostlightgbmcatboostadaboostverim-tahmini

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ç

  1. 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.

  2. Kalıntı (residual) hesapla: Her örnek için hatayı hesapla.

  3. Tarla A: Gerçek verim 7.2, tahmin 6.5, kalıntı = +0.7
  4. Tarla B: Gerçek verim 5.8, tahmin 6.5, kalıntı = -0.7
  5. Tarla C: Gerçek verim 6.9, tahmin 6.5, kalıntı = +0.4

  6. 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.

  7. Tahmini güncelle: Eski tahmine, yeni ağacın çıktısını öğrenme oranı (learning rate) ile çarparak ekle.

  8. Yeni tahmin = Eski tahmin + öğrenme_oranı x Ağaç_tahmini
  9. Tarla A: 6.5 + 0.1 x 6.8 = 6.5 + 0.68 = 7.18 (gerçek: 7.2, hata azaldı)

  10. 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:

  1. 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.

  2. 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.

  3. Erken durdurma: Doğrulama performansı iyileşmeyi bırakınca eğitimi otomatik olarak durdurur.

  4. 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.

  5. 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