决策树。选择分割对象的阈值
Decision trees. Choosing thresholds to split objects
如果我理解 this 正确,会出现一组对象(特征数组),我们需要将其分成 2 个子集。为此,我们将某些特征 xj 与阈值 tm 进行比较(tm 是阈值在 m 节点)。我们使用杂质函数 H() 来找到拆分对象的最佳方法。但是我们如何选择 tm 的值以及应该将哪个特征与阈值进行比较?我的意思是,我们可以选择 tm 的方式有无数种,所以我们不能只为每种可能性计算 H() 函数。
选择 tm 的方法实际上并不是无限多的。给定一个合理的阈值范围,一个简单的实现可能会迭代它们,评估 H() 和将导致最佳分割的特征分割,因为将为决策树中的分割选择杂质度量。
在这些 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) + 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) 来评估其作为拆分的适用性
注意,可能会多次拆分一个属性,
具有不同的阈值
如果我理解 this 正确,会出现一组对象(特征数组),我们需要将其分成 2 个子集。为此,我们将某些特征 xj 与阈值 tm 进行比较(tm 是阈值在 m 节点)。我们使用杂质函数 H() 来找到拆分对象的最佳方法。但是我们如何选择 tm 的值以及应该将哪个特征与阈值进行比较?我的意思是,我们可以选择 tm 的方式有无数种,所以我们不能只为每种可能性计算 H() 函数。
选择 tm 的方法实际上并不是无限多的。给定一个合理的阈值范围,一个简单的实现可能会迭代它们,评估 H() 和将导致最佳分割的特征分割,因为将为决策树中的分割选择杂质度量。
在这些 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) + 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) 来评估其作为拆分的适用性
注意,可能会多次拆分一个属性, 具有不同的阈值