对 Apriori 的最低置信度和最低支持度
Posted
技术标签:
【中文标题】对 Apriori 的最低置信度和最低支持度【英文标题】:Minimum confidence and minimum support for Apriori 【发布时间】:2011-01-01 18:48:17 【问题描述】:Apriori algorithm 的最小置信度和最小支持值是什么合适的值?你怎么能调整它们?它们是固定值,还是在算法运行期间发生变化?如果你之前用过这个算法,你用了什么值?
【问题讨论】:
如果没有有关您的问题域的更多信息,我认为这是无法回答的。这些参数的目的是修剪搜索空间,因此将在效率和结果质量之间进行权衡。没有任何一组值可以适用于所有问题领域。 【参考方案1】:我建议从 0.05 的支持值和 0.80 的信心值开始。但我同意您应该了解它们究竟代表什么,以便能够适当地定义它们。 对于规则 A => B(其中 A、B 非空集)
Support (A ⇒ B): s = P(A, B)
Confidence (A ⇒ B): c = P(B | A)
Lift (A ⇒ B): L = c/P(B)
提升对于评估规则的趣味性很重要(因为您通常会想出数百条规则)。已经提出了超过 20 种有趣的衡量标准。这些包括 Ф 系数、kappa、互信息、J 度量和基尼指数。我个人根据 J-measure 对我的规则进行排序。
J.measure (A ⇒B): J = s/c * (c*log(L) + (1-c)*log((L-c)/L))
【讨论】:
【参考方案2】:您必须在运行算法之前设置 minsup 和 minconf 值,并且它们在挖掘过程中不会改变。
选择 minsup 参数取决于您的数据。
对于某些数据,我使用 80 %。对于其他一些数据,我使用 0.05 % 。这一切都取决于数据集。通常,我从一个较高的值开始,然后减小这些值,直到找到一个可以生成足够多模式的值。
对于信心,它更容易一些,因为它代表了您对规则的信心。所以通常,我使用 60% 之类的东西。但这也取决于数据。
此外,如果您不想使用 minsup 参数,可以使用 top-k 挖掘算法。在这种情况下,您将指定 k=1000,例如算法将发现 1000 条规则,而不是使用 minsup。我为关联规则挖掘设计了一种这样的算法。它被称为 TopKRules,您可以下载 source code。描述它的论文将很快发表。它只使用两个参数:k 和 minconf。
【讨论】:
以上是关于对 Apriori 的最低置信度和最低支持度的主要内容,如果未能解决你的问题,请参考以下文章
python实现apriori算法的关联规则之支持度置信度提升度
python实现apriori算法的关联规则之支持度置信度提升度
R语言使用apriori算法进行关联规则挖掘实战:关联规则概念频繁项集支持度(support)置信度(confidence)提升度(lift)apriori算法