Apriori算法和FP-growth算法

经典的关联规则挖掘算法包括Apriori算法和FP-growth算法。
apriori算法多次扫描交易数据库,每次利用候选频繁集产生频繁集;而FP-growth则利用树形结构,无需产生候选频繁集而是直接得到频繁集,大大减少扫描交易数据库的次数,从而提高了算法的效率。但是apriori的算法扩展性较好,可以用于并行计算等领域。
使用Apriori算法进行关联分析。FP-growth算法来高效发现频繁项集。


* Apriori算法
  * 根据支持度进行频繁项集的挖掘,根据置信度进行规则的产生
  * 算法原理:根据候选一项集数据库第一次扫描去掉低于最小值支持度计数的项得到频繁一项集,在根据候选2项集再次扫描数据库得到频繁2项集,在根据候选3项集得到频繁3项集,依次类推。
  * 算法步骤:
    * 首先,拿到数据集进行数据库扫描得到候选1项集,在通过设定一个最小支持度技术得到频繁1项集
    * 再次扫描数据库根据候选2项集得到频繁2项集,依次类推
    * 得到频繁项集,根据置信度来计算规则的产生
    * 设定一个置信度阈值,如果小于置信度阈值,直接筛选掉,否则选择作为关联规则
  * 算法特点:
    * 产生-测试:产生是候选项集,测试的是频繁项集
    * Apriorii算法如果得到是频繁K项集会进行K次扫描数据库
  * 工作中:
    * 进行关联挖掘

* FP-Growth算法
  * 根据支持度进行频繁项集的挖掘,根据置信度进行规则的产生
  * 算法原理:首先扫描一次数据库,筛选掉不符合最小支持度计数的1项集,根据支持度进行排序,得到新的经过排序后的数据,再进行构建FP树,在根据后缀节点寻找前缀路径从而得到频繁项集
  * 算法步骤:
    * 首先扫描一次数据库,筛选掉不符合条件的最小支持度计数的1项集,得到频繁1项集
    * 再次根据支持度计数进行对数据集进行排序,得到排序后的结果,再次进行FP树的构建
    * 根据后缀节点寻找前缀路径中是频繁项集的集合
  * 算法特点:
    * 只需要扫描两次数据库
    * 如果树的分支节点非常多的时候树的复杂度很高
  * 工作中:
    * 进行关联挖掘
    * 在Spark中的FPGrowth算法中直接使用API接口进行大数据量的关联挖掘推荐






发布了189 篇原创文章 · 获赞 13 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/NewBeeMu/article/details/103481875