【问题标题】:How to select best/worst features in dataset for classification如何在数据集中选择最佳/最差特征进行分类
【发布时间】:2019-05-07 23:12:49
【问题描述】:

我在 javascript 上做小型随机森林,我有一个具有特征的二维数组。其中一些主要是纯噪音,我想将它们从集合中删除。我一直在理解我需要为每个功能计算什么才能使最差功能的评级成为王者。我找到了如何使用库在 R 上实现它,但我需要算法来自己实现它......

inb4:我在 wiki 上阅读了有关功能选择的信息,但它并没有多大帮助... 谢谢!

我的数据集如下所示:(3 类和一些特征)

【问题讨论】:

  • 您的意思是您有一个数据框,其中包含行中的实体和列中的观察或“特征”,并且您希望剔除无助于区分的列?
  • 我在帖子中添加了示例
  • 也可以实现xgboost算法进行特征选择:Feature Importance and Feature Selection With XGBoost

标签: algorithm machine-learning feature-selection


【解决方案1】:

使用特征来划分集合的意义在于它有助于计算最终分类。因此,最佳 功能将是一个足以正确分类的功能,而 最差 将是将您的数据集划分为每个都不容易的子集的功能比原始分类(实际上,最糟糕的是甚至不将其划分为子集的分类)。

因此,您正在寻找基于该功能获得的子集的“偏斜”程度;越倾斜越好。

有一些公式可以量化这个想法(我记得有点像 P(1-P)),但我必须让 一些 为你工作。

【讨论】:

  • 谢谢!所以我想我需要基尼指数。
  • 只需绘制数据,逐个特征,逐个标签。然后你可以观察哪些功能有用,哪些没用。
  • @MalcolmMcLean 不能这样做。它应该在程序内部进行,因为功能可能不同。我不为此使用 R。
【解决方案2】:

一些重要的特征选择技术

1) 带套索惩罚的线性回归。 2)随机森林(要么 熵或基尼)。 3) 前向逐步选择。 4) 后退 逐步选择。 5)P值

还有更多的特征选择技术,如果您使用 python 工作,您可以开始阅读http://scikit-learn.org/stable/modules/feature_selection.html,在那里您可以找到有关使用特征选择技术的代码。

【讨论】:

  • 非常感谢您将其标记为答案和支持。
猜你喜欢
  • 2017-03-18
  • 2016-09-07
  • 2012-12-16
  • 1970-01-01
  • 2019-05-21
  • 2021-07-26
  • 2012-04-20
  • 2014-09-21
  • 2016-03-16
相关资源
最近更新 更多