关联规则浅谈以及Apriori算法matlab实现

关联规则分析也叫做购物篮分析,最早是为发现超市销售数据库中不同商品之间的关联关系。例如一个超市的经理想要更多的了解顾客的购物习惯,比如“哪组商品可能会在一次购物中同时被购买?”或者“某顾客购买了个人电脑,那该顾客三个月后购买数码相机的概率有多大?”他可能会发现如果购买了面包的顾客同时非常有可能会购买牛奶,这就导出了一条关联规则“面包->牛奶”,其中面包称为规则的前项,而牛奶则称为规则的后项。通过对面包降低售价进行促销,而适当提高牛奶的售价,关联销售出的牛奶就有可能增加超市整体的利润。

关联规则分析是数据挖掘中最活跃的研究方法之一,目的是在一个数据集中找出各项之间的关联关系,而这种关系并没有在数据中直接表示出来。

1、常用的关联规则算法 
这里写图片描述

以下重点介绍Apriori算法。

2、Apriori算法 
以超市销售数据为例,提取关联规则的最大困难在于当存在很多商品时,可能的商品的组合(规则的前项和后项)的数目会达到一种令人望而却步的程度。因而各种关联规则分析的算法从不同方面入手减小可能的搜索空间的大小,以及减小扫描数据的次数。Apriori算法是最经典的挖掘频繁项集的算法,第一次实现了在大数据集上可行的关联规则提取,其核心思想是通过连接产生候选项与其支持度,然后通过剪枝生成频繁项集。

3、关联规则和频繁项集 
1)关联规则的一般形式 
项集A、B同时发生的概率称为关联规则的支持度(也称相对支持度):

这里写图片描述

项集A发生,则项集B发生的概率为关联规则的置信度:

这里写图片描述

2)最小支持度和最小置信度 
最小支持度是用户或专家定义的衡量支持度的一个阈值,表示项目集在统计意义上的最低重要性;最小置信度是用户或专家定义的衡量置信度的一个阈值,表示关联规则的最低可靠性,同时满足最小支持度阈值和最小置信度阈值的规则称作强规则。

3)项集 
项集是项的集合。包含k个项的项集称为k项集,如集合{牛奶,麦片,糖}是一个3项集。

项集的出现频率是所有包含项集的事务计数,又称做绝对支持度或支持度计数。如果项集I的相对支持度满足预定义的最小支持度阈值,则I是频繁项集。频繁k项集通常记作这里写图片描述

4)支持度计数 
项集A的支持度计数是事务数据集中包含A的事务个数,简称为项集的频率或计数。

已知项集的支持度计数,则规则这里写图片描述的支持度和置信度很容易从所有事务计数、项集A和项集这里写图片描述的支持度计数推出:

这里写图片描述 
这里写图片描述

也就是说,一旦得到所有事务的个数,A、B和这里写图片描述的支持度计数,就可以导出对应的关联规则这里写图片描述这里写图片描述,并可以检查该规则是否是强规则。

4、Apriori算法——使用候选产生频繁项集 
Apriori算法的主要思想是找出存在于事务数据集中最大的频繁项集,利用得到的最大频繁项集与预先设定的最小置信度阈值生成强关联规则。

1)Apriori的性质 
频繁项集的所有非空子集也必须是频繁项集。根据该性质可以得出:向不是频繁项集I的项集中添加事务A,新的项集这里写图片描述一定也不是频繁项集。

2)Apriori算法实现的两个过程 
a)找出所有的频繁项集(支持度必须大于等于给定的最小支持度阈值),在这个过程中连接步和剪枝步互相融合,最终得到最大的频繁项集这里写图片描述

连接步:连接步的目的是找到K项集。对给定的最小支持度阈值,分别对1项候选集这里写图片描述,剔除小于该阈值的项集得到1项频繁项集这里写图片描述;下一步由这里写图片描述自身连接产生两项候选集这里写图片描述,保留这里写图片描述中满足约束条件的项集得到两项频繁集,记为这里写图片描述;再下一步由这里写图片描述这里写图片描述连接产生三项候选集这里写图片描述,保留这里写图片描述中满足约束条件的项集得到三项频繁集,记为这里写图片描述,等等。这样循环下去,得到最大频繁项集这里写图片描述

剪枝步:剪枝步紧接着连接步,在产生候选项这里写图片描述的过程中启到减小搜索空间的目的。由于这里写图片描述这里写图片描述这里写图片描述连接产生的,根据Apriori的性质频繁项集的所有非空子集也必须是频繁项集,所以不满足该性质的项集将不会存在于这里写图片描述中,该过程就是剪枝。

b)由频繁项集产生强关联规则:在过程a)可知未超过预定的最小支持度阈值的项集已被剔除,如果剩下这些规则又满足了预定的最小置信度阈值,那么就挖掘出了强关联规则。

下面根据实例来讲解Apriori关联规则算法挖掘的实现过程。

数据如下所示

<code class="hljs livecodeserver has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial;"><span class="hljs-operator" style="box-sizing: border-box;">a</span>,c,e
b,d
b,c
<span class="hljs-operator" style="box-sizing: border-box;">a</span>,b,c,d
<span class="hljs-operator" style="box-sizing: border-box;">a</span>,b
b,c
<span class="hljs-operator" style="box-sizing: border-box;">a</span>,b
<span class="hljs-operator" style="box-sizing: border-box;">a</span>,b,c,e
<span class="hljs-operator" style="box-sizing: border-box;">a</span>,b,c
<span class="hljs-operator" style="box-sizing: border-box;">a</span>,c,e</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li></ul>

以上有10个事务数据集,设支持度为0.2(支持度计数为2),则Apriori算法的实现过程如下。

这里写图片描述 
这里写图片描述 
这里写图片描述

过程一:找最大k项频繁集

a)Apriori算法简单地扫描所有的事务,事务中的每一项都是候选1项集的集合这里写图片描述的成员,计算每一项的支持度。比如这里写图片描述 ;

b)对这里写图片描述中各项集的支持度与预先设定的最小支持度阈值作比较,保留大于或等于该阈值的项,得一项频繁集这里写图片描述

c)扫描所有事务,这里写图片描述这里写图片描述连接得候选2项集这里写图片描述,并计算每一项的支持度。如 
这里写图片描述。 
接下来是剪枝步,由于这里写图片描述的每个子集(即这里写图片描述)都是频繁集,所以没有项集从这里写图片描述中被剔除;

d)对这里写图片描述中各项集的支持度与预先设定的最小支持度阈值作比较,保留大于或等于该阈值的项,得两项频繁集这里写图片描述 ;

e)扫描所有事务,这里写图片描述这里写图片描述连接得候选3项集这里写图片描述,并计算每一项的支持度,如 
这里写图片描述。 
接下来是剪枝步,这里写图片描述这里写图片描述连接的所有项集为:这里写图片描述这里写图片描述这里写图片描述这里写图片描述这里写图片描述这里写图片描述这里写图片描述,根据Apriori算法,频繁集的所有非空子集也必须是频繁集,因为这里写图片描述这里写图片描述这里写图片描述不包含在b项频繁集这里写图片描述中,即不是频繁集,应剔除,最后的这里写图片描述中的项集只有这里写图片描述这里写图片描述 ;

f)对这里写图片描述中各项集的支持度与预先设定的最小支持度阈值作比较,保留大于或等于该阈值的项,得三项频繁集这里写图片描述 ;

g)这里写图片描述 与这里写图片描述连接得候选四项集这里写图片描述,易得剪枝后为空集。最后得到最大三项频繁集这里写图片描述这里写图片描述 。

由以上过程可知这里写图片描述这里写图片描述这里写图片描述都是频繁项集,这里写图片描述是最大频繁项集。

过程二:由频繁集产生关联规则。

置信度的计算公式为:

这里写图片描述

其中这里写图片描述是包含项集这里写图片描述的事务数;这里写图片描述是包含项集A的事务数;根据该公式,可以计算关联规则的置信度。

生成的24条关联规则的支持度和置信度如下所示。

这里写图片描述

在这里我们把最小置信度设为50%,则关联规则变为16条,如图所示。

这里写图片描述

在这里举例说明置信度的计算,如

这里写图片描述 
这里写图片描述 
这里写图片描述

Matlab代码如下

首先建立数据源 
menu_orders.txt

<code class="hljs livecodeserver has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial;"><span class="hljs-operator" style="box-sizing: border-box;">a</span>,c,e
b,d
b,c
<span class="hljs-operator" style="box-sizing: border-box;">a</span>,b,c,d
<span class="hljs-operator" style="box-sizing: border-box;">a</span>,b
b,c
<span class="hljs-operator" style="box-sizing: border-box;">a</span>,b
<span class="hljs-operator" style="box-sizing: border-box;">a</span>,b,c,e
<span class="hljs-operator" style="box-sizing: border-box;">a</span>,b,c
<span class="hljs-operator" style="box-sizing: border-box;">a</span>,c,e</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li></ul>

然后是具体的程序 
cal_apriori.m

<code class="hljs ruby has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial;"><span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">%% 使用Apriori算法挖掘关联规则
clear;
%</span> 参数初始化
inputfile = <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'menu_orders.txt'</span>; % 销量及其他属性数据
outputfile=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'as.txt'</span>;% 输出转换后<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>矩阵文件
minSup = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>.<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>; % 最小支持度
minConf = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>.<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">5</span>;% 最小置信度
nRules = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1000</span>;% 输出最大规则数
sortFlag = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>;% 按照支持度排序
rulefile = <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'rules.txt'</span>; % 规则输出文件

<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">%% 调用转换程序 ,把数据转换为0,1矩阵,自定义函数
[transactions,code] = trans2matrix(inputfile,outputfile,','); 

%</span>% 调用<span class="hljs-constant" style="box-sizing: border-box;">Apriori</span>关联规则算法,自定义函数
[<span class="hljs-constant" style="box-sizing: border-box;">Rules</span>,<span class="hljs-constant" style="box-sizing: border-box;">FreqItemsets</span>] = findRules(transactions, minSup, minConf, nRules, sortFlag, code, rulefile);

disp(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'Apriori算法挖掘菜品订单关联规则完成!'</span>);</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li></ul>

trans2matrix.m

<code class="hljs matlab has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial;"><span class="hljs-function" style="box-sizing: border-box;"><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">function</span> <span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">[ output,code]</span> = <span class="hljs-title" style="box-sizing: border-box;">trans2matrix</span><span class="hljs-params" style="color: rgb(102, 0, 102); box-sizing: border-box;">( inputfile,outputfile,splitter )</span></span>
<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">%% 把输入事务转换为0、1矩阵;每行代表一个事务</span>

<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">% 输入参数:</span>
<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">% inputfile:输入文件,空格分隔每个项目;</span>
<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">% outputfile:输出文件,转换后的0,1矩阵文件;</span>
<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">% splitter: 输入文件项目的间隔符,默认为空格</span>

<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">% 输出参数:</span>
<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">% output : 转换后的0,1 矩阵</span>
<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">% code:编码规则;</span>

<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> nargin<<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">3</span>
   splitter=<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">' '</span>; 
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">end</span>

<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">%% 读入文件, 获得编码规则</span>
code=<span class="hljs-cell" style="box-sizing: border-box;">{}</span>;
fid= fopen(inputfile);
tline = fgetl(fid);
lines=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>;
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">while</span> ischar(tline)
    lines=lines+<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>; <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">% 记录行数</span>
    tline = deblank(tline);
    tline = regexp(tline,splitter,<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'split'</span>);
    code=<span class="hljs-matrix" style="box-sizing: border-box;">[code tline]</span>; <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">% 合并 </span>
    code = unique(code); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">% 去除重复记录</span>
<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">%     disp(code)</span>
    tline = fgetl(fid);
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">end</span>
<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">disp</span>(<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'编码规则为:'</span>)
<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">disp</span>(num2str(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>:<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">size</span>(code,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>)))
<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">disp</span>( code);
fclose(fid); <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">% 关闭文档</span>

<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">%% 读取文件,根据编码规则对原始数据进行转换</span>
itemsnum= <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">size</span>(code,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>);
output=<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">zeros</span>(lines,itemsnum);
fid= fopen(inputfile);
tline = fgetl(fid);
lines=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>;
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">while</span> ischar(tline)
    lines=lines+<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>; <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">% 记录行数</span>
    tline = deblank(tline);
    tline = regexp(tline,splitter,<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'split'</span>);
    <span class="hljs-matrix" style="box-sizing: border-box;">[~,icode,~]</span> = intersect(code,tline);<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">% 寻找下标</span>
    output(lines,<span class="hljs-transposed_variable" style="box-sizing: border-box;">icode'</span>)=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>;
    <span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">%disp(output(lines,:))</span>
    tline = fgetl(fid);
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">end</span>
fclose(fid);

<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">%% 把转换后的矩阵写入文件</span>
fid = fopen(outputfile, <span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'w'</span>);
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">for</span> <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">i</span>=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>:lines
   fprintf(fid,<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">'%s\n'</span>,num2str(output(<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">i</span>,:))); 
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">end</span>
fclose(fid);
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">end</span>

</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li><li style="box-sizing: border-box; padding: 0px 5px;">26</li><li style="box-sizing: border-box; padding: 0px 5px;">27</li><li style="box-sizing: border-box; padding: 0px 5px;">28</li><li style="box-sizing: border-box; padding: 0px 5px;">29</li><li style="box-sizing: border-box; padding: 0px 5px;">30</li><li style="box-sizing: border-box; padding: 0px 5px;">31</li><li style="box-sizing: border-box; padding: 0px 5px;">32</li><li style="box-sizing: border-box; padding: 0px 5px;">33</li><li style="box-sizing: border-box; padding: 0px 5px;">34</li><li style="box-sizing: border-box; padding: 0px 5px;">35</li><li style="box-sizing: border-box; padding: 0px 5px;">36</li><li style="box-sizing: border-box; padding: 0px 5px;">37</li><li style="box-sizing: border-box; padding: 0px 5px;">38</li><li style="box-sizing: border-box; padding: 0px 5px;">39</li><li style="box-sizing: border-box; padding: 0px 5px;">40</li><li style="box-sizing: border-box; padding: 0px 5px;">41</li><li style="box-sizing: border-box; padding: 0px 5px;">42</li><li style="box-sizing: border-box; padding: 0px 5px;">43</li><li style="box-sizing: border-box; padding: 0px 5px;">44</li><li style="box-sizing: border-box; padding: 0px 5px;">45</li><li style="box-sizing: border-box; padding: 0px 5px;">46</li><li style="box-sizing: border-box; padding: 0px 5px;">47</li><li style="box-sizing: border-box; padding: 0px 5px;">48</li><li style="box-sizing: border-box; padding: 0px 5px;">49</li><li style="box-sizing: border-box; padding: 0px 5px;">50</li><li style="box-sizing: border-box; padding: 0px 5px;">51</li><li style="box-sizing: border-box; padding: 0px 5px;">52</li><li style="box-sizing: border-box; padding: 0px 5px;">53</li><li style="box-sizing: border-box; padding: 0px 5px;">54</li><li style="box-sizing: border-box; padding: 0px 5px;">55</li><li style="box-sizing: border-box; padding: 0px 5px;">56</li><li style="box-sizing: border-box; padding: 0px 5px;">57</li><li style="box-sizing: border-box; padding: 0px 5px;">58</li><li style="box-sizing: border-box; padding: 0px 5px;">59</li><li style="box-sizing: border-box; padding: 0px 5px;">60</li><li style="box-sizing: border-box; padding: 0px 5px;">61</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li><li style="box-sizing: border-box; padding: 0px 5px;">26</li><li style="box-sizing: border-box; padding: 0px 5px;">27</li><li style="box-sizing: border-box; padding: 0px 5px;">28</li><li style="box-sizing: border-box; padding: 0px 5px;">29</li><li style="box-sizing: border-box; padding: 0px 5px;">30</li><li style="box-sizing: border-box; padding: 0px 5px;">31</li><li style="box-sizing: border-box; padding: 0px 5px;">32</li><li style="box-sizing: border-box; padding: 0px 5px;">33</li><li style="box-sizing: border-box; padding: 0px 5px;">34</li><li style="box-sizing: border-box; padding: 0px 5px;">35</li><li style="box-sizing: border-box; padding: 0px 5px;">36</li><li style="box-sizing: border-box; padding: 0px 5px;">37</li><li style="box-sizing: border-box; padding: 0px 5px;">38</li><li style="box-sizing: border-box; padding: 0px 5px;">39</li><li style="box-sizing: border-box; padding: 0px 5px;">40</li><li style="box-sizing: border-box; padding: 0px 5px;">41</li><li style="box-sizing: border-box; padding: 0px 5px;">42</li><li style="box-sizing: border-box; padding: 0px 5px;">43</li><li style="box-sizing: border-box; padding: 0px 5px;">44</li><li style="box-sizing: border-box; padding: 0px 5px;">45</li><li style="box-sizing: border-box; padding: 0px 5px;">46</li><li style="box-sizing: border-box; padding: 0px 5px;">47</li><li style="box-sizing: border-box; padding: 0px 5px;">48</li><li style="box-sizing: border-box; padding: 0px 5px;">49</li><li style="box-sizing: border-box; padding: 0px 5px;">50</li><li style="box-sizing: border-box; padding: 0px 5px;">51</li><li style="box-sizing: border-box; padding: 0px 5px;">52</li><li style="box-sizing: border-box; padding: 0px 5px;">53</li><li style="box-sizing: border-box; padding: 0px 5px;">54</li><li style="box-sizing: border-box; padding: 0px 5px;">55</li><li style="box-sizing: border-box; padding: 0px 5px;">56</li><li style="box-sizing: border-box; padding: 0px 5px;">57</li><li style="box-sizing: border-box; padding: 0px 5px;">58</li><li style="box-sizing: border-box; padding: 0px 5px;">59</li><li style="box-sizing: border-box; padding: 0px 5px;">60</li><li style="box-sizing: border-box; padding: 0px 5px;">61</li></ul>

findRules.m

<code class="hljs applescript has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial;">function [Rules,FreqItemsets] = findRules(transactions, minSup, minConf, nRules, sortFlag, code, rulesfile)
%
% This function performs Association Analysis (Apriori Algorithm):  Given a <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">set</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">of</span> transactions,
% find rules <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">that</span> will predict  <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">the</span> occurrence <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">of</span> an <span class="hljs-property" style="box-sizing: border-box;">item</span> based <span class="hljs-function_start" style="box-sizing: border-box;"><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">on</span></span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">the</span> occurrences <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">of</span> other
% items <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">in</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">the</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">transaction</span>
% 
% Rules are <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">of</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">the</span> form  A-> B (e.g., {milk, diaper} - > {Coke}), <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">where</span>
% support = minSup (minimum support threshold)
% confidence = minConf (minimum confidence threshold)
% 
% Support <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">is</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">the</span> fraction <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">of</span> transactions <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">that</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">contain</span> both A <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">and</span> B:
% Support(A,B) = P(A,B)
% 
% Confidence <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">is</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">the</span> fraction <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">of</span> transactions <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">where</span> items <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">in</span> B appear <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">in</span> transactions  <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">that</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">contain</span> A:
% Confidence(A,B) = P(B|A)
%
%
% INPUT:
%          transactions:  M x N matrix <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">of</span> binary transactions, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">where</span> each row
%                                  represents one <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">transaction</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">and</span> each column represents
%                                  one attribute/<span class="hljs-property" style="box-sizing: border-box;">item</span>
%          minSup:          scalar value <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">that</span> represents <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">the</span> minimum
%                                  threshold <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">for</span> support <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">for</span> each rule
%          minConf:        scalar value <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">that</span> represents <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">the</span> minimum
%                                  threshold <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">for</span> confidence <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">of</span> each rule
%          nRules:           scalar value indicating <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">the</span> <span class="hljs-type" style="box-sizing: border-box;">number</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">of</span> rules
%                                  <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">the</span> user wants <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">to</span> find
%          sortFlag:         binary value indicating <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">the</span> rules should be
%                                  sorted <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">by</span> support level <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">or</span> confidence level
%                                  <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>: sort <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">by</span> rule support level
%                                  <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>: sort <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">by</span> rule confidence level
%          code (labels): 编码规则            optional parameter <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">that</span> provides labels <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">for</span>
%                                  each attribute (columns <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">of</span> transactions),
%                                  <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">by</span> default attributes are represented
%                                  <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">with</span> increasing numerical values <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>:N
%           
%          fname:            optional <span class="hljs-type" style="box-sizing: border-box;">file</span> <span class="hljs-property" style="box-sizing: border-box;">name</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">where</span> rules are saved
%
% OUTPUT:
%          Rules:             <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span> x <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span> cell array, <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">where</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">the</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">first</span> cell (Rules{<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>}{:})
%                                 <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">contains</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">the</span> itemsets <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">in</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">the</span> left side <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">of</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">the</span> rule <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">and</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">second</span>
%                                 cell (Rules{<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>}{:}) <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">contains</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">the</span> itemsets
%                                 <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">in</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">the</span> right side <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">of</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">the</span> rule (e.g., <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span>
%                                 <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">the</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">first</span> rule <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">is</span> {<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>} -> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">3</span>,
%                                 Rules{<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>}{<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>} = [<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>], Rules{<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>}{<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>} = [<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">3</span>])
%         FreqItemsets: A cell array <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">of</span> frequent itemsets <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">of</span> size <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>, <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>,
%                                 etc., <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">with</span> itemset support >= minSup,
%                                 <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">where</span> FreqItemSets{<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>} represents itemsets
%                                 <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">of</span> size <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>, FreqItemSets{<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>} itemsets <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">of</span>
%                                 size <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>, etc.
%         fname.txt:      The code creates a <span class="hljs-type" style="box-sizing: border-box;">text</span> <span class="hljs-type" style="box-sizing: border-box;">file</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">and</span> stores all <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">the</span>
%                                 rules <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">in</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">the</span> form left_side -> right_side.
%
% author: Narine Manukyan <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">07</span>/<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">08</span>/<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2013</span>

% Number <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">of</span> transactions <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">in</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">the</span> dataset
M = size(transactions,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>);
% Number <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">of</span> attributes <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">in</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">the</span> dataset
N = size(transactions,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>);

<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> nargin < <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">7</span>
    fname = 'default';
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">end</span>

<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> nargin < <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">6</span>
    labels = cellfun(@(x){num2str(x)}, num2cell(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>:N));
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">end</span>

<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> nargin < <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">5</span>
    sortFlag = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>;
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">end</span>

<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> nargin < <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">4</span>
    nRules = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">100</span>;
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">end</span>

<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> nargin < <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">3</span>
    minConf = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0.5</span>;
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">end</span>

<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> nargin < <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>
    minSup = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0.5</span>;
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">end</span>

<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> nargin == <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>
    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">error</span>('No input arguments were supplied.  At least one <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">is</span> expected.');
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">end</span>

% Preallocate memory <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">for</span> Rules <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">and</span> FreqItemsets
maxSize = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">10</span>^<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>;
Rules = cell(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>);
Rules{<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>} = cell(nRules,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>);
Rules{<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>} = cell(nRules,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>);
FreqItemsets = cell(maxSize);
RuleConf = zeros(nRules,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>);
RuleSup = zeros(nRules,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>);
ct = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>;

% Find frequent <span class="hljs-property" style="box-sizing: border-box;">item</span> sets <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">of</span> size one (<span class="hljs-type" style="box-sizing: border-box;">list</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">of</span> all items <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">with</span> minSup)
T = [];
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">for</span> i = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>:N
    S = sum(transactions(:,i))/M;
    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> S >= minSup
        T = [T; i];
    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">end</span>
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">end</span>
FreqItemsets{<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>} = T;

%Find frequent <span class="hljs-property" style="box-sizing: border-box;">item</span> sets <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">of</span> size >=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">and</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">from</span> those identify rules <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">with</span> minConf

<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">for</span> steps = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>:N

    % If there aren't <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">at</span> least two items  <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">with</span> minSup terminate
    U = unique(T);
    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> isempty(U) || size(U,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>) == <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>
        Rules{<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>}(ct:<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">end</span>) = [];
        Rules{<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>}(ct:<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">end</span>) = [];
        FreqItemsets(steps-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>:<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">end</span>) = [];
        break
    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">end</span>

    % Generate all combinations <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">of</span> items <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">that</span> are <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">in</span> frequent itemset
    Combinations = nchoosek(U',steps);
    TOld = T;
    T = [];

    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">for</span> j = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>:size(Combinations,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>)
        <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> ct > nRules
            break;
        <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">else</span>
            % Apriori rule: <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> any subset <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">of</span> items are <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">not</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">in</span> frequent itemset do <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">not</span>
            % consider <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">the</span> superset (e.g., <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> {A, B} <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">does</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">not</span> have minSup do <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">not</span> consider {A,B,*})
            <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> sum(ismember(nchoosek(Combinations(j,:),steps-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>),TOld,'rows')) - steps+<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>

                % Calculate <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">the</span> support <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">for</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">the</span> new itemset
                S = mean((sum(transactions(:,Combinations(j,:)),<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>)-steps)>=<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>);
                <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> S >= minSup
                    T = [T; Combinations(j,:)];

                    % Generate potential rules <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">and</span> check <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">for</span> minConf
                    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">for</span> depth = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>:steps-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>
                        R = nchoosek(Combinations(j,:),depth);
                        <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">for</span> r = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>:size(R,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>)
                            <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> ct > nRules
                                break;
                            <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">else</span>
                                % Calculate <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">the</span> confidence <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">of</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">the</span> rule
                                Ctemp = S/mean((sum(transactions(:,R(r,:)),<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>)-depth)==<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0</span>);
                                <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> Ctemp > minConf

                                    % Store <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">the</span> rules <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">that</span> have minSup <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">and</span> minConf
                                    Rules{<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>}{ct} = R(r,:);
                                    Rules{<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>}{ct} = setdiff(Combinations(j,:),R(r,:));
                                    RuleConf(ct) = Ctemp;
                                    RuleSup(ct) = S;
                                    ct = ct+<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>;
                                <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">end</span>
                            <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">end</span>
                        <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">end</span>
                    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">end</span>
                <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">end</span>
            <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">end</span>
        <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">end</span>
    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">end</span>

    % Store <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">the</span> freqent itemsets
    FreqItemsets{steps} = T;
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">end</span>

% Get rid <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">of</span> unnecessary rows due <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">to</span> preallocation (helps <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">with</span> speed)
FreqItemsets(steps-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>:<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">end</span>) = [];
RuleConf = RuleConf(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>:ct-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>);
RuleSup = RuleSup(<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>:ct-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>);

% Sort <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">the</span> rules <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">in</span> descending order based <span class="hljs-function_start" style="box-sizing: border-box;"><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">on</span></span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">the</span> confidence <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">or</span> support level
switch sortFlag
    case <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span> % Sort <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">by</span> Support level
        [V ind] = sort(RuleSup,'descend');
    case <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span> % Sort <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">by</span> Confidence level
        [V ind] = sort(RuleConf,'descend');
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">end</span>

RuleConf = RuleConf(ind);
RuleSup = RuleSup(ind);

<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">for</span> i = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>:<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>
    temp = Rules{i,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>};
    temp = temp(ind);
    Rules{i,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>} = temp;
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">end</span>

disp(['关联规则算法完成,规则数为:' num2str(size(RuleSup,<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>))]);

% Save <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">the</span> rule <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">in</span> a <span class="hljs-type" style="box-sizing: border-box;">text</span> <span class="hljs-type" style="box-sizing: border-box;">file</span> <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">and</span> print them <span class="hljs-function_start" style="box-sizing: border-box;"><span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">on</span></span> display
fid = fopen(rulesfile, 'w');
fprintf(fid, '%s   (%s, %s) \n', 'Rule', 'Support', 'Confidence');

<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">for</span> i = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>:size(Rules{<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>},<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>)
    s1 = '';
    s2 = '';
    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">for</span> j = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>:size(Rules{<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>}{i},<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>)
        <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> j == size(Rules{<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>}{i},<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>)
            s1 = [s1 code{Rules{<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>}{i}(j)}];
        <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">else</span>
            s1 = [s1 code{Rules{<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>}{i}(j)} ','];
        <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">end</span>
    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">end</span>
    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">for</span> k = <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1</span>:size(Rules{<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>}{i},<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>)
        <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">if</span> k == size(Rules{<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>}{i},<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>)
            s2 = [s2 code{Rules{<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>}{i}(k)}];
        <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">else</span>
            s2 = [s2 code{Rules{<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">2</span>}{i}(k)} ','];
        <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">end</span>
    <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">end</span>
    s3 = num2str(RuleSup(i)*<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">100</span>);
    s4 = num2str(RuleConf(i)*<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">100</span>);
    fprintf(fid, '%s -> %s  (%s%%, %s%%)\n', s1, s2, s3, s4);
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">end</span>
fclose(fid);
disp(['存储规则到文件‘' rulesfile '’完成'])
<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">end</span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li><li style="box-sizing: border-box; padding: 0px 5px;">26</li><li style="box-sizing: border-box; padding: 0px 5px;">27</li><li style="box-sizing: border-box; padding: 0px 5px;">28</li><li style="box-sizing: border-box; padding: 0px 5px;">29</li><li style="box-sizing: border-box; padding: 0px 5px;">30</li><li style="box-sizing: border-box; padding: 0px 5px;">31</li><li style="box-sizing: border-box; padding: 0px 5px;">32</li><li style="box-sizing: border-box; padding: 0px 5px;">33</li><li style="box-sizing: border-box; padding: 0px 5px;">34</li><li style="box-sizing: border-box; padding: 0px 5px;">35</li><li style="box-sizing: border-box; padding: 0px 5px;">36</li><li style="box-sizing: border-box; padding: 0px 5px;">37</li><li style="box-sizing: border-box; padding: 0px 5px;">38</li><li style="box-sizing: border-box; padding: 0px 5px;">39</li><li style="box-sizing: border-box; padding: 0px 5px;">40</li><li style="box-sizing: border-box; padding: 0px 5px;">41</li><li style="box-sizing: border-box; padding: 0px 5px;">42</li><li style="box-sizing: border-box; padding: 0px 5px;">43</li><li style="box-sizing: border-box; padding: 0px 5px;">44</li><li style="box-sizing: border-box; padding: 0px 5px;">45</li><li style="box-sizing: border-box; padding: 0px 5px;">46</li><li style="box-sizing: border-box; padding: 0px 5px;">47</li><li style="box-sizing: border-box; padding: 0px 5px;">48</li><li style="box-sizing: border-box; padding: 0px 5px;">49</li><li style="box-sizing: border-box; padding: 0px 5px;">50</li><li style="box-sizing: border-box; padding: 0px 5px;">51</li><li style="box-sizing: border-box; padding: 0px 5px;">52</li><li style="box-sizing: border-box; padding: 0px 5px;">53</li><li style="box-sizing: border-box; padding: 0px 5px;">54</li><li style="box-sizing: border-box; padding: 0px 5px;">55</li><li style="box-sizing: border-box; padding: 0px 5px;">56</li><li style="box-sizing: border-box; padding: 0px 5px;">57</li><li style="box-sizing: border-box; padding: 0px 5px;">58</li><li style="box-sizing: border-box; padding: 0px 5px;">59</li><li style="box-sizing: border-box; padding: 0px 5px;">60</li><li style="box-sizing: border-box; padding: 0px 5px;">61</li><li style="box-sizing: border-box; padding: 0px 5px;">62</li><li style="box-sizing: border-box; padding: 0px 5px;">63</li><li style="box-sizing: border-box; padding: 0px 5px;">64</li><li style="box-sizing: border-box; padding: 0px 5px;">65</li><li style="box-sizing: border-box; padding: 0px 5px;">66</li><li style="box-sizing: border-box; padding: 0px 5px;">67</li><li style="box-sizing: border-box; padding: 0px 5px;">68</li><li style="box-sizing: border-box; padding: 0px 5px;">69</li><li style="box-sizing: border-box; padding: 0px 5px;">70</li><li style="box-sizing: border-box; padding: 0px 5px;">71</li><li style="box-sizing: border-box; padding: 0px 5px;">72</li><li style="box-sizing: border-box; padding: 0px 5px;">73</li><li style="box-sizing: border-box; padding: 0px 5px;">74</li><li style="box-sizing: border-box; padding: 0px 5px;">75</li><li style="box-sizing: border-box; padding: 0px 5px;">76</li><li style="box-sizing: border-box; padding: 0px 5px;">77</li><li style="box-sizing: border-box; padding: 0px 5px;">78</li><li style="box-sizing: border-box; padding: 0px 5px;">79</li><li style="box-sizing: border-box; padding: 0px 5px;">80</li><li style="box-sizing: border-box; padding: 0px 5px;">81</li><li style="box-sizing: border-box; padding: 0px 5px;">82</li><li style="box-sizing: border-box; padding: 0px 5px;">83</li><li style="box-sizing: border-box; padding: 0px 5px;">84</li><li style="box-sizing: border-box; padding: 0px 5px;">85</li><li style="box-sizing: border-box; padding: 0px 5px;">86</li><li style="box-sizing: border-box; padding: 0px 5px;">87</li><li style="box-sizing: border-box; padding: 0px 5px;">88</li><li style="box-sizing: border-box; padding: 0px 5px;">89</li><li style="box-sizing: border-box; padding: 0px 5px;">90</li><li style="box-sizing: border-box; padding: 0px 5px;">91</li><li style="box-sizing: border-box; padding: 0px 5px;">92</li><li style="box-sizing: border-box; padding: 0px 5px;">93</li><li style="box-sizing: border-box; padding: 0px 5px;">94</li><li style="box-sizing: border-box; padding: 0px 5px;">95</li><li style="box-sizing: border-box; padding: 0px 5px;">96</li><li style="box-sizing: border-box; padding: 0px 5px;">97</li><li style="box-sizing: border-box; padding: 0px 5px;">98</li><li style="box-sizing: border-box; padding: 0px 5px;">99</li><li style="box-sizing: border-box; padding: 0px 5px;">100</li><li style="box-sizing: border-box; padding: 0px 5px;">101</li><li style="box-sizing: border-box; padding: 0px 5px;">102</li><li style="box-sizing: border-box; padding: 0px 5px;">103</li><li style="box-sizing: border-box; padding: 0px 5px;">104</li><li style="box-sizing: border-box; padding: 0px 5px;">105</li><li style="box-sizing: border-box; padding: 0px 5px;">106</li><li style="box-sizing: border-box; padding: 0px 5px;">107</li><li style="box-sizing: border-box; padding: 0px 5px;">108</li><li style="box-sizing: border-box; padding: 0px 5px;">109</li><li style="box-sizing: border-box; padding: 0px 5px;">110</li><li style="box-sizing: border-box; padding: 0px 5px;">111</li><li style="box-sizing: border-box; padding: 0px 5px;">112</li><li style="box-sizing: border-box; padding: 0px 5px;">113</li><li style="box-sizing: border-box; padding: 0px 5px;">114</li><li style="box-sizing: border-box; padding: 0px 5px;">115</li><li style="box-sizing: border-box; padding: 0px 5px;">116</li><li style="box-sizing: border-box; padding: 0px 5px;">117</li><li style="box-sizing: border-box; padding: 0px 5px;">118</li><li style="box-sizing: border-box; padding: 0px 5px;">119</li><li style="box-sizing: border-box; padding: 0px 5px;">120</li><li style="box-sizing: border-box; padding: 0px 5px;">121</li><li style="box-sizing: border-box; padding: 0px 5px;">122</li><li style="box-sizing: border-box; padding: 0px 5px;">123</li><li style="box-sizing: border-box; padding: 0px 5px;">124</li><li style="box-sizing: border-box; padding: 0px 5px;">125</li><li style="box-sizing: border-box; padding: 0px 5px;">126</li><li style="box-sizing: border-box; padding: 0px 5px;">127</li><li style="box-sizing: border-box; padding: 0px 5px;">128</li><li style="box-sizing: border-box; padding: 0px 5px;">129</li><li style="box-sizing: border-box; padding: 0px 5px;">130</li><li style="box-sizing: border-box; padding: 0px 5px;">131</li><li style="box-sizing: border-box; padding: 0px 5px;">132</li><li style="box-sizing: border-box; padding: 0px 5px;">133</li><li style="box-sizing: border-box; padding: 0px 5px;">134</li><li style="box-sizing: border-box; padding: 0px 5px;">135</li><li style="box-sizing: border-box; padding: 0px 5px;">136</li><li style="box-sizing: border-box; padding: 0px 5px;">137</li><li style="box-sizing: border-box; padding: 0px 5px;">138</li><li style="box-sizing: border-box; padding: 0px 5px;">139</li><li style="box-sizing: border-box; padding: 0px 5px;">140</li><li style="box-sizing: border-box; padding: 0px 5px;">141</li><li style="box-sizing: border-box; padding: 0px 5px;">142</li><li style="box-sizing: border-box; padding: 0px 5px;">143</li><li style="box-sizing: border-box; padding: 0px 5px;">144</li><li style="box-sizing: border-box; padding: 0px 5px;">145</li><li style="box-sizing: border-box; padding: 0px 5px;">146</li><li style="box-sizing: border-box; padding: 0px 5px;">147</li><li style="box-sizing: border-box; padding: 0px 5px;">148</li><li style="box-sizing: border-box; padding: 0px 5px;">149</li><li style="box-sizing: border-box; padding: 0px 5px;">150</li><li style="box-sizing: border-box; padding: 0px 5px;">151</li><li style="box-sizing: border-box; padding: 0px 5px;">152</li><li style="box-sizing: border-box; padding: 0px 5px;">153</li><li style="box-sizing: border-box; padding: 0px 5px;">154</li><li style="box-sizing: border-box; padding: 0px 5px;">155</li><li style="box-sizing: border-box; padding: 0px 5px;">156</li><li style="box-sizing: border-box; padding: 0px 5px;">157</li><li style="box-sizing: border-box; padding: 0px 5px;">158</li><li style="box-sizing: border-box; padding: 0px 5px;">159</li><li style="box-sizing: border-box; padding: 0px 5px;">160</li><li style="box-sizing: border-box; padding: 0px 5px;">161</li><li style="box-sizing: border-box; padding: 0px 5px;">162</li><li style="box-sizing: border-box; padding: 0px 5px;">163</li><li style="box-sizing: border-box; padding: 0px 5px;">164</li><li style="box-sizing: border-box; padding: 0px 5px;">165</li><li style="box-sizing: border-box; padding: 0px 5px;">166</li><li style="box-sizing: border-box; padding: 0px 5px;">167</li><li style="box-sizing: border-box; padding: 0px 5px;">168</li><li style="box-sizing: border-box; padding: 0px 5px;">169</li><li style="box-sizing: border-box; padding: 0px 5px;">170</li><li style="box-sizing: border-box; padding: 0px 5px;">171</li><li style="box-sizing: border-box; padding: 0px 5px;">172</li><li style="box-sizing: border-box; padding: 0px 5px;">173</li><li style="box-sizing: border-box; padding: 0px 5px;">174</li><li style="box-sizing: border-box; padding: 0px 5px;">175</li><li style="box-sizing: border-box; padding: 0px 5px;">176</li><li style="box-sizing: border-box; padding: 0px 5px;">177</li><li style="box-sizing: border-box; padding: 0px 5px;">178</li><li style="box-sizing: border-box; padding: 0px 5px;">179</li><li style="box-sizing: border-box; padding: 0px 5px;">180</li><li style="box-sizing: border-box; padding: 0px 5px;">181</li><li style="box-sizing: border-box; padding: 0px 5px;">182</li><li style="box-sizing: border-box; padding: 0px 5px;">183</li><li style="box-sizing: border-box; padding: 0px 5px;">184</li><li style="box-sizing: border-box; padding: 0px 5px;">185</li><li style="box-sizing: border-box; padding: 0px 5px;">186</li><li style="box-sizing: border-box; padding: 0px 5px;">187</li><li style="box-sizing: border-box; padding: 0px 5px;">188</li><li style="box-sizing: border-box; padding: 0px 5px;">189</li><li style="box-sizing: border-box; padding: 0px 5px;">190</li><li style="box-sizing: border-box; padding: 0px 5px;">191</li><li style="box-sizing: border-box; padding: 0px 5px;">192</li><li style="box-sizing: border-box; padding: 0px 5px;">193</li><li style="box-sizing: border-box; padding: 0px 5px;">194</li><li style="box-sizing: border-box; padding: 0px 5px;">195</li><li style="box-sizing: border-box; padding: 0px 5px;">196</li><li style="box-sizing: border-box; padding: 0px 5px;">197</li><li style="box-sizing: border-box; padding: 0px 5px;">198</li><li style="box-sizing: border-box; padding: 0px 5px;">199</li><li style="box-sizing: border-box; padding: 0px 5px;">200</li><li style="box-sizing: border-box; padding: 0px 5px;">201</li><li style="box-sizing: border-box; padding: 0px 5px;">202</li><li style="box-sizing: border-box; padding: 0px 5px;">203</li><li style="box-sizing: border-box; padding: 0px 5px;">204</li><li style="box-sizing: border-box; padding: 0px 5px;">205</li><li style="box-sizing: border-box; padding: 0px 5px;">206</li><li style="box-sizing: border-box; padding: 0px 5px;">207</li><li style="box-sizing: border-box; padding: 0px 5px;">208</li><li style="box-sizing: border-box; padding: 0px 5px;">209</li><li style="box-sizing: border-box; padding: 0px 5px;">210</li><li style="box-sizing: border-box; padding: 0px 5px;">211</li><li style="box-sizing: border-box; padding: 0px 5px;">212</li><li style="box-sizing: border-box; padding: 0px 5px;">213</li><li style="box-sizing: border-box; padding: 0px 5px;">214</li><li style="box-sizing: border-box; padding: 0px 5px;">215</li><li style="box-sizing: border-box; padding: 0px 5px;">216</li><li style="box-sizing: border-box; padding: 0px 5px;">217</li><li style="box-sizing: border-box; padding: 0px 5px;">218</li><li style="box-sizing: border-box; padding: 0px 5px;">219</li><li style="box-sizing: border-box; padding: 0px 5px;">220</li><li style="box-sizing: border-box; padding: 0px 5px;">221</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li><li style="box-sizing: border-box; padding: 0px 5px;">26</li><li style="box-sizing: border-box; padding: 0px 5px;">27</li><li style="box-sizing: border-box; padding: 0px 5px;">28</li><li style="box-sizing: border-box; padding: 0px 5px;">29</li><li style="box-sizing: border-box; padding: 0px 5px;">30</li><li style="box-sizing: border-box; padding: 0px 5px;">31</li><li style="box-sizing: border-box; padding: 0px 5px;">32</li><li style="box-sizing: border-box; padding: 0px 5px;">33</li><li style="box-sizing: border-box; padding: 0px 5px;">34</li><li style="box-sizing: border-box; padding: 0px 5px;">35</li><li style="box-sizing: border-box; padding: 0px 5px;">36</li><li style="box-sizing: border-box; padding: 0px 5px;">37</li><li style="box-sizing: border-box; padding: 0px 5px;">38</li><li style="box-sizing: border-box; padding: 0px 5px;">39</li><li style="box-sizing: border-box; padding: 0px 5px;">40</li><li style="box-sizing: border-box; padding: 0px 5px;">41</li><li style="box-sizing: border-box; padding: 0px 5px;">42</li><li style="box-sizing: border-box; padding: 0px 5px;">43</li><li style="box-sizing: border-box; padding: 0px 5px;">44</li><li style="box-sizing: border-box; padding: 0px 5px;">45</li><li style="box-sizing: border-box; padding: 0px 5px;">46</li><li style="box-sizing: border-box; padding: 0px 5px;">47</li><li style="box-sizing: border-box; padding: 0px 5px;">48</li><li style="box-sizing: border-box; padding: 0px 5px;">49</li><li style="box-sizing: border-box; padding: 0px 5px;">50</li><li style="box-sizing: border-box; padding: 0px 5px;">51</li><li style="box-sizing: border-box; padding: 0px 5px;">52</li><li style="box-sizing: border-box; padding: 0px 5px;">53</li><li style="box-sizing: border-box; padding: 0px 5px;">54</li><li style="box-sizing: border-box; padding: 0px 5px;">55</li><li style="box-sizing: border-box; padding: 0px 5px;">56</li><li style="box-sizing: border-box; padding: 0px 5px;">57</li><li style="box-sizing: border-box; padding: 0px 5px;">58</li><li style="box-sizing: border-box; padding: 0px 5px;">59</li><li style="box-sizing: border-box; padding: 0px 5px;">60</li><li style="box-sizing: border-box; padding: 0px 5px;">61</li><li style="box-sizing: border-box; padding: 0px 5px;">62</li><li style="box-sizing: border-box; padding: 0px 5px;">63</li><li style="box-sizing: border-box; padding: 0px 5px;">64</li><li style="box-sizing: border-box; padding: 0px 5px;">65</li><li style="box-sizing: border-box; padding: 0px 5px;">66</li><li style="box-sizing: border-box; padding: 0px 5px;">67</li><li style="box-sizing: border-box; padding: 0px 5px;">68</li><li style="box-sizing: border-box; padding: 0px 5px;">69</li><li style="box-sizing: border-box; padding: 0px 5px;">70</li><li style="box-sizing: border-box; padding: 0px 5px;">71</li><li style="box-sizing: border-box; padding: 0px 5px;">72</li><li style="box-sizing: border-box; padding: 0px 5px;">73</li><li style="box-sizing: border-box; padding: 0px 5px;">74</li><li style="box-sizing: border-box; padding: 0px 5px;">75</li><li style="box-sizing: border-box; padding: 0px 5px;">76</li><li style="box-sizing: border-box; padding: 0px 5px;">77</li><li style="box-sizing: border-box; padding: 0px 5px;">78</li><li style="box-sizing: border-box; padding: 0px 5px;">79</li><li style="box-sizing: border-box; padding: 0px 5px;">80</li><li style="box-sizing: border-box; padding: 0px 5px;">81</li><li style="box-sizing: border-box; padding: 0px 5px;">82</li><li style="box-sizing: border-box; padding: 0px 5px;">83</li><li style="box-sizing: border-box; padding: 0px 5px;">84</li><li style="box-sizing: border-box; padding: 0px 5px;">85</li><li style="box-sizing: border-box; padding: 0px 5px;">86</li><li style="box-sizing: border-box; padding: 0px 5px;">87</li><li style="box-sizing: border-box; padding: 0px 5px;">88</li><li style="box-sizing: border-box; padding: 0px 5px;">89</li><li style="box-sizing: border-box; padding: 0px 5px;">90</li><li style="box-sizing: border-box; padding: 0px 5px;">91</li><li style="box-sizing: border-box; padding: 0px 5px;">92</li><li style="box-sizing: border-box; padding: 0px 5px;">93</li><li style="box-sizing: border-box; padding: 0px 5px;">94</li><li style="box-sizing: border-box; padding: 0px 5px;">95</li><li style="box-sizing: border-box; padding: 0px 5px;">96</li><li style="box-sizing: border-box; padding: 0px 5px;">97</li><li style="box-sizing: border-box; padding: 0px 5px;">98</li><li style="box-sizing: border-box; padding: 0px 5px;">99</li><li style="box-sizing: border-box; padding: 0px 5px;">100</li><li style="box-sizing: border-box; padding: 0px 5px;">101</li><li style="box-sizing: border-box; padding: 0px 5px;">102</li><li style="box-sizing: border-box; padding: 0px 5px;">103</li><li style="box-sizing: border-box; padding: 0px 5px;">104</li><li style="box-sizing: border-box; padding: 0px 5px;">105</li><li style="box-sizing: border-box; padding: 0px 5px;">106</li><li style="box-sizing: border-box; padding: 0px 5px;">107</li><li style="box-sizing: border-box; padding: 0px 5px;">108</li><li style="box-sizing: border-box; padding: 0px 5px;">109</li><li style="box-sizing: border-box; padding: 0px 5px;">110</li><li style="box-sizing: border-box; padding: 0px 5px;">111</li><li style="box-sizing: border-box; padding: 0px 5px;">112</li><li style="box-sizing: border-box; padding: 0px 5px;">113</li><li style="box-sizing: border-box; padding: 0px 5px;">114</li><li style="box-sizing: border-box; padding: 0px 5px;">115</li><li style="box-sizing: border-box; padding: 0px 5px;">116</li><li style="box-sizing: border-box; padding: 0px 5px;">117</li><li style="box-sizing: border-box; padding: 0px 5px;">118</li><li style="box-sizing: border-box; padding: 0px 5px;">119</li><li style="box-sizing: border-box; padding: 0px 5px;">120</li><li style="box-sizing: border-box; padding: 0px 5px;">121</li><li style="box-sizing: border-box; padding: 0px 5px;">122</li><li style="box-sizing: border-box; padding: 0px 5px;">123</li><li style="box-sizing: border-box; padding: 0px 5px;">124</li><li style="box-sizing: border-box; padding: 0px 5px;">125</li><li style="box-sizing: border-box; padding: 0px 5px;">126</li><li style="box-sizing: border-box; padding: 0px 5px;">127</li><li style="box-sizing: border-box; padding: 0px 5px;">128</li><li style="box-sizing: border-box; padding: 0px 5px;">129</li><li style="box-sizing: border-box; padding: 0px 5px;">130</li><li style="box-sizing: border-box; padding: 0px 5px;">131</li><li style="box-sizing: border-box; padding: 0px 5px;">132</li><li style="box-sizing: border-box; padding: 0px 5px;">133</li><li style="box-sizing: border-box; padding: 0px 5px;">134</li><li style="box-sizing: border-box; padding: 0px 5px;">135</li><li style="box-sizing: border-box; padding: 0px 5px;">136</li><li style="box-sizing: border-box; padding: 0px 5px;">137</li><li style="box-sizing: border-box; padding: 0px 5px;">138</li><li style="box-sizing: border-box; padding: 0px 5px;">139</li><li style="box-sizing: border-box; padding: 0px 5px;">140</li><li style="box-sizing: border-box; padding: 0px 5px;">141</li><li style="box-sizing: border-box; padding: 0px 5px;">142</li><li style="box-sizing: border-box; padding: 0px 5px;">143</li><li style="box-sizing: border-box; padding: 0px 5px;">144</li><li style="box-sizing: border-box; padding: 0px 5px;">145</li><li style="box-sizing: border-box; padding: 0px 5px;">146</li><li style="box-sizing: border-box; padding: 0px 5px;">147</li><li style="box-sizing: border-box; padding: 0px 5px;">148</li><li style="box-sizing: border-box; padding: 0px 5px;">149</li><li style="box-sizing: border-box; padding: 0px 5px;">150</li><li style="box-sizing: border-box; padding: 0px 5px;">151</li><li style="box-sizing: border-box; padding: 0px 5px;">152</li><li style="box-sizing: border-box; padding: 0px 5px;">153</li><li style="box-sizing: border-box; padding: 0px 5px;">154</li><li style="box-sizing: border-box; padding: 0px 5px;">155</li><li style="box-sizing: border-box; padding: 0px 5px;">156</li><li style="box-sizing: border-box; padding: 0px 5px;">157</li><li style="box-sizing: border-box; padding: 0px 5px;">158</li><li style="box-sizing: border-box; padding: 0px 5px;">159</li><li style="box-sizing: border-box; padding: 0px 5px;">160</li><li style="box-sizing: border-box; padding: 0px 5px;">161</li><li style="box-sizing: border-box; padding: 0px 5px;">162</li><li style="box-sizing: border-box; padding: 0px 5px;">163</li><li style="box-sizing: border-box; padding: 0px 5px;">164</li><li style="box-sizing: border-box; padding: 0px 5px;">165</li><li style="box-sizing: border-box; padding: 0px 5px;">166</li><li style="box-sizing: border-box; padding: 0px 5px;">167</li><li style="box-sizing: border-box; padding: 0px 5px;">168</li><li style="box-sizing: border-box; padding: 0px 5px;">169</li><li style="box-sizing: border-box; padding: 0px 5px;">170</li><li style="box-sizing: border-box; padding: 0px 5px;">171</li><li style="box-sizing: border-box; padding: 0px 5px;">172</li><li style="box-sizing: border-box; padding: 0px 5px;">173</li><li style="box-sizing: border-box; padding: 0px 5px;">174</li><li style="box-sizing: border-box; padding: 0px 5px;">175</li><li style="box-sizing: border-box; padding: 0px 5px;">176</li><li style="box-sizing: border-box; padding: 0px 5px;">177</li><li style="box-sizing: border-box; padding: 0px 5px;">178</li><li style="box-sizing: border-box; padding: 0px 5px;">179</li><li style="box-sizing: border-box; padding: 0px 5px;">180</li><li style="box-sizing: border-box; padding: 0px 5px;">181</li><li style="box-sizing: border-box; padding: 0px 5px;">182</li><li style="box-sizing: border-box; padding: 0px 5px;">183</li><li style="box-sizing: border-box; padding: 0px 5px;">184</li><li style="box-sizing: border-box; padding: 0px 5px;">185</li><li style="box-sizing: border-box; padding: 0px 5px;">186</li><li style="box-sizing: border-box; padding: 0px 5px;">187</li><li style="box-sizing: border-box; padding: 0px 5px;">188</li><li style="box-sizing: border-box; padding: 0px 5px;">189</li><li style="box-sizing: border-box; padding: 0px 5px;">190</li><li style="box-sizing: border-box; padding: 0px 5px;">191</li><li style="box-sizing: border-box; padding: 0px 5px;">192</li><li style="box-sizing: border-box; padding: 0px 5px;">193</li><li style="box-sizing: border-box; padding: 0px 5px;">194</li><li style="box-sizing: border-box; padding: 0px 5px;">195</li><li style="box-sizing: border-box; padding: 0px 5px;">196</li><li style="box-sizing: border-box; padding: 0px 5px;">197</li><li style="box-sizing: border-box; padding: 0px 5px;">198</li><li style="box-sizing: border-box; padding: 0px 5px;">199</li><li style="box-sizing: border-box; padding: 0px 5px;">200</li><li style="box-sizing: border-box; padding: 0px 5px;">201</li><li style="box-sizing: border-box; padding: 0px 5px;">202</li><li style="box-sizing: border-box; padding: 0px 5px;">203</li><li style="box-sizing: border-box; padding: 0px 5px;">204</li><li style="box-sizing: border-box; padding: 0px 5px;">205</li><li style="box-sizing: border-box; padding: 0px 5px;">206</li><li style="box-sizing: border-box; padding: 0px 5px;">207</li><li style="box-sizing: border-box; padding: 0px 5px;">208</li><li style="box-sizing: border-box; padding: 0px 5px;">209</li><li style="box-sizing: border-box; padding: 0px 5px;">210</li><li style="box-sizing: border-box; padding: 0px 5px;">211</li><li style="box-sizing: border-box; padding: 0px 5px;">212</li><li style="box-sizing: border-box; padding: 0px 5px;">213</li><li style="box-sizing: border-box; padding: 0px 5px;">214</li><li style="box-sizing: border-box; padding: 0px 5px;">215</li><li style="box-sizing: border-box; padding: 0px 5px;">216</li><li style="box-sizing: border-box; padding: 0px 5px;">217</li><li style="box-sizing: border-box; padding: 0px 5px;">218</li><li style="box-sizing: border-box; padding: 0px 5px;">219</li><li style="box-sizing: border-box; padding: 0px 5px;">220</li><li style="box-sizing: border-box; padding: 0px 5px;">221</li></ul>

运行完程序后,会生成rules.txt和as.txt。 
我们主要关心rules.txt,里面的内容就是关联规则、支持度和置信度,如下所示。

这里写图片描述

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值