- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ID3算法的改进
摘要:本文基于ID3 算法的原有思路,再把属性的重要性程度值纳入了属性选择
的度量标准中,以期获得更适合实际应用的分类划分结果。
一、ID3 算法的不足
ID3 算法使用信息增益作为属性选择度量值,其倾向于选择具有大量值的属
性,但没有考虑到属性在实际应用分类中的重要程度,因为依靠取信息熵最大的
属性在现实情况中却并不那么重要,因此可能会得到不太有用的划分结果。举个
简单的例子,在对淘宝用户行为进行分析时,尽管依据用户 ID 可以得到最大的
信息增益,但是这并不符合分析的要求,因为,我们需要得到的是用户的购买行
为,在分析中,我们会更多的考虑用户曾经浏览过的商品或者已经购买了的商品。
在这个情景中,根据信息熵来度量属性的选择就不太合理,所以需要对其进行改
进。
二、改进思路
本次设计中在属性选择上加入了属性重要程度值:因为采用信息增益的方法
会倾向于选择拥有较多可能属性值的属性,为了弥补这一缺陷,所以在选择时就
加入了属性的重要程度值。属性重要程度值考虑了属性在分裂数据中所处的地
位。在处理数据的时候,会首先根据经验或需要判断出数据集合里面的属性值的
重要程度,例如,在上面淘宝用户行为分析中,我们可能会人为的给予属性(“浏
览过的商品”)最高重要程度值:0.8 ,而给属性(“用户ID ”)较低的重要程度值:
0.2 。在明确了属性重要程度值以后,我们会在计算每个属性信息增益后将信息
增益与属性重要程度值相乘,由此来判断最终属性的选择。对于ID3 算法的其他
内容不做更改。
三、具体实现
以课本《数据挖掘》中193 页的例6-1 为例。例6-1 中各属性的重要程度值
即权值未知,我们可先分别假设属性age 的重要程度值为0.1,属性income 的重
要程度值为 0.6 ,属性student 的重要程度值为0.2 ,属性credit_rating 的重要程度
值为0.1 。在引入属性重要程度值以前,每个属性的信息增益为:
Gain(age)=0.246 , Gain(income)=0.029 ,
Gain(student)=0.151 , Gain(credit_rating)=0.048 。
在引入属性重要程度值以后,信息增益*属性重要程度值分别为:
0.246*0.1=0.0246
0.029*0.6=0.0174
0.151*0.2=0.0302
0.048*0.1=0.0048
此时,决策树的属性分布就会和之前的不同,income 属性会成为决策树的根节
点。由此可见,属性的重要程度值会对决策属性的选择有着重要影响。
四、改进算法
因为仅仅只是把属性的重要程度值纳入到决策属性的选择中,所以原ID3 算
法的大部分代码都是一样的,唯一不同的是:改变了 makeTree 方法的
impurityReduce 值。在程序中添加了属性重要程度值数组priority ,属性对应的重
要程度值依次为priority[i],此处为了方便,其值直接采用Math.random() 随机生成,
然后将其与 computeEntropyReduce(data, data.attribute(i)) 相乘,记得到新的
impurityReduce 值,从而影响了决策属性的选择。更改代码部分用淡蓝色标记。
private void makeTree(Instances data) throws Exception
2
{
if (data.numInstances() == 0) //假如没有
{
m_Attribute = null;
m_Instances = new Instances(data);
return;
}
// Compute attribute with maximum split value.
double impurityReduce = 0;
double maxValue = 0;
int maxIndex = -1;
int h=dat
您可能关注的文档
最近下载
- 2003年房地产估师考试《房地产开发经营与管理》真题及答案-中大网校.doc VIP
- 职业生涯报告六篇.pdf VIP
- 弧度制、扇形的弧长与面积.PDF VIP
- 2024-2030年中国纺织行业十四五发展分析及投资前景与战略规划研究报告.docx VIP
- 2025云南省交通投资建设集团有限公司下属云南省交通科学研究院有限公司管理人员招聘16人笔试参考题库附答案解析.docx VIP
- 《电子商务安全技术》考试复习题库(含答案).docx VIP
- 人工智能数学基础-全套PPT课件.pptx
- 山东名校2025届高三12月校际联合检测 生物试卷(含答案解析).docx
- 职业计划生涯范文5篇.docx VIP
- 成功必备的八大心态.ppt VIP
原创力文档


文档评论(0)