应用一个热编码器后如何改变决策树的特征阈值?

Posted

技术标签:

【中文标题】应用一个热编码器后如何改变决策树的特征阈值?【英文标题】:How to change features threshold of decision trees after applying one hot encoder? 【发布时间】:2021-01-31 21:08:12 【问题描述】:

我的数据框中有一些字符串(女性 x 男性、地区等),我想拟合决策树。因此,我在所有这些分类特征中应用了一个热编码器——它返回了一堆包含 0 和 1 的新列。

但是,决策树中特征阈值的默认值为 0.5。这对这些分类列没有意义。

有人知道我如何在 python 中一次更改大量列的阈值(无需输入每列的名称)吗?

我想要类似:女性列分为 0 和 1。我想在计算统计数据(AUC、ROC、ACC 等)之前完成所有这些操作。

ps:我还有一些数值数据(例如收入),所以我无法更改所有列的阈值 ps2: 分类 1 和 0 在第 6 到 30 列。

【问题讨论】:

【参考方案1】:

嗯,二进制特征的阈值 0.5 确实有意义。 这只是意味着当特征取值 > 0.5(因此为 1)时,将拆分(比如说)向右,并且特征取值

更改阈值是没有意义的:0 到 1 之间的任何值都与 0.5 具有相同的效果,小于 0 或大于 1 的值意味着没有进行拆分,所有观察都转到同一个子节点。

【讨论】:

以上是关于应用一个热编码器后如何改变决策树的特征阈值?的主要内容,如果未能解决你的问题,请参考以下文章

用于决策树的 one-hot 编码后如何解释特征重要性

一次热编码后决策树中的特征解释

机器学习:如何在具有分类和数字特征的 pandas 数据帧上应用一种热编码?

scikit-learn:如果经过一次热编码后它的特征少于训练/测试集,如何预测新数据

模式识别 - 决策树问题研究

使用 sklearn 或 pandas 进行一次热编码后,如何在混合数据集(数值 + 分类)上应用 KNN