其实不然。 Sklearn 通常使用购物车树,其中最佳分割是通过选择最小化成本函数的特征来决定的。所以列的顺序并不重要。
重新排序列名称 可以更改
sklearn
决策树结果。问题是,对于每个分割,都会考虑max_features
,并选择影响最大的特征(例如最大的基尼系数降低)。
但是,如果多个特征具有相同的影响——这并不像看起来那么罕见,尤其是对于大量二进制特征——其中一个是随机选择的。
在这种情况下,数据集中的列顺序可能会影响最终决策树中选择的特征。为了确保防止这种情况发生,有必要选择
random seed
并在拟合树之前对数据框列进行排序。
更多解释可以在这里(engelen的答案)和这个Github讨论中找到。