我使用Apriori算法有一段时间了,我在问关于频繁项集候选生成的一个步骤。
如果我想将两个频繁的3项集连接到一个(候选)4项集,则连接项集必须有两个相同的项,另一个不同。
例如我可以加入

{Married: Yes, Age:20, Cars:1} and {Married: Yes, Age:20, Unemployed: No}


{Married: Yes, Age:20, Cars:1, Unemployed: No}

但有时我读到Apriori算法中的这一步:
我可以从L{{K-1}中加入两个Frq.ItEtSTes,当有词典排序的第一个K-2项是相同的,而最后一个是不同的。
但是,当我从上面的词典编纂中订购我的项目集时,第一个K-2项目就不一样了,所以我可能不加入它们了吗?!?
{Age:20, Cars:1, Married: Yes} and {Age:20, Married: Yes Unemployed: No}

我希望我能把我的问题解释清楚!
谢谢你的帮助!啊!

最佳答案

是的,你不应该加入他们。
举个例子。
假设在第3级,您有频繁项集:
{a,b,c}
{a,b,d}
{a c,d}
{b,c,d}
{B、F、G
现在假设要生成大小为4的候选项集。
显然,您只想组合具有1个不同项的项集。否则,结果可能包括大小大于4的项集。例如,如果您可以将bcd和bfg组合起来,结果将是bcdfg一个大小为5的项集,这是我们不需要的。所以这就是为什么我们只合并有一个不同项的项集的原因。
现在,让我解释一下为什么我们只合并第一个k-1项相同的项集。原因是我们不想两次产生相同的候选人。
例如,如果我们可以结合bcd和acd,我们将得到abcd。如果我们也结合ABC和ABD,我们也会得到ABCD这是不好的,因为我们会产生相同的候选人两次!我们不想那样!因此,通过根据字典顺序排序项集,并且仅在第一k-1项相同的情况下组合,我们将避免这个问题。我们只会合并ABC和ABD,但不会合并BCD和ACD。你可以在apriori论文中得到它有效的证明。
希望这有帮助。

07-26 01:43