如果我正确理解了这个文档,一组对象(这些对象是特征数组)被呈现,我们需要将其分割成两个子集。为此,我们将某个特征 xj 与阈值 tm(tm 是 m 节点处的阈值)进行比较。我们使用一个不纯度函数 H() 来找到分割对象的最佳方式。但是,我们如何选择 tm 的值,以及应该将哪个特征与阈值进行比较呢?我的意思是,我们可以以无限种方式选择 tm,所以我们不能为每种可能性都计算 H() 函数。
回答:
在这些幻灯片的第18页,介绍了两种方法来为数值属性 X 选择分割阈值。
方法1:
- 根据 X 对数据进行排序,得到 {x_1, …, x_m}
- 考虑形式为 x_i + (x_{i+1} – x_i)/2 的分割点
方法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) 来评估其作为分割点的适用性
注意,可能多次对同一属性进行分割,使用不同的阈值