3-Sequence: <4,5,7>,<4,5,6>,<4,6,7>,<5,6,7>,<4,6,8>.Support:2,2,3,2,2使用aprioriall算法找出大序列
时间: 2023-09-30 08:06:17 浏览: 71
根据题意,我们需要使用AprioriAll算法找出大序列。
首先,我们需要将所有的3-Sequence转化为单个的项,即<4>,<5>,<6>,<7>,<8>。
然后,我们需要对这些项进行计数,得到它们的支持度,即:
<4>:4
<5>:2
<6>:3
<7>:3
<8>:1
接下来,我们需要使用AprioriAll算法找出所有的频繁项集。该算法的步骤如下:
1. 找出所有的频繁1项集(支持度不小于最小支持度阈值的项集)。
2. 根据频繁1项集,找出所有的频繁2项集。
3. 根据频繁2项集,找出所有的频繁3项集。
在这个例子中,最小支持度阈值为2。因此,<5>和<8>不是频繁项集,而其他项都是频繁项集。因此,所有的频繁项集为:
<4>
<6>
<7>
<4,6>
<4,7>
<6,7>
<4,6,7>
最后,我们需要找出所有的大序列。根据定义,一个序列是大序列,当且仅当它的任意子序列都是频繁序列。
因此,我们可以遍历所有的频繁序列,对于每个频繁序列,检查它的所有子序列是否都是频繁序列。如果是,则该频繁序列是大序列。
在这个例子中,<4,5,7>和<5,6,7>都是频繁序列,但是它们的子序列<4,5>和<5,7>并不是频繁序列。因此,它们不是大序列。
而<4,6,7>是频繁序列,且它的所有子序列<4,6>、<4,7>和<6,7>都是频繁序列,因此它是大序列。
因此,我们找出的大序列是<4,6,7>。
相关问题
18.请用AprioriAll算法如表A6-1所示的数据库例子中找出大序列,假定最小支持度为40%。 3-Sequence Support <4,5,7> 2 <4.5,6> <4,6,7> 3 <5,6,7> 2 < <4,6,8>
根据AprioriAll算法,我们需要先生成所有的频繁序列,再从中找出大序列。
首先,对于长度为1的序列,计算它们的支持度,得到如下频繁1-序列:
{4},支持度为5/6=83.33%
{5},支持度为4/6=66.67%
{6},支持度为5/6=83.33%
{7},支持度为4/6=66.67%
{8},支持度为2/6=33.33%
可以看出,{8}的支持度不足最小支持度40%,因此它不是频繁1-序列。
接下来,我们需要生成长度为2的候选序列,即{4,5}、{4,6}、{4,7}、{5,6}、{5,7}、{6,7}。
对于每个候选序列,统计其在数据库中的支持度,得到如下频繁2-序列:
{4,5},支持度为2/6=33.33%
{4,6},支持度为3/6=50%
{4,7},支持度为2/6=33.33%
{5,6},支持度为2/6=33.33%
{5,7},支持度为2/6=33.33%
{6,7},支持度为3/6=50%
可以看出,{4,5}、{4,7}、{5,6}、{5,7}的支持度不足最小支持度40%,因此它们不是频繁2-序列。
接下来,我们需要生成长度为3的候选序列,即{4,6,7}。
统计其在数据库中的支持度,得到频繁3-序列{4,6,7},支持度为3/6=50%。
因此,{4,6,7}是大序列,它是长度为3且支持度不低于最小支持度40%的频繁序列。
因此,答案为{4,6,7}。
18.请用AprioriAll算法如表A6-1所示的数据库例子中找出大序列,假定最小支持度为40%。 3-Sequence Support <4,5,7> 2 <4.5,6>2 <4,6,7> 3 <5,6,7> 2 < <4,6,8>2
根据AprioriAll算法,首先需要扫描整个数据库,找出所有的1-序列,并计算它们的支持度。
1-序列 支持度
4 5
5 3
6 6
7 5
8 2
根据最小支持度为40%,可以剪枝得到频繁1-序列:
1-序列 支持度
4 5
6 6
7 5
接下来,根据频繁1-序列,生成2-序列,并计算它们的支持度。
2-序列 支持度
<4,5> 2
<4,6> 3
<4,7> 2
<5,6> 2
<5,7> 1
<6,7> 3
<6,8> 1
剪枝得到频繁2-序列:
2-序列 支持度
<4,6> 3
<6,7> 3
接下来,根据频繁2-序列,生成3-序列,并计算它们的支持度。
3-序列 支持度
<4,6,7> 3
因为只有一个频繁3-序列,所以它就是我们要找的大序列。
阅读全文