简述树模型之决策树、随机森林、xgboost

如题所述

第1个回答  2022-07-01

先介绍一下 损失函数 的概念,它被广泛用做构造树时调整树形和衡量模型性能的标准,主要涉及两个概念:1) 方差(variance) :某一模型对不同测试集的预测结果波动程度;2) 偏差(bias) :某次预测结果与实际数据的差。总的来说,模型简单,偏差大、方差小,欠拟合;模型复杂,偏差小、方差大,过拟合。因此模型优化也是这样一个寻找最佳平衡点的过程。

决策树是一种树状结构,它的每个叶节点对应一个分类,非叶节点对应在某个属性上的划分,根据样本在该属性上的不同取值划分成若干子集。构造决策树的核心问题是每一步对样本属性如何做拆分。对于一个分类问题,从已知数据做训练,生产决策树是一个自上而下的分治过程。

多棵决策树组成, 基于Bagging思想,有放回抽样。每轮结果之间相互独立,因此损失函数的方差不对太大。
max_leaf_nodes 参数决定迭代次数,也就是树的深度,选取不当会导致模型过(欠)拟合,后果是虽然训练结果准确度很高,但 在实际部署时会发生意想不到的错误,这被称为数据泄露(data leakage)。二叉树并不是越深越好,太深会带来overfitting(过拟合)的问题,随机森林构造器的默认参数往往最优。

梯度提升决策树。专门处理表格型数据,如pd.DataFrame,基于Boosting。

下面是一些关键的参数:

GBDT每轮迭代数据都与上一轮结果有关,就信息元来说可以保证结果尽可能接近真实数据,偏差不会很大,但联系紧密的数据拟合会使得方差过大,因此需要浅一点的树来降低方差。
而基于Bagging的随机森林,各分类相互独立,受不同输入数据的影响小,目标是如何提高准确度,因此采用很深甚至不剪枝的树群。

数据挖掘小白一枚,如有错误,恳请大家指正~

相似回答