决策树

决策树是一种基于树状结构的监督学习模型,常用于分类和回归任务。它的基本思想是通过一系列问题的分层次判断,将数据分割成越来越小的子集,直到达到预期的目标。

局部最优

在构建决策树的机器学习过程中,通常采用贪心算法(Greedy Algorithm)作为核心的分割策略。这种方法的基本原理是:在每一步决策时,都选择当前条件下最优的分割方式,而不考虑这一选择对后续步骤可能产生的影响。

具体来说,决策树的构建过程会递归地进行以下操作:

  1. 在当前节点上,计算所有可能的特征和分割点的信息增益(或基尼不纯度等分裂标准)
  2. 选择使信息增益最大化的特征和分割点
  3. 根据选定的分割将数据集划分为若干子集
  4. 对每个子集递归地重复上述过程,直到满足停止条件

剪枝

剪枝是一种用于防止决策树过拟合的方法。常见的剪枝方法有预剪枝(pre-pruning)和后剪枝(post-pruning)。

  • 预剪枝:在决策树生成的过程中,对每个节点在划分前先进行估计,如果当前的节点划分不能带来决策树泛化性能的提升,则停止划分
  • 后剪枝:先训练生成一颗完整的树,自底向上对非叶节点进行考察,如果该节点对应的子树替换为叶节点能带来决策树泛化能力的提升,则替换

分裂

分裂是决策树构建中的核心过程,指的是从根节点开始,根据某个特征的值,将数据划分到不同的子节点中。

二叉分裂

二叉分裂是一种特定的分裂方式,每次只将节点分成两个子节点,形成一个二叉树结构。许多决策树算法(如CART算法)就是基于二叉分裂构建的。

修改局部最优条件

  • 以信息增益作为划分训练数据集的特征,存在偏向于选择取值较多的特征的问题
  • 使用信息增益比(information gain ratio)可以对这一问题进行矫正

连续变量处理手段

在C4.5中,如果输入特征字段是连续型变量,则算法首先会对这一列数进行从小到大的排序,然后选取相邻的两个数的中间数作为切分数据集的备选点。若一个连续变量有N个值,则将产生N-1个备选切分点。

分裂准则

  • 分类树:Gini准则,与信息增益很类似,Gini系数度量一个节点的不纯度
  • 回归树:一种常见的分割标准是偏差减少(Stand Deviation Reduction,SDR),类似于最小均方差LS准则

测试集和验证集

  • 训练集、测试集和验证集的划分通常遵照6:2:2的比例进行划分
  • 验证集数据不参与建模也不参与模型修改和优化,只用于模型最终优化后的模型效力评估

错误速查表

症状根因修复
训练集准确率高、线上/测试集差树太深、叶子太纯导致过拟合预剪枝、后剪枝、交叉验证
总是选”取值很多”的特征先分裂信息增益对多取值特征有偏好使用增益率/基尼系数
连续变量分裂很慢候选切分点多(N-1)先分箱/采样候选点
多路分裂后数据碎片化严重多路分裂稀释样本倾向二叉分裂