一、纯度测量方式——熵
第一步,定义:一个子集里,某一类别的数据在子集中的占比
例如,下图这组输入数据,根据耳朵形状划分为两个子集,尖耳朵子集里,有四只猫,1只狗。则是4/5
第二步,根据计算熵,把熵用来测量纯度。
熵的计算公式:
熵和的曲线如下:
熵计算的示例:
二、信息增益
信息增益:节点分裂以后,与分裂前相比,分裂以后熵的减少量。
以下图为例,根节点上,猫占比5/10,熵是1。根节点根据耳朵形状分裂以后,左节点的熵是0.72,右节点的熵是0.72,根据左右节点的权重计算出:分裂后的熵左节点权重*左节点熵+右节点权重*右节点熵=0.72。最后计算出信息增益,即熵减少量为0.28。
然后依次根据脸形状、是否有胡须,分别分裂根节点,计算信息增益,找出信息增益最大的特征。
使用信息增益的一个好处是,如果信息增益太小,就可以停止分裂。
信息增益公式:
w为左节点/右节点的权重。
三、决策树整体学习过程
1、所有训练数据从树的根节点上开始分裂
2、计算所有可能特征的信息增益,然后挑选信息增益最大的特征进行分裂
3、根据所选特征把数据集分裂成两个子集,把子集划分到左分支或右分支
4、在左/右分支上继续分裂过程,直至满足停止标准。停止标准是:
- 当一个节点上全部是一个种类时,停止分裂。
- 当继续分裂,会超过树的最大深度时,停止分裂。
- 当纯度提高率低于阈值时,停止分裂。
- 当子集的数据量低于阈值时,停止分裂。
四、独热编码
当一个特征有两个以上的可能值,可以使用独热编码。
示例:如果输入特征:耳朵形状具有多个可能值:尖的、软的、椭圆的,这种场景可以把耳朵形状特征拆成是否尖的、是否软的、是否椭圆的。
独热编码:一个特征有k个可能值,创建出k个二进制特征来替换它,值是0或1。
独热编码还可以用于神经网络、逻辑回归、线性回归。
五、连续值特征
当一个特证的可能值是连续的数值时,决策树如何分裂?
连续值特征处理方式:
- 把训练集数据范围内,选取不同值作为阈值
- 按照阈值分裂
- 不同阈值下进行信息增益计算
- 选取信息增益高的值作为阈值分裂节点
示例:如果输入特征是体重,体重的可能值是连续的数值。可以选定一个阈值,按照阈值来划分子集(当体重高于阈值、当体重低于阈值)
当分别以8、9、13作为体重阈值分裂,≥阈值时划入子集1,<阈值时划入子集2,分别计算子集1和子集2的纯度,最后计算分裂后的信息增益。
六、回归树
当输出结果不是0或1,而可能是连续数值时,可以使用回归树。
示例:
输入特征是耳朵形状、脸形状、是否有胡子,输出结果是体重,体重的结果不再是0或1
步骤一:训练集按照特征分裂出子集
步骤二:每个子集里的数据按照方差计算出结果
- 方差计算公式:设有一组数据 X1, X2, ..., Xn,其均值为 μ,方差σ² = ∑(Xi - μ)² / n。
步骤三:按照权重,计算分裂后的方差减少值
学习来源:吴恩达机器学习,16.1-16.6节