每种模式的特征重要性
Feature importance for each modality
我正在 Python 中用 sklearn 做一个随机森林。
我尝试获取属性的每个模态的分数。
比如在titanic数据集中,我们如何得到Pclass变量每个模态的得分?
谢谢
Pclass 变量是一个 分类 变量。这意味着它采用 2 个或更多离散值。对于此类变量,始终建议使用 One-Hot 编码来表示它们。例如,如果您的 PClass 变量有 3 个可能的值,lower、middle 和 upper,那么当前您会将它们编码为 0、1 或 2。这种方法的问题是,在某些 classifier 中,这种方法将引入一种自然顺序,即 upper > 降低。因此,最常用的策略是将它们编码为 3 个布尔特征。因此,现在您将拥有 3 个功能,而不是 1 个功能。 Lower 将表示为 [1 0 0],middle 将表示为 [0 1 0] 和 upper作为 [0 0 1]。
由于您使用的是 scikit-learn,这可以通过 OneHotEncoder
class 完成。 scikit-learn 文档中的示例有一个说明性示例。
现在,当您将这些作为特征传递给您的随机森林并对其进行训练时。您可以使用 clf.feature_importances_
轻松获得特征重要性。从现在开始,您为每个模态使用一个特征,您可以轻松获得每个特征模态的重要性。
希望对您有所帮助。
我正在 Python 中用 sklearn 做一个随机森林。
我尝试获取属性的每个模态的分数。
比如在titanic数据集中,我们如何得到Pclass变量每个模态的得分?
谢谢
Pclass 变量是一个 分类 变量。这意味着它采用 2 个或更多离散值。对于此类变量,始终建议使用 One-Hot 编码来表示它们。例如,如果您的 PClass 变量有 3 个可能的值,lower、middle 和 upper,那么当前您会将它们编码为 0、1 或 2。这种方法的问题是,在某些 classifier 中,这种方法将引入一种自然顺序,即 upper > 降低。因此,最常用的策略是将它们编码为 3 个布尔特征。因此,现在您将拥有 3 个功能,而不是 1 个功能。 Lower 将表示为 [1 0 0],middle 将表示为 [0 1 0] 和 upper作为 [0 0 1]。
由于您使用的是 scikit-learn,这可以通过 OneHotEncoder
class 完成。 scikit-learn 文档中的示例有一个说明性示例。
现在,当您将这些作为特征传递给您的随机森林并对其进行训练时。您可以使用 clf.feature_importances_
轻松获得特征重要性。从现在开始,您为每个模态使用一个特征,您可以轻松获得每个特征模态的重要性。
希望对您有所帮助。