Rastgele ormanlar aykırı değerlere nasıl duyarlı değildir?


33

Ben dahil olmak üzere birkaç kaynaklardan okudum bu bir Rastgele Ormanlar (örneğin, Lojistik Regresyon ve diğer ML yöntemlerdir bu şekilde) uçlara karşı duyarlıdır olmadığını.

Ancak iki sezgi bana aksini söylüyor:

  1. Bir karar ağacı ne zaman yapılırsa, bütün puanların sınıflandırılması gerekir. Bu, aykırıların bile sınıflandırılacağı ve dolayısıyla yükseltme sırasında seçildikleri karar ağaçlarını etkileyeceği anlamına gelir.

  2. Önyükleme, RandomForest'in alt örneklemeyi nasıl yaptığının bir parçasıdır. Önyükleme, aykırı değerlere karşı hassastır.

Sezgilerimi aykırı değerlere karşı duyarlılığı konusundaki sezgilerimle aynı fikirde olmayan kaynaklarla uzlaştırmanın bir yolu var mı?


Aşağıdaki cevap çok iyi. Sezgisel cevap, karar ağacının bölmeler üzerinde çalıştığı ve bölmelerin aykırı kesimlere karşı duyarlı olmadığıdır: bölünmeler, onları ayırmak için iki nokta grubu arasında yalnızca herhangi bir yere düşmek zorundadır.
Wayne

Ben eğer varsayalım Yani min_samples_leaf_nodeolduğunu 1, o zaman aykırı duyarlı olabilir.
Hunle

evet min_samples ve bootstrap sample, RF regresyonunda 1b aykırı değerlerin etkisini tamamen kaldırabilir
Soren Havelund Welling

Bazı istatistikçiler tahminen anlayabilen ve anlayabilen bu innererler hakkında bir tünel görüşü edinmiştir. Aykırı olanları 'bilinmeyenler' olarak değerlendirip iş modelinizin onlara karşı kırılgan olup olmadığını merak edin. Bazı aykırılıklar temelde tahmin edilemez, ancak etkileri çok gerçektir ... N.
Taleb'in

Yanıtlar:


21

Sezginiz doğru. Bu cevap sadece örnek olarak gösteriliyor.

Gerçekten de , CART / RF'nin aykırılara bir şekilde sağlam olduğu yaygın bir yanılgıdır.

RF'nin sağlamlık eksikliğini tek bir aykırı varlığın varlığına göstermek için, yukarıdaki tek bir 'y' ayracının takılan RF modelini tamamen sallamak için yeterli olduğunu göstermek için yukarıdaki Soren Havelund Welling'in cevabında kullanılan kodu (hafifçe) değiştirebiliriz . Örneğin , kirlenmemiş gözlemlerin ortalama tahmin hatasını ana hat ile verinin geri kalanı arasındaki mesafenin bir fonksiyonu olarak hesaplarsak, tek bir dış hat vericinin girişini (orijinal gözlemlerden birini değiştirerek ) görebiliriz (aşağıdaki resim) y-uzayı üzerindeki rastgele bir değere göre, RF modelinin tahminlerini orijinal (kirlenmemiş) verilere göre hesaplanırsa, sahip olacakları değerlerden keyfi bir şekilde uzağa çekmek yeterlidir:

 library(forestFloor)
library(randomForest)
library(rgl)
set.seed(1)

X = data.frame(replicate(2,runif(2000)-.5))
y = -sqrt((X[,1])^4+(X[,2])^4)
X[1,]=c(0,0);
y2<-y
rg<-randomForest(X,y)   #RF model fitted without the outlier
outlier<-rel_prediction_error<-rep(NA,10)

for(i in 1:10){
    y2[1]=100*i+2
    rf=randomForest(X,y2)   #RF model fitted with the outlier
    rel_prediction_error[i]<-mean(abs(rf$predict[-1]-y2[-1]))/mean(abs(rg$predict[-1]-y[-1]))
    outlier[i]<-y2[1]
}
plot(outlier,rel_prediction_error,type='l',ylab="Mean prediction error (on the uncontaminated observations) \\\ relative to the fit on clean data",xlab="Distance of the outlier")

görüntü tanımını buraya girin

Ne kadar uzak? Yukarıdaki örnekte, tek aykırı uygunluğu o kadar değiştirmiştir ki, ortalama tahmin hatası (kirlenmemiş olan) gözlemleri şimdi , modelin kirlenmemiş verilere yerleştirilmiş olması durumunda , tahmin edilebileceğinden 1-2 kat daha büyüktür.

Bu nedenle, tek bir saldırganın RF uyumunu etkileyemediği doğru değildir.

Ayrıca, başka bir yere de işaret ettiğim gibi , aykırı değerler potansiyel olarak bunlardan birkaçının olduğu durumlarda başa çıkmakta daha zordur ( etkilerinin ortaya çıkması için verilerin büyük bir kısmına ihtiyaç duymamalarına rağmen ). Tabii ki, kirli veriler birden fazla aykırı içerebilir; Birkaç aykırı bağlayıcının RF uyumu üzerindeki etkisini ölçmek için, RF'den elde edilen soldaki kontamine olmayan veriler üzerindeki arsa ile cevap değerlerinin% 5'ini keyfi bir şekilde kaydırarak elde edilen sağdaki arsa ile karşılaştırın (kod cevabın altındadır) .

görüntü tanımını buraya girin görüntü tanımını buraya girin

Son olarak, regresyon bağlamında, aykırı değerlerin hem tasarım hem de yanıt alanındaki (1) verilerin büyük bir kısmından öne çıkabileceğini belirtmek önemlidir (1). Özel RF bağlamında, tasarım aykırı değerler, hiper parametrelerin tahminini etkileyecektir. Bununla birlikte, bu ikinci etki, boyut sayısı büyük olduğunda daha belirgindir.

Burada gözlemlediğimiz şey, daha genel bir sonuç için özel bir durumdur. Dışbükey kayıp fonksiyonlarına dayanan çok değişkenli veri uydurma yöntemlerinin dışlayıcılarına aşırı duyarlılık birçok kez keşfedilmiştir. ML metotlarının spesifik bağlamındaki gösterimi için bakınız (2).

Düzenle.

Neyse ki, temel CART / RF algoritması kesin olarak aykırılıklara karşı sağlam olmamakla birlikte, "y" -çapçılarına sağlamlık kazandırmak için prosedürü değiştirmek mümkündür (ve sessizdir). Şimdi RF regresyonuna odaklanacağım (çünkü bu daha spesifik olarak OP'nin sorusunun amacı). Daha doğrusu, keyfi bir düğüm için bölme ölçütünü :t

s=argmaxs[pLvar(tL(s))+pRvar(tR(s))]

burada ve çocuk ortaya çıkmaktadır seçimine bağlıdır düğümlerin ( ve örtülü işlevlerdir ) ve sol çocuk düğüme düşen veri kısmını belirtmektedir ve payı verilerin . Ardından, orijinal tanımda kullanılan işlevselliği yerine sağlam bir alternatif ile değiştirerek regresyon ağaçlarına (ve dolayısıyla RF'lere) "y" alanı sağlamlığı verebilir. Bu aslında (4) 'te kullanılan yaklaşımdır ve varyansın yerine sağlam bir M-tahmincisi kullanılmıştır.tLtRstLtRspLtLpR=1pLtR

  • (1) Çok Değişkenli Aykırı Değerlerin ve Kaldıraç Noktalarının Maskesinin Kaldırılması. Peter J. Rousseeuw ve Bert C. van Zomeren Amerikan İstatistik Kurumu Dergisi Cilt. 85, No. 411 (Eylül 1990), sayfa 633-639
  • (2) Rastgele sınıflandırma gürültüsü, tüm dışbükey potansiyel güçlendiricileri alt eder. Philip M. Long ve Rocco A. Servedio (2008). http://dl.acm.org/citation.cfm?id=1390233
  • (3) C. Becker ve U. Gather (1999). Çok Değişkenli Outlier Tanımlama Kurallarının Maskeleme Dağılma Noktası.
  • (4) Galimberti, G., Pillati, M., & Soffritti, G. (2007). M-tahmin edicilere dayalı sağlam regresyon ağaçları. Statistica, LXVII, 173-190.

    library(forestFloor)
    library(randomForest)
    library(rgl)
    set.seed(1)

    X<-data.frame(replicate(2,runif(2000)-.5))
    y<--sqrt((X[,1])^4+(X[,2])^4)
    Col<-fcol(X,1:2) #make colour pallete by x1 and x2
    #insert outlier2 and colour it black
    y2<-y;Col2<-Col
    y2[1:100]<-rnorm(100,200,1);    #outliers
    Col[1:100]="#000000FF" #black

    #plot training set
    plot3d(X[,1],X[,2],y,col=Col)
    rf=randomForest(X,y)    #RF on clean data
    rg=randomForest(X,y2)   #RF on contaminated data
    vec.plot(rg,X,1:2,col=Col,grid.lines=200)
    mean(abs(rf$predict[-c(1:100)]-y[-c(1:100)]))
    mean(abs(rg$predict[-c(1:100)]-y2[-c(1:100)]))

Detaylı cevabınız için teşekkürler. Aynı yüksek boyutlu uzayda birkaç aykırı varsa, “aykırı” olarak adlandırmamızdaki kriterlerimiz nedir? Bu durumda hangi hiper parametrelerin ayarlanabileceğini merak ediyorum, böylece bir primer için bir tür kriter belirleyebiliyorum.
Hunle

1
Cevaplarıma önceki yorumlarımı ekledim. Umarım şimdi sorunuzu yanıtlamak daha iyi bir iş çıkarır!
user603

1
Teşekkürler. Nelerdir pve sformülde?
Hunle

1
Kombine ayraçlar (1a + 2) neden kötü? Örnekte, RF modeli veri yapısına mükemmel,% 99,99 OOB MSE'ye uyar. İki küme arasındaki orta toprağın model yapısı oldukça kaba, evet ve modelden verilerden çok bir ürün. Ancak, bu bilinmeyen alanda çıkarım ve / veya öngörüler olmamalıdır, bu yüzden önemli değil. Aykırı değerlere karşı mutlak sağlamlık, kaçınılmaz olarak, nadir ancak belki de önemli olayları görmezden gelmektir. Çoğu ML algosu, varsayılan olarak sağlamlık ve 'esneklik' arasında ortada durur; ancak sağlamlığı artırmak için ince ayar yapılabilir.
Soren Havelund Welling

1
@ user603 Karanlığın Kalbinden başka, teknik tartışmaya eklenecek bir şey yok, Karanlığın Kalbinden başka bir çocuk olarak en sevdiğim kitaptı, Franz Kafka'nın Denemesi yakın bir saniye (belki de bitmiş ve belki de İngilizce yazılmışsa ilk olabilir) Yine, belki bitmedi ki uyuyordu). Ben bunu dıştan görünüşe göre düşünmedim, bunun dışında, Karanlığın Kalbini ve Denemeleri, BS denizinin "ciddi edebiyatı" arasında (iyi) aykırı olarak düşündüğümden başka bir şey olarak düşünmemiştim. üzerinde benzer bir analiz.
Mark L. Stone

11

outlier 1a: Bu outlier bir veya daha fazla ekstrem özellik değerine sahiptir ve diğer numunelere uzak bir yere yerleştirilir. Aykırı, ağaçların başlangıçtaki bölünmelerini diğer herhangi bir örnek olarak etkileyecektir, bu nedenle güçlü bir etkisi yoktur. Diğer numunelere yakınlığı düşük olacak ve sadece model yapısını özellik alanının uzak bir bölümünde tanımlayacaktır. Tahmin sırasında yeni numunelerin çoğunun bu aykırı olması muhtemel değildir ve nadiren aynı terminal düğümünde sonuçlanır. Ayrıca karar ağaçları özellikleri sıralı (sıralama) gibi görür. Değer, kırılma noktasına eşit veya daha küçük ya da daha büyüktür, bu nedenle bir özellik değerinin aşırı uç nokta olup olmadığı önemli değildir.

outlier 1b: Sınıflandırma için, tek bir örnek, farklı bir sınıfın birçok örneğinin ortasına gömüldüğünde, outlier olarak kabul edilebilir. Öntanımlı bir RF modelinin bu tek sınıf örnekleminden nasıl etkileneceğini daha önce tarif ettim, ancak yalnızca numuneye çok yakın.

outlier 2: Bu outlier, belki de diğer değerlerden birçok kat daha yüksek bir uç hedef değerine sahiptir, ancak özellik değerleri normaldir. Ağaçların bir .631 kesri bu örnekle birlikte bir uç düğüme sahip olacaktır. Model yapısı yerel olarak yerelden etkilenecek. Model yapısının özellikle özellik eksenine paralel olarak etkilendiğine dikkat edin, çünkü düğümler tek değişken olarak bölünmüştür.

Outlier_2'nin RF regresyon simülasyonunu dahil ettim. 1999 puanları yuvarlatılmış düz bir yapıdan alınmış ve daha yüksek hedef değeri olan bir outlier (y = 2, = 0, = 0). Eğitim seti sola doğru gösterilir. Öğrenilen RF model yapısı doğru gösterilir.y=(x14+x24)12x1x2

görüntü tanımını buraya girin

library(forestFloor)
library(randomForest)
library(rgl)
set.seed(1)

X = data.frame(replicate(2,runif(2000)-.5))
y = -sqrt((X[,1])^4+(X[,2])^4)^1
Col = fcol(X,1:2) #make colour pallete by x1 and x2
#insert outlier2 and colour it black
X[1,] = c(0,0);y[1]=2 ;Col[1] = "#000000FF" #black

#plot training set
plot3d(X[,1],X[,2],y,col=Col)

rf = randomForest(X,y)
vec.plot(rf,X,1:2,col=Col,grid.lines = 400)

EDIT: kullanıcı603 yorum

Evet, hedef ölçekte aşırı aykırı değerler için, RF'yi çalıştırmadan önce hedef ölçeğini dönüştürmeyi düşünmelisiniz. RandomForest'i çırpınan bir robustModel () işlevinin altına ekledim. Diğer bir çözüm, eğitimden önce dönüşümün kaydedilmesi olacaktır.

.
##---code by user603
library(forestFloor)
library(randomForest)
library(rgl)
set.seed(1)

X<-data.frame(replicate(2,runif(2000)-.5))
y<--sqrt((X[,1])^4+(X[,2])^4)
Col<-fcol(X,1:2) #make colour pallete by x1 and x2

#insert outlier2 and colour it black
y2<-y;Col2<-Col
y2[1:100]<-rnorm(100,200,1);    #outliers
Col2[1:100]="#000000FF" #black
##---

#function to make models robust
robustModel = function(model,keep.outliers=TRUE) {
  f = function(X,y,lim=c(0.1,.9),keep.outliers="dummy",...) {
  limits = quantile(y,lim)
  if(keep.outliers) {#keep but reduce outliers
  y[limits[1]>y] = limits[1] #lower limit
  y[limits[2]<y] = limits[2] #upper limit
  } else {#completely remove outliers
    thrashThese = mapply("||",limits[1]>y,limits[2]>y)
    y = y[thrashThese]
    X = X[thrashThese,]
  }
  obj = model(x=X,y=y,...)
  class(obj) = c("robustMod",class(obj))
  return(obj)
  }
  formals(f)$keep.outliers = keep.outliers
  return(f)
}

robustRF = robustModel(randomForest) #make RF robust
rh = robustRF(X,y2,sampsize=250)     #train robustRF
vec.plot(rh,X,1:2,col=Col2)          #plot model surface
mean(abs(rh$predict[-c(1:100)]-y2[-c(1:100)]))

görüntü tanımını buraya girin


"Başka bir tahmin etkilenmeyecek" yazıyorsunuz. Tek alıcınızı yerleştirmek için kaydırırsanız, tek tek elinizle kirlenmemiş gözlemlerdey[1]=200 tahmin hatasının 20 faktöre atlamasına neden olduğunu göreceksiniz !
user603

@ user603 Doğru, Bu gibi durumlarda, hedef ölçek RF'ye teslim edilmeden önce monoton bir biçimde dönüştürülebilir. 'RobustModel: modelleri daha güçlü kıldım' cevabıma cevap verdim ..... tabii ki böylesi rastgele hedef ayraçları (tip 2) tahmin etmek imkansız kalır, ancak kalan model yapısının sıkıntı çekmesi gerekmez
Soren Havelund Welling

Günlük dönüşümü, genel olarak aykırılıklara karşı bir çözüm değildir (sadece sorunu gizler). Teklif ettiğiniz RF'nin sağlamlaştırılması, esasen Galimberti, G., Pillati, M. ve Soffritti, G.’de savunulan yaklaşımdır (cevabımı görün). Asıl fark, '' robustModel '' yaklaşımınızın cevap alanında% 25'lik bir maksimum kırılma noktasına sahip olması (% 25 veya isteğe bağlı 'y'-outliers'a dayanabilir), ancak% 50'lik bir bdp'ye sahip olmasıdır. tasarım alanındaki
aykırılara karşı

8

Aykırı değerlere karşı dayanıklı olan Rastgele Orman algoritmasının kendisi değil, temel aldığı temel öğrenicidir: karar ağacı . Karar ağaçları atipik gözlemleri küçük yapraklara ayırır (yani orijinal alanın küçük alt alanları). Ayrıca, karar ağaçları yerel modellerdir. Aynı denklemin tüm alan için geçerli olduğu doğrusal regresyondan farklı olarak, her bir alt alana (yani her bir yaprağa) yerel olarak çok basit bir model yerleştirilmiştir.

  • Regresyon durumunda, genellikle çok düşük dereceli bir regresyon modelidir (genellikle yapraktaki gözlemlerin ortalaması).
  • Sınıflandırma için oy çokluğudur.

Bu nedenle, örneğin, regresyon için, aşırı değerler yerel olarak ortalaması alındıklarından tüm modeli etkilemezler. Bu yüzden diğer değerlere uygunluk etkilenmez.

Aslında, bu arzu edilen özellik, dendogramlar gibi diğer ağaç benzeri yapılara taşınır. Örneğin, hiyerarşik kümeleme, uzun süredir veri temizliği için kullanılmıştır çünkü anormal gözlemleri otomatik olarak küçük kümelere ayırır. Örneğin Loureiro ve ark. (2004). Kümeleme yöntemlerle uç değer bulma: bir veri temizleme uygulaması .

Bu nedenle, özetle, RF, özyinelemelere özyinelemeli bölümleme ve yerel model uydurma dengesizliğini miras alır .

Karar ağaçlarının düşük önyargılı ancak yüksek değişkenlikli modeller olduğunu unutmayın: yapıları, eğitim setinde küçük bir değişiklik yapıldığında değişebilir (birkaç gözlemin kaldırılması veya eklenmesi). Ancak bu aykırı değerlere duyarlılıkla karıştırılmamalıdır, bu farklı bir konudur.


Aslında aykırı değerlerin tespiti için önerdiğiniz gibi bir kümeleme yöntemi kullanmayı düşünmüştüm. Ancak, kümelemenin nereye uygulanacağından emin değilim. Veriye mi uygulanmalı labeledyoksa unlabeled? Peki bu kümelenme hem kategorik hem de sayısal özellikler içeren heterojen veriler üzerinde nasıl başarılabilir?
Hunle
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.