特征选择第2部分:使用特征选择扩展

tftemmetftemme 管理员、员工、RapidMiner认证分析师、RapidMiner认证专家、RMResearcher、会员职位:164RM研究
2018年11月编辑 知识库

博客Posts_Other_Feature Selection_process_1_2-01.png特性选择-第2部分

当我在数据分析中使用每一个可能的特征(如属性)时,我经常会遇到这样的情况,然后被有时被称为“维度诅咒”的情况所困扰。为什么?简单地说,大量的特征使得机器学习模型很难提取我正在搜索的底层模式,因此模型的性能变得更差。这个问题的解决方法是特征选择:选择包含有关您正在处理的问题的信息的特征,并删除没有任何信息的特征。

RapidMiner为您提供了一些出色的开箱即用的特征选择工具,例如加权算法操作符,例如相关权重信息增益加权。高级特征选择算法操作符也可以在RapidMiner中使用,例如提出了选择落后的消除。关于RapidMiner中特性加权可能性的扩展概述可以在@mschmitz优秀的KB文章:特征选择第1部分:特征加权

如果您想更详细地研究特性选择本身的性能,您可能需要尝试专用的特征选择扩展在RapidMiner市场。在本文中,我将展示该扩展的用法以及您可以使用它做些什么。本文中显示的过程还附带了附件,因此可以随意在您自己的数据集上进行测试。

注意,在讨论特性选择的话题时,“属性”通常被称为“特性”——它们是一回事。在本文中,我将自始至终使用“feature”这个词。有关特征选择和RapidMiner的特征选择扩展的更多信息(和更多理论背景),请查看Sangkyun Lee, Benjamin Schow和Viswanath Sivakumar,RapidMiner的高维数据特征选择,技术报告SFB 876,多特蒙德工业大学,2011年1月

为什么选择特征?

在机器学习问题上应用特征选择有四个主要原因:

  1. 处理少量特征的不太复杂的模型更容易解释,并且通常更具解释性。专注于最相关的特征使数据科学家能够向工程师、管理人员和用户解释模型的决策制定。
  2. 具有大量特征的数据集也需要大量的示例来描述其统计属性。事实上,全面描述数据集所需的示例数量随着特征的数量呈指数增长。
  3. 大量的特征增加了机器学习模型的训练和应用的运行时间。删除不相关的特征可以加快机器学习算法的运行时间。
  4. 大量的特性通常伴随着一些特性的高差异。这种差异会降低在该数据集上训练的机器学习模型的稳定性和性能。

特征选择方法-过滤器和包装方法

RapidMiner有几个操作符,可以对数据集的特征进行加权。图1给出了一个简短的概述。重量可以被使用按权重选择根据使用的加权方法,算子减少特征的数量,只处理最相关的特征。

博客Posts_Other_Feature Selection_weight_operators.png图1:RapidMiner中Feature Weights操作符的概述

任何通过加权选择特征的方法都被称为“过滤方法”。它的缺点是没有考虑到特征交互。另一方面,所谓的“包装方法”允许算法搜索所有可能的特征子集,并选择性能最好的子集。RapidMiner有几个用于特征选择的包装方法操作符,比如提出了选择逆向淘汰。这两个操作符迭代地向子集添加或删除特征,并使用该子集训练模型。模型性能用于确定性能最佳的特征子集。请注意,包装器方法通常在计算上很昂贵,并且有过拟合的风险。

MRMR -最小冗余最大相关性

RapidMiner的特征选择扩展提供了额外的算法,弥补了简单的过滤器和昂贵的包装器方法之间的差距。一个例子是最小冗余最大相关性特征选择算法。它的基本思想是迭代地添加与标签最相关的特征,并且对先前选择的特征具有最少的冗余。该算法由按MRMR / CFS选择操作符在特征选择扩展。

选择多少属性?

平衡所选功能的数量是至关重要的。删除太多可能会导致信息丢失,但保留太多可能不会带来预期的好处。通过研究特征选择的性能和稳定性,可以找到适当的缩减量。图2显示了RapidMiner过程,其中评估了应用于声纳样本数据集的MRMR特征选择算法的稳定性和性能:

博客Posts_Other_Feature Selection_process_final.png图2:RapidMiner过程评估MRMR特征选择算法的稳定性和性能依赖于所选特征的数量

循环操作符循环遍历所选特征的数量。在10次迭代中的每一次中,Ensemble-FS在输入数据样本的不同子集上使用算子来评估特征选择的稳定性(也称为鲁棒性)。然后通过计算所谓的Jaccard-Index(这里称为鲁棒性)来比较10个选定的特征集。这个索引描述了不同子集的相似程度。鲁棒性值接近1表示子集差异不大,可以认为特征选择是稳定的。

选择的特征Ensemble-FS然后使用算子来训练一个随机森林模型交叉验证操作符。因此,对于每一组选择的特征,我们评估随机森林模型的相应性能。该过程的结果取决于从所选特征数量中选择特征的鲁棒性(见图3),以及从所选特征数量中选择特征的性能(见图4):

博客Posts_Other_Feature Selection_process_1_result_1.png图3:MRMR特征选择算法的鲁棒性与所选特征数量的依赖关系。鲁棒性随着所选特征数量的增加而提高。有了30个选定的功能,它达到了一个恒定的水平。

博客Posts_Other_Feature Selection_process_1_result_2.png图4:MRMR特征选择算法的性能与所选特征数量的依赖关系。性能随着所选特性的数量而提高,并且对于10个或更多所选特性保持恒定水平。

图3显示,当选择更多的特征时,鲁棒性有所提高。对于所选的30多个特征,鲁棒性达到一个相对恒定的水平;因此,对于30个或更多的特性,可以认为示例中的选择是稳定的。性能也随着所选特征的数量而增加,但只有在选择少于10个特征时才会增加;当选择10个或更多特性时,性能会趋于稳定。因此,在这个Sonar数据集的示例分析中,所选特征的数量可以设置为30,以获得具有最高性能的稳定特征选择。

RapidMiner的特征权值自动分析

RapidMiner还提供了自动分析RapidMiner中提供的不同方法的特征权重的可能性。图5显示了如何执行此操作的示例流程(注意,此流程使用操作员工具箱扩展)。

博客Posts_Other_Feature Selection_process_2_final.png图5:RapidMiner过程自动分析8种不同加权方法的特征权重

第一个循环操作符循环遍历不同的加权方法。对于每个方法一秒循环对相同的权重执行30次迭代。对结果进行附加,并对30次迭代进行平均操作符。因此,最终的ExampleSet包含每个特征和每个方法的权重的平均值和标准差。

在第二个里面循环操作符一个样本(引导)算子用于对输入数据的自举子集进行采样。的选择子流程算子用于选择本次迭代的当前加权方法。MRMR特征选择算法的特征权重结果如图6所示:

酒吧graphs.png图6:MRMR特征选择算法计算的平均特征权重

这个过程显示了研究特征选择的另一个技巧:使用生成属性运算符在输入数据中生成一个纯随机特征。这种随机特征也包含在加权算法中。接收到的权重小于或等于随机特征的所有其他特征被认为提供的信息等于或少于纯随机特征。这可以用来定义特征权重的阈值。

结论

特征选择是数据科学项目中一个重要且高级的主题。乐鱼平台进入好的选择可以在很大程度上提高机器学习模型的性能,并使您能够专注于最相关的特征。RapidMiner的特征选择扩展使您能够执行特征选择的高级方法,也深入挖掘到稳定性和特征选择过程的性能。您可以随意测试它并从数据中提取最佳结果。

作者:@tftemme2018年1月

kypexin Thomas_Ott CraigBostonUSA MarcoBarradas norita

评论

  • vishruth_muthyavishruth_muthya 成员职位:4贡献我
    你好,@tftemme这是一个非常好的技术,我正试图在我的数据集上实现它。在“RapidMiner自动分析特征权重”中,我们得到了多个权重和它们对应的权重。现在,我如何使用这些数据将其转换为一个属性权重向量预期作为输入的“选择权重操作符”
  • vishruth_muthyavishruth_muthya 成员职位:4贡献我
    你好,@tftemme这是一个非常好的技术,我正试图在我的数据集上实现它。描述性统计:1600+列15标称1600数值我应该确定每次为单个数据集的属性的最佳数量。如何考虑30变量的所有数据集,这将是一个正确的方法。
  • tftemmetftemme 管理员、员工、RapidMiner认证分析师、RapidMiner认证专家、RMResearcher、会员职位:164RM研究

    @vishruth_muthya

    关于您的第一个问题,您可以使用ExampleSet to Weights操作符转换器扩展,以创建由权重选择操作符使用的属性权重向量。

    关于第二个问题。属性的最佳数量取决于您的数据,因此您需要为每个数据集确定这个数量。(顺便说一下,特征选择本身也应该被验证,至少是由一组坚持的人验证)。然而,你当然可以从减少到30个变量开始(可能是由于时间问题)。它没有错,只是可能不是最优值。

    致以最亲切的问候
    费边

  • UcheUche 成员职位:3.新手
    2021年11月编辑
    tftemme
    谢谢你非常详细的写作!
    我想知道这些方法是否以并行方式实现执行。
    特别是因为其中一些方法不能很好地随数据大小的增加而扩展。


    谢谢你!

    Uche
  • tftemmetftemme 管理员、员工、RapidMiner认证分析师、RapidMiner认证专家、RMResearcher、会员职位:164RM研究
    @Uche

    据我所知,具体的特征选择算法并没有以并行的方式实现(我在这里使用的是RM Marketplace上的特征选择扩展)。如果你想更详细地了乐鱼体育安装解它,我在开头段落中链接了有关它的资源)。但是,共享进程中的循环操作符是并行操作的,这有效地并行了所提议的调查的处理。

    如果您仍然在运行时问题中运行,那么可能值得使用一个相当宽松的阈值来执行单变量特征选择(例如使用加权操作符),以摆脱更明显没有帮助的特征。例如,您可以使用它将数据集减少到数百个特征。然后你可以应用这篇文章中提到的更高级的特征选择方法。

    最好的问候,
    费边
    Uche
登录注册置评。