每种模式的特征重要性

Posted

技术标签:

【中文标题】每种模式的特征重要性【英文标题】:Feature importance for each modality 【发布时间】:2016-10-27 03:37:24 【问题描述】:

我正在用 Python 中的 sklearn 做一个随机森林。 我尝试获取属性的每个模态的分数。 比如在titanic数据集中,如何得到Pclass变量的各个模态的得分? 谢谢

【问题讨论】:

【参考方案1】:

Pclass 变量是一个分类变量。这意味着它具有 2 个或更多离散值。对于此类变量,始终建议使用One-Hot 编码来表示它们。例如,如果您的 PClass 变量采用 3 个可能的值,lowermiddleupper,那么目前您会将它们编码为 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_ 轻松获取特征重要性。从现在开始,您为每种模态使用一个特征,您可以轻松获得每种特征模态的重要性。

希望对您有所帮助。

【讨论】:

以上是关于每种模式的特征重要性的主要内容,如果未能解决你的问题,请参考以下文章

模式识别与机器学习——4.1模式分类可分性的测度

使用 Scikit-learn 确定 RF 模型中每个类别的特征重要性

XGBoost三种特征重要性计算方法对比

随机森林如何评估特征重要性

随机森林进行特征重要性度量的详细说明

特征筛选(随机森林)