5

Jest ensemble learning przykładem wielu instancji określonego klasyfikatora, na przykład klasyfikatora drzewa decyzji; czy jest to połączenie kilku klasyfikatorów, takich jak sieci neuronowe, drzewo decyzyjne, SVM i tak dalej?Zrozumienie uczenia się zespołu i jego implementacja w Matlab

Zajrzałem do tego wikipedia's opisu na Bagging ucznia. Stwierdza się, że:

worki prowadzi do „ulepszenia dla procedur niestabilne” (Breiman, 1996), które obejmują, na przykład, sieci neuronowe, Drzewa Klasyfikacji i Regresji i wybór podzbioru w regresji liniowej (Breiman, 1994) .

Jestem trochę zmieszany z powodu tego opisu. Też spojrzałem na MATLAB's implementation algorytmu zespołu. Na przykład ten:

load fisheriris 
ens = fitensemble(meas,species,'AdaBoostM2',100,'Tree') 

meas i species są wejściami funkcji fitensemble. W tym przykładzie używa się słabego ucznia AdaBoostM2 typu Tree i używa się ich od 100. W jaki sposób można zająć się tą prostą instancją tej funkcji, aby pokazać, że uczenie się w zespole jest używane do łączenia różnych klasyfikatorów, takich jak Neural Net, KNN, Naive Bayes?

Czy ktoś może wyjaśnić, czym właściwie jest uczenie się w zespole i co MATLAB próbuje wykonać w ramach realizacji funkcji fitensemble?

Odpowiedz

11

Podstawową ideą ensemble learning jest łączenie wielu modeli w celu poprawy wydajności prognozowania. Są one uważane za meta-algorytmy przeznaczone do pracy nad istniejącymi algorytmami uczenia się. Istnieją różne podejścia:

  • Bagging (skrót B ootstrap Agg regation) generuje zestaw modeli każdy wyszkolony na wyrywkowo danych (bootstrapresampling: próbka N przypadki z wymianą). Prognozy z tego modelu są łączone/agregowane w celu uzyskania ostatecznej prognozy za pomocą uśredniania.

  • Random Subspace: chodzi o randomizację algorytmu uczenia się, takiego jak wybranie podzbioru cech losowo przed zastosowaniem algorytmu uczenia (na przykład Random Forest). Każdy model jest przeszkolony w zakresie danych rzutowanych na losowo wybraną podprzestrzeń. Wyniki modeli są następnie łączone, zwykle zwykłą większością głosów.

  • Boosting: również opiera się na koncepcji głosowania/uśredniania wielu modeli, jednak waży modele zgodnie z ich wydajnością. Konstruuje modele w sposób iteracyjny, gdzie zachęca się nowe modele, aby stały się "ekspertami" dla przypadków błędnie klasyfikowanych przez wcześniejsze modele. Poprawa działa najlepiej, jeśli algorytm uczenia się nie jest zbyt złożony (słabo uczący się). Istnieje kilka wariantów tego algorytmu (AdaBoost, LogitBoost, GentleBoost, LPBoost itd.).

  • Stacking: łączy w sobie przewidywania wielu uczniów bazowych (zwykle różnych typów: kNN, ANN, SVM, itp.), Nie korzystając z wcześniejszego głosowania, ale używając meta-ucznia (model wyszkolony na wyjściu modeli podstawowych).Tak więc prognozy podstawowych uczniów są podawane jako dane wejściowe do meta-ucznia w następnej warstwie, aby uzyskać ostateczną prognozę.


fitensemble jest funkcją MATLAB pozwala utworzyć ensemble learner zarówno dla celów klasyfikacji i regresji. Obsługuje trzy metody: pakowanie, podbijanie i podprzestrzeń. Do wyboru są trzy rodzaje słabych uczniów: decision tree (decision stump), analiza dyskryminacyjna (zarówno linear i quadratic), jak i klasyfikator k-nearest neighbor.

Uwaga: wyjątkiem Subspace metodzie wszystkie pobudzanie i Bagging algorytmy oparte są na tree learners. Podprzestrzeń może używać uczących się: discriminant analysis lub k-nearest neighbor.

Na przykład, ten kod trenuje decyzyjny zespół klasyfikator (składającą się z 100 drzew), stosując metodę AdaBoost zamontowane na zbiorze treningowym X z odpowiednich grup Y.

ens = fitensemble(X, Y, 'AdaBoostM1', 100, 'Tree') 

(M1 część wskazuje klasyfikatora binarnego, jest rozszerzona wersja dla multiclass M2 problemów)

+1

można dowiedzieć się więcej o sposobach zespołowych przeglądanie pytań i odpowiedzi na temat [stats.SE] (http: //stats.stackexchange.com/questions/tagged/ensemble) – Amro

+0

Dzięki za zmiany, haha, naprawdę znaczące. Byłem zdezorientowany, jeśli chodzi o uczenie się w zespole, a kiedy się o tym dowiedziałem, był zbyt leniwy, by wprowadzić zmiany. – motiur

+0

Czy możesz określić swojego ucznia? – JohnAndrews

Powiązane problemy