当前位置:   article > 正文

22、python关联规则案例代码_关联规则代码

关联规则代码

1、关联:(Association)

    把两个或者两个以上在意义上,有密切联系的项组合在一起

关联规则(Association Rules AR)

    用于从大量数据中挖掘出有价值的数据项之间的相关关系
    
协同过滤(Collaborative Filtering,简称CF)

    协同过滤常常被用于分辨某位特定固定可能感兴趣的东西,这些结论来自于对其他相似顾客对哪些产品感兴趣的分析
    

2、关联规则(Association Rules)

    两个不相交的非空集合X、Y,如果有X->Y,就说X->Y是一条关联规则
    
    强度:支持度(support)、自信度(confidence)
    效度:提升度(Lift)
    
3、挖掘定义

    给定一个数据集,找出其中所有支持度support>=min_support、自信度

confidece>=min_confidece的关联规则

4、支持度的计算公式

    suopport(X->Y)=集合X和集合Y中的项在一条记录中同时出现的次数/数据记录的个数
    
    例如:
    
    support({啤酒}->{尿布})
    =啤酒和尿布同时出现的次数/记录数
    =3/5=60%
      
5、自信度(Confidence)

confidence(X->Y)=集合X与集合Y中的项在一条记录中同时出现的次数/集合X出现的个数

例如:

confidence({啤酒}->{尿布})
=啤酒喝尿布同时出现的次数/啤酒出现的次数=3/3=100%


6、自信度

    confidence({尿布}->{啤酒})
    =啤酒喝尿布同时出现的次数/尿布出现的次数
    =3/4
    =75%
  
7、提升度(Lift)
    
    度量规则是否可用的指标,描述的是相对于不用规则,使用规则可以提高多少,提升度大于1 ,规则有效
    
    计算公式
    lift({A-B})=confidence({A-B})/supper(B)
    
    例如:
    
    lift({尿布}->{啤酒})
    =confidence({尿布}->{啤酒})/support(啤酒)
    =0.75/0.6=1.25
    
8、 计算步骤

01 扫描数据集,统计一级候选集出现的次数

清除不满足条件的候选相集,得到一级项集(例如:出现次数大于2)

02 从一级项集中,组合二级候选相集,统计数据集中他们出现的次数

清除不满足条件的候选相集,得到二级项集

03 从二级项集中,组合三级候选相集,统计数据集中他们出现的次数(小于确定的3次) 停止挖掘

04 将前面得到的项集作为结果返回

9、案例代码

 

  1. import pandas
  2. import apyori
  3. from apyori import apriori
  4. data=pandas.read_csv('D:\\DATA\\pycase\\number2\\8.1\\Data.csv')
  5. # apriori与pandas包输出数据格式不兼容,所以进行格式转换‘,
  6. # 以列表的形式进行分许
  7. transactions=data.groupby(by='交易ID').apply(
  8. lambda x: list(x.购买商品)
  9. )
  10. #min_support -- The minimum support of relations (float).
  11. #min_confidence -- The minimum confidence of relations (float).
  12. #min_lift -- The minimum lift of relations (float).
  13. #max_length
  14. # 调用apriori方法
  15. results=list(
  16. apriori(
  17. transactions
  18. )
  19. # 指出度(support),先输入空列表,再进行赋值
  20. supports=[]
  21. #自信度
  22. confidences=[]
  23. # 提升度
  24. lifts=[]
  25. # 基于项items_base
  26. bases=[]
  27. # 推导项items_add
  28. adds=[]
  29. for r in results:
  30. supports.append(r.support)
  31. confidences.append(r.ordered_statistics[0].confidence)
  32. lifts.append(r.ordered_statistics[0].lift)
  33. bases.append(list(r.ordered_statistics[0].items_base))
  34. adds.append(list(r.ordered_statistics[0].items_add))
  35. result = pandas.DataFrame({
  36. 'support': supports,
  37. 'confidence': confidences,
  38. 'lift': lifts,
  39. 'base': bases,
  40. 'add': adds
  41. })
  42. # 选择支持度大于0.5,自信度大于0.5,提升度大于1
  43. r=result[(result.lift>1)&(result.support>0.5)&(result.confidence>0.5)]

  
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/600762
推荐阅读
相关标签
  

闽ICP备14008679号