77范文网 - 专业文章范例文档资料分享平台

数据挖掘实验指导书(3)

来源:网络收集 时间:2018-12-22 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

长沙学院信息与计算科学系 数据挖掘实验指导书

2、整体算法流程 主程序:

InputData();

T=Build_ID3(Data,Record_No, Num_Attrib); OutputRule(T); 释放内存; 3、相关子函数: 3.1、 InputData()

{

输入属性集大小Num_Attrib; 输入样本数Num_Record;

分配内存Data[Num_Record][Num_Attrib];

输入样本数据Data[Num_Record][Num_Attrib]; 获取类别数C(从最后一列中得到); }

3.2、Build_ID3(Data,Record_No, Num_Attrib)

{

Int Class_Distribute[C];

If (Record_No==0) { return Null }

N=new tree_node();

计算Data中各类的分布情况存入Class_Distribute Temp_Num_Attrib=0;

For (i=0;i

If (Data[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;

第11页

长沙学院信息与计算科学系 数据挖掘实验指导书

For i=0;i

TempGain=Compute_InforGain(Data,Record_No,I,Num_Attrib); If (InforGain

{ InforGain=TempGain; CurrentCol=I;} }

N->Attrib_Col=CurrentCol;

//记录CurrentCol所对应的不同值放入DiferentValue[]; I=0;Value_No=-1; While i

For (k=0;k

if (DiferentValu[k]=Data[i][CurrentCol]) flag=true; if (flag==false)

{Value_No++;DiferentValue[Value_No]=Data[i][CurrentCol] } I++; }

SubData=以Data大小申请内存空间; For (i=0;i

k=-1;

for (j=0;j

if (Data[j][CurrentCol]==DiferentValu[i]) {k=k++;

For(int i1=0;i1

If (i1<>CurrentCol)SubData[k][i1]=Data[j][i1]; Else SubData[k][i1]=-1; }

N->Attrib_Col=CurrentCol; N->Value=DiferentValu[i]; 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)

第12页

长沙学院信息与计算科学系 数据挖掘实验指导书

{

Int DifferentValue[MaxDifferentValue]; Int Total_DifferentValue;

Int s[ClassNo][MaxDifferentValue];

s=0;// 数组清0;

Total_DifferentValue=-1; For (i=0;i

J=GetPosition(DifferentValue,

Total_DifferentValue,Data[i][Col_no]); If (j<0) {Total_DifferentValue++;

DifferentValue[Total_DifferentValue]=Data[i][Col_no]; J=Total_DifferentValue;}

S[Data[i][Num_Attrib-1]][j]++; }

Total_I=0;

For (i=0;i

Sum=0;

For(j=0;j

For (i=0;i

{ temp=0;sj=0; //sj是数据子集中属于类j的样本个数; For (j=0;j

For (j=0;j

EA+=sj/Record_No*Compute_PI(s[j][i]/sj); }

Return total_I-EA; }

3.4、得到某数字在数组中的位置 GetPosition(Data, DataSize,Value) {

For (i=0;i

第13页

长沙学院信息与计算科学系 数据挖掘实验指导书

3.5、计算Pi*LogPi

Float Compute_PI(float pi) {

If pi<=0 then return 0; If pi>=1 then return 0; Return 0-pi*log2(pi); }

五、实验报告要求

1、用C语言实现上述相关算法。

2、实验操作步骤和实验结果,实验中出现的问题和解决方法。

六、注意事项

1、信息增益的计算;

2、选择相关字段后根据相关字段的取值对数据集合进行划分。 3、决策树构建的终止条件

第14页

长沙学院信息与计算科学系 数据挖掘实验指导书

实验四 贝叶斯算法实现

一、实验目的

通过对贝叶斯算法的编程实现,加深对贝叶斯算法的理解,同时利用贝叶斯算法对简单应用实现预测分类 实验类型:验证 计划课间:4学时

二、实验内容

1、分析贝叶斯算法; 2、计算条件概率; 3、预测精度的计算与评估;

4、编程实现贝叶斯分类算法,并对简单应用样本数据实现预测分类

三、实验方法

1、 实现贝叶斯算法

2、 利用实验数据对贝叶斯算法进行检测 3、 求解精确度计算 4、 调试程序

5、 完成整个分类与评估的过程

四、实验步骤

4.1 算法过程描述:

1)输入训练数据,将数据保存在DataBase二维数组中(数组的最后一个属性对应类别标号) 2)设定训练数据集与测试数据集大小(指定从数组下标0开始到TrainSetSize-1所对应的数据为训练数据,其余为测试数据);

3)计算训练数据集数据中各属性在各类中的概率分布情况; 4)利用测试数据计算贝叶斯算法的分类精度; 5)输出分类结果; 4.2 数据处理

A、实验数据 RID 1 2 3 age ≦30 ≦30 31~40 income High High High student Credit_rating No No No Fair Excellent Fair BuyComputer No No Yes 第15页

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库数据挖掘实验指导书(3)在线全文阅读。

数据挖掘实验指导书(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/384158.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: