Próbuję zbudować model predykcyjny za pomocą maszyn SVM na dość niezrównoważonych danych. Moje etykiety / wyniki mają trzy klasy: pozytywną, neutralną i negatywną. Powiedziałbym, że pozytywny przykład stanowi około 10-20% moich danych, neutralny około 50-60%, a negatywny około 30-40%. Próbuję zrównoważyć klasy, ponieważ koszty związane z niepoprawnymi prognozami między klasami nie są takie same. Jedną z metod było ponowne próbkowanie danych szkoleniowych i stworzenie równie zrównoważonego zestawu danych, który był większy niż oryginał. Co ciekawe, kiedy to robię, mam tendencję do uzyskiwania lepszych przewidywań dla drugiej klasy (np. Kiedy zbalansowałem dane, zwiększyłem liczbę przykładów dla klasy dodatniej, ale w przypadku przewidywań próbek klasa ujemna działała lepiej). Czy ktoś może ogólnie wyjaśnić, dlaczego tak się dzieje? Jeśli zwiększę liczbę przykładów dla klasy ujemnej, czy dostanę coś podobnego dla klasy dodatniej w przewidywaniach poza próbą (np. Lepsze prognozy)?
Jestem również bardzo otwarty na inne przemyślenia na temat tego, jak mogę rozwiązać problem niezrównoważonych danych albo poprzez nałożenie różnych kosztów na błędną klasyfikację, albo przez zastosowanie wag klas w LibSVM (choć nie jestem pewien, jak odpowiednio wybrać / dostroić te dane).