2013-09-06 11 views
5

W jaki sposób implementacja R drzew wzmocnionych regresji (pakiet gbm) domyślnie zajmuje się brakującymi wartościami zmiennych predykcyjnych? Czy są one przypisane, a jeśli tak, to według którego algorytmu?R: W jaki sposób wzmocnione drzewa regresji radzą sobie z brakującymi danymi?

Kontekst mojego pytania: Zrobiłem analizę prawie rok temu i wykorzystałem skrypty dostarczone przez Elith i in. 2008 (Przewodnik po ulepszonych drzewach regresji, Journal of Animal Ecology 77, 802-813) w celu wywołania gbm. Teraz zdałem sobie sprawę, że mam pewne NA dla niektórych zmiennych predykcyjnych i zastanawiam się, jak radzą sobie z nimi wzmocnione drzewa regresji. Przeglądając różne podręczniki i artykuły stwierdziłem, że stwierdzenia takie jak "wzmocnione drzewa regresji mogą pomieścić brakujące wartości" i podobne, ale nie mogłem znaleźć dokładnego opisu, co robi gbm z brakującymi wartościami. Sama analiza przebiegła bezproblemowo, więc gbm musiał poradzić sobie z nimi w taki czy inny sposób. W podręczniku gbm znajduje się nawet przykład, w którym celowo wprowadzono NAs, aby wykazać, że gbm działa bez problemów. Teraz chciałbym wiedzieć, co gbm dokładnie robi z NA (pomiń je, przypisz, ...?).

+3

To pytanie wydaje się być nie na temat, ponieważ jest o realizacji algorytmu statystycznego. Być może lepiej pasuje do Cross Validated. –

+0

@ SimonO101: Wątpiłem, który z nich będzie właściwym forum. Opublikuję go w Crossvalidated. – user7417

+0

Zostawię to na jakiś czas - strona jest uruchamiana przez społeczność. Jeśli jest zgoda co do tego, że nie jest to tematem, to pytanie zostanie zamknięte, a Ty będziesz pytać o CV. W tej chwili to tylko ja, który uważa, że ​​lepiej nadaje się do CV! –

Odpowiedz

3

Funkcja gbm może być użyta do imputacji as described in Jeffrey Wongs blog:. Brakujące wartości otrzymują zastępcze podziały, a użytkownik może następnie uzyskać prognozy dla iems z niepełnymi zestawami predykcyjnymi.

Opracował pakiet oparty na tym podejściu. GitHub repo ma to w nagłówku do jednego z plików dla GBM:

#' GBM Imputation 
#' 
#' Imputation using Boosted Trees 
#' Fill each column by treating it as a regression problem. For each 
#' column i, use boosted regression trees to predict i using all other 
#' columns except i. If the predictor variables also contain missing data, 
#' the gbm function will itself use surrogate variables as substitutes for the predictors. 
#' This imputation function can handle both categorical and numeric data. 

Aby to ja po prostu znaleźć to wpisane w wyszukiwarce Google: jak radzi sobie GBM z brakującymi wartościami. To był dla mnie drugi hit.

https://github.com/jeffwong/imputation/blob/master/R/gbmImpute.R

+0

Wygląda to jak funkcja 'gbmImpute' w pakiecie' imputation', a nie na pakiecie 'gbm', o który prosi ... – Spacedman

+0

Czy dodany kod wykorzystujący gbm w blogu Wonga odpowiada na pytanie. Znalazłem inne pytania i odpowiedzi z wcześniejszych w tym roku, ale nie sądziłem, że jakakolwiek odpowiedź wyjaśniła proces imputacji, jak również Wong. –

+1

Jeff Wong's to świetny kawałek kodu, a jego nagłówek odpowiada na pytanie OP na wysokim poziomie. Jak rozumiem, OP pyta o to, jak brakujące wartości są traktowane przez algorytm zwiększania gradientu, jak zaimplementowano w pakiecie gbm. Krótka odpowiedź brzmi, że są one jawnie traktowane jako rodzaj podziału wraz z podziałami lewymi i prawymi, a stosowana jest zastępcza metoda podziału (por. Dokumentacja na pakietach ada i rpart). –

Powiązane problemy