我有一个包含 148 个输入特征的分类数据集(其中 20 个是二进制的,其余的在 [0,1] 范围内是连续的)。数据集有 66171 个负例,只有 71 个正例。
数据集(arff
文本文件)可以从这个 dropbox 链接下载:https ://dl.dropboxusercontent.com/u/26064635/SDataset.arff 。
在 Weka 套件中,当我使用CfsSubsetEval
and GreedyStepwise
(与setSearchBackwards()
set to true
and Also false
)时,所选功能集仅包含 2 个功能(即79
and 140
)!不用说,这两个特征的分类性能非常糟糕。
使用ConsistencySubsetEval
(在 Weka 中也是如此)导致选择零特征!当使用特征排序方法并选择最好的(例如12个)特征时,可以获得更好的分类性能。
我有两个问题:
首先,导致选择这么几个特征的数据集是什么?是因为正例和反例的数量不平衡吗?
其次,更重要的是,是否有任何其他子集选择方法(在 Matlab 中或其他)我可以尝试并可能导致选择更多特征?