1

我有一个包含 148 个输入特征的分类数据集(其中 20 个是二进制的,其余的在 [0,1] 范围内是连续的)。数据集有 66171 个负例,只有 71 个正例。

数据集(arff文本文件)可以从这个 dropbox 链接下载:https ://dl.dropboxusercontent.com/u/26064635/SDataset.arff 。

在 Weka 套件中,当我使用CfsSubsetEvaland GreedyStepwise(与setSearchBackwards()set to trueand Also false)时,所选功能集仅包含 2 个功能(即79and 140)!不用说,这两个特征的分类性能非常糟糕。

使用ConsistencySubsetEval(在 Weka 中也是如此)导致选择零特征!当使用特征排序方法并选择最好的(例如12个)特征时,可以获得更好的分类性能。

我有两个问题:

首先,导致选择这么几个特征的数据集是什么?是因为正例和反例的数量不平衡吗?

其次,更重要的是,是否有任何其他子集选择方法(在 Matlab 中或其他)我可以尝试并可能导致选择更多特征?

4

1 回答 1

0

显然,阶级不平衡并没有帮助。您可以尝试对数据集进行子样本以获得更好的诊断。SpreadSubsample 过滤器允许您这样做,说明允许的最大类别不平衡是多少,例如 10:1、3:1 或您认为合适的任何值。

对于选择方法,您可以首先在 WEKA 中尝试降维方法,例如 PCA。

但是,如果算法正在选择这些特征集,它们似乎对您的分类任务最有意义。

于 2015-09-15T12:24:06.087 回答