-
受过训练的决策树在有100万个实例的训练集上的近似深度是多少(没有限制)?
包含m个叶子的均衡二叉树的深度大概等于 。二元决策树(只做二元决策的一个,就像Scikit-Learn中所有树的情况一样)在训练结束时会或多或少地变的平衡,如果训练没有限制,每个训练实例有一个叶子。
因此,如果训练集包含一百万个实例,则决策树将具有 的深度(实际上更多一点,因为树通常不会很好地平衡)。 -
节点的基尼杂质是否通常低于或高于其父母体?它通常是更低/更高,或总是更低/更高?
- 节点的基尼杂质通常低于其父节点。这是通过CART训练算法的成本函数来确保的,该算法将每个节点分开,以最小化其子节点Gini杂质的加权和。
- 但是,如果一个孩子比另一个孩子小,它可能比其父节点具有更高的基尼杂质,只要这种增加超过其他孩子杂质的减少即可弥补。
- 例如,考虑一个包含四个A类实例和一个B类实例的节点。它的Gini杂质是
。
现在假设数据集是一维的,实例按以下顺序排列
你可以验证算法是否会在第二个实例之后拆分此节点,生成一个具有实例的子节点,以及另一个具有实例的子节点。第一个子节点的Gini杂质是
,这比它的父节点要高。
这可以通过另一个节点是纯的这一事实来补偿,因此整体加权的Gini杂质是
,这比它的父节点要低。
- 例如,考虑一个包含四个A类实例和一个B类实例的节点。它的Gini杂质是
-
如果决策树过度拟合训练集,尝试减少max_depth是一个好主意吗?
如果决策树过拟合训练集,减少max_depth可能是个好主意,因为这会约束模型,使其正则化。 -
如果决策树不适合训练集, 尝试缩放输入特征是个好主意吗?
决策树不关心训练数据是否按比例缩放或居中;这是关于他们的好事之一。因此,如果决策树欠拟合训练集,缩放输入特征只会浪费时间。 -
如果在包含100万个实例的训练集上训练决策树需要一个小时,大约需要花多少时间在包含1000万个实例的训练集上训练另一个决策树?
训练决策树的计算复杂度是,因此,如果将训练集大小乘以10,则训练时间将乘以
如果,则,因此你可以预期训练时间大约为11.7小时。 -
如果您的训练集包含100,000个实例,则将设置presort = True 能加速训练吗?
仅当数据集小于几千个实例时,预先训练训练集才能加速训练。 如果它包含100,000个实例,则设置presort = True将大大减慢训练速度。
网友评论