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?

użytkownik1074057
źródło

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.

Kikut Joe Pete
źródło
(+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.

poklepać
źródło
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.

Dayvid Oliveira
źródło
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.

Michael R. Chernick
źródło
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,
0

Scikit-learn ensembling przewodnik zapewnia pakowanie w woreczki i pobudzanie meta-klasyfikatorów i regresorów. Ponadto biblioteka mlxtend zapewnia implementacje układania meta-klasyfikatorów i regresorów.

Vadim Smolyakov
źródło