Podczas przeprowadzania liniowej klasyfikacji SVM często pomocne jest znormalizowanie danych treningowych, na przykład poprzez odjęcie średniej i podzielenie przez odchylenie standardowe, a następnie skalowanie danych testowych ze średnią i odchyleniem standardowym danych treningowych. Dlaczego ten proces radykalnie zmienia wydajność klasyfikacji?
machine-learning
svm
standardization
Qinghua
źródło
źródło
Odpowiedzi:
Myślę, że można to wyjaśnić na przykładzie. Załóżmy, że masz dwa wektory wejściowe: X1 i X2. i powiedzmy, że X1 ma zasięg (0,1 do 0,8), a X2 ma zasięg (3000 do 50000). Teraz twój klasyfikator SVM będzie liniową granicą leżącą w płaszczyźnie X1-X2. Twierdzę, że nachylenie liniowej granicy decyzji nie powinno zależeć od zakresu X1 i X2, lecz od rozkładu punktów.
Teraz dokonaj prognozy na punkcie (0,1, 4000) i (0,8, 4000). Nie będzie prawie żadnej różnicy w wartości funkcji, przez co SVM będzie mniej dokładny, ponieważ będzie miał mniejszą wrażliwość na punkty w kierunku X1.
źródło
SVM próbuje zmaksymalizować odległość między płaszczyzną oddzielającą a wektorami podporowymi. Jeśli jedna cecha (tj. Jeden wymiar w tej przestrzeni) ma bardzo duże wartości, zdominuje inne cechy podczas obliczania odległości. Jeśli przeskalujesz wszystkie funkcje (np. Do [0, 1]), wszystkie one będą miały taki sam wpływ na pomiar odległości.
źródło