【问题标题】:Feature Selection(Boruta) [closed]特征选择(Boruta)[关闭]
【发布时间】:2017-05-03 10:21:00
【问题描述】:

我正在做信用风险建模,数据有大量特征。我正在使用 boruta 包进行特征选择。该软件包的计算成本太高,我无法在完整的训练数据集上运行它。我想要做的是获取训练数据的一个子集(假设大约 20-30%)并在该子集数据上运行 boruta 包并获得重要特征。但是当我使用随机森林来训练数据时,我也使用了完整的数据集。我的问题是,只在部分训练数据上选择特征然后在整个训练数据上构建模型是否正确?

【问题讨论】:

  • 考虑到样本'是没有替换的 SRS'并且有足够的条目来构建具有良好准确性的模型',这并没有错。试试这个练习 2-3 次,以确保。你说的计算成本高是什么意思?数据量和计算资源有多少?
  • 大小约为 150 MB。我在 R 工作室上运行它。 PC 规格:8GB 内存,第 6 代 i5
  • 从字节大小的角度来看,150MB 并不是大数据大小。你有足够的资源来处理。我在问观察的数量。处理这些数据需要多长时间?
  • 我有大约 50 万个观测值,每个 19 个变量。我在 50% 的数据上运行了 boruta 特征选择算法,它花了大约 75 分钟,第三次尝试也是如此。我的笔记本电脑前两次中途挂了。而且 rfe 功能选择 30 分钟没有产生任何结果。
  • 尝试使用 30% 的样本量。您可以检查的另一件事是在其他包中更快地实现 boruta 算法。

标签: r machine-learning data-science feature-selection


【解决方案1】:

由于这个问题本质上是合乎逻辑的,所以我会给我两分钱。

  1. 我相信 20% 的人口的单个随机样本就足够了
  2. 更进一步的做法是采用 3-4 个这样的随机集,所有这些随机集的重要变量的交集是对上述情况的改进
  3. 从多种方法中使用特征选择(xgboost,一些插入符号特征选择方法) -> 为每种方法使用不同的随机样本,然后取共同的显着特征

【讨论】:

  • 谢谢。我会尝试以上建议。
  • 刚刚看到你关于数据集大小的帖子。 500k 的观察结果和 19 个变量实际上并不多。您确定需要进行特征选择吗?如果必须,请使用 xgboost 包创建模型。它进行内置的功能选择。然后使用包中的重要性函数来获取模型中变量的重要性。整个过程大约需要 2-3 分钟,在具有相同规格的系统上进行 50 万次观察和 300 多个功能。
猜你喜欢
  • 2017-08-14
  • 2020-07-16
  • 2013-02-21
  • 2022-06-21
  • 2020-10-29
  • 2020-09-25
  • 2017-04-06
相关资源
最近更新 更多