欢迎来到天天文库
浏览记录
ID:46870394
大小:82.00 KB
页数:12页
时间:2019-11-28
《机器学习决策树_ID3算法的源代码》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、机器学习决策树
2、D3算法的源代码上(VC6.0测试通过)发布:2009-4-1611:42
3、作者:天涯
4、來源:资讯[i=s]本帖最后由夭涯于2009-4-1713:03编辑这个的重要,不用多说了吧,有什么意见和建议跟帖留言啊,哈,觉得好,请顶一个笫一部分:#include#include#include#include#include#include#defineN500//N定义为给定训练数据的估计个数#defineM6/
5、/M定义为候选属性的个数#definec2〃定义c=2个不同类#defines_max5〃定义s_max为每个候选屈性所划分的含有垠大的子集数intav[M]={3,3,2,3,4,2);ints[N][M+2],a[N][M+2];〃数组用来记录第i个训练样本的第j个属性值intpath_a[N][M+1],path_b[N][M+1];////Jpath_a[N][M+1],path_b[N][M+"记录每一片叶子的路径intcount_list=M;〃count」ist用于记录候选屈性个数intcount=-1;///ffcounts1记录
6、训练样木数intattribute^test_list1[M];intleaves二1;〃用数组ss[k]U]表示第k个候选屈性划分的子集Sj中类Ci的样木数,数组的具体人小可根据给定训练数据调塑intss[M][c][s_max];〃第*个候选属性划分的子集Sj中样本属于类Ci的槪率doublep[M][c][s_max];//count_s[j]用来记录第i个候选属性的第j个子集中样本个数intcount_s[M][s_max];H分别定义E[M],表示爛和爛的期望压缩doubleE[M];doubleGain[M];〃变量max_Gain用
7、來存储最人的信息增益doublemax_Gain;intTrip=-1;///UTrip记录每一个叶子递归次数intmost;voidmain(void){intifj=-1fkftempJfcount_test,true_class=O,count_train;chartrainname[256]ftestname[256];inttest[N][8];cout>trainname;ifstreamtrainfile;trainfile,open(trainnarr)e,ios::infios::nocre
8、ate);if(!trainfile){cout<<"无法使用训练集,请重试exit(1);}"读取训练集while(trainfile>>temp){j=j+1;k=j%(M+2);if(k==OIlj==O)count+=1;//count为训练集的第儿个,k代表室第儿个属性switch(k){case0:s[count]/0]=temp;break;case1:s[count][1]=temp;break;case2:s[count][2]=temp;break;case3:s[count][3]=temp;break;case4:s[co
9、unt][4]=temp;break;case5:s[count][5]=temp;break;case6:s[count][6]=temp;break;case7:s[count][7]=temp;break;}trainfile.closef);H输出训练集for(i=0;i<=count;i++){if(i%2==0)cout<
10、+){if(s[O]==O)j+=1;elsek+=1;if(j>k)most=0;elsemost=1;//counttrain记录训练集的样本数count_train=counts1;H训练的属性for(i=0;i11、入测试集文件名:”;cin>>testname;ifstreamtestfile;testfile,open(testnamejos::
11、入测试集文件名:”;cin>>testname;ifstreamtestfile;testfile,open(testnamejos::
此文档下载收益归作者所有