Jakie problemy z uczeniem się są odpowiednie dla maszyn wektorowych wsparcia?

16

Jakie są cechy szczególne lub właściwości wskazujące, że pewien problem uczenia się można rozwiązać za pomocą maszyn wektorów wsparcia?

Innymi słowy, co jest takiego, że gdy widzisz problem z nauką, sprawiasz, że mówisz „och, zdecydowanie powinienem używać do tego SVM” niż sieci neuronowe lub drzewa decyzyjne czy cokolwiek innego?

Ragnar
źródło
Usunięto supervised learningtag, ponieważ SVM może być również wykorzystywany w problemach z uczeniem się bez nadzoru .
Dawny33
Czy możesz wyjaśnić, w jaki sposób można użyć svm w przypadku problemu bez nadzoru i który pakiet go implementuje?
GeorgeOfTheRF
@ML_Pro Proszę przejść przez link zawarty w moim komentarzu.
Dawny33
3
@ Dawny33, zastosowanie maszyn SVM do uczenia się bez nadzoru jest wyjątkiem, a nie regułą. SVM to nadzorowana metoda uczenia się.
AN6U5,
1
@ AN6U5 Dziękujemy za poinformowanie :) Przez exception, masz na myśli, że to tylko drobna poprawka, a nie konwencja, prawda?
Dawny33

Odpowiedzi:

7

SVM można wykorzystać do klasyfikacji (rozróżnienia między kilkoma grupami lub klasami) i regresji (uzyskanie modelu matematycznego do przewidywania czegoś). Można je stosować zarówno do problemów liniowych, jak i nieliniowych.

Do 2006 r. Były najlepszym algorytmem ogólnego przeznaczenia do uczenia maszynowego. Próbowałem znaleźć artykuł, w którym porównano wiele implementacji najbardziej znanych algorytmów: svm, sieci neuronowe, drzewa itp. Nie mogłem tego żałować (musisz mi uwierzyć, coś złego). W artykule algorytmem, który uzyskał najlepszą wydajność, był svm z biblioteką libsvm.

W 2006 r. Hinton opracował metodę głębokiego uczenia się i sieci neuronowych. Poprawił obecny stan techniki o co najmniej 30%, co stanowi ogromny postęp. Jednak głębokie uczenie się osiąga dobre wyniki tylko w przypadku dużych zestawów treningowych. Jeśli masz mały zestaw treningowy, sugerowałbym użycie svm.

Ponadto znajdziesz tutaj przydatną infografikę o tym, kiedy używać różnych algorytmów uczenia maszynowego przez scikit-learn. Jednak, zgodnie z moją najlepszą wiedzą, społeczność naukowa nie zgadza się co do tego, czy problem ma funkcje X, Y i Z, lepiej więc użyć svm. Sugerowałbym wypróbowanie różnych metod. Nie zapominaj też, że svm lub sieci neuronowe to tylko metoda obliczenia modelu. Bardzo ważne jest także to, jakich funkcji używasz.

hoaphumanoid
źródło
1
@HoapHumaboid Wiem o SVC i SVR i że możemy użyć jądra do zastosowania SVM do NLP i znam artykuły, które porównują SVM z innymi algorytmami uczenia się ... Zastanawiałem się nad cechami potencjalnego problemu uczenia się, który spowodowałby oczywiste jest, że należy temu zaradzić za pomocą SVM. Innymi słowy, co się dzieje, gdy widzisz problem z nauką, który sprawia, że ​​zaczynasz mówić „och, zdecydowanie powinienem używać do tego SVM” niż NN, drzew decyzyjnych lub czegokolwiek innego
Ragnar
@Ragnar proszę zobaczyć moją zredagowaną odpowiedź
hoaphumanoid
2

Załóżmy, że jesteśmy w klasyfikacji.

Dla svminżynierii cechą jest podstawą:

  • zestawy muszą być liniowo rozdzielne. W przeciwnym razie dane muszą zostać przekształcone (np. Przy użyciu jądra). Nie robi tego samo algo i może zniszczyć wiele funkcji.
  • Powiedziałbym, że svmwydajność cierpi, ponieważ zwiększamy liczbę wymiarów szybciej niż inne metodologie (zespół drzew). Wynika to z ograniczonego problemu optymalizacji, który popiera svms. Czasami redukcja funkcji jest możliwa, a czasem nie, i wtedy nie możemy naprawdę utorować drogi dla efektywnego wykorzystaniasvm
  • svmprawdopodobnie będzie miał problemy z zestawem danych, w którym liczba funkcji jest znacznie większa niż liczba obserwacji. To znowu można zrozumieć, patrząc na ograniczony problem optymalizacyjny.
  • zmienne kategorialne nie są obsługiwane przez svmalgorytm.
pincopallino
źródło