



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验一 ID3算法实现一、实验目的通过编程实现决策树算法,信息增益的计算、数据子集划分、决策树的构建过程。加深对相关算法的理解过程。实验类型:验证计划课间:4学时二、实验内容1、分析决策树算法的实现流程;2、分析信息增益的计算、数据子集划分、决策树的构建过程;3、根据算法描述编程实现算法,调试运行;4、对所给数据集进行验算,得到分析结果。三、实验方法算法描述: 以代表训练样本的单个结点开始建树;若样本都在同一个类,则该结点成为树叶,并用该类标记;否则,算法使用信息增益作为启发信息,选择能够最好地将样本分类的属性;对测试属性的每个已知值,创建一个分支,并据此划分样本;算法使用同样的过程,递归形成每个划分上的样本决策树递归划分步骤,当下列条件之一成立时停止:给定结点的所有样本属于同一类;没有剩余属性可以进一步划分样本,在此情况下,采用多数表决进行四、实验步骤1、算法实现过程中需要使用的数据结构描述: Structint Attrib_Col; / 当前节点对应属性int Value; / 对应边值Tree_Node* Left_Node; / 子树Tree_Node* Right_Node / 同层其他节点Boolean IsLeaf; / 是否叶子节点int ClassNo; / 对应分类标号Tree_Node;2、整体算法流程 主程序: InputData(); T=Build_ID3(Data,Record_No, Num_Attrib); OutputRule(T); 释放内存;3、相关子函数:3.1、 InputData()输入属性集大小Num_Attrib;输入样本数Num_Record;分配内存DataNum_RecordNum_Attrib;输入样本数据DataNum_RecordNum_Attrib;获取类别数C(从最后一列中得到);3.2、Build_ID3(Data,Record_No, Num_Attrib) Int Class_DistributeC; If (Record_No=0) return Null N=new tree_node(); 计算Data中各类的分布情况存入Class_Distribute Temp_Num_Attrib=0; For (i=0;i=0) Temp_Num_Attrib+; If Temp_Num_Attrib=0 N-ClassNo=最多的类; N-IsLeaf=TRUE; N-Left_Node=NULL;N-Right_Node=NULL; Return N;If Class_Distribute中仅一类的分布大于0 N-ClassNo=该类; N-IsLeaf=TRUE; N-Left_Node=NULL;N-Right_Node=NULL; Return N; InforGain=0;CurrentCol=-1;For i=0;iNum_Attrib-1;i+) TempGain=Compute_InforGain(Data,Record_No,I,Num_Attrib); If (InforGainAttrib_Col=CurrentCol;/记录CurrentCol所对应的不同值放入DiferentValue;I=0;Value_No=-1;While iRecord_No Flag=false; For (k=0;kValue_No;k+) if (DiferentValuk=DataiCurrentCol) flag=true; if (flag=false)Value_No+;DiferentValueValue_No=DataiCurrentCol I+;SubData=以Data大小申请内存空间;For (i=0;iValue_No;i+) k=-1; for (j=0;jRecord_No-1;j+) if (DatajCurrentCol=DiferentValui) k=k+;For(int i1=0;i1Num_Attrib;i1+)If (i1CurrentCol)SubDataki1=Dataji1; Else SubDataki1=-1; N-Attrib_Col=CurrentCol; N-Value=DiferentValui; N-Isleaf=false; N-ClassNo=0; N-Left_Node=Build_ID3(SubData,k+1, Num_Attrib); N-Right_Node=new Tree_Node; N=N-Right_Node; 3.3、计算信息增益 Compute_InforGain(Data,Record_No, Col_No, Num_Attrib) Int DifferentValueMaxDifferentValue; Int Total_DifferentValue; Int sClassNoMaxDifferentValue; s=0;/ 数组清0; Total_DifferentValue=-1; For (i=0;iRecord_No;i+) J=GetPosition(DifferentValue,Total_DifferentValue,DataiCol_no);If (j0) Total_DifferentValue+;DifferentValueTotal_DifferentValue=DataiCol_no;J=Total_DifferentValue;SDataiNum_Attrib-1j+;Total_I=0;For (i=0;iClassNo;i+) Sum=0; For(j=0;jRecord_No;j+) if DatajNum_Attrib-1=i sum+; Total_I=Compute_PI(Sum/Record_No); EA=0;For (i=0;iTotal_DifferentValue;i+); temp=0;sj=0; /sj是数据子集中属于类j的样本个数; For (j=0;jClassNO;j+) sj+=sji; For (j=0;jClassNO;j+) EA+=sj/Record_No*Compute_PI(sji/sj); Return total_I-EA;3.4、得到某数字在数组中的位置GetPosition(Data, DataSize,Value) For (i=0;iDataSize;i+) if (Datai=value) return I; Return -1;3.5、计算Pi*LogPiFloat Compute_PI(float pi) If pi=1 then return 0; Return 0-pi*log2(pi);五、实验报告要求1、用C语言实现上述相关算法(可选择利用matlab函数实现)2、实验操
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第2节 电流说课稿-2025-2026学年初中物理沪科版五四学制2024九年级上册-沪科版五四学制2024
- 第四节 生物学的研究工具说课稿
- Lesson 11 Is this your shirt说课稿-2025-2026学年初中英语第一册 上半册新概念英语
- 第12课 语音合成技术教学设计-2025-2026学年初中信息技术浙教版2020八年级下册-浙教版2020
- 2025年四川省眉山市中考生物试题及答案
- 苏少版一年级音乐上册(简谱)第4单元《唱:不能告诉你》教学设计
- 小学二年段期末考试试卷(2篇)
- 2025年《现代咨询方法与实务》知识考试题库
- 2025年高考数学试题分类汇编:等式不等式试卷+解析
- 2025年暑假高二升高三化学专项复习:阿伏加德罗常数的判断(含答案)
- 幼儿园大班美术活动《三原色-加色法原理》
- 种植牙二期修复
- EXCEL表格数据的统计分析课件
- 《建筑法律知识》课件
- 《快消品行业分析》课件
- 印刷服务投标方案(技术方案)
- 医疗器械经营质量管理制度、工作程序文件目录
- 美国RAZ分级读物目录整理
- 2019电力建设施工质量验收规程第6部分:调整试验
- (完整版)高标准农田建设施工组织设计
- 物体打击事故预防安全培训课件
评论
0/150
提交评论