?? nglgz.m
字號:
% 本程序是為數據挖掘作業而寫
% 其中sup表示最小支持度
% conf表示最小置信度
% Shw是事務矩陣,行表示一個事務,列表示項目,若某一事務沒有某項,
% 則該項用0來表示。每一個項目要用數字來表示,如:[1 2 0 4 0 6]這個事務中沒有項目3 和5 .
% 本程序作者:realghost,聯系方式:slqinyi@gliet.edu.cn或QQ 14564470
% 本程序最后修改時間為:2006年2月25日
% 本程序僅用于學習和交流,請不要用于畢業設計或是他用,謝謝
function y=nglgz(sup,conf,shw)
[m1,n1]=size(shw); % 事務數據庫的維數
C0=1:n1; % 初始候選K項集(k=1)
C0=C0';
C=zeros(n1*(n1-1),n1,n1); % 初始化候選K項集
L=zeros(n1*(n1-1)/2,n1,n1); % 初始化頻繁K項集
% 下面開始找頻繁K項集
for k=1:n1
if k==1
temp_C=C0;
[m2,n2]=size(C0);
C(1:m2,1:n2,k)=C0;
else
temp_C=caoji(temp_L); % 由頻繁K項集產生候選K+1項集
[m2,n2]=size(temp_C);
C(1:m2,1:n2,k)=temp_C;
end
temp_L=[];
for i=1:m2
c_count=0;
for j=1:m1
if pisin(temp_C(i,:),shw(j,:))==1
c_count=c_count+1;
end
end
if c_count>=3
temp_L=[temp_L;temp_C(i,:)];
end
end
[m3,n3]=size(temp_L);
L(1:m3,1:n3,k)=temp_L;
end
kc=[];
kl=[];
for k=1:n1
if C(:,:,k)==0
kc=[kc,k];
end
if L(:,:,k)==0
kl=[kl,k];
end
end
C(:,:,kc)=[]; % 把全是零的陣刪掉
L(:,:,kl)=[];
% 以下找出關聯規則
guanlian=zeros(3*n1,n1+4,n1);
for k=2:4
temp=L(:,:,k);
temp=quling(temp);
temp_g=guanlianbiaoshi(temp,shw,conf);
[m5,n5]=size(temp_g);
guanlian(1:m5,1:n5,k)=temp_g;
end
kg=[];
for k=1:n1
if guanlian(:,:,k)==0
kg=[kg,k];
end
end
guanlian(:,:,kg)=[];
% 輸出所有的候選K項集
[m,n,p]=size(C);
for k=1:p
CC=quling(C(:,:,k))
end
% 輸出所有的頻繁K項集
[m,n,p]=size(L);
for k=1:p
LL=quling(L(:,:,k))
end
% 輸出所有滿足條件的關聯規則
[m,n,p]=size(guanlian);
for k=1:p
gl=quling(guanlian(:,:,k))
end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -