哪些机器学习算法可用于估计更重要的功能?


12

我的数据具有不变的最少数量的功能,以及一些可以更改并对结果产生重大影响的其他功能。我的数据集如下所示:

功能包括A,B,C(始终存在)和D,E,F,G,H(有时存在)

A = 10, B = 10, C = 10                  outcome = 10
A = 8,  B = 7,  C = 8                   outcome = 8.5
A = 10, B = 5,  C = 11, D = 15          outcome = 178
A = 10, B = 10, C = 10, E = 10, G = 18  outcome = 19
A = 10, B = 8,  C = 9,  E = 8,  F = 4   outcome = 250
A = 10, B = 11, C = 13, E = 8,  F = 4   outcome = 320
...

我想预测结果值,而附加参数的组合对于确定结果非常重要。在此示例中,E和F的存在导致很大的结果,而E和G的存在却没有。哪种机器学习算法或技术可以很好地捕获这种现象?


用“有时在场”表示您有时只知道它们的价值吗?还是众所周知,它们在大多数情况下都不起作用?还是别的?
戴维·哈里斯

@ DavidJ.Harris“有时会出现”是指特定的培训示例未拥有该属性。就像它等于零一样。在我的问题中,我所有的特征都将是给定范围内的正数(例如,从5到15或从100到1000)。
本杰明·克鲁兹耶

1
这可能是件好事看看这个链接eren.0fees.net/2012/10/22/...
erogol

Answers:


14

这是机器学习的主要研究领域之一,被称为特征选择

通常,要说出特征的最佳子集是什么(输入可以组合特征的预测模型),唯一的方法就是尝试所有可能的子集。这通常是不可能的,因此人们尝试通过各种启发式方法来采样特征子集的空间(有关某些典型方法,请参见本文)。


3

根据我的理解,您正在寻找一种具有不同重要性的方法。它们基于几种不同的理论方法而具有多种风格,但是都与用于优化您正在讨论的算法的方法有很强的联系。通常,每种机器学习算法都会有一个规范的优化方法。神经网络的反向传播,支持向量机的顺序最小优化,决策树的各种信息标准和统计显着性检验,包括卡方显着性或基尼杂质。当然,经常为每种算法提出其他更新颖的优化方法。

每种算法的这些优化方法实质上定义了手头模型的变量重要性。本质上,您正在寻找算法正在执行的优化步骤的结果的近似或可解释的表示形式。但是,由于几个原因,这是有问题的。

  1. 鉴于选择通常是一个随机过程,很难确定给定变量对模型形式选择的影响,这可能已严重影响了模型本身的形状。鉴于模型本身的生成通常是随机的(使用粒子群优化或装袋方法等进行了优化),因此很难确切地了解给定变量如何影响其形式。

  2. 鉴于单个变量仅在与另一个变量结合或交互时可能很重要,因此很难提取单个变量的重要性。

  3. 一些变量可能仅对某些观察重要。对其他观察值的重要性不足可能会通过平均出实际差异来混淆总体重要性的度量。

也很难获得完全由模型定义的变量重要性的立即可解释的度量标准,因为它可能不会产生单个数字(尤其是在装袋的情况下)。相反,在这些情况下,每个变量的重要性都有分布。

解决这些问题的一种方法可能是使用摄动。通过向变量添加随机噪声,然后检查其如何影响结果,可以分析最终模型。这样做的好处是,您可以通过模拟从经验上找出哪些变量最重要-回答以下问题:如果删除了哪些变量将最破坏预测。缺点是,即使删除/干扰了变量,模型(如果经过重新训练)也很有可能使用其他变量来重构它们的效果,这意味着您得出的“变量重要性”度量仍然仅是真实的。表示您训练后的模型中的重要性,而不是所有可能模型中的整体重要性。


3

正如@Bitwise提到的那样,特征选择或特征提取本身就是一个巨大的研究领域,并且有无数种方法可以实现。

在我看来,其他答案都是有效的,但是最后,您可能会像大多数人一样做,并选择对您来说最直观,最能理解的方法。我仍然会添加两个可能的选项。

多元回归可能是最古老的技术。这个想法是要拟合一个模型来描述来自预测变量的响应,并仅保留对响应有较大影响(较大比例系数)的预测变量。在这里,你可能会不得不重新编写没有d,E,F和G为D=0E=0F=0,G =0或类似的东西。

从未获得应有的普及的另一种技术是共惯性分析(规范分析的一种变体)。据我所知,它没有实现,您必须从头开始(例如,在那里)。这是一种线性方法,可以找到与您的结果相匹配的最佳线性特征组合。这篇博客文章显示了如何使用它的示例。


2

我使用信息增益(也称为互信息)。我和我的顾问经常使用本文Cohen,2008中描述的方法来分析SVM进行分类的功能。


2

随机森林可能非常适合您想要做的事情。R 的randomForest软件包具有一个计算2个重要程度的函数。它还具有创建某些部分依赖图的能力,因此您可以目视检查预测变量对响应的边际影响。


1

我在这里很讨厌,但这是有原因的。您是否考虑过用指示符变量present | not_present替换不一致的观察结果?从您的描述来看,该指标值似乎是有效的特征,因为因素D到H的存在不具有信息意义:也就是说,它们的存在仅表示较大的结果。

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.