通过多年的正式和非正式测试,我们发现数据降维(或在运行分析时减少考虑的属性数量的过程)不仅有助于加快算法执行,而且有助于提高整体模型性能。这并不意味着最小化被分析的数据量本身,而是更聪明地了解如何构建数据集。
随着今天不断发生的数据处理,这里有一些分析更新,可以证明对您的操作很有价值。
第一步
当您考虑一个项目时,请记住大多数数据挖掘算法都是按列实现的,这使得它们在越来越多的数据列上变得越来越慢。第一步是减少数据集中的列数,同时尽可能少地丢失信息。
首先,以下是我们发现有效的数据分析领域中一些最普遍接受的技术:
缺失值比率。缺失值过多的数据列不太可能携带很多有用的信息。因此,可以删除缺失值百分比大于给定阈值的数据列。阈值越高,减少的力度越大。
低方差滤波器。同样,值变化不大的数据列携带的信息也很少。因此,可以删除方差低于给定阈值的所有数据列。提醒一句:方差取决于范围;因此,在应用此技术之前,此处需要进行归一化。
高相关滤波器。具有非常相似趋势的数据列也可能包含非常相似的信息。在这种情况下,只有其中一个就足以为机器学习模型提供数据。在这里,我们计算数值列之间和名义列之间的相关系数作为皮尔逊积矩相关系数和皮尔逊卡方值, 分别。相关系数高于阈值的列对减少到只有一个。但是,相关性是规模敏感的;因此,有意义的相关性比较需要数据标准化。
四号晶圆厂
除了那些更简单且有些直观的列减少技术之外,许多其他更复杂的技术可以帮助降维。虽然这些技术可能看起来更困难,但为了您更复杂项目的完整性,它们值得深入研究。我将解释我们发现非常有效的四个:
随机森林/集合树。决策树集成,也称为随机森林,除了是有效的分类器外,对特征选择也很有用。一种降维方法是针对目标属性生成大量且精心构建的树集,然后使用每个属性的使用统计信息来查找信息量最大的特征子集。具体来说,我们可以生成一大组 (2,000) 非常浅的树(2 级),每棵树都在属性总数的一小部分 (3) 上进行训练。如果一个属性经常被选为最佳分割,那么它很可能是一个需要保留的信息特征。根据随机森林中的属性使用统计计算得出的分数告诉我们——相对于其他属性——哪些是最具预测性的属性。
主成分分析(PCA)。 主成分分析(PCA)是一种统计过程,它将数据集的原始 n 个坐标正交变换为一组新的n 个坐标,称为主成分。作为变换的结果,第一个主成分具有最大可能方差; 每个后续组件在其约束条件下具有最大可能的方差正交到(即,不相关)前面的组件。仅保留前m < n 个分量会降低数据维数,同时保留大部分数据信息,即数据的变化。您应该注意,PCA 转换对原始变量的相对缩放很敏感。在应用 PCA 之前,需要对数据列范围进行规范化。另请注意,新坐标 (PC) 不再是真正的系统生成变量。将 PCA 应用于您的数据集会失去其可解释性。如果结果的可解释性对您的分析很重要,那么 PCA 不是您项目的转换。
后向特征消除。在这种技术中,在给定的迭代中,所选的分类算法在n 个输入特征上进行训练。然后一次删除一个输入特征,并在n-1 个输入特征上训练相同的模型n次。删除导致错误率增加最小的输入特征将被删除,留下n-1 个输入特征。然后使用n-2 个特征重复分类,依此类推。每次迭代k生成一个模型,训练了nk个特征和错误率e(k). 选择最大可容忍错误率,您可以定义使用所选机器学习算法达到该分类性能所需的最少特征数。
前向特征构建。这是反向特征消除的逆过程。仅从 1 个功能开始,一次逐步添加 1 个功能,即产生最高性能提升的功能。后向特征消除和前向特征构建这两种算法都非常耗时且计算量大。它们实际上仅适用于输入列数已经相对较少的数据集。
在实践中
因为这可能会有点杂草,所以了解它是如何摆脱的可能会有所帮助。我们将这些技术应用于大型和稍小的数据集,以查看它们在缩减率、降低精度和速度方面的比较。值得一提的是,最终的准确性及其退化取决于为分析选择的模型。因此,减少率和最终精度之间的折衷针对三个特定模型的包进行了优化:决策树、神经网络和朴素贝叶斯。
运行优化循环,为七种降维技术中的每一种和性能最佳的模型确定了最低列数和最佳精度方面的最佳截止值。最终的最佳模型性能,即 ROC 曲线下的准确度和面积,与使用所有输入特征的基线算法的性能进行了比较。
我们发现,通过分析随机森林(随机森林/集成树)中的决策切割,可以获得最高的减少率而不会降低性能。然而,即使只是计算缺失值的数量、测量列方差和测量列对的相关性,也可以在保持性能相对于基线模型不变的情况下获得令人满意的减少率。
在大数据时代,当公理上越多越好时,我们重新发现太多嘈杂甚至错误的输入数据列通常会导致算法性能不理想。删除无信息或更糟糕的无信息输入属性可能有助于在更广泛的数据区域上构建模型,具有更通用的分类规则,并且总体上在新的未见数据上具有更好的性能。
相关帖子DA内容精选 |