【问题标题】:scikit- RandomForest categorical featuresscikit-随机森林分类特征
【发布时间】:2015-09-28 02:21:08
【问题描述】:

我的数据有很多分类特征。我使用 Dict_vectorizer 对它们进行编码。

 For example df['color']=['green','blue','white']
 df['size']=['small','big','medium']  .

我使用 RandomForest 算法。当我检查 feature_importances 的值时,我得到每个类别的不同值。 绿色 = 2.45*10^-2 蓝色 =6.2 *10^-3 以此类推。

不应该所有编码的类别值都具有相同的 feature_importances 值。就像所有类别的颜色都具有相同的重要性并且所有大小的值都具有相同的重要性? 有没有一种方法可以显式定义 feature_importances? 注:我明白了

【问题讨论】:

    标签: scikit-learn random-forest categorical-data


    【解决方案1】:

    当您对分类数据进行二值化时,您会将单个特征转换为多个特征。如果分类值以不同的方式分割目标变量,那么它们将具有不同的特征重要性。因此,要回答您的问题,不,二进制分类数据不应该具有相同的特征重要性。

    假设您的类别是“红色”、“蓝色”、“绿色”,而您的目标变量是二进制 "Is ketchup" = 0 or 1。在这种情况下,“绿色”的正值表示它不是番茄酱,但零值并不意味着它是番茄酱,因为它仍然可能是“蓝色”(因此不是番茄酱)。所以“红色”特征的重要性高于“绿色”或“蓝色”特征,因为它更好地分割了“is ketchup”目标变量。

    请注意,scikit-learn 中的决策树可以处理数字数据和分类数据,因此如果您不想,实际上不需要对数据进行二值化。

    【讨论】:

    • 有没有办法只将它们用作类别而不是功能?就像颜色和大小是特征,但它们的值只是类别。
    • 是的,scikit-learn 中的决策树可以同时处理数字和分类数据,因此如果您不想这样做,实际上不需要对数据进行二值化。
    • 我在决策树中使用什么参数来指示一列是分类数据?此外,RF 是多个决策树。有没有办法为 RF 使用分类数据
    猜你喜欢
    • 2014-01-06
    • 2015-03-28
    • 2020-05-16
    • 2015-12-16
    • 2013-06-07
    • 2021-05-09
    • 2015-11-14
    • 2016-12-24
    • 2017-08-25
    相关资源
    最近更新 更多