用MATLAB实现数据挖掘的一种算法_第1页
用MATLAB实现数据挖掘的一种算法_第2页
用MATLAB实现数据挖掘的一种算法_第3页
用MATLAB实现数据挖掘的一种算法_第4页
用MATLAB实现数据挖掘的一种算法_第5页
已阅读5页,还剩18页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一、数据挖掘的目的数据挖掘(Data Mining)阶段首先要确定挖掘的任务或目的。数据挖掘的目 的就是得出隐藏在数据中的有价值的信息。 数据挖掘是一门涉及面很广的交义学 科,包括器学习、数理统计、神经网络、数据库、模式识别、粗糙集、模糊数学 等相关技术。它也常被称为“知识发现”。知识发现(KDD)被认为是从数据中发 现有用知识的整个过程。数据挖掘被认为是KDD过程中的一个特定步骤,它用专门算法从数据中抽取模式(patter,如数据分类、聚类、关联规则发现或序列模 式发现等。数据挖掘主要步骤是:数据准备、数据挖掘、结果的解释评估。二、数据挖掘算法说明确定了挖掘任务后,就要决定使用什么样的挖掘算

2、法。由于条件届性在各样 本的分布特性和所反映的主观特性的不同,每一个样本对应于真实情况的局部 映射。建立了粗糙集理论中样本知识与信息之间的对应表示关系,给出了由届性 约简求约简决策表的方法。基于后离散化策略处理连续届性,实现离散效率和信 息损失之间的动态折衷。提出相对值条件互信息的概念衡量单一样本中各条件届 性的相关性,可以充分利用现有数据处理不完备信息系统。本次数据挖掘的方法是两种,一是找到若十条特殊样本,而是找出若十条特 殊条件届性。最后利用这些样本和届性找出关联规则。(第四部分详细讲解样本和届性的选择) 三数据预处理过程数据预处理一般包括消除噪声、 推导计算缺值数据、消除重复记录、完成数

3、 据类型转换(如把连续值数据转换为离散型数据,以便于符号归纳,或是把离散 型数据转换为连续)。本文使用的数据来源是名为CardiologyCategorical”的exceUt件中的“源数据”。该数据表共303行,14个届性。即共有303个样本。将该数据表的前200行设 为训练样本,剩下后的103行作为测试样本,用基于粗糙集理论的届性约简的方 法生成相应的规则,再利用测试样本对这些规则进行测试。首先对源数据进行预处理,主要包括字符型数据的转化和数据的归一化。数据预处理的第一步是整理源数据,为了便于 matlab读取数据,把非数字 数据转换为离散型数字数据。生成lisanhua.xsl文件。这一

4、部分直接在excel X作 表中直接进行。步骤如下:将届性“sex的“Male用1”表示,“Femaleffl 2”表示;将届性 “chespain type ”中的 “Asymptomatic用 1”表示, “AbnormaAngina” 用2”表示,“Angina用3”表示,“NoTan那4”表示;将届性 “Fastingblood suga<120”与届性 “angina?的 “FALSE用 1”表示,“TRUE用2”表示;将届性 “resting ec"的 “Hypf 用 1” 表示,“Normalfll 2”表示,“Abnormal” 用3”表小;将届性“slope?

5、的“Down用1”表示,“Fla册2”表示,“U。用3”表示,; 将届性“tha中的“ReV用1”表示,“Norma间2”表示,“Fix用3”表示; 将届性“clas驴的“Health加“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,

6、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:3939dm3(i)=dm2(i)+w;if rem(i,303)=0k=k+1;w=w+m1(k);endend从而得到dm(3)矩阵。而且决策届

7、性分为1: healthy; 2: sick。并且在38个条件届性中没有值为0。四、挖掘算法1、特殊样本首先在前200条样本中分别找出三条对应两种决策届性的重要样本, 样本必 须满足在同类决策届性下其他199条的13条决策届性中和它的13条条件届性数 目大于等于10的前3条样本。2、特殊条件届性值其次分别对应两条决策届性值的 5条重要条件届性值(在38个条件届性里 找),特殊届性值必须满足:(1)在对应相同决策届性下,此决策届性支持率必须 在前五,(2)而且如果不同决策届性出现相同条件届性。如果相同决策届性同时 出现在不同决策届性中,删除这条后找支持率第六的条件届性,以此类推。挖掘算法在MAT

8、LAB里列出并做了标注。五、验证程序1、预处理在验证程序里面分别对测试数据和六条样本做了对比,乂对其届性值和特殊 届性值做了对比,最后利用加权求和算法判断测试样本的决策届性正确率。其中:nc, mc代表测试数据分别和两类样本届性中相同数是否大于等于9时的加权值。ncc,mcc代表测试数据分别和两类特殊届性满足几条数目的加权值。2、关联规则(1) 、如果(nc>=0.9&ncc>=8)|(ncc>=10&nc>=0.6)得到决策届性 healthy如果(mc>=0.9|mcc>=8)|(mcc>=9&mc>=0.6)得到决策

9、(2) 、不满足以上条件的话届性sick。如果 nc>=(mc+0.3)|ncc>=(mcc+2)得到决策届性(3) 、不满足以上条件的话不满足以上条件的话 不满足以上条件的话 不满足以上条件的话 不满足以上条件的话healthy。如果mc>nc得到决策届性为sick。如果ncc>mcc得到决策届性为healthy。如果mcc>ncc得到决策届性为sick。得到决策届性为sick。、 六、正确率及结果分析正确率为82.5%结果分析:由于采用了两类约束方法,所以效果还可以。七、程序如下贞所示clear;%数据预处理程序 % dm=xlsread('lisan

10、hua');% 载入数据% z1=dm(:,1);%离散化第一列数据for i=1:303if z1(i)>=29&z1(i)<48z1(i)=1;elseif z1(i)>=48&z1(i)<62z1(i)=2;else z1(i)=3;endendz2=dm(:,2);for i=1:303if z2(i)=0z2(i)=1;else z2(i)=2;endendz3=dm(:,3);for i=1:303z3(i)=z3(i)+1;endz4=dm(:,4);for i=1:303if z4(i)>=94&z4(i)<1

11、10 z4(i)=1;elseif z4(i)>=110&z4(i)<143 z4(i)=2;else z4(i)=3;endendz5=dm(:,5);for i=1:303if 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:303z6(i)=z6(i)+1;endz7=dm(:,7);for i=1:303z7(i)=z7(i)+1;endz8=dm(:,8);for i=

12、1:303if 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:303z9(i)=z9(i)+1;endz10=dm(:,10);for i=1:303if 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);f

13、or i=1:303z11(i)=z11(i)+1;endz12=dm(:,12);for i=1:303z12(i)=z12(i)+1;endz13=dm(:,13);for i=1:303z13(i)=z13(i)+1;endz14=dm(:,14);for i=1:303z14(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:3939dm3(i)=dm2(i)+w;if rem(i,30

14、3)=0k=k+1;w=w+m1(k);endend%预处理结束%挖掘算法%找6条样本前的预处理dm4=zeros(200,14);dm5=zeros(200,14);for i=1:200if dm3(i,14)=1dm4(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 j=1:200if dm4(j,i)=k&dm4(j,i)=0 a1(k)=a1(k)+1;endif dm5(j,i)=k&dm5(j,i)=0 a2(k)=

15、a2(k)+1;endendendenda5=a1;a6=a2;a3=zeros(5,1);a4=zeros(5,1);j=1;while j<6a11=0;a11=max(a1);for i=1:38if a1(i)=a11a3(j)=a11;j=j+1;if j>5break;enda1(i)=0;endendendj=1;while j<6a22=0;a22=max(a2);for i=1:38if a2(i)=a22a4(j)=a22;j=j+1;if j>5break;enda2(i)=0;endendend% 构造 hl h2 矩阵 h1=zeros(200

16、,14);h2=zeros(1,200);y1=0;y2=0;y3=0;y4=0;for j=1:200x=0;for i=1:200h1(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:200if z14(i)=1h3(i)=h2(i);else h4(i)=h2(i);ende

17、nd%h5=h3;h6=h4;% 找六条重要样本 % y1=max(h5);for i=1:200if h5(i)=y1h5(i)=0;t1=i;endendy2=max(h5);for i=1:200if h5(i)=y2h5(i)=0;t2=i;endendy3=max(h5);for i=1:200if h5(i)=y3h5(i)=0;t3=i;endendy4=max(h6);for i=1:200if h6(i)=y4h6(i)=0;t4=i;endendy5=max(h6);for i=1:200if h6(i)=y5 h6(i)=0;t5=i;endendy6=max(h6);f

18、or i=1:200if h6(i)=y6h6(i)=0;t6=i;endend%找特殊样本结束% 找特殊届 性值dm4=zeros(200,14);dm5=zeros(200,14);for i=1:200if dm3(i,14)=1dm4(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:13for j=1:200if dm4(j,i)=k&dm4(j,i)=0a1(k)=a1(k)+1;endif dm5(j,i)=k&

19、;dm5(j,i)=0a2(k)=a2(k)+1;endendendenda5=a1;a6=a2;a3=zeros(6,1);a4=zeros(6,1);j=1;while j<7a11=0;a11=max(a1);for i=1:38if a1(i)=a11a3(j)=a11;j=j+1;if j>6break;enda1(i)=0;endendendj=1;while j<7a22=0;a22=max(a2);for i=1:38if a2(i)=a22 a4(j)=a22;j=j+1;if j>6break;enda2(i)=0;endendendb1=zeros

20、(6,1);b2=zeros(6,1);for j=1:6for i=1:38if a5(i)=a3(j)b1(j)=i;endendendfor j=1:6for i=1:38if a6(i)=a4(j)b2(j)=i;endendendb3(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:103h7(i,1:13)=dm3(200+i,1:13);end% 特殊样本for i=1:103nc=0;mc=0;ncc=0;mcc=0;h8(i,1

21、:13)=h7(i,1:13)=dm3(t1,1:13);if sum(h8(i,1:13)>=9nc=nc+0.3;endh8(i,1:13)=h7(i,1:13)=dm3(t2,1:13);if sum(h8(i,1:13)>=9nc=nc+0.3;endh8(i,1:13)=h7(i,1:13)=dm3(t3,1:13);if sum(h8(i,1:13)>=9is表*汶汶汶汶汶汶汶汶汶汶汶汶汶汶汶汶汶汶汶汶汶汶汶汶汶汶汶汶汶汶汶汶 ®#<汶汶汶汶汶汶汶汶汶汶汶汶汶汶汶汶汶汶汶汶汶汶汶汶汶汶汶汶汶汶汶汶pu oo+oehoe 6nA(cow._)8qEnsM一 奇厂L<£)COEP#(CO厂 L._)£n (W - L._)ooqpu oo+oehoe 6nA(cow._)8qEnsM一 -(co切soEpnnob - l/Dzunc b - b._)£pu oo+oehoe 6nA(cow._)8qEnsM一 _(cows)coEP#(cow._)zf (sw._)竺puo.o+ouguS寸 q#(n)£M一 sa)o+ooehooeU)t7q#(n)zq±: s

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论