特征选择与分类精度关系


10

为分类器选择可用功能子集的方法之一是根据标准(例如信息增益)对它们进行排名,然后使用分类器和已分类功能的子集计算准确性。

例如,如果您的要素是A, B, C, D, E,并且如果它们的排名如下D,B,C,E,A,则可以使用DD, B然后D, B, C,然后D, B, C, E... 来计算精度,直到精度开始下降。一旦开始减少,就停止添加功能。

例1

在上面的example1中,您将选择要素F, C, D, A并删除其他要素,因为它们会降低准确性。

该方法假设在模型中添加更多特征会提高分类器的准确性,直到达到特定点为止,之后再添加其他特征会降低准确性(如示例1所示)

但是,我的情况有所不同。我已经应用了上述方法,发现添加更多功能会降低精度,直到精度提高为止。

例2

在这种情况下,如何选择功能?您是否只剩F下其余部分?您是否知道为什么精度会先降低然后再提高?

Answers:


4

特征选择涉及几种方法,就像机器学习的方法一样。想法是为预测模型保留最相关但并非多余的功能,以产生最佳精度。

在您的情况下,我看不到您正在使用哪种方法进行特征选择,但是假设您没有考虑特征依赖的多元性质。假设您有N个特征,可能是模型精度在n个主要特征之后下降,但是通过添加n + k来提高模型精度的原因(其中n <k <N,当特征以信息增益为基础降序排列时)是由于前n个和k个特征的相关性(关联性更高,冗余性更低)。当要素相互依赖且不互斥时,单变量要素选择不一定会获得最佳模型精度。从哲学的角度来看,一组最佳特征类似于亚里斯多德的一句话:“整体大于部分的总和”!

为了获得最佳的特征选择,我经常使用Caret程序包来编写R语言,在该语言中,可以使用递归特征消除(RFE)等多种方法来进行特征选择。还有一个名为mRMRe的软件包,可以根据最大的相关性,最小的冗余来进行特征选择。

最好的,
萨米尔


我正在草拟来自移动设备的回复,但没有意识到之前的两个回复非常相似!我的错误是不对这些内容发表评论,而是分别回复。
萨米尔

关于冗余功能的观点很明确。经过检查,我可以确认具有较高信息增益的3个功能确实是多余的(彼此高度相关)。这就解释了为什么联合使用这些功能时精度会下降:在第一个功能之后,附加功能没有在我的数据集中添加新的“数据维度”,而是产生了噪音,因为它们仅“重复”了分类器已经知道的内容,谢谢第一个功能。但是,具有较少信息获取的其他功能确实增加了新的数据维度。
Pauline

1

关于具体问题

选择功能子集时,您不应期望特定的行为(先增加然后降低准确性),因为这将完全取决于问题(以及每个模型)

在计算要素的可变重要性时,您同时考虑了所有要素的贡献。选择功能的子集并建立新模型后,您将获得问题的其他表示形式或建模方式(该功能未考虑其他功能-信息性的或非信息性的)。

现在,您要选择最佳数量的功能。这也取决于您的问题以及需要满足的特征或条件。如果在优化预测精度时实际上需要尽可能少的特征,则可以选择能够实现最小误差的最少数量的特征...,如果在不同情况下具有非常相似的误差,则选择一个阈值,观察误差成对差异低于阈值的前几种情况,然后选择一种(例如,特征数较少的一种-因为误差略有相同-)。

考虑消除递归特征

您使用的方法可能不是最稳定的方法。您应该考虑尝试诸如递归特征消除(RFE)之类的方法,这是一种包装方法,您可以在其中构建分类器,对所有特征进行排名,消除最差的特征并在其余特征上重建模型。然后,您再次重复该方法。这将趋于稳定...并且您应该每次都期待不同的排名。

差异也是一个关键因素

除了为模型提供每个子集的实际误差(或准确性)之外,您还应考虑通过交叉验证过程构建每个模型,并同时考虑褶皱的平均误差和这些误差的标准偏差。如果标准偏差高,则选定的特征子集将不稳定,并且在使用看不见的数据进行测试时往往会有很多差异。这对于评估模型的预期泛化能力很重要,并且有助于确定模型(使用不同的子集构建)之间。


1

您需要从数据集中删除冗余和不相关的功能。可以看出,数据集中有不相关和冗余的功能。

我建议您查看最小冗余最大相关特征选择(MRMR)算法。在训练模型之前,它是一个非常流行且功能强大的过滤器。

“但是,我的情况有所不同。我采用了上述方法,发现添加更多功能会降低精度,直到精度提高为止”

这也是可能的,但这将导致更复杂的模型。


1

通常,特征选择算法分为三类。

  • 筛选器方法,用于分析数据的固有属性并为每个特征分配分数,而不涉及任何模型。一些示例是倍数变化,学生t检验。

  • 通过特定算法选择特征不同子集的包装方法。然后,我们适合分类或回归模型,以评估每个选择并选择最适合的值。一些示例是用于特征选择的遗传算法,用于特征选择的蒙特卡洛优化,向前/向后逐步选择。

  • 嵌入式方法使模型本身可以选择对模型适用性有最大贡献的特征。典型的是LASSO,岭回归。

这是一篇很棒的文章,详细介绍了功能选择介绍


帖子中介绍的方法是过滤器的示例。过滤器已对所有功能进行了排名,主题是如何从这些排名的功能中选择一个子集。
宝琳
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.