每种模式的特征重要性
Posted
技术标签:
【中文标题】每种模式的特征重要性【英文标题】:Feature importance for each modality 【发布时间】:2016-10-27 03:37:24 【问题描述】:我正在用 Python 中的 sklearn 做一个随机森林。 我尝试获取属性的每个模态的分数。 比如在titanic数据集中,如何得到Pclass变量的各个模态的得分? 谢谢
【问题讨论】:
【参考方案1】:Pclass 变量是一个分类变量。这意味着它具有 2 个或更多离散值。对于此类变量,始终建议使用One-Hot 编码来表示它们。例如,如果您的 PClass 变量采用 3 个可能的值,lower、middle 和 upper,那么目前您会将它们编码为 0、1 或2. 这种方法的问题在于,在某些分类器中,这种方法会引入 upper > lower 的自然排序。因此,最常用的策略是将它们编码为 3 个布尔特征。因此,现在您将拥有 3 个功能,而不是 1 个功能。 Lower 将表示为 [1 0 0],middle 表示为 [0 1 0],upper 表示为 [0 0 1]。
由于您使用的是 scikit-learn,这可以通过 OneHotEncoder
类来完成。 scikit-learn 文档中的示例有一个说明性示例。
现在,当您将这些作为特征传递给随机森林并对其进行训练时。您可以使用clf.feature_importances_
轻松获取特征重要性。从现在开始,您为每种模态使用一个特征,您可以轻松获得每种特征模态的重要性。
希望对您有所帮助。
【讨论】:
以上是关于每种模式的特征重要性的主要内容,如果未能解决你的问题,请参考以下文章