Klasyfikacja sekwencji wektorowych

9

Mój zestaw danych składa się z sekwencji wektorowych. Każdy wektor ma 50 rzeczywistych wymiarów. Liczba wektorów w sekwencji wynosi od 3-5 do 10-15. Innymi słowy, długość sekwencji nie jest stała.

Pewna spora liczba sekwencji (nie wektorów!) Jest opatrzona etykietą klasy. Moim zadaniem jest nauczyć się klasyfikatora, który ma sekwencję wektorów, obliczana jest etykieta klasy dla całej sekwencji.

Nie potrafię określić dokładnej natury danych, ale natura sekwencji nie jest czasowa. Niemniej jednak wektora nie można zamienić na wektor bez zmiany etykiety ( ). Innymi słowy, kolejność wektorów jest ważna. Same wektory są porównywalne, na przykład sensowne jest obliczenie iloczynu i użycie tej wartości podobieństwa.xixjij

Moje pytanie brzmi: jakie narzędzia / algorytmy mogą pomóc w klasyfikacji takich danych?

AKTUALIZACJA: Dane mają taką właściwość, że jeden lub kilka wektorów silnie wpływa na etykietę klasy.

MOŻLIWE ROZWIĄZANIE: po niektórych badaniach wygląda na to, że rekurencyjne sieci neuronowe (RNN) dość dobrze pasują do rachunku. Nadrzędnym pomysłem jest wybór rozmiaru kontekstu , konkatenacja wektorów słów, maksymalne tworzenie pul i przekazywanie tego poprzez klasyczne NN. W każdej możliwej pozycji okna kontekstowego w zdaniu budowany jest wektor cech. Ostateczny wektor cech jest budowany na przykład przy użyciu maksymalnego buforowania. Propagacja wsteczna ma na celu dostosowanie parametrów sieci. Mam już pewne pozytywne wyniki (GPU jest koniecznością).k

Vladislavs Dovgalecs
źródło

Odpowiedzi:

3

Ponieważ nie możesz ujawnić zbyt wielu szczegółów, jestem zmuszony do nieco ogólnej odpowiedzi. Mam jednak nadzieję, że będzie to pomocne. Przede wszystkim rozważałbym ograniczenie sekwencji przed klasyfikacją (czy to przy użyciu iloczynu kropkowego lub czegoś innego), jeśli możesz upewnić się, że nie stracisz informacji potrzebnych do klasyfikacji później. Podejście to jest więc możliwe tylko wtedy, gdy masz wgląd w naturę klasyfikacji. Podając prosty przykład: jeśli etykieta klasy jest tylko liczbą wektorów w sekwencji, nie odniesiesz sukcesu w przewidywaniu etykiety klasy na podstawie iloczynu kropkowego.

Dlatego wziąłbym całą sekwencję jako dane wejściowe do klasyfikacji i nałożyłbym maksimum na długość sekwencji, którą chcesz wziąć pod uwagę. Możesz to zrobić, najpierw znajdując maksymalną długość sekwencji mw zestawie treningowym, a następnie przekształcając każdą sekwencję wektorów 50-wymiarowych w jeden wektor o wymiarze 50 * m, ewentualnie z pewnymi brakującymi wartościami na końcu, jeśli sekwencja nie ma maksymalna długość. Prawdopodobnie będziesz chciał pozbyć się tych brakujących wartości i możesz po prostu zastąpić je zerami.

Istnieją dwie drogi, z których można przejść: 1.) Stosujesz bezpośrednio metody klasyfikacji, o których wiadomo, że są odpowiednie dla dużych wymiarów. Wypróbuj coś prostego, co nie wymaga wiele tuningu, jak naiwny Bayes. W ten sposób możesz sprawdzić, czy to podejście jest wykonalne, nie tracąc zbyt wiele czasu, jeśli nie jest. 2.) Najpierw starasz się zmniejszyć wymiar i lepiej zrozumieć naturę klasyfikacji. Możesz użyć czegoś takiego jak analiza głównych składników lub przeanalizować korelację / powiązanie między każdym składnikiem wektorowym a etykietą klasy. Jeśli ci się powiedzie, wiesz, jak odpowiednio zmniejszyć wymiar danych wejściowych przed zastosowaniem klasyfikacji.

Jeśli chcesz zastosować się do któregokolwiek z tych pomysłów, pamiętaj, że konkretne szczegóły twoich danych i klasyfikacja mogą sprawić, że którykolwiek z wyżej wymienionych pomysłów stanie się niemożliwy. Dlatego upewnij się, że nie znasz żadnych szczegółów, które znasz, ale nie możesz ich tutaj opublikować, zanim upewnisz się, że nie marnujesz czasu.

MightyCurious
źródło
0

Dane mają taką właściwość, że jeden lub kilka wektorów silnie wpływa na etykietę klasy.

Najlepszym (i najłatwiejszym) podejściem byłoby prawdopodobnie po prostu trenowanie klasyfikatora na każdym wektorze, a następnie uśrednianie prognoz dla wektorów dla danej sekwencji. Ważne wektory miałyby duży wpływ na ich przewidywania, podczas gdy przewidywania dla nieistotnych wektorów byłyby bliskie 0,5 (lub podobne w przypadku problemu binarnej klasyfikacji).

pir
źródło
Nie całkiem. Zwłaszcza jeśli masz wiele wektorów bez ważnych informacji. Jeśli wybierzesz tę trasę, zdecydowanie skorzystaj z LSTM :)
pir