| 输入:导入数据集生成数值矩阵D |
| Step1设置最小支持度计数min_sup |
| 步骤2扫描所有的数据生成L1:1-itemsets频繁集。主要步骤如下: |
| Step2.1创建单位矩阵E与n行和n列,n矩阵的列数吗D |
| Step2.2计算矩阵的每一列的总和D并将它存储在矩阵B反过来 |
| Step2.3比较矩阵的所有元素B与min_sup如果第i个元素B小于min_sup,然后删除该元素的i行矩阵E |
| Step2.4连接矩阵E和矩阵B在垂直方向获得矩阵l。在这个时候,E是一个频繁1-itemset,l既包含1-itemsets频繁,相应的项集的支持 |
| 步骤3结合所有包含在1-itemset频繁项集L1成对,连接新生成的2-itemsets在水平方向上获得矩阵C,也就是说,2-itemset候选人C2 |
| 第四如果C不是一个空集,修剪C根据min_sup频繁的k - itemset路。主要步骤如下: |
| Step4.1让米的行数C,让t矩阵的行数D,让 |
| Step4.2创建零矩阵N与米第1行和列 |
| Step4.3创建一个矩阵H与t第1行和列 |
| Step4.4找到元素的i行等于1C与矩阵、存储这些元素的下标印第安纳州,计算元素的数量n |
| Step4.5中存储的值印第安纳州列下标,相应的阅读n列的数据矩阵D,执行和操作的矩阵H |
| Step4.6找到矩阵的所有元素的总和H并将它存储在x,如果
,然后删除的i行C和N,
;否则,让
,
|
| Step4.7如果
,转向step4.3;否则,连接矩阵C和矩阵N在垂直方向获取k-itemset频繁路 |
| 顾不上如果路不是一个空集,连接矩阵l和矩阵路在水平方向上扩张矩阵l |
| 第六段使
,并生成k + 1-itemset候选人Ck + 1从频繁k-itemset路。主要步骤如下: |
| Step6.1让米的行数路和n矩阵的列数路 |
| Step6.2创建一个零矩阵C为0行和n列;让 |
| Step6.3使 |
| Step6.4使
,
,和 |
| Step6.5如果
,让
,
|
| Step6.6如果或
,转向step6.8 |
| Step6.7
,如果
,转向step6.5;否则,step6.8 |
| Step6.8如果
,转向step6.26 |
| Step6.9使
,
,
|
| Step6.10如果
,让 |
| Step6.11如果
,让 |
| Step6.12如果
,转向step6.14 |
| Step6.13
,如果
,转向step6.10;否则转向step6.14 |
| Step6.14使 |
| Step6.15使 |
| Step6.16找到元素的i行等于1路和存储这些元素的下标矩阵ind1 |
| Step6.17使 |
| Step6.18使和删除的x-th元素ind2 |
| Step6.19使 |
| Step6.20使 |
| Step6.21
,如果
,转向step6.20;否则,step6.22 |
| Step6.22如果的所有元素的和国旗是0,转向step6.24吗 |
| Step6.23
,如果
,转向step6.18;否则转向step6.24 |
| Step6.24如果的所有元素的和国旗不是0,让
,连接矩阵C和c在水平方向上 |
| Step6.25
,如果
,转向step6.4;否则转向step6.26 |
| Step6.26
,如果
,转向step6.3;否则,转步骤7。在这个时候,矩阵C候选人k + 1-itemset吗Ck + 1 |
| Step7如果C不是一个空集,转向第四;否则结束 |
| 输出:数值矩阵l,代表所有频繁项集和相应的支持 |
|