有多少数据用于特征选择?

数据挖掘 机器学习 特征选择 大数据
2022-02-15 05:03:29

在我的硕士论文上工作,这是一个我找不到好的资源的问题。

我正在处理 18 位参与者的数据,他们要么是主动的,要么是被动的。然后每个参与者接受 3 x 3 的实验,每个参与者总共进行大约 676 次试验(总共大约 12.168 次试验)。每个试验中有 100 个数据点,但不能与试验分开使用(因为它是一个 EEG 时期)。

我的数据由 579 个特征组成,所以我需要某种特征选择,因为文献表明它们中的大多数是不相关的,但我想使用自下而上的机器学习方法(来验证这一点)。

是否有用于特征选择所需数据量的重击/文学规则?

2个回答

TLDR

使用你所有的数据,扔一堆集成机器学习(可能只是随机森林),然后选择一个好的模型。通常,这非常有效。

您应该使用多少数据?

理想情况下,您应该始终将数据分为训练、测试和验证。由于数据集较小,这并不总是可行的,但防止过度拟合仍然很重要。您可以将所有训练和测试数据用于特征选择,并且不会给您的 ML 模型带来任何重大偏差。仅在您完全完成模型训练后,才应使用验证集来近似误差。

简单的机器学习解决方案:

对所有训练/测试数据使用某种随机森林或梯度提升模型。这些模型是为在高维数据中获得高性能而设计的,通过检查特征重要性/排列重要性/准确性的平均下降,您将知道哪些特征是/不重要的。在有数百万个特征和大约一千个响应的生物空间中使用这些模型是很常见的。尽管存在差异,但我在这些情况下仍然达到了很高的准确性。

简单的统计解决方案

测量每个特征的相关性,只保留那些具有绝对相关性高于/低于一定数量的特征。您可以使用一些统计测试来过滤掉不重要的特征。这里有一些例子:

  1. 皮尔逊相关
  2. F检验
  3. 方差
  4. 套索回归(技术上是一种 ML 算法)

上述的陷阱

以上每一个都使用某种假设来确定您应该为最终模型训练选择哪些特征。有时您实际上不需要选择功能的子集,即当您使用 RF 时。此外,统计测试经常会遗漏异常类型的相关性或遗漏多维关系。功能选择实际上是一个个案决定,没有人可以在不查看您使用的实际数据的情况下给您一个明确的答案。

您是否考虑过一种不需要您进行特征缩减的方法?例如,如果您要使用神经网络,则对特征减少的需求会大大减少。现在,显然我还没有看到你的数据,所以我不想建议神经网络应该是你唯一的答案。但是有了这么多功能,我会更关心我将如何实际减少它们,而不是我需要收集的数据点的数量。