A55*_*h55 6 python algorithm machine-learning neural-network scikit-learn
我正在训练一个神经网络,它有10个左右的分类输入.在对这些分类输入进行一次热编码后,我最终将大约500个输入馈入网络.
我希望能够确定每个分类输入的重要性.Scikit-learn有许多特征重要性算法,但是这些算法中的任何一个都可以应用于分类数据输入吗?所有示例都使用数字输入.
我可以将这些方法应用于单热编码输入,但是在应用二进制输入后如何提取含义?如何判断分类输入的特征重要性?
小智 2
由于编码特征之间的关系,在一种热编码上使用特征选择算法可能会丢失领先。例如,如果将一个具有 n 个值的特征编码为 n 个特征,并且选择了 m 个特征中的 n-1 个,则不需要最后一个特征。
由于特征数量非常少(~10),因此特征选择对您没有多大帮助,因为您可能只能减少其中的一小部分,而不会丢失太多信息。
您写道,one hot 编码将 10 个特征变成 500 个特征,这意味着每个特征大约有 50 个值。在这种情况下,您可能对离散化算法更感兴趣,对值本身进行操作。如果值有隐含顺序,您可以使用连续特征的算法。另一种选择是简单地省略稀有值或与概念没有强相关性的值。
如果您使用特征选择,大多数算法都适用于分类数据,但您应该注意极端情况。例如,@Igor Raush 建议的互信息就是一个很好的衡量标准。然而,具有许多值的特征往往比具有较少值的特征具有更高的熵。这反过来可能会导致更高的相互信息以及对许多价值观特征的偏见。解决这个问题的一种方法是通过将互信息除以特征熵来进行归一化。
包装器是另一组可能对您有所帮助的特征选择算法。他们实际上将学习委托给分类算法,因此只要分类算法能够处理它,他们对表示并不关心。
| 归档时间: |
|
| 查看次数: |
2332 次 |
| 最近记录: |