决策树。选择分割对象的阈值

Posted

技术标签:

【中文标题】决策树。选择分割对象的阈值【英文标题】:Decision trees. Choosing thresholds to split objects 【发布时间】:2018-01-12 18:55:14 【问题描述】:

如果我对this 的理解正确,则会显示一组对象(它们是特征数组),我们需要将其拆分为 2 个子集。为此,我们将某些特征 xj 与阈值 tm 进行比较(tm 是 m 节点处的阈值)。我们使用杂质函数 H() 来找到分割对象的最佳方法。但是我们如何选择 tm 的值以及应该将哪个特征与阈值进行比较?我的意思是,有无数种方法可以选择 tm,所以我们不能只为每种可能性计算 H() 函数。

【问题讨论】:

【参考方案1】:

在这些slides的第18页中,介绍了两种方法来选择数值属性X的分裂阈值。

方法一:

将数据按照 X 排序为 x​​_1, ..., x_m 考虑 x_i + (x_i+1 - x_i)/2 形式的分割点

方法二:

假设 X 是一个实值变量

将 IG(Y|X:t) 定义为 H(Y) - H(Y|X:t)

定义 H(Y|X:t) = H(Y|X = t) P(X >= t)

IG(Y|X:t) 是预测 Y 的信息增益 知道 X 是大于还是小于 t

然后定义 IG^*(Y|X) = max_t IG(Y|X:t)

对于每个实值属性,使用 IG*(Y|X) 来评估其作为拆分的适用性

注意,可以多次拆分一个属性, 具有不同的阈值

【讨论】:

在方法2中:t的定义是什么?在方法2中设置t值范围的常用方法是什么?方法 1 似乎提供了 OP 问题的答案,而方法 2 中的解释似乎并不完整。【参考方案2】:

选择 tm 的方法并不多。给定一个合理的阈值范围,一个简单的实现可能会对其进行迭代,评估 H() 和将导致最佳分割的特征分割,因为将为决策树中的分割选择杂质度量。

【讨论】:

如何估算一个“合理的范围”?

以上是关于决策树。选择分割对象的阈值的主要内容,如果未能解决你的问题,请参考以下文章

决策树算法

在决策树中寻找连续数据阈值的方法

如何解释决策树的 ROC AUC 曲线的阈值?

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

如何使用 Spark 决策树调整分类阈值

决策树的部分理解