Umgang mit sehr großen Zeitreihendatensätzen


10

Ich habe Zugriff auf einen sehr großen Datensatz. Die Daten stammen aus MEG- Aufnahmen von Personen, die Musikausschnitte aus einem von vier Genres hören. Die Daten sind wie folgt:

  • 6 Themen
  • 3 Experimentelle Wiederholungen (Epochen)
  • 120 Prüfungen pro Epoche
  • 8 Sekunden Daten pro Versuch bei 500 Hz (= 4000 Abtastungen) von 275 MEG-Kanälen

Jedes "Beispiel" hier ist also eine Matrix mit der Größe [4000x275], und es gibt 2160 solcher Beispiele, und das vor jeder Merkmalsextraktion. Ziel ist es, das Genre anhand des Gehirnsignals vorherzusagen (4-Klassen-Klassifikation).

Natürlich gibt es hier einige herausfordernde Probleme, nämlich:

  1. Der Datensatz passt nicht in den Speicher
  2. Es wird starke zeitliche Korrelationen in den Daten geben, und die Variation zwischen den Subjekten wird enorm sein. Infolgedessen ist es nicht offensichtlich, wie die Daten aufgeteilt werden sollen
  3. Das Signal-Rausch-Verhältnis ist sehr niedrig
  4. Es ist nicht offensichtlich, welche Funktionen für einen Klassifikator korrekt sind

Nehmen Sie diese der Reihe nach:

  1. Es gibt verschiedene Dinge, die man tun kann. Erstens können wir sicher von 500 Hz auf ~ 200 Hz heruntersampeln, da selbst unter Berücksichtigung der Nyquist-Grenze die Gehirnaktivität bei über 100 Hz nicht wirklich auftritt. Wir könnten auch eine Teilstichprobe aus dem Satz von Kanälen (z. B. über Hörbereichen zentrieren) ziehen, aber wir möchten dies lieber nicht a priori tun , da es möglicherweise Aktivitäten in anderen Bereichen (frontal usw.) gibt, die von Interesse sein könnten. Wir können wahrscheinlich auch einen Teil des Zeitfensters löschen. Vielleicht sind nur die ersten 2s für die Aufgabe wichtig? Es ist nicht wirklich bekannt. Natürlich wird jeder " Dimensionalitätsreduzierung " rufen! ", aber das ist auch nicht trivial. Erstens müssten wir sehr vorsichtig mit unseren Zug- / Testaufteilungen sein (siehe 2.) und es ist auch nicht klar, ob wir dies vor oder nach der Feature-Generierung tun sollen. Zweitens, außer teuer Kreuzvalidierung oder sorgfältige visuelle Inspektion gibt es keine offensichtliche Möglichkeit, entweder die geeignete Methode oder die geeignete Anzahl von Dimensionen auszuwählen. Wir könnten natürlich nur z. B. PCA, ICA oder zufällige Projektionen verwenden und auf das Beste hoffen ...

  2. Das ist schwierig. Wenn wir aufeinanderfolgende Proben im Trainingssatz haben, werden wir wahrscheinlich den Trainingssatz überanpassen, während wir, wenn wir aufeinanderfolgende Proben in Zug- und Testsätze aufgeteilt haben, wahrscheinlich den Trainingssatz unteranpassen, aber dennoch den Testsatz überanpassen könnten. Hier scheint es verschiedene Möglichkeiten zu geben:

    • Einzelfachklassifizierung . Nehmen Sie jedes einzelne Thema für sich und teilen Sie es nach Epochen auf. Dies sollte die einfachste Aufgabe sein, da wir nicht versuchen, über das Gehirn hinweg Vorhersagen zu treffen. Innerhalb dieser könnte man die beiden verbleibenden Epochen zur Kreuzvalidierung nutzen. Der Vollständigkeit halber sollte man alle Kombinationen drehen. Wir würden einfach die durchschnittliche Genauigkeit über alle Themen angeben. Natürlich würden wir nicht erwarten, dass sich diese Modelle überhaupt gut verallgemeinern lassen.
    • Innerhalb der Fächerklassifikation . Nehmen Sie alle Themen zusammen und teilen Sie sie nach Epochen auf. Dies kann in der Tat die einfachste Aufgabe sein, da wir alle Fächer im Training gesehen haben werden. Wir würden jedoch wahrscheinlich nicht erwarten, dass sich die Modelle gut auf neue Themen verallgemeinern lassen. Innerhalb dieser könnte man die beiden verbleibenden Epochen zur Kreuzvalidierung nutzen. Der Vollständigkeit halber sollte man alle Kombinationen drehen.
    • Klassifizierung zwischen Fächern . Wird auch als "Auslassen" bezeichnet, bei dem ein einzelnes Subjekt als Testdaten verwendet wird und der Rest für das Training verwendet wird. Wir würden uns dann durch alle Themen drehen. Eine Kreuzvalidierung würde dann über Probanden durchgeführt. Wir würden erwarten, dass dies eine viel schwierigere Aufgabe ist, da wir jedes Mal versuchen, ein "neues Gehirn" vorherzusagen. Hier würden wir erwarten, dass sich die Modelle gut auf die größere Population verallgemeinern lassen, obwohl es ein Problem der Zuverlässigkeit von Testwiederholungen gibt (dh wie viel Überanpassung durch zeitliche Korrelationen verursacht wird).
  3. Dies ist ein klassisches "Nadel im Heuhaufen" -Problem - das tatsächliche Signal in Bezug auf die Erkennung des Musikgenres oder eine genrespezifische Verarbeitung ist im Vergleich zur "Suppe" der Aktivität im Gehirn wahrscheinlich winzig. Es gibt auch bemerkenswerte Artefakte, die nur teilweise entfernt werden können (hauptsächlich im Zusammenhang mit Bewegung). Alle Merkmale, die wir aus den Daten ableiten, und alle Arten, wie die Daten behandelt werden, sollten vermeiden, einen Teil des interessierenden Signals zu zerstören.

  4. Hier könnte man sich verschiedene Dinge vorstellen. Das erste wäre, einfach die Rohdaten (zu einem Vektor verkettet) als Merkmalsvektor zu verwenden. Ich bin mir nicht sicher, wie fruchtbar das ist - ich denke, diese Vektoren wären wahrscheinlich im Wesentlichen einheitlich zufällig. Dies ist dann wirklich eine Frage der Signalverarbeitung, aber es gibt einige allgemeine Richtlinien, denen man folgen kann. Eine besteht darin, eine Standard- Fourier-Analyse über ein Schiebefenster durchzuführen, von dem aus die Komponenten in verschiedene Frequenzbänder (Alpha / Beta / Gamma usw.) aufgeteilt werden können, und Statistiken dieser (Mittelwert, Standardabweichung) können als Merkmale verwendet werden. Oder man könnte Wavelets, Hilbert Transforms verwenden oder sogar versuchen, nach chaotischen Attraktoren zu suchen. Dann haben wir natürlich die Wahl zwischen Kerneln (linear, polynomisch, RBF usw.), die die Anzahl der Permutationen multiplizieren. Vielleicht ist es das Beste, hier so viele verschiedene Funktionssätze wie möglich zu generieren und diese dann mithilfe von MKL- oder Boosting-Methoden zu kombinieren.

Wie würden Sie sich dieser Art von Datensatz nähern (wenn nicht speziell diesem)? Gibt es etwas, das ich unterwegs vermisst habe? Was ist die wahrscheinlichste Strategie, um erfolgreich zu sein, ohne unendlich viel Zeit und Rechenressourcen für Forscher aufzuwenden?

Antworten:


4

@tdc. Alle und viele weitere Probleme, die Sie hier in Bezug auf die Analyse neurowissenschaftlicher Daten erwähnt haben, einschließlich: Dimensionsreduzierung, Klassifizierung innerhalb / zwischen Probanden, Signal-Rausch-Verhältnis usw. usw., werden von der EEGLAB- Toolbox behandelt, die speziell entwickelt wurde für den Umgang mit solchen neurowissenschaftlichen Daten:

EEGLAB ist eine interaktive Matlab-Toolbox zur Verarbeitung kontinuierlicher und ereignisbezogener EEG-, MEG- und anderer elektrophysiologischer Daten, einschließlich unabhängiger Komponentenanalyse (ICA), Zeit- / Frequenzanalyse, Zurückweisung von Artefakten, ereignisbezogener Statistiken und verschiedener nützlicher Visualisierungsmodi für den Durchschnitt und Einzelversuchsdaten.

In Bezug auf Ihre Frage "Was ist die wahrscheinlichste Strategie, um erfolgreich zu sein, ohne endlos viel Zeit für Forscher aufzuwenden?" Möchte ich Sie daher ermutigen, den EEGLAB-Online-Workshop anzusehen und von dort aus fortzufahren ...

Update: Weitere ML- Inhalte finden Sie im (neuen) BCILAB- Modell


1
Ich habe in der Vergangenheit tatsächlich EEGLAB verwendet, obwohl es hauptsächlich die zugrunde liegenden Funktionen sind und nicht die vollständige GUI (die tendenziell etwas langsam und instabil ist). Es ist jedoch hauptsächlich auf die univariate Massenanalyse und nicht auf die multivariate Analyse ausgerichtet, obwohl ich zugeben muss, dass ich mich eine Weile nicht mehr damit befasst habe. Hast du Erfahrung damit?
tdc

Ich denke, sie haben in den letzten zwei Jahren große Fortschritte gemacht ... und ich benutze sowohl die GUI als auch die Matlab-Funktion. Dieser Workshop aus dem Jahr 2010 ist sehr nützlich und viele Fehler wurden behoben, viele Modelle wie STUDY und andere wurden hinzugefügt. Ich bin sehr zufrieden damit, spart mir Zeit und Geld. Bitte beachten Sie jedoch, dass ich hauptsächlich mit EEG-Daten und nicht mit MEG arbeite.
Dov

1
ok interessant Im Prinzip sehe ich keinen Unterschied zwischen EEG und MEG, da beide im Wesentlichen die elektrische Gehirnaktivität messen, abgesehen von den Arten von Artefakten und der Anzahl der Sensoren. Haben Sie EEGLAB mit maschinellem Lernen kombiniert?
tdc

sicher. die ganze Zeit. Es ist alles in Matlab ... also sobald Sie Ihre Daten in EEGLAB geladen haben. Sie können PCA / ICA verwenden (das ist, was ich tue) und dann Ihren Lieblingsklassifizierer / Clustering-SVM, Fischer oder k-Mittelwert trainieren. Nennen Sie es einfach.
Dov

1
Dies ist eine großartige Antwort für den Umfang, aber es wäre schön, eine Zusammenfassung zu sehen, wie jedes dieser Probleme unabhängig von einer Toolbox behandelt wird, die auf einem proprietären System basiert.
Heller Stern
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.