是否有可应用于分类数据输入的特征选择算法?

时间:2017-02-17 17:14:57

标签: python algorithm machine-learning scikit-learn neural-network

我正在训练一个神经网络,它有10个左右的分类输入。在对这些分类输入进行一次热编码后,我最终将大约500个输入馈送到网络中。

我希望能够确定每个分类输入的重要性。 Scikit-learn有numerous feature importance algorithms,但是其中任何一个都可以应用于分类数据输入吗?所有示例都使用数字输入。

我可以将这些方法应用于单热编码输入,但是在应用于二进制输入后如何提取含义?如何判断分类输入的特征重要性?

1 个答案:

答案 0 :(得分:1)

由于编码特征之间的关系,在一个热编码上使用特征选择算法可能会错过领先。例如,如果将n个值的特征编码为n个特征,并且选择了m个n-1,则不需要最后一个特征。

由于您的功能数量非常少(~10),因此功能选择对您没那么大帮助,因为您可能只能减少一些功能而不会丢失太多信息。

您写道,一个热门编码将10个功能转换为500个,这意味着每个功能都有大约50个值。在这种情况下,您可能对离散化算法更感兴趣,对值本身进行操作。如果值上存在隐含顺序,则可以使用连续features的算法。另一种选择是简单地省略稀有值或值,而与概念没有很强的相关性。

如果您使用功能选择,大多数算法将处理分类数据,但您应该注意极端情况。例如,@ Igor Raush建议的互信息是一个很好的衡量标准。但是,具有许多值的特征往往具有比具有较少值的特征更高的熵。这反过来可能会导致更高的互信息和对许多价值观特征的偏见。处理该问题的方法是通过将互信息除以特征熵来归一化。

另一组可能对您有帮助的功能选择算法是wrappers。他们实际上将学习委托给分类算法,因此只要分类算法能够处理它,它们就无法表达。

相关问题