Я пытаюсь классифицировать некоторые данные ЭЭГ, используя модель логистической регрессии (это, кажется, дает лучшую классификацию моих данных). Данные, которые у меня есть, взяты из многоканальной установки ЭЭГ, поэтому, по сути, у меня есть матрица 63 x 116 x 50 (то есть каналы x временные точки x количество испытаний (есть два типа испытаний по 50), я изменил ее на длинный вектор, по одному на каждое испытание.

Что я хотел бы сделать, так это после классификации посмотреть, какие особенности были наиболее полезными при классификации испытаний. Как я могу это сделать и можно ли проверить значимость этих функций? например Сказать, что классификация была основана в основном на N-признаках, а это признаки от x до z. Таким образом, я мог бы, например, сказать, что канал 10 в момент времени 90-95 был значимым или важным для классификации.

Так возможно ли это, или я задаю неправильный вопрос?

Приветствуются любые комментарии или бумажные ссылки.

15
Mads Jensen 3 Апр 2013 в 23:26

1 ответ

Лучший ответ

Scikit-learn включает в себя довольно много методов ранжирования функций, среди которых:

(подробнее см. http://scikit-learn.org/stable/modules/feature_selection.html)

Среди них я определенно рекомендую попробовать рандомизированную логистическую регрессию. По моему опыту, он неизменно превосходит другие методы и очень стабилен. Документ по этому поводу: http://arxiv.org/pdf/0809.2932v2.pdf

Изменить: Я написал серию сообщений в блоге о различных методах выбора функций и их плюсах и минусах, которые, вероятно, будут полезны для более подробного ответа на этот вопрос:

39
Ando Saabas 23 Ноя 2016 в 14:26
2
Нерандомизированные модели со штрафом L1 также хороши (например, логистическая регрессия со штрафом L1 и LinearSVC). У меня пока нет большого опыта работы с рандомизированными версиями.
 – 
Andreas Mueller
4 Апр 2013 в 16:39
Второе предложение @ AndreasMueller, SVM с L1-штрафом - удивительно хороший алгоритм выбора функций для некоторых задач (которые не похожи на чтение ЭЭГ, поэтому YMMV). Это сделано в примере классификации документов. см. L1LinearSVC там.
 – 
Fred Foo
4 Апр 2013 в 17:01
2
По моему опыту, случай, когда нерандомизированные методы могут потерпеть неудачу, - это когда у вас есть сильно мультиколлинеарные функции, и в этом случае некоторые функции могут быть одними из лучших в одном подмножестве данных, в то время как регуляризованные для другого подмножества.
 – 
Ando Saabas
4 Апр 2013 в 17:35
1
Пример классификации документов перемещен в scikit-learn.org/stable/auto_examples/text/…
 – 
Marco Bonzanini
18 Фев 2016 в 17:41
1
RandomizedLogisticRegression устарел :( УСТАРЕЛО: класс RandomizedLogisticRegression устарел в версии 0.19 и будет удален в версии 0.21. :(
 – 
asimo
2 Мар 2018 в 13:52