1 前言
决策树是非常经典的机器学习模型,日常工作中许多分类和回归问题都可以用决策树解决,很多更高级、先进的机器学习模型也基于决策树构建,为了夯实基础、正确运用决策树,今天我们来回顾一些决策树里最重要的技术细节。
鸢尾花品种分类决策树示例
2 算法重要细节
2.1 如何做预测
示例中深度为2的决策树的展示了做决策的过程和结论,对于150个样本点,在根节点上,决策树以花瓣长度(petal length)是否小于2.45厘米将数据分成两部分,花瓣长度小于2.45厘米的样本被分类成setosa,大于2.45厘米的数据继续以花瓣宽度(petal width)是否小于1.75厘米进行分类,小于的部分被认为是versicolor,大于的部分则是virginica。
图中的samples即为这个大类中的样本数量,如深度为1的左侧叶子节点中samples=50意味着花瓣长度(petal length)小于2.45厘米的样本有50个。而value则代表当前节点中训练数据的分布,如深度为2的左侧绿色节点中[0, 49, 5]表示这个节点中,有0个setosa,49个versicolor和5个virginica,总共54个samples。
2.2 预测的依据
在示例的决策树中,还要一个重要的指标叫做Gini - 基尼系数
,这个系数衡量当前节点的不纯净度(impurity),直观来说,当一个节点里的所有样本都属于同一类时,节点的纯净度最高,基尼系数为0。Gini
的定义为
Gini
其中是在i个节点中k类的样本占总体样本的比例。比如示例中深度为2的右侧节点的Gini
为。以最常用的Python机器学习库Scikit-Learn(v0.24.2)
中的DecisionTreeClassifier[1]类为例,其在实现分类和回归树(Classification and Regression Tree, CART)时,在选择分裂