SVM, zmienna interakcja i dopasowanie danych treningowych


12

Mam 2 ogólne / bardziej teoretyczne pytanie.

1) Jestem ciekawy, jak maszyny SVM radzą sobie ze zmiennymi interakcjami podczas budowania modeli predykcyjnych. Na przykład, jeśli mam dwie funkcje f1 i f2, a cel zależy od f1, f2 i powiedzmy f1 * f2 (lub jakąś funkcję h (f1, f2)), czy SVM pasuje (nie tylko na OOS, ale nawet na danych treningowych) poprawić, jeśli włączysz f1, f2 i h (f1, f2) do funkcji w porównaniu z samym włączeniem f1 i f2? Czy algorytm SVM radzi sobie z interakcjami między funkcjami? Wydaje się, że tak by było z tym, jak SVM próbuje stworzyć hiperpłaszczyzny w przestrzeni o wyższych wymiarach, ale nie jestem pewien, czy tak chciałem zapytać.

2) Czy dopasowując maszynę SVM do danych treningowych, mając wystarczającą liczbę funkcji i znajdując optymalne parametry (poprzez wyszukiwanie siłowe lub cokolwiek innego), maszyna SVM zawsze trywialnie pasuje do danych treningowych? Nie jestem pewien, czy dobrze to sformułowałem, ale w zasadzie, jeśli istnieje wystarczająca wariancja / szum w funkcjach, czy SVM zawsze będzie pasować do danych treningowych w 100%? I odwrotnie, jeśli SVM nie pasuje w 100% do danych treningowych, czy to oznacza, że ​​istnieją pewne informacje (lub inne cechy), które wpływają na zmienną docelową, która nie jest przechwytywana w danych?

Dzięki

Małe wyjaśnienie. Mam na myśli konkretnie SVM jądra

Odpowiedzi:


8

Jak sugeruje highBandwidth, zależy to od tego, czy używasz liniowego SVM, czy nieliniowego (będąc pedantycznym, jeśli jądro nie jest używane, jest to klasyfikator liniowy o maksymalnym marginesie, a nie SVM).

Liniowy klasyfikator o maksymalnym marginesie nie różni się od żadnego innego klasyfikatora liniowego tym, że jeśli proces generowania danych oznacza, że ​​istnieją interakcje między atrybutami, wówczas zapewnienie tych warunków interakcji może poprawić wydajność. Liniowy klasyfikator maksymalnego marginesu przypomina raczej regresję grzbietową, z niewielką różnicą w okresie karnym, która ma na celu uniknięcie przeregulowania (podane odpowiednie wartości parametru regularyzacji), aw większości przypadków regresja grzbietu i klasyfikator maksymalnego marginesu dają podobną wydajność.

Jeśli uważasz, że terminy interakcji mogą być ważne, możesz wprowadzić je do przestrzeni funkcji SVM, używając wielomianowego jądra , które da przestrzeń cech, w której każda oś reprezentuje monomial rzędu lub mniejszy, parametr wpływa na względną wagę monomialów różnych rzędów. Tak więc SVM z jądrem wielomianowym jest równoważny dopasowaniu modelu wielomianowego w przestrzeni atrybutów, który domyślnie uwzględnia te interakcje. d cK(x,x)=(xx+c)ddc

Biorąc pod uwagę wystarczającą liczbę funkcji, dowolny klasyfikator liniowy może w prosty sposób dopasować dane. IIRC an punktów w „pozycji ogólnej” w przestrzeni wymiaru można rozbić (rozdzielić w dowolny dowolny sposób) hiperpłaszczyzną (por. Wymiar VC). Takie postępowanie zazwyczaj spowoduje poważne przeregulowanie i dlatego należy tego unikać. Punktem maksymalnej klasyfikacji marginesów jest ograniczenie tego nadmiernego dopasowania przez dodanie kary, która oznacza, że ​​można osiągnąć największą możliwą separację (która wymagałaby największego odchylenia od jakiegokolwiek przykładu szkolenia w celu uzyskania błędnej klasyfikacji). Oznacza to, że możesz przekształcić dane w przestrzeń o bardzo dużych wymiarach (gdzie model liniowy jest bardzo wydajny) bez nadmiernego nadmiernego dopasowania.n - 1nn1

Zauważ, że niektóre jądra powodują powstanie nieskończonej przestrzeni cech wymiarowych, w której gwarantowana jest „trywialna” klasyfikacja dla każdej skończonej próbki treningowej w ogólnej pozycji. Na przykład jądro funkcji podstawy radialnej, , gdzie przestrzeń cech jest dodatnią ortantą nieskończonej wymiarowej hipersfery. Takie jądra sprawiają, że SVM jest uniwersalnym aproksymatorem, który może reprezentować zasadniczo każdą granicę decyzyjną.K(x,x)=expγxx2

To jednak tylko część historii. W praktyce zwykle stosujemy maszynę SVM z miękkim marginesem, w której dopuszcza się naruszenie ograniczenia marży, i istnieje parametr regularyzacji, który kontroluje kompromis między maksymalizacją marży (który jest karnym terminem podobnym do stosowanego w regresja grzbietu) i wielkość zmiennych luzu (co jest podobne do straty na próbce treningowej). Następnie unikamy nadmiernego dopasowania, dostrajając parametr regularności, na przykład minimalizując błąd weryfikacji krzyżowej (lub niektóre związane z błędem pominięcia), tak jak robilibyśmy to w przypadku regresji grzbietu.

Tak więc, chociaż SVM może w prosty sposób sklasyfikować zestaw szkoleniowy, ogólnie zrobi to tylko wtedy, gdy parametry regularyzacji i jądra zostaną źle wybrane. Kluczem do osiągnięcia dobrych wyników z dowolnym modelem jądra jest wybór odpowiedniego jądra, a następnie dostrojenie jądra i parametrów regulacyjnych, aby uniknąć przeładowania lub niedopasowania danych.


Dzięki Dikran. To było bardzo szczegółowe i pomocne. Myślę, że rozumiem odpowiedzi na pytania. Jedno szybkie sprawdzenie. Jak przejść do wyboru odpowiedniego jądra dla SVM? Czy byłoby to podobne do parametrów regularyzacji / jądra (np. Poprzez walidację krzyżową)? Czy jest jakaś teoretyczna podstawa do wyboru? Jeśli jądro rbf czyni SVM uniwersalnym aproksymatorem, sądzę, że wybór jądra jest kolejnym parametrem do dostrojenia, ale nie jestem pewien. Jak zapewne wiesz, jestem w tym całkiem nowy.
tomas

Wybór jądra jest często dobrym sposobem na zbudowanie specjalistycznej wiedzy o problemie w klasyfikatorze, na przykład w przypadku systemu rozpoznawania znaków odręcznie, prawdopodobnie zechcesz użyć jądra niezmiennego dla małych rotacji i tłumaczeń obrazu. Automatyczny wybór jądra można osiągnąć przez sprawdzanie poprawności (co ja bym zrobił) lub ograniczenie błędu pomijania (który można efektywnie wykonać dla SVM). Jeśli jednak zestaw danych jest mały, wybranie jądra za pomocą weryfikacji krzyżowej może być trudne ze względu na przeładowanie błędu weryfikacji krzyżowej.
Dikran Torbacz

W wielu aplikacjach jądra liniowe lub RBF są dobrym wyborem domyślnym i często niewiele można zyskać na eksploracji szerszego zakresu jąder (przy braku wiedzy eksperckiej na temat problemu).
Dikran Torbacz

1

Odpowiedzi zależą od tego, czy używasz SVM liniowy, czy SVM jądra. Dzięki linearnemu SVM korzystasz tylko z funkcji, które mu dajesz i nie uwzględnia on interakcji. Z Kernel SVM zasadniczo korzystasz z wielu różnych funkcji, w zależności od wybranego jądra. Jeśli istnieje hiperpłaszczyzna oddzielająca, tj. Jeśli określa klasę, w której są funkcjami, wtedy możesz mieć pełne dopasowanie danych treningowych. Zwykle nie określasz funkcji, ale podajesz jądro które jest powiązane z funkcjami jako . Spójrz w górę, odtwarzając przestrzenie jądra Hilberta.sign(i=1Kβi(x)β0)βi,i{1,2,...K}KK(x1,x2)=i=1Kβi(x1)βi(x2)

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.