我的数据有很多分类功能。我使用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? 注意:我理解
答案 0 :(得分:0)
在对分类数据进行二值化时,您可以将单个要素转换为多个要素。如果分类值以不同方式分割目标变量,则它们将具有不同的特征重要性。所以要回答你的问题,不,二进制化的分类数据不应具有相同的特征重要性。
想象一下,您的类别是"红色","蓝色","绿色"并且您的目标变量是二进制"Is ketchup" = 0 or 1
。在这种情况下,"绿色"的正值。将表明它不是番茄酱,但零值并不意味着它是番茄酱,因为它仍然可以是"蓝色" (因此不是番茄酱)。所以" red"的重要性功能高于"绿色"或者"蓝色"功能因为它更好地分裂"是番茄酱"目标变量。
请注意scikit-learn
中的决策树可以同时处理数字和分类数据,因此如果您不想,您实际上并不需要对数据进行二值化。