Radzenie sobie z bardzo dużymi zestawami danych szeregów czasowych


10

Mam dostęp do bardzo dużego zestawu danych. Dane pochodzą z nagrań MEG osób słuchających fragmentów muzycznych z jednego z czterech gatunków. Dane są następujące:

  • 6 tematów
  • 3 eksperymentalne powtórzenia (epoki)
  • 120 prób na epokę
  • 8 sekund danych na próbę przy 500 Hz (= 4000 próbek) z 275 kanałów MEG

Każdy „przykład” tutaj ma macierz wielkości [4000x275], a takich przykładów jest 2160, a to przed wyodrębnieniem funkcji. Celem jest przewidzenie gatunku na podstawie sygnału mózgowego (klasyfikacja 4-klasowa).

Oczywiście są tutaj pewne trudne problemy, a mianowicie:

  1. Zestaw danych nie mieści się w pamięci
  2. Dane będą silnie korelowane w czasie, a zmienność między podmiotami będzie ogromna. W rezultacie nie jest oczywiste, jak podzielić dane
  3. Stosunek sygnału do szumu jest bardzo niski
  4. Nie jest oczywiste, jakie byłyby prawidłowe cechy klasyfikatora

Biorąc je kolejno:

  1. Można zrobić różne rzeczy. Po pierwsze, możemy bezpiecznie zmniejszyć próbkę z 500 Hz do ~ 200 Hz, ponieważ nawet biorąc pod uwagę limit Nyquista, aktywność mózgu tak naprawdę nie występuje przy częstotliwości powyżej 100 Hz. Możemy również podpróbować z zestawu kanałów (np. Centrum nad obszarami słuchowymi), ale wolelibyśmy nie robić tego z góry , ponieważ mogą istnieć działania w innych obszarach (frontalne itp.), Które mogą być interesujące. Prawdopodobnie możemy też upuścić część okna czasowego. Być może tylko pierwsze 2 są ważne dla zadania? To nie jest tak naprawdę znane. Oczywiście wszyscy będą krzyczeć „ Zmniejszenie wymiarów! ”, ale nie jest to również trywialne. Po pierwsze, musielibyśmy bardzo uważać na nasze podziały pociągów / testów (patrz 2.) i nie jest również oczywiste, czy zrobić to przed czy po wygenerowaniu funkcji. Po drugie, inne niż drogie cross-validation lub żmudna kontrola wizualna, nie ma oczywistego sposobu, aby wybrać odpowiednią metodę lub odpowiednią liczbę wymiarów. Możemy oczywiście po prostu użyć np. PCA, ICA lub losowych projekcji i mieć nadzieję na najlepsze ...

  2. To trudne. Jeśli będziemy mieć kolejne próbki w zestawie treningowym, prawdopodobnie przełożymy zestaw treningowy, natomiast jeśli mamy kolejne próbki podzielone na zestaw pociągowy i testowy, prawdopodobnie nie osiągniemy zestawu treningowego, ale nadal możemy go prześcignąć. Wydaje się, że istnieją tutaj różne opcje:

    • Klasyfikacja jednego przedmiotu . Weź każdy przedmiot osobno i podziel według epok. To powinno być najłatwiejsze zadanie, ponieważ nie próbujemy przewidywać w różnych mózgach. W ramach tego można wykorzystać dwie pozostałe epoki do wzajemnej weryfikacji. Dla kompletności należy obrócić wszystkie kombinacje. Po prostu podamy średnią dokładność dla wszystkich przedmiotów. Oczywiście nie spodziewalibyśmy się, że te modele w ogóle dobrze się uogólnią.
    • W ramach klasyfikacji przedmiotów . Zbierz wszystkie tematy razem i podziel według epok. To może być najłatwiejsze zadanie, ponieważ zobaczymy wszystkie przedmioty w trakcie szkolenia. Jednak prawdopodobnie nie spodziewalibyśmy się, że modele dobrze uogólnią się na nowe tematy. W ramach tego można wykorzystać dwie pozostałe epoki do wzajemnej weryfikacji. Dla kompletności należy obrócić wszystkie kombinacje.
    • Klasyfikacja między podmiotami . Znany również jako „pominięcie jednego”, w którym jeden badany jest traktowany jako dane testowe, a reszta służy do szkolenia. Następnie obracalibyśmy się przez wszystkie tematy. Weryfikacja krzyżowa byłaby wówczas przeprowadzana na osobach. Spodziewalibyśmy się, że będzie to znacznie trudniejsze zadanie, ponieważ za każdym razem staramy się przewidzieć „nowy mózg”. W tym przypadku spodziewalibyśmy się, że modele dobrze uogólnią się na większą populację, chociaż istnieje kwestia niezawodności ponownego testowania (tj. Tego, ile nadmiernego dopasowania wynika z korelacji czasowych).
  3. Jest to klasyczny problem „igły w stogu siana” - faktyczny sygnał związany z rozpoznaniem gatunku muzycznego lub jakimkolwiek przetwarzaniem specyficznym dla gatunku może być niewielki w porównaniu z „zupą” aktywności w mózgu. Istnieją również znaczące artefakty, które można tylko częściowo usunąć (głównie związane z ruchem). Wszelkie funkcje, które czerpiemy z danych oraz wszelkie sposoby ich przetwarzania, powinny unikać zniszczenia części sygnału zainteresowania.

  4. Tutaj można sobie wyobrazić robienie różnych rzeczy. Pierwszym z nich byłoby po prostu użycie surowych danych (połączonych w wektor) jako wektora cech. Nie jestem jednak pewien, jak owocne jest to - sądzę, że te wektory byłyby prawdopodobnie zasadniczo jednakowo losowe. Jest to zatem pytanie dotyczące przetwarzania sygnału, ale istnieje kilka ogólnych wskazówek, których można przestrzegać. Jednym z nich jest wykonanie standardowej analizy Fouriera w przesuwanym oknie, z którego składniki można podzielić na odrębne pasma częstotliwości (alfa / beta / gamma itp.), A ich statystyki (średnia, odchylenie standardowe) można wykorzystać jako cechy. Lub można użyć Wavelets, Hilbert Transforms, a nawet spróbować poszukać chaotycznych atraktorów. Oczywiście mamy do wyboru jądra (liniowe, wielomianowe, RBF itp.), Które zwielokrotniają liczbę permutacji. Być może najlepszą rzeczą do zrobienia tutaj jest wygenerowanie jak największej liczby różnych zestawów funkcji, a następnie użycie MKL lub metod ulepszających, aby połączyć je ze sobą.

Jak podchodziłbyś do tego rodzaju zestawu danych (jeśli nie ten konkretnie)? Czy po drodze coś mi umknęło? Jaka jest najbardziej prawdopodobna strategia sukcesu bez wydawania nieskończonej ilości czasu badacza i zasobów obliczeniowych?

Odpowiedzi:


4

@tdc. Wszystkie i wiele innych zagadnień, o których tu wspomniałeś, dotyczących analizy danych neuronauki, w tym: redukcja wymiarów, klasyfikacja wewnątrz / między podmiotami, stosunek sygnału do szumu itp. Są obsługiwane przez zestaw narzędzi EEGLAB , które zostały specjalnie zaprojektowane do obsługi tego rodzaju danych neuronauki:

EEGLAB to interaktywny zestaw narzędzi Matlab do przetwarzania ciągłych i związanych z zdarzeniem EEG, MEG i innych danych elektrofizjologicznych obejmujących analizę niezależnych składników (ICA), analizę czasu / częstotliwości, odrzucanie artefaktów, statystyki związane ze zdarzeniem oraz kilka przydatnych trybów wizualizacji uśrednionego oraz dane z pojedynczej próby.

Tak więc, odnosząc się do pytania „Jaka jest najbardziej prawdopodobna strategia do osiągnięcia sukcesu, bez poświęcania nieskończonej ilości czasu naukowca”, chciałbym zachęcić cię do obejrzenia warsztatów on-line EEGLAB i kontynuowania stamtąd ...

Aktualizacja: aby uzyskać więcej informacji o ML, zobacz (nowy) model BCILAB


1
W przeszłości używałem EEGLAB, chociaż głównie jego podstawowe funkcje, a nie pełny GUI (który był nieco powolny i niestabilny). Jednak jest on głównie nastawiony na masową analizę jednowariantową, a nie analizę wielowymiarową, chociaż przyznaję, że od dłuższego czasu na nią nie patrzyłem. Czy masz to doświadczenie?
tdc

Myślę, że zrobili duży postęp w ciągu ostatnich dwóch lat ... i używam zarówno GUI, jak i funkcji matlab. Warsztaty z 2010 roku są bardzo przydatne i naprawiono wiele błędów, dodano wiele modeli, takich jak STUDY i inne. Jestem bardzo zadowolony z tego, że oszczędzam czas i pieniądze, jednak proszę pamiętać, że pracuję głównie z danymi EEG, a nie MEG.
Dow

1
ok ciekawe. Zasadniczo nie widzę żadnej różnicy między EEG i MEG, ponieważ zasadniczo mierzą one aktywność mózgu elektrycznego, oprócz rodzajów artefaktów i liczby czujników. Czy połączyłeś EEGLAB z uczeniem maszynowym?
tdc

pewnie. cały czas. wszystko jest w Matlabie ... więc po załadowaniu danych do EEGLAB. możesz użyć PCA / ICA (to właśnie robię), a następnie wytrenować swojego ulubionego klasyfikatora / klastrowania SVM, Fishera lub K-mean ... wystarczy nazwać to.
Dow

1
To świetna odpowiedź na jego zakres, ale fajnie byłoby zobaczyć podsumowanie, w jaki sposób każde z tych problemów jest obsługiwane niezależnie od zestawu narzędzi opartych na zastrzeżonym systemie.
jasna gwiazda
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.