一、 决策树的简介
决策树是一种基本的分类与回归方法,学习通常包含三个步骤:特征选择、决策树的生成和决策树的剪枝。
决策树学习本质是从训练数据集中归纳出一组分类规则;决策树学习的损失函数通常是正则化的极大似然函数,学习策略是由训练数据集估计条件概率模型。
决策树学习的算法通常是一个递归地选择最优特征,并根据该特征进行分割。这一过程对应着决策树的构建,也对应着特征空间的划分。使得划分之后的各个子集能够被基本分类,那么构建叶节点;否则继续递归划分。
决策树可能发生过拟合,因此需要剪枝,从下而上进行,减去过于细分的结点,使其会退到父结点。
根节点
非叶子节点(决策点):代表测试的条件,对数据属性的测试
叶子节点:代表分类后所获得的分类标记
分支:代表测试的结果
先构建决策树(训练阶段),再使用决策树(分类阶段)
二、特征选择
特征选择的准则:信息增益或信息增益比。我们选择信息增益最大的那个分割。
A.熵(entropy)与基尼(Gini)系数
熵:物体内部的混乱程度或不确定性,熵值越大,则物体内部的混乱程度越大;反之,熵值越低,物体内部纯净度越高。
由熵的公式可知,当物体内部某个类的概率 较小时,则 (负数)的绝对值就越大。由此可知,当物体或集合内部的类别非常多时(即物体内部混乱程度很高),每个类别的概率就会很小,就会导致物体的熵值很高。
三、决策树的生成(目的:得到熵值降低速度最快的决策树)
构造决策树的基本思想:随着树深度的增加,节点的熵迅速地降低。熵降低的速度(引入信息增益和信息增益比的概念)越快越好,以便得到一棵高度最矮的决策树
案例
首先,确定根节点,分别假设outlook、temperature、humidity、windy为根节点,求出对应的熵,从而得到信息熵;
然后,再与原始熵对比,得到信息增益或信息增益率,从而确定根节点;
其次,通过递归的方法构造出决策树的其他节点;
最后,决策树构造完成后,通过评价函数(目标函数)来判断当前的决策树的好坏程度。
下面计算假设outlook为根节点时对应的熵值
outlook=sunny时,entropy==0.971
outlook=overcast时,entropy=0
outlook=rainy时,entropy==0.971
根据历史统计数据,outlook取sunny、overcast、rainy的概率分别为5/14、4/14、5/14,所以当outlook为根节点时的信息熵为:
根据历史数据,新的一天打球的概率是9/14,不打的概率是5/14,则原始熵值(固有熵值):
信息增益为:
gain(outlook):0.940-0.693=0.247
同理可以计算出:
gain(temperature)=0.029
gain(humidity)=0.152
gain(windy)=0.048
综上所述,gain(outlook)最大(即outlook在第一步使得系统的信息熵下降得最快),所以决策树的根节点取outlook
ID3算法:信息增益(传统算法)
--通常情况下,仅仅根据信息增益判断是不靠谱的
--缺点:当某个特征下的属性非常稀疏(即类别很多),每个属性对应样本的个数又很少时,选用该节点计算熵值时,显然可以使得熵值下降最快,但是该属性很有可能与问题无关,从而引出信息增益率
C4.5算法:信息增益率
--
-- C4.5算法是ID3算法的扩展
CART算法:Gini系数
评价函数(目标函数):
--越小越好,类似损失函数
-- Nt:每个叶子节点包含的样本数
-- H(t):叶子节点的自身熵值
决策树构造完成后,通过评价函数(目标函数)来判断当前的决策树的好坏程度。
决策树不仅可以处理像上述的离散型属性,也能够处理连续型的属性。首先将连续型属性离散化,把连续型属性的值分成不同的区间,依据是比较各个分裂点的信息增益值的大小。
四、决策树的剪枝(目的:得到高度最矮的决策树)
如果决策树考虑了所有的训练数据集,得到的决策树将会过于庞大。虽然这个决策树对于训练数据集的拟合概率为100%,但是由于过分考虑所有的数据,将数据切得太碎太碎了,这样就会使得决策树学习到一些噪音点、错误点,出现过拟合的现象。
过拟合的主要原因在于构建决策树时过于复杂。
决策树的剪枝通过极小化决策树整体的损失函数或代价函数来实现。
4.1 预剪枝
在构建决策树的过程中,对每个节点在划分前先进行估计,若当前节点的划分不能带来决策树泛化性能提升,则停止划分并将当前节点标记为叶子节点。
--最小样本数
--最大深度
4.2 后剪枝
决策树构建好后,然后自底向上地对非叶子节点进行考察,若将该节点对应的子树替换为叶子节点能带来决策树泛化性能提升,则将该子树替换为叶子节点。
--
--叶子节点数越多,损失越大
-- a:人工设置,该值越大,说明叶子节点数的权重越大;该值越小,叶子节点数影响较小
-- Tleaf:叶子节点数
五、随机森林
采样方式
Bootstraping:有放回采样
Bagging:有放回采样n个样本
对于一个测试数据,将它投入到随机森林中的不同决策树中,会得到不同的测试结果。若问题是一个分类问题,则可以通过求众数来得出测试数据的类别;若问题是一个回归问题,则可以通过求平均值得出测试数据的值。
双重随机性
数据样本采样的随机性:通过从训练数据集中有放回的随机采样,构造出很多的、不同的决策树
--目的:使得某些决策树选不到异常样本
数据特征采样的随机性:通过从特征中的随机采样(无放回,特征不能重复)构造随机森林
--目的:使得某些决策树选不到异常特征
更多AI资源请关注公众号:大胡子的AI
欢迎各位AI爱好者加入群聊交流学习:882345565(内有大量免费资源哦!)
版权声明:本文为博主原创文章,未经博主允许不得转载。如要转载请与本人联系。