简介
基于树的学习算法被认为是最优秀的,也是使用最广泛的监督型学习方法。基于树的算法赋予预测模型高精度、稳定性和易解释性。与线性模型不同,它们能很好地映射非线性关系。它们善于解决手头上的任何问题,包括分类和回归。
例如Decision Trees,Random Forest,Gradient Boosting等方法,在各种数据科学问题中得到了广泛的应用。因此,对于每一个分析师来说,学会这些算法并使用它们进行建模是很重要的。
目录
什么是决策树,以及它是如何工作的?
回归树Vs分类树
决策树是如何决定分割点的?
模型建立的关键参数是什么?如何避免决策树的过拟合?
基于树的模型优于线性模型吗?
在R和Python中使用决策树。
基于树的模型的集成方法(Ensemble Methods)是什么?
什么是装袋(Bagging)?它是如何工作的?
什么是随机森林?它是如何工作的?
什么是Boosting?它是如何工作的?
GBM和Xgboost哪个更强大?
在R和Python中使用GBM。
在R和Python中使用Xgboost。
1. 什么是决策树,以及它是如何工作的?
决策树是在分类问题中经常使用到的一种监督型学习算法。它适用于分类型以及连续性输入和输出变量。在这个方法中,我们根据输入变量中最显著的分裂点将总体或样本划分为两类或多类。
例子:
假如有30个同学,已知他们的性别(Gender:Boy/Girl),班级(Class:IX/X)和身高(Hight:5-6 ft)。其中15个同学在业余时间打板球(cricket)。现在,我想建立一个模型预测谁在业余时间打板球?在这个问题中,我们需要根据高度显著的输入变量来区分在业余时间中打板球的同学。
决策树能够帮助我们,它根据三个变量的所有值划分学生,并识别哪个变量的划分效果最好。在下图中,你可以看到与其它两个变量相比,性别(Gender)的划分效果最好。
如上所述,决策树识别出最显著的变量以及取值,并给出效果最好的划分结果。那么,现在的问题是:它如何识别最显著的变量,以及如何进行分裂?为此,决策树使用了各种算法,我们将在下面的章节中讨论。
决策树类型
决策树的类型取决于我们的目标变量的类型。共分为两类:
分类型变量决策树:目标变量为分类型的决策树,称为分类型变量决策树。例如上面的“学生是否在业余时间打板球”。
连续型变量决策树:目标变量为连续型的决策树,称为连续型变量决策树。
例子:假如我们要预测一个客户是否会向保险公司支付续期保险费(是/否)。在这里,我们知道客户的收入是一个显著性变量,但保险公司没有所有客户的收入情况。可是,我们可以基于客户的职业,所买产品以及其它变量建立一个决策树模型去预测客户的收入。在这个例子中,我们预测的是连续变量的值。
决策树相关重要术语
让我们看看与决策树相关的一些基本术语:
根节点(Root Node):代表整个总体或样本。
分裂(Splitting):将一个节点分成两个或多个子节点的过程。
决策节点(Decision Node):当一个子节点(sub-node)进一步分成子节点时,我们称这个节点为决策节点。
叶子/终端节点(Leaf/Terminal Node):不再分裂的节点称为叶子或终端节点。
剪枝(Pruning):我们把移除一个决策节点的子节点的过程称为剪枝。也可以称之为和分裂相反的处理过程。
分支/子树(Branch/Sub-Tree):整棵树的一个子部分叫做分支或子树。
父节点和子节点(Parent and Child Node):被分裂为sub-nodes的节点称为sub-nodes的父节点,而这些sub-nodes称为这个节点的子节点。
这些是决策树常用的术语。我们知道每种算法都有优缺点,下面是我们应该了解的关于决策树的一些优缺点:
优点
易于理解:决策树的输出易于理解,即使是没有分析背景的人也很容易解释。它不需要任何统计知识来阅读和解释它们。它的图形表示非常直观,用户可