Ваша інтуїція правильна. Ця відповідь лише ілюструє це на прикладі.
Дійсно поширене неправильне уявлення про те, що CART / RF якимось чином є надійними для людей, що переживають люди.
Щоб проілюструвати відсутність стійкості РФ до наявності єдиного аутлайнера, ми можемо (злегка) змінити код, використаний у відповіді Сорена Хавелунда Веллінга вище, щоб показати, що одного «у» виходу людей достатньо, щоб повністю зрушити встановлену модель РФ. Наприклад, якщо обчислити середню похибку передбачення незабруднених спостережень як функцію відстані між зовнішньою стороною та рештою даних, ми можемо побачити (зображення нижче), що вводить одне зовнішнє (замінивши одне з вихідних спостережень за довільним значенням у просторі 'y' достатньо, щоб витягнути прогнози моделі РФ довільно далеко від значень, які вони мали б, якби обчислити вихідні (незабруднені) дані:
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")
Як далеко? У наведеному вище прикладі одиночний настільки змінив придатність настільки, що середня помилка передбачення (для незабруднених) спостережень зараз становить 1-2 порядки більша, ніж це було б, якби модель була встановлена на незабруднених даних.
Отже, неправда, що жоден зовнішній вигляд не може впливати на придатність РФ.
Крім того, як я зазначаю в інших місцях , з людьми, що переживають люди, набагато складніше впоратися, коли їх потенційно декілька (хоча вони не повинні мати велику частку даних, щоб виявити їх ефекти). Звичайно, забруднені дані можуть містити більше одного чужорідного; щоб виміряти вплив декількох людей, що переживають, на RF придатність, порівняйте графік зліва, отриманий від РФ на незабруднені дані, на графік праворуч, отриманий шляхом довільного зміщення 5% значень відповідей (код нижче відповіді) .
Нарешті, в контексті регресії важливо зазначити, що люди, що випадають, можуть виділятися з основної маси даних як в дизайні, так і в просторі реакції (1). У специфічному контексті РФ, дизайнерські структури впливатимуть на оцінку гіпер-параметрів. Однак цей другий ефект проявляється більше, коли кількість вимірів велике.
Те, що ми спостерігаємо тут, є окремим випадком більш загального результату. Надзвичайна чутливість до людей, що переживають багатоваріантні методи пристосування даних, засновані на опуклих функціях втрат, була виявлена багато разів. Дивіться (2) для ілюстрації в конкретному контексті методів ML.
Редагувати.
т
с∗= аргмаксс[ сLвар ( тL( и ) ) + сRвар ( тR( с ) ) ]
тLтRс∗тLтRсpLтLpR= 1 - сLтR. Тоді можна надати стійкості "y" -простору деревам регресії (і, таким чином, РФ), замінивши функціональну дисперсію, використану в початковому визначенні, на надійну альтернативу. Це, по суті, підхід, використаний у (4), коли дисперсія замінена надійною M-оцінкою шкали.
- (1) Розв’язування багатоваріантних випускників та очок важеля. Peter J. Rousseeuw та Bert C. van Zomeren Журнал Американської статистичної асоціації Vol. 85, № 411 (вересень, 1990), стор 633-639
- (2) Шум випадкової класифікації перемагає всі випуклі потенційні підсилювачі. Філіп М. Лонг та Рокко А. Серведіо (2008). http://dl.acm.org/citation.cfm?id=1390233
- (3) К. Бекер та У. Гетер (1999). Точка розбиття маскування багатовимірних правил ідентифікації зовнішньої форми.
- (4) Галімберті, Г., Піллаті, М., Соффріті, Г. (2007). Міцні дерева регресії на основі M-оцінок. 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)]))