CART与决策树中的超参数

  
  我们之前学习的决策树通常还有一个名字,叫做 CART(Classification And Regression Tree)。这样的决策树如名称所说的,既可以解决分类问题,也可以解决回归问题。也是根据某一个维度 d d d 和某一个阈值 v v v 进行二分,那么这样得到的决策树一定是一颗二叉树。sklearn 中实现的决策树都是 CART。
  
  当我们建立好一颗决策树,平均而言,它做预测的时间复杂度为 O ( l o g m ) O(logm) O(logm) m m m 为样本个数。可以想象成平均来看,每一次在一个节点上划分都是对当前的数据集进行对半划分,所以最终这棵树的高度就是 l o g m logm logm。但是训练过程的时间复杂度是非常高的,达到了 O ( n ∗ m ∗ l o g m ) O(n*m*logm) O(nmlogm),因为有 l o g m logm logm 层,在每一层大概要做 n ∗ m n*m nm 次尝试。在之前模拟决策树节点划分的时候,要对每一个维度 n n n 之后要对每一个样本 m m m 进行遍历,最终找到最佳的划分点。这个复杂度是比较高的。
  
  但是,决策树还有一个更大的问题,就是非常容易产生过拟合,其实这一点是和 kNN 算法是一样的。事实上所有的非参数学习算法都非常容易产生过拟合。那么基于这些原因,我们实际在创建决策树的时候,必须对决策树进行剪枝,就是为了降低复杂度,防止过拟合。那么我们怎么进行剪枝呢?
  
  其实在之前的例子中,我们一直在对决策树进行剪枝,当我们创建决策树对象时,我们一直传入了一个参数 max_depth = 2,我们限制了决策树的高度最多是 2,这实际上就是一个剪枝手段。换句话说,我们在使用 sklearn 来创建决策树的时候,所谓的剪枝就是我们需要对一些参数进行平衡。
  
  下面我们通过具体编程观察还有什么参数可以用于剪枝。
  
84-CART与决策树中的超参数
84-CART与决策树中的超参数
84-CART与决策树中的超参数
84-CART与决策树中的超参数
84-CART与决策树中的超参数
84-CART与决策树中的超参数
84-CART与决策树中的超参数
  

  对于一棵决策树来说,除了举例的参数,还有其它参数。

84-CART与决策树中的超参数
  
  我们现在一直使用决策树来解决分类问题,下一篇博客具体介绍怎么使用决策树实现回归问题。
  

  具体代码见 84 CART与决策树中的超参数.ipynb

相关文章:

  • 2021-06-27
  • 2021-08-11
  • 2021-05-06
  • 2021-09-11
  • 2022-12-23
  • 2021-11-14
  • 2021-11-28
猜你喜欢
  • 2021-05-29
  • 2021-08-12
  • 2021-05-26
  • 2021-11-06
  • 2021-12-30
  • 2021-06-16
相关资源
相似解决方案