欢迎来到天天文库
浏览记录
ID:46233954
大小:47.51 KB
页数:6页
时间:2019-11-21
《机器学习算法之决策树》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、机器学习算法之决策树4」一刖S决策树是一种简单高效并且具有强解释性的模型,广泛应用于数据分析领域。其本质是一颗曲多个判断节点组成的树,如:满足条件A?满足条件B?结果a结果c结果d在使用模型进行预测吋,根据输入参数依次在各个判断节点进行判断游走,最后到叶子节点即为预测结果。如何构造决策树决策树算法的核心是通过对数据的学习,选定判断节点,构造一颗合适的决策树。假设我们从用户行为日志中整理出如下数据:来源网站;位置阅读过FAQ
2、浏览网页数付费类型百度西安yes18None谷歌上海no23Premium~~^叟
3、^~~浙江yes24Basic匚百度二浙江no11NoneL谷歌_西安no18Basic匚搜狗二上海yes22None百度西安no12None浙江no19Basic搜狗;西安no20None匚谷歌口西安yes16None我们的目的是要利用这些数据,训练决策树模型,模型训练好后,我们就可以通过任意给定的用户來源网站、位置、是否阅读过FAQ、浏览网页数信息,预测该用户是否会进行付费以及付费类型,供运营使用。选择合适的拆分条件我们知道决策树是由一个个判断节点组成,每经过一个判断节点数据就会被拆分一次。上而数据中
4、冇4种屈性,每种屈性下而有多种值,我们可以按位置是否来自「浙江」进行拆分,拆分结果为:来自浙江其他地方BasicNoneNonePremiumBasicBasicNoneNoneNoneNone我们「拍脑袋」进行了一次拆分,到底这么拆分合不合适,是不是最佳,我们需要量化指标來进行评价,在决策树算法中,我们通过基尼不纯度或者爛來对一个集合进行的有序程度进行量化,然后引入信息增益概念对一次拆分进行量化评价。下而依次介绍。基尼不纯度基尼不纯度是指将来自集合屮的某种结果随机应用于集合屮某一数据项的预期误差率。如何
5、集合中的每一个数据项都属于同一分类,那么推测的结果总会是止确的,因此误羌率是0;如杲有4种可能的结杲均匀分布在集合内,出错可能性是75%,基尼不纯度为0.75。该值越高,说明拆分的越不理想,如果该值为0,说明完美拆分。java实现代码如下:publicstaticfloatgetCiniimpurity(String[]rows){floattotal二rows,length;//将[a,a,b,c]转化成[2,1,1]Integer[]uniqueRows=getUniqueRows(rows);flo
6、atscore=0.Of;for(intkl=O;kl7、g2Pjava代码实现如下:publicstaticdoublegetEntropy(String]]rows){floattotal二rows,length;//将[a,a,b,c]转化成[2,1,1]Integer[]uniqueRows=getUniqueRows(rows);doubleent=0.0;for(inti=0;i8、基尼不纯度与炳对比两者主要区别在于,爛到达峰值的过程相对慢一些。因此爛对混乱集合的「判罚」往往更重一些。通常情况下,爛的使用更加频繁。信息增益假设集合U,一次拆分后变为了两个集合U1和U2,则有:信息增益=E(U)-(PulxE(ul)+Pu2xE(u2))E可以是基尼不纯度或爛。使用Pul和Pu2是为了得到拆分后两个集合基尼不纯度或爛的加权平均,其屮:Pul=Size(ul)/Size(U)Pu2=Size(u2)/Size(U)信息增益越大,说明整个集合从无序到有序的速度越快,木次拆分越有效。构造决策9、树我们已经可以通过信息增益量化一次拆分的结果好坏,下一步就是构造决策树,主要步骤如下:遍丿力每个决策条件(如:位置、來源网站),对结果集进行拆分计算该决策条件下,所有可能的拆分情况的信息增益,信息增益最大的拆分为本次最优拆分递归执行1、2两步,直至信息增益〈二0执行完上述步骤后,就构造岀了一颗决策树,如图:浏网页数x23来自谷歌?True—/True/FalseBasic:1Premium:1Basic:2None:1决策树剪
7、g2Pjava代码实现如下:publicstaticdoublegetEntropy(String]]rows){floattotal二rows,length;//将[a,a,b,c]转化成[2,1,1]Integer[]uniqueRows=getUniqueRows(rows);doubleent=0.0;for(inti=0;i8、基尼不纯度与炳对比两者主要区别在于,爛到达峰值的过程相对慢一些。因此爛对混乱集合的「判罚」往往更重一些。通常情况下,爛的使用更加频繁。信息增益假设集合U,一次拆分后变为了两个集合U1和U2,则有:信息增益=E(U)-(PulxE(ul)+Pu2xE(u2))E可以是基尼不纯度或爛。使用Pul和Pu2是为了得到拆分后两个集合基尼不纯度或爛的加权平均,其屮:Pul=Size(ul)/Size(U)Pu2=Size(u2)/Size(U)信息增益越大,说明整个集合从无序到有序的速度越快,木次拆分越有效。构造决策9、树我们已经可以通过信息增益量化一次拆分的结果好坏,下一步就是构造决策树,主要步骤如下:遍丿力每个决策条件(如:位置、來源网站),对结果集进行拆分计算该决策条件下,所有可能的拆分情况的信息增益,信息增益最大的拆分为本次最优拆分递归执行1、2两步,直至信息增益〈二0执行完上述步骤后,就构造岀了一颗决策树,如图:浏网页数x23来自谷歌?True—/True/FalseBasic:1Premium:1Basic:2None:1决策树剪
8、基尼不纯度与炳对比两者主要区别在于,爛到达峰值的过程相对慢一些。因此爛对混乱集合的「判罚」往往更重一些。通常情况下,爛的使用更加频繁。信息增益假设集合U,一次拆分后变为了两个集合U1和U2,则有:信息增益=E(U)-(PulxE(ul)+Pu2xE(u2))E可以是基尼不纯度或爛。使用Pul和Pu2是为了得到拆分后两个集合基尼不纯度或爛的加权平均,其屮:Pul=Size(ul)/Size(U)Pu2=Size(u2)/Size(U)信息增益越大,说明整个集合从无序到有序的速度越快,木次拆分越有效。构造决策
9、树我们已经可以通过信息增益量化一次拆分的结果好坏,下一步就是构造决策树,主要步骤如下:遍丿力每个决策条件(如:位置、來源网站),对结果集进行拆分计算该决策条件下,所有可能的拆分情况的信息增益,信息增益最大的拆分为本次最优拆分递归执行1、2两步,直至信息增益〈二0执行完上述步骤后,就构造岀了一颗决策树,如图:浏网页数x23来自谷歌?True—/True/FalseBasic:1Premium:1Basic:2None:1决策树剪
此文档下载收益归作者所有