⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nglgz.m

📁 matlab版本的apriori源代码 matlab版本的apriori源代码 matlab版本的apriori源代码 matlab版本的apriori源代码 matlab版本的apriori源代码
💻 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 + -