Ağaç tabanlı atama

R'de Atamaya Dayalı Eksik Veri Doldurma

Michal Oleszak

Machine Learning Engineer

Ağaç tabanlı atama yaklaşımı

Eksik değerleri tahmin etmek için makine öğrenmesini kullanın!

  • Parametrik olmayan yaklaşım: değişkenler arası ilişkilere dair varsayım yok.
  • Karmaşık doğrusal olmayan örüntüleri yakalar.
  • Basit istatistiksel modellere göre genelde daha iyi tahmin başarımı.

Bu derste: randomForest tabanlı missForest paketi

R'de Atamaya Dayalı Eksik Veri Doldurma

Karar ağaçları

Bir karar ağacı şeması: Model, Boy ve Kilo değerlerinin farklı birleşimlerine farklı Diyabet olasılıkları atıyor.

R'de Atamaya Dayalı Eksik Veri Doldurma

Rastgele ormanlar

Rastgele ormanların nasıl çalıştığını gösteren bir şema. Orijinal veriden, rastgele sütun altkümeleriyle üç çantalanmış veri kümesi üretilir. Her birine karar ağacı uydurulur ve tüm ağaçların sonuçları sonda birleştirilir.

R'de Atamaya Dayalı Eksik Veri Doldurma

missForest algoritması

  1. Eksikler için ortalama ile ilk tahmini yapın.
  2. Değişkenleri eksik oranına göre artan sırada dizin.
  3. Her x değişkeni için:
    • x’in gözlenen kısmına (diğerleri kestirici) rastgele orman uydurun.
    • x’in eksik kısmını bununla tahmin edin.
    1. adımı, atanan değerler artık çok değişmeyene dek tekrarlayın.
R'de Atamaya Dayalı Eksik Veri Doldurma

Uygulamada missForest

nhanes %>% is.na() %>% colSums()
Age     Gender     Weight     Height   Diabetes    TotChol      Pulse PhysActive 
  0          0          9          8          1         85         32         26
kütüphane(missForest)
imp_res <- missForest(nhanes)
nhanes_imp  <- imp_res$ximp
nhanes_imp %>% is.na() %>% colSums()
Age     Gender     Weight     Height   Diabetes    TotChol      Pulse PhysActive 
  0          0          0          0          0          0          0          0
R'de Atamaya Dayalı Eksik Veri Doldurma

Atama hatası

missForest() torba dışı (OOB) atama hata kestirimi sağlar:

  • Sürekli değişkenler için normalize kök ortalama kare hata (NRMSE).
  • Kategorik değişkenler için yanlış sınıflandırma oranı (PFC).

Her iki durumda da iyi performans 0’a yakın, 1 civarı ise zayıftır.

imp_res <- missForest(nhanes)
imp_res$OOBerror
      NRMSE         PFC 
0.147687025 0.003676471
R'de Atamaya Dayalı Eksik Veri Doldurma

Atama hatası

missForest() torba dışı (OOB) atama hata kestirimi sağlar:

  • Sürekli değişkenler için normalize kök ortalama kare hata (NRMSE).
  • Kategorik değişkenler için yanlış sınıflandırma oranı (PFC).

Her iki durumda da iyi performans 0’a yakın, 1 civarı ise zayıftır.

imp_res <- missForest(nhanes, variablewise = TRUE)
imp_res$OOBerror
    MSE       PFC       MSE       MSE       PFC       MSE       MSE       MSE 
0.00000   0.00000 285.79563  40.42142   0.00735   0.53444 129.03609   0.17576
R'de Atamaya Dayalı Eksik Veri Doldurma

Hız-doğruluk dengesi

Birden çok rastgele orman yetiştirmek zaman alabilir.

Fikir: Biraz doğruluktan vazgeçip ormanı küçülterek hesaplama süresini azaltmak.

  • Her ormandaki ağaç sayısını azaltın (ntree).
  • Bölmede kullanılan değişken sayısını azaltın (mtry).

Hesaplama süresine etkisi farklıdır:

  • ntree azaltımı doğrusal etki yapar.
  • mtry azaltımı, değişken çoksa hızı daha çok artırır.
R'de Atamaya Dayalı Eksik Veri Doldurma

Uygulamada hız-doğruluk dengesi

Varsayılan ayarlar:

start_time <- Sys.time()
imp_res <- missForest(nhanes)
end_time <- Sys.time()
print(imp_res$OOBerror)
print(end_time - start_time)
      NRMSE         PFC 
0.147687025 0.003676471
Time difference of 5.496582 secs

Küçültülmüş ormanlar:

start_time <- Sys.time()
imp_res <- missForest(nhanes,
                      ntree = 10,
                      mtry = 2)
end_time <- Sys.time()
print(imp_res$OOBerror)
print(end_time - start_time)
      NRMSE         PFC 
0.162420139 0.007425743
Time difference of 0.516367 secs
R'de Atamaya Dayalı Eksik Veri Doldurma

Haydi pratik yapalım!

R'de Atamaya Dayalı Eksik Veri Doldurma

Preparing Video For Download...