Czy byłby możliwy / praktyczny losowy las o wielu wynikach?

17
  1. Random Forests (RFs) to konkurencyjna metoda modelowania / wyszukiwania danych.

  2. Model RF ma jedno wyjście - zmienną wyjściową / predykcyjną.

  3. Naiwnym podejściem do modelowania wielu wyjść za pomocą RF byłoby skonstruowanie RF dla każdej zmiennej wyjściowej. Mamy więc N niezależnych modeli i tam, gdzie istnieje korelacja między zmiennymi wyjściowymi, będziemy mieli nadmiarową / zduplikowaną strukturę modelu. To może być bardzo marnotrawne. Również ogólna zasada, że ​​więcej zmiennych modelu implikuje model bardziej dopasowany (mniej uogólnienia). Nie jestem pewien, czy dotyczy to tutaj, ale prawdopodobnie tak.

W zasadzie moglibyśmy mieć RF z wieloma wyjściami. Zmienna predykcji jest teraz wektorem (krotka n). Węzły decyzyjne w każdym drzewie decyzyjnym dzielą teraz zbiór wektorów docelowych / predykcyjnych w oparciu o wektor progowy, sądzę, że ten próg jest uważany za płaszczyznę w przestrzeni n-wymiarowej i dlatego możemy ustalić, która strona progu wektor jest włączony każdy z wektorów docelowych.

Optymalna wartość prognozy dla każdej strony podziału decyzji jest średnią (centroid) obliczoną dla wektorów z każdej strony.

Znalezienie optymalnego punktu podziału podczas pracy z pojedynczymi zmiennymi jest trywialne i obliczeniowe szybkie / wydajne. W przypadku n-krotki nie możemy znaleźć optymalnego podziału (lub przynajmniej staje się on niewykonalny obliczeniowo wraz ze wzrostem N), ale możemy być w stanie znaleźć prawie optymalny podział przy użyciu metody typu Monte Carlo (lub jakiejś hybrydy Monte Carlo i lokalnej przejście gradientowe).

Czy to naprawdę zadziałałoby? Czy po prostu zmapowałby pary treningów bez uogólnienia? Czy ta technika istnieje już pod inną nazwą?

Możesz także rozważyć, w jaki sposób odnosi się to do sieci neuronowych, takich jak Restricted Boltzmann Machines (RBM) i Deep Belief Networks.

redcalx
źródło
Googling „losowy las z wieloma etykietami” pokazuje, że zostało to zrobione na kilka różnych sposobów; tak czy inaczej, bawiłem się tym podejściem wielu binarnych rfs w wyszukiwaniu informacji muzycznych i działało całkiem nieźle.
1
Proponuję ci ten artykuł . Robią coś bardzo zbliżonego do tego, co opisałeś.
Dmitrij Łaptiew
2
To już istnieje w pakiecie party i niektórych innych pakietach (język R).
Jase

Odpowiedzi:

8

Opracowano i opublikowano wiele drzew decyzyjnych dotyczących produkcji (a zatem losowych lasów). Pierre Guertz dystrybuuje pakiet do tego ( pobierz). Zobacz także Segal i Xiao, losowe lasy wielowymiarowe, WIRE Data Mining Knowl Discov 2011 1 80–87, DOI: 10.1002 / widm.12 Wierzę, że najnowsza wersja Scikit-learn również to obsługuje. Dobry przegląd stanu techniki można znaleźć w pracy Henrika Linussona zatytułowanej „LASY WIELU WYDAJNOŚCI”. Najprostszą metodą dokonywania wyborów podziału w każdym węźle jest losowe wybranie JEDNEJ ze zmiennych wyjściowych, a następnie zastosowanie zwykłego losowego wyboru lasu w celu wybrania podziału. Opracowano inne metody oparte na ważonej sumie wyniku wzajemnej informacji w odniesieniu do każdej cechy wejściowej i zmiennej wyjściowej, ale są one dość drogie w porównaniu z podejściem losowym.

Tom Dietterich
źródło
-1

Jak stwierdzono tutaj :

Wszystkie klasyfikatory w scikit-learn robią klasyfikację wieloklasową od razu po wyjęciu z pudełka.

I to obejmuje Losowy Las.

Również strona: http://scikit-learn.org/stable/modules/tree.html#tree-multioutput zawiera wiele odnośników na ten temat.

0asa
źródło
8
Dla jasności; pytanie dotyczy regresji wielu wyników .
redcalx
Przepraszam za opóźnienie w mojej odpowiedzi, ale wygląda na to, że scikit-learn oferuje również regresję wielu wyjść , na przykład: scikit-learn.org/stable/auto_examples/tree/… W każdym razie istnieje strategia polegająca na dopasowaniu jednego regresor na cel. Jest to prosta strategia rozszerzania regresorów, które natywnie nie obsługują regresji wielu celów: scikit-learn.org/stable/modules/generated/… HTH
0asa