【问题标题】:Why too few features are selected in this dataset by subset selection method为什么用子集选择方法在这个数据集中选择的特征太少
【发布时间】:2015-12-04 13:04:31
【问题描述】:

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

数据集(arff 文本文件)可从此保管箱链接下载:https://dl.dropboxusercontent.com/u/26064635/SDataset.arff

在 Weka 套件中,当我使用 CfsSubsetEvalGreedyStepwisesetSearchBackwards() 设置为 truefalse)时,所选功能集仅包含 2 个功能(即 79 和 @987654329 @)!不用说,这两个特征的分类性能非常糟糕。

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

我有两个问题:

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

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

【问题讨论】:

    标签: matlab classification weka feature-selection dimensionality-reduction


    【解决方案1】:

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

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

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

    【讨论】:

    • 顺便说一句,如果您将数据集保存为稀疏 arff,通过 Weka Explorer 过滤器 NonSparseToSparse,您将节省大量空间,从 35 MB 到 2.5 MB。它还有助于加速某些 Weka 算法(不是全部)。
    猜你喜欢
    • 1970-01-01
    • 2018-10-03
    • 2014-02-05
    • 2017-03-18
    • 1970-01-01
    • 2016-03-16
    • 2023-02-03
    • 2013-11-28
    • 1970-01-01
    相关资源
    最近更新 更多