2013-04-03 15 views
14

Ich versuche, einige EEG-Daten mit einem logistischen Regressionsmodell zu klassifizieren (dies scheint die beste Klassifizierung meiner Daten zu geben). Die Daten, die ich habe, stammen von einem Mehrkanal-EEG-Setup, also habe ich im Wesentlichen eine Matrix von 63 x 116 x 50 (das sind Kanäle x Zeitpunkte x Anzahl der Versuche (es gibt zwei Versuchsarten von 50), ich habe das zu a umgestaltet Langer Vektor, einer für jeden Versuchfinden Sie wichtige Funktionen für die Klassifizierung

Ich möchte nach der Klassifizierung herausfinden, welche Merkmale am nützlichsten bei der Klassifizierung der Versuche waren.Wie kann ich das tun, und ist es möglich, die Signifikanz dieser zu testen? B. um zu sagen, dass die Klassifizierung hauptsächlich durch N-Merkmale gesteuert wurde, und diese sind Merkmal x bis z. So könnte ich zum Beispiel sagen, dass Kanal 10 zum Zeitpunkt 90-95 signifikant oder wichtig für die Klassifizierung war.

Ist das möglich oder stelle ich die falsche Frage?

alle Kommentare oder Hinweise auf Papier werden sehr geschätzt.

Antwort

33

Scikit-Learn enthält eine ganze Reihe von Methoden für Feature-Ranking, darunter:

(siehe mehr unter http://scikit-learn.org/stable/modules/feature_selection.html)

Unter denen empfehle ich auf jeden Fall Randomized Logistic Regression einen Schuss zu geben. Meiner Erfahrung nach übertrifft es andere Methoden beständig und ist sehr stabil. Papier dazu: http://arxiv.org/pdf/0809.2932v2.pdf

Edit: ich eine Reihe von Blog-Posts auf verschiedenen Merkmalsauswahlmethoden geschrieben haben und ihre Vor- und Nachteile, die für die Beantwortung dieser Frage genauer wahrscheinlich nützlich sind:

+1

Die nicht-randomisierten L1-bestraften Modelle sind auch nett (d. H. L1 bestrafte logistische Regression und LinearSVC). Ich habe noch nicht viel Erfahrung mit den randomisierten Versionen. –

+0

Zweite @ AndreasMueller Vorschlag, L1-Strafe SVM ist eine überraschend gute Feature-Auswahl-Algorithmus für einige Aufgaben (die nichts wie EEG lesen, so YMMV). Das [Dokumentklassifikationsbeispiel] (http://scikit-learn.org/stable/auto_examples/document_classification_20newsgroups.html#example-document-classification-20newsgroups-py) tut dies, siehe 'L1LinearSVC' dort. –

+1

Nach meiner Erfahrung ist der Fall, in dem die nicht randomisierten Methoden fehlschlagen können, dass Sie stark multicolineare Features haben. In diesem Fall können einige Features zu den oberen für eine Teilmenge der Daten gehören, während sie für eine andere Teilmenge regularisiert werden. –

Verwandte Themen