Scikit learn 找到重要的特征进行分类

Scikit learn 找到重要的特征进行分类,scikit-learn,feature-selection,Scikit Learn,Feature Selection,我正在尝试使用逻辑回归模型对一些脑电图数据进行分类(这似乎是我数据的最佳分类)。我拥有的数据来自多通道EEG设置,因此本质上我有一个63 x 116 x 50的矩阵(即通道x时间点x试验次数(有两种试验类型为50),我将其重塑为一个长向量,每个试验一个 我想做的是在分类之后,看看哪些特征在对试验进行分类时最有用。我该如何做,是否有可能测试这些特征的重要性?例如,说分类主要由N个特征驱动,这些是特征x到z。因此,我可以举个例子说,在时间点90-95对分类具有重要意义 那么这是可能的还是我问错了问题

我正在尝试使用逻辑回归模型对一些脑电图数据进行分类(这似乎是我数据的最佳分类)。我拥有的数据来自多通道EEG设置,因此本质上我有一个63 x 116 x 50的矩阵(即通道x时间点x试验次数(有两种试验类型为50),我将其重塑为一个长向量,每个试验一个

我想做的是在分类之后,看看哪些特征在对试验进行分类时最有用。我该如何做,是否有可能测试这些特征的重要性?例如,说分类主要由N个特征驱动,这些是特征x到z。因此,我可以举个例子说,在时间点90-95对分类具有重要意义

那么这是可能的还是我问错了问题


非常感谢您的评论或论文参考。

Scikit learn提供了许多功能排名方法,其中包括:

  • 单变量特征选择()
  • 递归特征消除()
  • 随机逻辑回归/稳定性选择()
(更多信息请参见)

在这些方法中,我绝对建议尝试随机逻辑回归。根据我的经验,它始终优于其他方法,并且非常稳定。 关于这一点的文件:

编辑: 我写了一系列关于不同功能选择方法及其优缺点的博文,这些博文可能有助于更详细地回答这个问题:


非随机L1惩罚模型也不错(即L1惩罚Logistic回归和LinearSVC)。我还没有太多随机版本的经验。第二@AndreasMueller的建议是,L1惩罚SVM对于某些任务(看起来不像EEG读数,所以YMMV)是一个非常好的特征选择算法。请参见此处的
L1LinearSVC
。根据我的经验,非随机化方法可能失败的情况是,您具有强多重共线性特征,在这种情况下,某些特征可能位于数据子集的顶部,而被正则化为另一个子集。@snarly文档分类示例已移动到RandomizedLogisticRegression已弃用:(弃用:RandomizedLogisticRegression类在0.19中弃用,将在0.21中删除。)(