- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于不平衡数据集决策树算法
基于不平衡数据集决策树算法摘要:为了使决策树健壮,我们从描述信息增益开始,关于这个规则的置信度,使用C4.5作为度量。这可以使我们快速的解释为什么信息增益,象置信度,偏重大多数类的规则的结果。为了克服这种偏见,我们介绍一种新度量,类置信度比例(CCP),它是CCPDT(类置信度比例决策树)形成的基础。这两种变化在一起产生一个分类器,它不仅比传统的决策树,而且比著名的平衡取样技术学习树能更好的完成统计。
关键词:类置信度比例 决策树 分类器
在不平衡数据中,我们分析以基于规则的分类器的指标时发现,基于置信度的排名偏重多数类,并且描述信息增益和描述置信度的基尼指数都表明它们也遭受类似的问题。
现在假设有一个训练数据集,有n个记录组成,并且前因(记作X和┐X)和类(y 和┐y)。在CBA中选择规则的策略是找到在已经预定义的阈值上支持度和置信度的所有规则项目。对于不平衡数据集,无条件类的规模比正类小,所以a + b c + d。由于不平衡数据集不能影响前因分布,我们不能失去一般性,假设X s 和 ┐X s是平均分布。因此,当数据时不平衡的时候,a和b值小,c和d值大。即使y与X出现的频率比与┐y出现的频率高,c的值也比a的值大,因为正类的规模比负类的规模小。因此,即使规则X→┐y意义不大,那么它也很容易有一个高置信度值。
一、类置信度比例
确定了支持度-信任度框架的缺点,并且在平均信息量和基尼指数表现不佳的情况下,我们必须提出一个新的措施来解决这个问题。为此,我们定义一个新的定义,类置信度(CC),从所有类(ys)中找到最感兴趣的前因(Xs):
CC和传统的置信度最主要的区别在于分母:我们使用Supp(y)代替Supp(X),目的在于以每个类为重点。无论是从平衡数据集还是不平衡数据集中被发现,高CC的规则将是意义重大的。高CCP的规则意味着,比较它的替代类,这种类包含更高的CC,因此更可能出现这种规则的前因没有重视数据集中的类比例。采取这种比例的另外一个好处是能在0和1之间标记CCP,它可能通过CCP取代传统的平均信息量的频率项。
二、基于CCP的决策树算法
CCPDT算法修改了基于平均信息量的C4.5标准,并且用CCP取代频率项。由于空间的限制,在此省略了嵌入CCP的CART算法,但是这种方法和C4.5是相同的。
1、构建树
算法1 创建基于C4.5的CCP
输入:训练集: T D 输出:决策树
(1)if所有的实例属于同一个类,返回带有一个根节点(root)的决策树,记为实例类;
(2)//寻找最佳的分裂属性(Attri)//
(3)Attri = MaxCCPGain(T D)
(4)把Attri分配给根节点,root=Attri
(5)for Attri的每个值Vi {
(6)Vi添加一个分支
(7)if 属性Attri没有一个实例是Vi ,则为这个分支添加一个叶子;
(8)else为这个分支添加一个子树CCP-C4.5(T D Vi);}
算法2 寻找最大信息增益属性的子程序
输入:训练集: T D 输出:要分割的属性:Attri
(1)MaxHellinger,MaxInfoGain和Attri置0;
(2)for T D的每个属性Aj {
(3)计算Hellinger距离:Aj. Hellinger;
(4)获得分裂之前的熵:Aj.oldEnt;}
(5)子节点熵的总和Aj.newEnt的值置0;
(6)for 属性Aj的每个值VIJ
(7)//|Tx,y|表示包含值x和类y的实例的数量//
(11)CurrentInfoGain= Aj.oldEnt-Aj.newEnt
(12)if MaxInfoGain <CurrentInfoGain
(13){Attri=j;MaxInfoGain=CurrentInfoGain;MaxHellinger= Aj. Hellinger;}
(14)else if MaxHellinger<Aj. Hellinger 且MaxInfoGain== CurrentInfoGain
(15){Attri=j;MaxHellinger= Aj. Hellinger;}
(16)返回 Attri
算法3 基于FET的修剪
输入:为修剪的决策树DT,阈值p(pVT) 输出:修剪后的DT
(1)for 每个叶子Leafi
(2)if Leafi.parent不是DT的根节点,
(3){Leafi.parent.pruneable=ture; //ture是默认值//
(4)SetPruneable(Leafi.parent,pVT)
文档评论(0)