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