我的数据有很多分类特征。我使用Dict_vectorizer对它们进行编码。
For example df['color']=['green','blue','white']
df['size']=['small','big','medium'] .
我使用随机森林算法。当我检查feature_importances的值时,我得到了每个类别的不同值。绿色= 2.45*10^-2蓝色=6.2 *10^-3,以此类推。
不应该所有编码的类别值都具有相同的feature_importances值。就像所有的颜色种类都有同样的重要性,所有的大小值都有同样的重要性?是否有一种方法可以明确定义feature_importances?注意:我理解
当您对分类数据进行二值化时,您将单个特征转换为多个特征。如果分类值对目标变量的分割不同,那么它们将具有不同的特征重要性。所以回答你的问题,不,二值化的分类数据不应该具有相同的特征重要性。
想象你的分类是"红色"、"蓝色"、"绿色",你的目标变量是二进制"Is ketchup" = 0 or 1
。在这种情况下,正值"绿色"将表明它不是番茄酱,但值为零并不意味着它是番茄酱,因为它仍然可能是"蓝色"(因此不是番茄酱)。因此,"红色"特征的重要性高于"绿色"或"蓝色"特征,因为它更好地分割了"是番茄酱"目标变量。
请注意,scikit-learn
中的决策树可以处理数值和分类数据,因此如果您不想,实际上不需要对数据进行二值化。