Czy rzadki zestaw treningowy niekorzystnie wpływa na SVM?


12

Próbuję klasyfikować wiadomości do różnych kategorii za pomocą SVM. Przygotowałem listę pożądanych słów / symboli z zestawu szkoleniowego.

Dla każdego wektora, który reprezentuje komunikat, ustawiam odpowiedni wiersz, 1jeśli słowo jest obecne:

„ciało” to: [mary, mała, jagnięca, gwiazda, migotanie]

pierwsza wiadomość: „Mary miała małą owieczkę” -> [1 1 1 0 0]

druga wiadomość: „twinkle little star” -> [0 1 0 1 1]

Myślę, że jest to dość powszechna konfiguracja w SVM, ale moje pytanie brzmi: z tysiącami słów w zestawie, a co, jeśli tylko 1-2 słowa na wiadomość faktycznie się pojawią? Czy liniowa zależność mojego zbioru wektorów szkoleniowych wpłynie niekorzystnie na zdolność konwergencji algorytmu?


1
Czy masz dużo danych, ale mało danych oznaczonych? Jeśli tak, możesz przyjrzeć się częściowo nadzorowanemu nauczaniu. Korzystanie z niektórych nieoznaczonych danych powinno zarówno zwiększyć dokładność, jak i zmniejszyć ryzyko nadmiernego dopasowania.
neuron

@neuron Myślałem o tym. Jaki jest przykład architektury częściowo nadzorowanej?
jonsca

1
Użyłem tylko „hackerskich” metod pół-nadzorowanych (aka modelu pociągu na zestawie treningowym, używaj modelu do przewidywania danych, wyciągaj wszystkie dane z prawdopodobieństwem prognozy> 0,5 i łącz się z zestawem treningowym, i twórz nowy zestaw treningowy). Ale widziałem, że flexmix wspomniał o kilku miejscach (patrz cran.r-project.org/web/packages/flexmix )
neuron

@neuron Dobra, dobrze, ponieważ artykuły, które widziałem (choć z szybkim wyszukiwaniem w stylu wikipedii) nie były zbyt szczegółowe na temat architektur. Sprawdzę flexmix- choć już od kilku lat mam w kalendarzu „Learn R”!
jonsca

Zrób to, R jest NIESAMOWITE, biblioteki, które są dostępne, są po prostu oszałamiające. Rzeczy takie jak caret, sqldf / rmysql, foreach (równolegle dla), ggplot2 i googlevis są po prostu niezwykle pomocnymi narzędziami. Początkowo nie byłem fanem tego języka, ale jest on dla mnie bardzo rozwinięty i teraz uwielbiam go używać.
neuron

Odpowiedzi:


9

Sparość i zależność liniowa to dwie różne rzeczy. Zależność liniowa implikuje, że niektóre wektory cech są prostymi wielokrotnościami innych wektorów cech (lub to samo stosuje się do przykładów). W konfiguracji, którą opisałeś, myślę, że liniowa zależność jest mało prawdopodobna (oznacza to, że dwa terminy mają tę samą częstotliwość (lub ich wielokrotność) we wszystkich dokumentach). Samo posiadanie rzadkich funkcji nie stanowi żadnego problemu dla SVM. Jednym ze sposobów na to jest to, że można wykonać losowy obrót osi współrzędnych, co pozostawiłoby problem bez zmian i dałoby to samo rozwiązanie, ale uczyniłoby dane całkowicie nierzadkimi (jest to po części działanie losowych rzutów ).

Wygląda też na to, że mówisz o SVM w pierwotnej postaci . Zauważ, że jeśli używasz SVM jądra, to, że masz rzadki zestaw danych, nie oznacza, że ​​macierz jądra będzie rzadka. Może to być jednak niska ranga. W takim przypadku możesz faktycznie skorzystać z tego faktu, aby uzyskać bardziej efektywne szkolenie (patrz na przykład Wydajne szkolenie svm przy użyciu reprezentacji jądra niskiej rangi ).


1
To prawda, że ​​moja terminologia była nieco szybka i luźna. Ma sens.
jonsca
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.