欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    用MATLAB实现数据挖掘的一种算法(16页).doc

    • 资源ID:43240022       资源大小:147KB        全文页数:16页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    用MATLAB实现数据挖掘的一种算法(16页).doc

    -用MATLAB实现数据挖掘的一种算法-第 16 页一、数据挖掘的目的数据挖掘(Data Mining)阶段首先要确定挖掘的任务或目的。数据挖掘的目的就是得出隐藏在数据中的有价值的信息。数据挖掘是一门涉及面很广的交叉学科,包括器学习、数理统计、神经网络、数据库、模式识别、粗糙集、模糊数学等相关技术。它也常被称为“知识发现”。知识发现(KDD)被认为是从数据中发现有用知识的整个过程。数据挖掘被认为是KDD过程中的一个特定步骤,它用专门算法从数据中抽取模式(patter,如数据分类、聚类、关联规则发现或序列模式发现等。数据挖掘主要步骤是:数据准备、数据挖掘、结果的解释评估。二、数据挖掘算法说明确定了挖掘任务后,就要决定使用什么样的挖掘算法。由于条件属性在各样本的分布特性和所反映的主观特性的不同, 每一个样本对应于真实情况的局部映射。建立了粗糙集理论中样本知识与信息之间的对应表示关系, 给出了由属性约简求约简决策表的方法。基于后离散化策略处理连续属性, 实现离散效率和信息损失之间的动态折衷。提出相对值条件互信息的概念衡量单一样本中各条件属性的相关性, 可以充分利用现有数据处理不完备信息系统。 本次数据挖掘的方法是两种,一是找到若干条特殊样本,而是找出若干条特殊条件属性。最后利用这些样本和属性找出关联规则。(第四部分详细讲解样本和属性的选择)三 数据预处理过程数据预处理一般包括消除噪声、推导计算缺值数据、消除重复记录、完成数据类型转换(如把连续值数据转换为离散型数据,以便于符号归纳,或是把离散型数据转换为连续)。本文使用的数据来源是名为“CardiologyCategorical”的excel文件中的“源数据”。该数据表共303行,14个属性。即共有303个样本。将该数据表的前200行设为训练样本,剩下后的103行作为测试样本,用基于粗糙集理论的属性约简的方法生成相应的规则,再利用测试样本对这些规则进行测试。首先对源数据进行预处理,主要包括字符型数据的转化和数据的归一化。数据预处理的第一步是整理源数据,为了便于matlab读取数据,把非数字数据转换为离散型数字数据。生成lisanhua.xsl文件。这一部分直接在excel工作表中直接进行。步骤如下:将属性“sex”中的“Male”用“1”表示,“Female”用“2”表示;将属性“chest pain type”中的“Asymptomatic”用“1”表示,“Abnormal Angina”用“2”表示,“Angina”用“3”表示,“NoTang”用“4”表示;将属性“Fasting blood suga<120”与属性“angina”中的“FALSE”用“1”表示,“TRUE”用“2”表示;将属性“resting ecg”中的“Hyp” 用“1” 表示,“Normal”用“2”表示,“Abnormal”用“3”表示;将属性“slope”中的“Down”用“1”表示,“Flat”用“2”表示,“Up”用“3”表示,;将属性“thal”中的“Rev”用“1”表示,“Normal”用“2”表示,“Fix”用“3”表示;将属性“class”中的“Healthy”用“1”表示,“Sick”用“2”表示;数据预处理的第二步:使用dm=xlsread('lisanhua'); 导入lisanhua.xls文件,在MATLAB中对一些连续属性值离散化。如下:1、29,48=1,48,62=2,62,77=34、94,110=1,110,143=2,143,200=35、126,205=1,205,293=2,293,564=38、71,120=1,120,175=2,175,202=310、0,1.5=1,1.5,2.5=2,2.5,6.2=3。然后对数据进行归一化处理:由于不同属性之间的属性值相同,所以利用下面语句对一共13个条件属性中的38个属性进行如下赋值,使每条属性唯一确定。从而得到38个条件属性,只不过38个里面有且只能出现13个。程序如下:m1=0,3,2,4,3,3,2,3,3,2,3,3,4,3;k=1;w=m1(k);dm3=dm2;for i=1:3939 dm3(i)=dm2(i)+w; if rem(i,303)=0 k=k+1; w=w+m1(k); endend从而得到dm(3)矩阵。而且决策属性分为1:healthy;2:sick。并且在38个条件属性中没有值为0。四、挖掘算法1、特殊样本首先在前200条样本中分别找出三条对应两种决策属性的重要样本,样本必须满足在同类决策属性下其他199条的13条决策属性中和它的13条条件属性数目大于等于10的前3条样本。2、特殊条件属性值其次分别对应两条决策属性值的5条重要条件属性值(在38个条件属性里找),特殊属性值必须满足:(1)在对应相同决策属性下,此决策属性支持率必须在前五,(2)而且如果不同决策属性出现相同条件属性。如果相同决策属性同时出现在不同决策属性中,删除这条后找支持率第六的条件属性,以此类推。挖掘算法在MATLAB里列出并做了标注。五、验证程序1、预处理在验证程序里面分别对测试数据和六条样本做了对比,又对其属性值和特殊属性值做了对比,最后利用加权求和算法判断测试样本的决策属性正确率。其中:nc,mc代表测试数据分别和两类样本属性中相同数是否大于等于9时的加权值。ncc,mcc代表测试数据分别和两类特殊属性满足几条数目的加权值。2、关联规则(1)、如果(nc>=0.9&ncc>=8)|(ncc>=10&nc>=0.6) 得到决策属性healthy(2)、不满足以上条件的话 如果(mc>=0.9|mcc>=8)|(mcc>=9&mc>=0.6) 得到决策属性sick。(3)、不满足以上条件的话 如果nc>=(mc+0.3)|ncc>=(mcc+2) 得到决策属性healthy。(4)、不满足以上条件的话 如果mc>nc 得到决策属性为sick。(5)、不满足以上条件的话 如果ncc>mcc 得到决策属性为healthy。(6)、不满足以上条件的话 如果mcc>ncc 得到决策属性为sick。(7)、不满足以上条件的话 得到决策属性为sick。六、正确率及结果分析正确率为82.5%结果分析:由于采用了两类约束方法,所以效果还可以。七、程序如下页所示clear;% 数据预处理程序 %dm=xlsread('lisanhua'); % 载入数据z1=dm(:,1); % 离散化第一列数据for i=1:303 if z1(i)>=29&z1(i)<48 z1(i)=1; elseif z1(i)>=48&z1(i)<62 z1(i)=2; else z1(i)=3; endendz2=dm(:,2);for i=1:303 if z2(i)=0 z2(i)=1; else z2(i)=2; endendz3=dm(:,3);for i=1:303 z3(i)=z3(i)+1;endz4=dm(:,4);for i=1:303 if z4(i)>=94&z4(i)<110 z4(i)=1; elseif z4(i)>=110&z4(i)<143 z4(i)=2; else z4(i)=3; endendz5=dm(:,5);for i=1:303 if z5(i)>=126&z5(i)<205 z5(i)=1; elseif z5(i)>=205&z5(i)<293 z5(i)=2; else z5(i)=3; endendz6=dm(:,6);for i=1:303 z6(i)=z6(i)+1;endz7=dm(:,7);for i=1:303 z7(i)=z7(i)+1;endz8=dm(:,8);for i=1:303 if z8(i)>=71&z8(i)<120 z8(i)=1; elseif z8(i)>=120&z8(i)<175 z8(i)=2; else z8(i)=3; endendz9=dm(:,9);for i=1:303 z9(i)=z9(i)+1;endz10=dm(:,10);for i=1:303 if z10(i)>=0&z10(i)<1.5 z10(i)=1; elseif z10(i)>=1.5&z10(i)<2.5 z10(i)=2; else z10(i)=3; endendz11=dm(:,11);for i=1:303 z11(i)=z11(i)+1;endz12=dm(:,12);for i=1:303 z12(i)=z12(i)+1;endz13=dm(:,13);for i=1:303 z13(i)=z13(i)+1;endz14=dm(:,14);for i=1:303 z14(i)=z14(i)+1;enddm2=z1,z2,z3,z4,z5,z6,z7,z8,z9,z10,z11,z12,z13,z14;m1=0,3,2,4,3,3,2,3,3,2,3,3,4,3;k=1;w=m1(k);dm3=dm2;for i=1:3939 dm3(i)=dm2(i)+w; if rem(i,303)=0 k=k+1; w=w+m1(k); endend% 预处理结束 % 挖掘算法 % 找6条样本前的预处理dm4=zeros(200,14);dm5=zeros(200,14);for i=1:200 if dm3(i,14)=1 dm4(i,1:13)=dm3(i,1:13); else dm5(i,1:13)=dm3(i,1:13); endenda1=zeros(38,1);a2=zeros(38,1);for k=1:38for i=1:13 for j=1:200 if dm4(j,i)=k&dm4(j,i)=0 a1(k)=a1(k)+1; end if dm5(j,i)=k&dm5(j,i)=0 a2(k)=a2(k)+1; end endendenda5=a1;a6=a2;a3=zeros(5,1);a4=zeros(5,1);j=1;while j<6 a11=0; a11=max(a1); for i=1:38 if a1(i)=a11 a3(j)=a11; j=j+1; if j>5 break; end a1(i)=0; end endendj=1;while j<6 a22=0; a22=max(a2); for i=1:38 if a2(i)=a22 a4(j)=a22; j=j+1; if j>5 break; end a2(i)=0; end endend% 构造h1 h2 矩阵h1=zeros(200,14);h2=zeros(1,200);y1=0;y2=0;y3=0;y4=0;for j=1:200 x=0;for i=1:200 h1(i,1:13)=dm3(j,1:13)=dm3(i,1:13); h1(i,14)=dm3(j,14)=dm3(i,14); if sum(h1(i,1:13)>=10&h1(i,14)=1 x=x+1; endendh2(j)=x;end% 筛选h2 矩阵 得到h3 h4矩阵h3=zeros(1,200);h4=zeros(1,200);for i=1:200 if z14(i)=1 h3(i)=h2(i); else h4(i)=h2(i); endendh5=h3;h6=h4;% 找六条重要样本 %y1=max(h5);for i=1:200 if h5(i)=y1 h5(i)=0;t1=i; endendy2=max(h5);for i=1:200 if h5(i)=y2 h5(i)=0;t2=i; endendy3=max(h5);for i=1:200 if h5(i)=y3 h5(i)=0;t3=i; endendy4=max(h6);for i=1:200 if h6(i)=y4 h6(i)=0;t4=i; endendy5=max(h6);for i=1:200 if h6(i)=y5 h6(i)=0;t5=i; endendy6=max(h6);for i=1:200 if h6(i)=y6 h6(i)=0;t6=i; endend% 找特殊样本结束% 找特殊属性值dm4=zeros(200,14);dm5=zeros(200,14);for i=1:200 if dm3(i,14)=1 dm4(i,1:13)=dm3(i,1:13); else dm5(i,1:13)=dm3(i,1:13); endenda1=zeros(38,1);a2=zeros(38,1);for k=1:38for i=1:13 for j=1:200 if dm4(j,i)=k&dm4(j,i)=0 a1(k)=a1(k)+1; end if dm5(j,i)=k&dm5(j,i)=0 a2(k)=a2(k)+1; end endendenda5=a1;a6=a2;a3=zeros(6,1);a4=zeros(6,1);j=1;while j<7 a11=0; a11=max(a1); for i=1:38 if a1(i)=a11 a3(j)=a11; j=j+1; if j>6 break; end a1(i)=0; end endendj=1;while j<7 a22=0; a22=max(a2); for i=1:38 if a2(i)=a22 a4(j)=a22; j=j+1; if j>6 break; end a2(i)=0; end endendb1=zeros(6,1);b2=zeros(6,1);for j=1:6for i=1:38 if a5(i)=a3(j) b1(j)=i; endendendfor j=1:6 for i=1:38 if a6(i)=a4(j) b2(j)=i; end endendb3(1:5,1)=b1(2:6,1);b4(1:5,1)=b2(1:5,1);% 寻找结束 % 验证程序开始h7=zeros(103,14);h8=zeros(103,14);tc=0;for i=1:103 h7(i,1:13)=dm3(200+i,1:13);end% 特殊样本for i=1:103 nc=0;mc=0;ncc=0;mcc=0; h8(i,1:13)=h7(i,1:13)=dm3(t1,1:13); if sum(h8(i,1:13)>=9 nc=nc+0.3; end h8(i,1:13)=h7(i,1:13)=dm3(t2,1:13); if sum(h8(i,1:13)>=9 nc=nc+0.3; end h8(i,1:13)=h7(i,1:13)=dm3(t3,1:13); if sum(h8(i,1:13)>=9 nc=nc+0.3; end h8(i,1:13)=h7(i,1:13)=dm3(t4,1:13); if sum(h8(i,1:13)>=9 mc=mc+0.3; end h8(i,1:13)=h7(i,1:13)=dm3(t5,1:13); if sum(h8(i,1:13)>=9 mc=mc+0.3; end h8(i,1:13)=h7(i,1:13)=dm3(t6,1:13); if sum(h8(i,1:13)>=9 mc=mc+0.3; end % 样本结束 % 特殊属性值 ncc=0;mcc=0; for j=1:13 if h7(i,j)=b3(1) ncc=ncc+3; else if h7(i,j)=b3(2) ncc=ncc+3; else if h7(i,j)=b3(3) ncc=ncc+2; else if h7(i,j)=b3(4) ncc=ncc+2; else if h7(i,j)=b3(5) ncc=ncc+2; else if h7(i,j)=b4(1) mcc=mcc+3; else if h7(i,j)=b4(2) mcc=mcc+3; else if h7(i,j)=b4(3) mcc=mcc+2; else if h7(i,j)=b4(4) mcc=mcc+2; else if h7(i,j)=b4(5) mcc=mcc+2; end end end end end end end end end end end % 属性值结束 % 挖掘算法 if (nc>=0.9&ncc>=8)|(ncc>=10&nc>=0.6) h7(i,14)=1; else if (mc>=0.9|mcc>=8)|(mcc>=9&mc>=0.6) h7(i,14)=2; else if nc>=(mc+0.3)|ncc>=(mcc+2) h7(i,14)=1; else if mc>nc h7(i,14)=2; else if ncc>mcc h7(i,14)=1; else if mcc>ncc h7(i,14)=2; else h7(i,14)=2; end end end end end endend% 挖掘结束% 计算正确率h9=zeros(103,1);h9=h7(:,14)=dm3(201:303,14);tc=sum(h9)/103% 算法完毕

    注意事项

    本文(用MATLAB实现数据挖掘的一种算法(16页).doc)为本站会员(1595****071)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开