以下习题来自:
机器学习实战:基于Scikit-Learn和Tensorflow
一书。
-
如果训练集有100万个实例,训练决策树(无约束)大致的深 度是多少?
答: 一个包含m个叶节点的均衡二叉树的深度等于log2(m)的四 舍五入。通常来说,二元决策树训练到最后大体都是平衡的,如果不 加以限制,最后平均每个叶节点一个实例。因此,如果训练集包含一 百万个实例,那么决策树深度约等于log2(106)≈20层(实际上会更 多一些,因为决策树通常不可能完美平衡)。 -
通常来说,子节点的基尼不纯度是高于还是低于其父节点?是 通常更高/更低?还是永远更高/更低?
答: 一个节点的基尼不纯度通常比其父节点低。这是通过CART训 练算法的成本函数确保的。该算法分裂每个节点的方法,就是使其子 节点的基尼不纯度的加权之和最小。但是,如果一个子节点的不纯度 远小于另一个,那么也有可能使子节点的基尼不纯度比其父节点高, 只要那个不纯度更低的子节点能够抵偿这个增加即可。。举例来说,假 设一个节点包含4个A类别的实例和1个B类别的实例,其基尼不纯度等于0.32。 现在我们假设数据集是一维的,并且实例的排 列顺序如下:A,B,A,A,A。你可以验证,算法将在第二个实例 后拆分该节点,从而生成两个子节点所包含的实例分别为A,B和 A,A,A。第一个子节点的基尼不纯度为 0.5,比其父节点要 高。这是因为第二个子节点是纯的&