用MATLAB实现数据挖掘的一种算法Word文档下载推荐.docx

上传人:b****4 文档编号:18016845 上传时间:2022-12-12 格式:DOCX 页数:16 大小:18.99KB
下载 相关 举报
用MATLAB实现数据挖掘的一种算法Word文档下载推荐.docx_第1页
第1页 / 共16页
用MATLAB实现数据挖掘的一种算法Word文档下载推荐.docx_第2页
第2页 / 共16页
用MATLAB实现数据挖掘的一种算法Word文档下载推荐.docx_第3页
第3页 / 共16页
用MATLAB实现数据挖掘的一种算法Word文档下载推荐.docx_第4页
第4页 / 共16页
用MATLAB实现数据挖掘的一种算法Word文档下载推荐.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

用MATLAB实现数据挖掘的一种算法Word文档下载推荐.docx

《用MATLAB实现数据挖掘的一种算法Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《用MATLAB实现数据挖掘的一种算法Word文档下载推荐.docx(16页珍藏版)》请在冰豆网上搜索。

用MATLAB实现数据挖掘的一种算法Word文档下载推荐.docx

使用

dm=xlsread('

lisanhua'

);

导入’lisanhua’.xls文件,在MATLAB中对一些连续属性值离散化。

如下:

1、[29,48]=1,[48,62]=2,[62,77]=3

4、[94,110]=1,[110,143]=2,[143,200]=3

5、[126,205]=1,[205,293]=2,[293,564]=3

8、[71,120]=1,[120,175]=2,[175,202]=3

10、[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;

fori=1:

3939

dm3(i)=dm2(i)+w;

ifrem(i,303)==0

k=k+1;

w=w+m1(k);

end

end

从而得到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;

%%%%%数据预处理程序%%%%%%

%载入数据

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

z1=dm(:

1);

%离散化第一列数据

303

ifz1(i)>

=29&

z1(i)<

48

z1(i)=1;

elseifz1(i)>

=48&

62

z1(i)=2;

elsez1(i)=3;

z2=dm(:

2);

ifz2(i)==0

z2(i)=1;

elsez2(i)=2;

z3=dm(:

3);

z3(i)=z3(i)+1;

z4=dm(:

4);

ifz4(i)>

=94&

z4(i)<

110

z4(i)=1;

elseifz4(i)>

=110&

143

z4(i)=2;

elsez4(i)=3;

z5=dm(:

5);

ifz5(i)>

=126&

z5(i)<

205

z5(i)=1;

elseifz5(i)>

=205&

293

z5(i)=2;

elsez5(i)=3;

z6=dm(:

6);

z6(i)=z6(i)+1;

z7=dm(:

7);

z7(i)=z7(i)+1;

z8=dm(:

8);

ifz8(i)>

=71&

z8(i)<

120

z8(i)=1;

elseifz8(i)>

=120&

175

z8(i)=2;

elsez8(i)=3;

z9=dm(:

9);

z9(i)=z9(i)+1;

z10=dm(:

10);

ifz10(i)>

=0&

z10(i)<

1.5

z10(i)=1;

elseifz10(i)>

=1.5&

2.5

z10(i)=2;

elsez10(i)=3;

z11=dm(:

11);

z11(i)=z11(i)+1;

z12=dm(:

12);

z12(i)=z12(i)+1;

z13=dm(:

13);

z13(i)=z13(i)+1;

z14=dm(:

14);

z14(i)=z14(i)+1;

dm2=[z1,z2,z3,z4,z5,z6,z7,z8,z9,z10,z11,z12,z13,z14];

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%预处理结束%%%%%%

%%%%挖掘算法%%%%%%

%%%%%%%%%%%%%%%%%%%%%%%找6条样本前的预处理

dm4=zeros(200,14);

dm5=zeros(200,14);

200

ifdm3(i,14)==1

dm4(i,1:

13)=dm3(i,1:

13);

elsedm5(i,1:

a1=zeros(38,1);

a2=zeros(38,1);

fork=1:

38

13

forj=1:

ifdm4(j,i)==k&

dm4(j,i)~=0

a1(k)=a1(k)+1;

ifdm5(j,i)==k&

dm5(j,i)~=0

a2(k)=a2(k)+1;

a5=a1;

a6=a2;

a3=zeros(5,1);

a4=zeros(5,1);

j=1;

whilej<

6

a11=0;

a11=max(a1);

fori=1:

ifa1(i)==a11

a3(j)=a11;

j=j+1;

ifj>

5

break;

a1(i)=0;

a22=0;

a22=max(a2);

ifa2(i)==a22

a4(j)=a22;

a2(i)=0;

%%%%%%%%%%%%%%%%构造h1h2矩阵

h1=zeros(200,14);

h2=zeros(1,200);

y1=0;

y2=0;

y3=0;

y4=0;

forj=1:

x=0;

h1(i,1:

13)=dm3(j,1:

13)==dm3(i,1:

h1(i,14)=dm3(j,14)==dm3(i,14);

ifsum(h1(i,1:

13))>

h1(i,14)==1

x=x+1;

h2(j)=x;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%%%%%%%%%%%%筛选h2矩阵得到h3h4矩阵

h3=zeros(1,200);

h4=zeros(1,200);

ifz14(i)==1

h3(i)=h2(i);

elseh4(i)=h2(i);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

h5=h3;

h6=h4;

%%%%%%%%%%%%%%找六条重要样本%%%%%%%%%

y1=max(h5);

ifh5(i)==y1

h5(i)=0;

t1=i;

y2=max(h5);

ifh5(i)==y2

t2=i;

y3=max(h5);

ifh5(i)==y3

t3=i;

y4=max(h6);

ifh6(i)==y4

h6(i)=0;

t4=i;

y5=max(h6);

ifh6(i)==y5

t5=i;

y6=max(h6);

ifh6(i)==y6

t6=i;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%找特殊样本结束

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%找特殊属性值

a3=zeros(6,1);

a4=zeros(6,1);

7

b1=zeros(6,1);

b2=zeros(6,1);

ifa5(i)==a3(j)

b1(j)=i;

ifa6(i)==a4(j)

b2(j)=i;

b3(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;

103

h7(i,1:

13)=dm3(200+i,1:

%%%%%%%%%%%%%%%%%%%%%%%%%%特殊样本

nc=0;

mc=0;

ncc=0;

mcc=0;

h8(i,1:

13)=h7(i,1:

13)==dm3(t1,1:

ifsum(h8(i,1:

=9

nc=nc+0.3;

13)==dm3(t2,1:

13)==dm3(t3,1:

13)==dm3(t4,1:

mc=mc+0.3;

13)==dm3(t5,1:

13)==dm3(t6,1:

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%样本结束

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%特殊属性值

ncc=0;

ifh7(i,j)==b3

(1)

ncc=ncc+3;

elseifh7(i,j)==b3

(2)

elseifh7(i,j)==b3(3)

ncc=ncc+2;

elseifh7(i,j)==b3(4)

elseifh7(i,j)==b3(5)

elseifh7(i,j)==b4

(1)

mcc=mcc+3;

elseifh7(i,j)==b4

(2)

elseifh7(i,j)==b4(3)

mcc=mcc+2;

elseifh7(i,j)==b4(4)

elseifh7(i,j)==b4(5)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%属性值结束

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%挖掘算法

if(nc>

=0.6)

h7(i,14)=1;

elseif(mc>

h7(i,14)=2;

elseifnc>

=(mcc+2)

elseifmc>

nc

elseifncc>

mcc

elseifmcc>

ncc

else

%%%%%%%%%%%%%%%%%%%%%%%%%挖掘结束

%%%%%%%%%%%%%%%%%%计算正确率

h9=zeros(103,1);

h9=h7(:

14)==dm3(201:

303,14);

tc=sum(h9)/103

%%%%%%%%%%%%%%%%%%%%%%%算法完毕

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1