1)我们如何决定我们是分成2个子节点还是更多?还是总是2?
2)我们如何确定临界值是多少?具体来说,你有一个连续变量,你是做二分搜索,还是如何决定截止值?
1)我们如何决定我们是分成2个子节点还是更多?还是总是2?
2)我们如何确定临界值是多少?具体来说,你有一个连续变量,你是做二分搜索,还是如何决定截止值?
好吧,这取决于您使用的实现。我假设我们正在谈论原始的 CART 论文 [1]
1)那么总是有一个分裂导致两个孩子。
2) 用于拆分的值是通过测试每个变量的每个值来确定的,选择最小化平方和误差 (SSE) 的值:
在上面的等式中是你的预测值和和可能拆分的左侧和右侧的平均值。
当将以下数据矩阵馈送到 CART 例程时,每个变量/特征/列(此处为 A、B 和 C)的每个值都将使用 SSE 进行测试。
A B C y
0.05 0.31 0.51 0.97
0.32 0.41 0.88 0.89
0.76 0.61 0.48 0.11
0.81 0.94 0.85 0.19
将选择最佳最小化 SSE 的那个进行拆分。CART 将使用变量的所有值A
(0.05、0.32、0.76 和 0.81)测试所有可能的拆分,然后使用变量B
,然后C
。
[1] 布雷曼、利奥等人。分类和回归树。CRC 出版社,1984 年。