Materiały do ​​nauki jak wdrażać metody zespołowe


13

Rozumiem teoretycznie (w pewnym sensie), jak by one działały, ale nie jestem pewien, jak właściwie korzystać z metody złożonej (takiej jak głosowanie, ważone mieszanki itp.).

  • Jakie są dobre zasoby do wdrażania metod zespołowych?
  • Czy są jakieś szczególne zasoby dotyczące implementacji w Pythonie?

EDYTOWAĆ:

Aby wyjaśnić niektóre na podstawie dyskusji na temat komentarzy, nie szukam algorytmów złożonych, takich jak randomForest itp. Zamiast tego zastanawiam się, jak połączyć różne klasyfikacje z różnych algorytmów.

Załóżmy na przykład, że ktoś używa regresji logistycznej, SVM i niektórych innych metod do przewidywania klasy określonej obserwacji. Jaki jest najlepszy sposób na uzyskanie najlepszego oszacowania klasy na podstawie tych prognoz?

Odpowiedzi:


12

Dobrym miejscem na początek jest zapoznanie się z nauką zespołu. Szczególnie będziesz chciał spojrzeć na wzmocnienie i pakowanie . Inną metodą stosowaną przez zespół „The Ensemble” w ramach nagrody Netflix jest „łączenie” lub łączenie funkcji .

Następnie po prostu znajdź biblioteki, które je implementują i stamtąd działają. Szybko googling pojawił się w scikit i pomarańczowym , z których oba powinny mieć spakowanie i wzmocnienie (i oba są Pythonem).

Jeśli oprócz korzystania z metod zespołowych chciałbyś nauczyć się trochę teorii, myślę, że ten artykuł byłby dobrym punktem wyjścia (skorzystaj z referencji dla części, którymi jesteś zainteresowany).

Twoje zdrowie.


(+1) Woa, świetne referencje tutaj: O!
steffen

Dzięki. Próbuję wnieść coś na temat jednego z niewielu tematów, o których wiem cokolwiek.
Stumpy Joe Pete,

4

„Metody zestawów w eksploracji danych: poprawa dokładności poprzez łączenie prognoz”, Seni i Elder - Doskonałe odniesienie do praktycznej teorii i implementacji zestawu, ale towarzyszący kod jest oparty na R.

„Uczenie maszynowe: perspektywa algorytmiczna”, S. Marsland - Doskonały praktyczny tekst oparty na języku Python, ale nie tak poświęcony czystym zespołom, jak pierwsze odniesienie.


2

Odpowiedź Stumpy'ego Joe Pete'a była doskonała, ale skoro wspomniałeś o implementacji Pythona, chciałem wspomnieć o projekcie piwa z Universidade Federal de Pernambuco.

https://github.com/viisar/brew

from brew.base import Ensemble
from brew.base import EnsembleClassifier
from brew.combination import import Combiner

# create your Ensemble
clfs = your_list_of_classifiers # [clf1, clf2]
ens = Ensemble(classifiers = clfs)

# create your Combiner
# the rules can be 'majority_vote', 'max', 'min', 'mean' or 'median'
comb = Combiner(rule='majority_vote')

# now create your ensemble classifier
ensemble_clf = EnsembleClassifier(ensemble=ens, combiner=comb)
ensemble_clf.predict(X)

W tym momencie mają generowanie zespołu, kombinację, przycinanie i dynamiczny wybór.

Ograniczenia: tylko klasyfikacja; brak stosów w aktualnej wersji publicznej; niewiele dokumentacji.


0

Salford Systems ma pakiet oprogramowania o nazwie Random Forests, który implementuje to do zestawów drzewek klasyfikacji i regresji. Nie mam żadnych bezpłatnych pakietów R. Wyobrażam sobie, że mają instrukcję obsługi, która wyjaśni ich wdrożenie. Przez analogię prawdopodobnie możesz dowiedzieć się, jak to zrobić dla innych metod łączenia.


2
Istnieje wiele świetnych pakietów R dla zestawów drzew: np. RandomForest (klasyczny algorytm), party :: cforest (losowy las z wykorzystaniem drzew wnioskowania warunkowego), gbm (zwiększanie gradientu drzew), żeby wymienić tylko kilka. Czytam OP jako chęć zaimplementowania zespołów agnostycznych klasyfikatora / regresji. Najprostszą procedurą są oczywiście średnie prognozy.
B_Miner

@B_Miner Miło jest wiedzieć, że są dostępne implementacje w języku R. Może ktoś mógłby mi wyjaśnić, dlaczego konkretna implementacja w Pythonie jest pożądana (przepraszam za moją ignorancję na temat języka R). Czytam PO, aby poznać źródła opisujące sposób implementacji metod zespolonych. Wiedziałem, że pakiet Salford może zawierać pewną dokumentację.
Michael R. Chernick,

W oparciu o Freunda i Schapire papierowe ulepszenia działają ogólnie, o ile wiem, najlepsze wyniki przyniosły przy użyciu klasyfikatorów drzew.
Michael R. Chernick,

Osobiście osiągam naprawdę dobre wyniki, po prostu uśredniając prawdopodobieństwa - ale moja domena bardziej interesuje się prawdopodobieństwem niż wyborem etykiety klasy.
B_Miner

@MichaelChernick Jeśli robisz naprawdę intensywne prace predykcyjną (jak ... konkursie Kaggle), nie zamierzamy odebrać albo pobudzanie lub lasy losowe. Będziesz chciał zebrać jak najwięcej możliwych modeli, które ci pomogą (co na ogół jest więcej niż jednym). Tak więc w tym kontekście ważne będą inne metody łączenia, nawet jeśli losowe lasy są o wiele lepsze niż cokolwiek innego.
Stumpy Joe Pete,


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.