Apriori算法常用于大数据分析中的关联规则挖掘

原理

定义一个关联规则:A=>B,其中A为前因,B为后果,A将会导致B的发生。统计相关事件之间的支持度与置信度。数据之间的关联规则能够直接或者间接的解释某两项事务之间的关联,如经典营销案例:啤酒与尿布,举例如下。

有一案例中啤酒=>尿布(支持度:5%;置信度:60%)

  • 支持度5%:有5%的人同时购买了啤酒与尿布

  • 置信度60%:买啤酒的人中有60%的人同时购买了尿布

  • 满足如下规则:

  • 其中:支持度代表数据的有用性,置信度代表数据的关联性。

数据集

一个贷款数据的csv文件,其中LoanStatus为贷款状态,occupation为职业。

示例

  • 目的:统计与违约最多之间关联度最强的职业(哪个行业最容易违约)
  • 分析:在职业=>违约关系中,支持度的计算分母应为总借贷人群,置信度的计算分母应该为职业总人数,详见后图。
  • 计算支持度(请注意该语句不是最终代码):
    • 计算借贷群体的总人数:
      1
      select count(*) as s from loan; #A
    • 计算违约最多的职业
      1
      select occupation,count(*) as s from loan where LoanStatus='Defaulted' group by occupation order by s desc limit 1; #B
    • 计算支持度
      1
      select round(B.s/A.s,5)
  • 计算可信度:
    • 计算违约最多的职业
      1
      select occupation,count(*) as s from loan where LoanStatus='Defaulted' group by occupation order by s desc limit 1; #B
    • 计算违约群体的总人数:
      1
      select count(*) as s from loan where occupation=B.occupation; #A
    • 计算支持度
      1
      select round(B.s/A.s,5)

总结

Apriori的使用中需要注意总体,A,B的区分与使用;在语句的使用中注意使用别名避免解析混乱。