python - sklearn 集成和树中连续变量的分箱

标签 python machine-learning scikit-learn decision-tree ensemble-learning

谁能告诉我 sklearn (Python) 中的集成(如随机森林、梯度提升、Adaboost)和树(如决策树)如何处理连续变量?在构建树时,它们是否被视为每个单独的值?还是它们会自动装箱?如果它们被分箱 - 遵循的逻辑是什么。如果他们没有装箱,我确定我遗漏了一些东西。应该有一些可用的智能装箱(内置?),它将根据类别分布(至少在二进制分类的情况下)将变量值装箱

深入:当我在 weka 中加载我的 arff(高度倾斜的数据集中的数百万行和几百个特征)并滚动变量/目标(二进制)图时,我可以看到其中很多都有强箱(目标为正的区域)。这些箱子,即 >=x <=y 是否被 sklearn 中提到的上述模型自动拾取?见附图(如果你能看到它,在变量/目标图中有非常细的 6 条红线)

非常感谢对此的任何见解

问候

enter image description here

最佳答案

使用默认设置(非随机拆分),每次通过拆分数据集来生成决策树或回归树时,所考虑的数据集部分将按所考虑的每个特征的值依次排序(在随机森林或 ExtraTrees 森林中,每次都可能随机选择特征)。然后是每个相邻对的平均值 f[i], f[j]的特征值被认为是候选分割,除非该对相距小于 1e-7(代码中当前硬连线的任意常数)。根据 Gini/entropy/other 拆分标准,最佳拆分用于将数据集拆分为具有 f < (f[i] + f[j]) / 2 的那些点。以及 f 具有更高值(value)的那些.

I.o.w.,没有执行明确的合并。

(我实际上不是决策树专家,但我确实从事 scikit-learn 实现方面的工作,特别是我通过为其编写更快的排序算法来优化拆分代码。)

关于python - sklearn 集成和树中连续变量的分箱,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25287466/

相关文章:

python - 正确更改邻接矩阵的值以表示无向图

python - 在 Pandas 中循环 MAPE 函数会抛出错误

python - 设置 Sentry 不起作用 - 没有任何内容发送到 Sentry

python - 你是如何一次性弹出redis中的所有值的

machine-learning - PCA(主成分分析)和特征选择之间的区别

python - Sklearn MLP 分类器隐藏层优化 (RandomizedSearchCV)

python - 如何获得训练集和验证集的不同指标?

python - 将分类数据传递给 Sklearn 决策树

python - 如何将 Pandas 中的一列扩展为多列?

python - 拆分列以修改数据框