1.决策树算法实现的三个过程:
- 特征选择:选择哪些特征作为分类的标准是决策树算法的关键,因此需要一种衡量标准来进行特征的确定,不同的决策树衡量标准不同。例如C4.5决策树就是以信息增益率来作为衡量标准。
- 决策树的生成:根据所选择的衡量标准不断递归调用计算最后直到整个数据集中的特征不可分为止。决策树是从根节点开始自上而下逐渐生成树状结构。
- 决策树的剪枝:在决策树学习中,为了尽可能正确分类训练样本,结点划分过程将不断重复,有时会造成决策树分支过多导致过拟合.因此需要剪枝降低过拟合风险。剪枝有预剪枝(边建立决策树边剪枝,就是设立一些规则来防止树过度生长。)和后剪枝(建立决策树后再剪枝让决策树生长成过拟合后再进行剪枝)
2.算法的实现步骤:
输入:数据集(训练集)S及属性A 输出:属性A对训练数据集S的信息增益
-
属性取值数目越大,分裂信息越大,从而抵消了属性取值数目所带来的影响,但增益率准则对可取值数目较少的属性有所偏好,所以应先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的属性.
-
将该属性作为决策树的节点,在该节点的子节点上使用剩余属性递归执行①~⑤。
- 对生成的决策树进行剪枝处理。
3.算法实例
例题:以下是某公司招录人员的信息表,运用C4.5算法构建决策树模型。
性别
学历
学校
经验
是否录用
男
本科
985
无
是
女
本科
211
无
是
男
研究生
普通院校
有
是
男
大专
普通院校
有
否
女
本科
985
无
是
男
研究生
普通院校
有
是
男
本科
211
无
是
男
大专
普通院校
有
否
男
本科
普通院校
无
否
女
本科
普通院校
有
否
男
本科
211
无
是
男
研究生
211
无
是
男—-9个:其中录取的有6个,不录取的有3个
女—-3个:其中录取的有2个,不录取的有1个
因此
信息熵:
信息增益:
分裂信息:
信息增益率:
大专—-2个:其中录取的有0个,不录取的有2个
本科—-7个:其中录取的有5个,不录取的有2个
研究生–3个:其中录取的有3个,不录取的有0个
因此
信息熵:
信息增益:
分裂信息:
信息增益率:
985——-2个:其中录取的有2个,不录取的有0个
211——-4个:其中录取的有4个,不录取的有0个
普通院校–6个:其中录取的有2个,不录取的有4个
因此
信息熵:
信息增益:
分裂信息:
信息增益率:
有—-5个:其中录取的有2个,不录取的有3个
无—-7个:其中录取的有6个,不录取的有1个
因此
信息熵:
信息增益:
分裂信息:
信息增益率:
③ 从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的属性.
所有属性的平均信息增益:
其中学历和学校的信息增益高于平均水平的属性,两者中增益率最高的是学校。
④ 以学校作为根节点,
按照其他三个属性对属性学校中的985进行划分,
性别
学历
学校
经验
是否录用
男
本科
985
无
是
女
本科
985
无
是
由表可知对属性学校中的985分支划分后的子节点已经是纯的,因此不再需要继续划分节点。
按照其他三个属性对属性学校中的211进行划分,
性别
学历
学校
经验
是否录用
女
本科
211
无
是
男
本科
211
无
是
男
本科
211
无
是
男
研究生
211
无
是
由表可知对属性学校中的211分支划分后的子节点已经是纯的,因此不再需要继续划分节点。
按照其他三个属性对属性学校中的普通院校进行划分,计算步骤同上:
性别
学历
学校
经验
是否录用
男
研究生
普通院校
有
是
男
大专
普通院校
有
否
男
研究生
普通院校
有
是
男
大专
普通院校
有
否
男
本科
普通院校
无
否
女
本科
普通院校
有
否
信息熵:
信息增益:
分裂信息:
信息增益率:
信息熵:
信息增益:
分裂信息:
信息增益率:
信息熵:
信息增益:
分裂信息:
信息增益率:
从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的属性.
所有属性的平均信息增益:
其中学历信息增益高于平均水平的属性,且增益率最高的也是学历。
⑤ 把学校的子节点中的普通学校节点的子节点设为学历。
以学历为父节点:如图所示:
按照其他两个属性对属性学历中大专的进行划分,
性别
学历
经验
是否录用
男
大专
有
否
男
大专
有
否
由表可知对属性学历中的大专分支划分后的子节点已经是纯的,因此不再需要继续划分节点。
按照其他两个属性对属性学历中本科的进行划分,
性别
学历
经验
是否录用
男
本科
无
是
女
本科
无
是
女
本科
无
是
男
本科
无
是
男
本科
无
否
女
本科
有
否
男
本科
无
是
信息熵:
信息增益:
分裂信息:
信息增益率:
信息熵:
信息增益:
分裂信息:
信息增益率:
其中经验增益率高于性别,所以学历节点中本科的子节点是经验。
按照其他两个属性对属性学历中研究生的进行划分,
性别
学历
经验
是否录用
男
研究生
有
是
男
研究生
有
是
男
研究生
无
是
由表可知对属性学历中的研究生分支划分后的子节点已经是纯的,因此不再需要继续划分节点。
划分结果如下图所示:
- 最后总的划分结果如下:
Original: https://blog.csdn.net/hanmengyuan2001/article/details/125289703
Author: my0214163
Title: 数据挖掘之C4.5决策树算法
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/638452/
转载文章受原作者版权保护。转载请注明原作者出处!