2012-01-22 14 views
31

Wykonuję zadanie regresji - czy muszę normalizować (lub skalować) dane dla randomForest (pakiet R)? I czy konieczne jest skalowanie również wartości docelowych? A jeśli - chcę używać funkcji scale z pakietu caret, ale nie znalazłem sposobu na odzyskanie danych (usuwanie kamienia, denormalizacja). Czy nie wiesz o jakiejś innej funkcji (w jakimkolwiek pakiecie), która jest pomocna przy normalizacji/denormalizacji? Dzięki MediolanCzy muszę znormalizować (lub skalować) dane dla randomForest (pakiet R)?

+6

Funkcja 'scale' nie należy do' caret'. Jest częścią pakietu "podstawowego" R. Istnieje funkcja 'unscale', która odwróci transformację. –

Odpowiedz

1

nie widzę żadnych sugestii ani w stronę pomocy lub winieta sugerujący skalowanie jest konieczne dla zmiennej regresji w randomForest. This example at Stats Exchange nie używa skalowania.

Kopia mojego komentarza: Funkcja scale nie należy do pkg: caret. Jest częścią pakietu "podstawowego" R. Istnieje funkcja unscale w pakietach grt i DMwR, która odwróci transformację lub po prostu pomnożysz przez atrybut scale, a następnie dodasz wartości atrybutu center.

Twoja koncepcja, dlaczego "normalizacja" musi być wykonana, może wymagać krytycznej analizy. Test nienormalności jest potrzebny tylko po zakończeniu regresji i może nie być wcale potrzebny, jeśli nie ma żadnych założeń normalności w dobroci metodologii dopasowania. Więc: dlaczego pytasz? Wyszukiwanie w SO i Stats.Exchange może okazać się przydatne: citation #1; citation #2; citation #3

Funkcja jest powszechnie używaną tranformacją, gdy nie ma się wcześniejszej wiedzy o tym, czym powinien być podział i kiedy naprawdę trzeba przeprowadzić transformację. Istnieje wiele pułapek w stosowaniu transformacji, więc fakt, że musisz zadać to pytanie, budzi obawy, że możesz potrzebować dalszych konsultacji lub samokształcenia.

+0

Rozumiem normalizację w moim pytaniu jako prostą liniową transformację danych do np. przedział 0-1. Należy to zrobić np. podczas korzystania z sieci neuronowych. To, czego potrzebowałem, gdy zapytałem, odpowiedział Hong Ooi. Nie znalazłem funkcji, którą zasugerowałeś. Ale dzięki za twój wysiłek. – gutompf

+0

Dodano cytaty, aby odpowiedzieć na twoje drugie pytanie. –

+0

Ja przepraszam - przeoczyłem, że unscale to pakiety grt i DMwR – gutompf

31

Nie, skalowanie nie jest konieczne w przypadku losowych lasów.

  • Charakter RF jest taka, że ​​zagadnienia konwergencji i precyzyjny numeryczne, które mogą czasami utrącają algorytmów wykorzystywanych w logistyce i regresji liniowej, jak i sieci neuronowych, nie są tak ważne. Z tego powodu nie trzeba przekształcać zmiennych do wspólnej skali, jak w przypadku NN.

  • Nie otrzymujesz żadnego odpowiednika współczynnika regresji, który mierzy związek między każdą zmienną predykcyjną a odpowiedzią. Z tego powodu nie musisz także zastanawiać się, jak interpretować takie współczynniki, na które wpływają zmienne skale pomiarowe.

+0

Dziękuję bardzo – gutompf

+8

Nie tylko skalowanie nie jest konieczne, ale może również wygładzić nieliniowy charakter model. Jeśli masz skomplikowane relacje nieliniowe w przestrzeni p-wymiarowej i przekształciłeś dane, to po odwróceniu transformacji y te nieliniowości nie są odzwierciedlone w oszacowaniu. –

+2

@JeffreyEvans proszę, połącz swoje wspaniałe komentarze i opublikuj je jako odpowiedź. W przeciwnym razie po prostu spadnie pod radar każdego. Mówisz: "Nie, nie tylko nie jest to konieczne, jest szkodliwe z następujących powodów a) b) c) ..." ** – smci

1

Jeśli masz zamiar dodać interakcje do zbioru danych - to jest nowa zmienna jedne funkcją innych zmiennych (zwykle proste mnożenie) i nie czujesz, co oznacza, że ​​nowa zmienna dla (nie mogę go interpretować), następnie obliczyć tę zmienną za pomocą skalowanych zmiennych.

+4

Losowe lasy to nieliniowy model i natura statystycznych kont podziału węzłów w przypadku interakcji o wysokim wymiarze. W związku z tym niepotrzebne i całkiem niepożądane jest próba zdefiniowania zmiennych interakcji. –

0

Zgadnij, co stanie się w poniższym przykładzie? Wyobraź sobie, masz 20 funkcji predykcyjnych, 18 z nich znajduje się w zakresie [0; 10], a pozostałe 2 w zakresie [0; 1 000 000] (pobrane z rzeczywistego przykładu). Pytanie 1: jakie importowanie cech przypisuje losowy las. Pytanie2: co stanie się z ważnością funkcji po skalowaniu 2 funkcji o dużym zasięgu?

Skalowanie jest ważne. Jest tak, że Losowy Las jest mniej wrażliwy na skalowanie niż inne algorytmy i może pracować z "zgrubnie" skalowalnymi funkcjami.

Powiązane problemy