欢迎来到天天文库
浏览记录
ID:46242183
大小:47.37 KB
页数:8页
时间:2019-11-22
《数据挖掘决策树算法实现》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验数据挖掘决策树算法实现实验内容决策树算法是非常常用的分类算法,是逼近离散目标函数的方法,学习得到的函数以决策树的形式表示。其基木思路是不断选取产生信息增益最人的属性来划分样例集和,构造决策树。信息增益定义为结点与其子结点的信息爛之差。信息癇是香农提出的,用于描述信息不纯度(不稳定性),其计算公式是Entropy(S)二-ZAlogP,Z=1Pi子集合中不同性(而二元分类即正样例和负样例)的样例的比例。这样信息收益nJ以定义为样本按照某丿肉性划分吋造成嫡减少的期望,可以区分训练样本中正负样本的能力,其计算公式是:Gain(S9A)=Entropy(S)—工-'^Entropy(S、
2、.)ver(J)ISI•7(A)是属件A的值域•S足样本集介•S、.是S屮在屈件AI••值等JF的样木集介实现该算法针对的样例集仑如下outlookTemperatureHumidin■WindPlavTennis^■1Sunny■hothighweakno<-'Sutmvhothighstrongno^3Overcasthothighweakves^■4Rainy•FmildhighweakV亡S3IF5Rainvcoolnomialweakves^■6RainvJcoolnomialstrongnoa7Overcastcoolnomialstrongy亡sa8Sunnymildh
3、ighweak门OQ9SunnycoolnormalweakV亡S310Rainvniildnomialweakyes^111SuimyJmildnomialweakvesa12Overcastmildhighstrongy亡S313Overcasthotnormalweakves<-*J14RainymildhighstrongnoQ该农记录了在不同气候条件下是否公打球的悄况,要求根据该表用程序输出决策树二算法实现C++代码如下:#include#include#include#include#include4、ithm>#includeusingnamespacestd;#defineMAXLEN6〃输入每行的数据个数vector>state;vectoritem(MAXLEN);vectorattribute_row;stringend(”end”);//输入结束stringyes(nyesn);stringno(nnon);stringblank(“”);map>map.inttree_size=0;structNode{stringattribute;stringa5、rrived_value;vectorchilds;Node(){attribute=blank;arrived_value=blank;}};Node*root;〃实例集〃对应一行实例集〃保存首行即属性行数据attribute—values;//存储属性对应的所冇的值〃决策树节点〃属性值〃到达的属性值〃所有的孩了〃根据数据实例计算属性与值组成的mapvoidComputeMapFrom2DVector(){unsignedinti,jjk;boolexited=false;vectorvalues;for(i=1;i6、照列遍历for(j=1;j7、string>>remain_state,stringattribute,stringvalue,boolifparent){vcctorcount(2,0);unsignedintij;booldone_flag=false;for(j=l;j
4、ithm>#includeusingnamespacestd;#defineMAXLEN6〃输入每行的数据个数vector>state;vectoritem(MAXLEN);vectorattribute_row;stringend(”end”);//输入结束stringyes(nyesn);stringno(nnon);stringblank(“”);map>map.inttree_size=0;structNode{stringattribute;stringa
5、rrived_value;vectorchilds;Node(){attribute=blank;arrived_value=blank;}};Node*root;〃实例集〃对应一行实例集〃保存首行即属性行数据attribute—values;//存储属性对应的所冇的值〃决策树节点〃属性值〃到达的属性值〃所有的孩了〃根据数据实例计算属性与值组成的mapvoidComputeMapFrom2DVector(){unsignedinti,jjk;boolexited=false;vectorvalues;for(i=1;i6、照列遍历for(j=1;j7、string>>remain_state,stringattribute,stringvalue,boolifparent){vcctorcount(2,0);unsignedintij;booldone_flag=false;for(j=l;j
6、照列遍历for(j=1;j7、string>>remain_state,stringattribute,stringvalue,boolifparent){vcctorcount(2,0);unsignedintij;booldone_flag=false;for(j=l;j
7、string>>remain_state,stringattribute,stringvalue,boolifparent){vcctorcount(2,0);unsignedintij;booldone_flag=false;for(j=l;j
此文档下载收益归作者所有