zoukankan      html  css  js  c++  java
  • 机器学习笔记之python实现关联规则算法Apriori样例

    首先导入包含apriori算法的mlxtend库,

    # pip install mlxtend

    调用apriori进行关联规则分析,具体代码如下,设置最小支持度(min_support)为0.4,最小置信度(min_threshold)为0.1,

    最小提升度(lift)为1.0,对数据集进行关联规则分析,

    from mlxtend.preprocessing import TransactionEncoder
    from mlxtend.frequent_patterns import apriori
    from mlxtend.frequent_patterns import association_rules
    import pandas as pd
    
    df_arr = [['苹果','香蕉','鸭梨'],
        ['橘子','葡萄','苹果','哈密瓜','火龙果'],
        ['香蕉','哈密瓜','火龙果','葡萄'],
        ['橘子','橡胶'],
        ['哈密瓜','鸭梨','葡萄']
        ]
    
    #转换为算法可接受模型(布尔值)
    te = TransactionEncoder()
    df_tf = te.fit_transform(df_arr)
    df = pd.DataFrame(df_tf,columns=te.columns_)
    
    #设置支持度求频繁项集
    frequent_itemsets = apriori(df,min_support=0.4,use_colnames= True)
    #求关联规则,设置最小置信度为0.15
    rules = association_rules(frequent_itemsets,metric = 'confidence',min_threshold = 0.15)
    #设置最小提升度
    rules = rules.drop(rules[rules.lift <1.0].index)
    #设置标题索引并打印结果
    rules.rename(columns = {'antecedents':'from','consequents':'to','support':'sup','confidence':'conf'},inplace = True)
    rules = rules[['from','to','sup','conf','lift']]
    print(rules)
    #rules为Dataframe格式,可根据自身需求存入文件

    输出结果如下:

         from     to sup   conf   lift
    0    (哈密瓜)    (火龙果) 0.4 0.666667 1.666667
    1    (火龙果)    (哈密瓜) 0.4 1.000000 1.666667
    2    (哈密瓜)    (葡萄) 0.6 1.000000 1.666667
    3     (葡萄)    (哈密瓜) 0.6 1.000000 1.666667
    4     (葡萄)    (火龙果) 0.4 0.666667 1.666667
    5    (火龙果)    (葡萄) 0.4 1.000000 1.666667
    6  (哈密瓜, 葡萄)    (火龙果) 0.4 0.666667 1.666667
    7  (哈密瓜, 火龙果)    (葡萄) 0.4 1.000000 1.666667
    8  (葡萄, 火龙果)    (哈密瓜) 0.4 1.000000 1.666667
    9    (哈密瓜)  (葡萄, 火龙果) 0.4 0.666667 1.666667
    10    (葡萄) (哈密瓜, 火龙果) 0.4 0.666667 1.666667
    11    (火龙果)  (哈密瓜, 葡萄) 0.4 1.000000 1.666667
    
    Process finished with exit code 0
  • 相关阅读:
    IOS网络请求框架AFNetworking和ASIHttpRequest对比
    objc_msgSend消息传递学习笔记 – 消息转发
    iOS开发之OCR光学识别储蓄卡以及信用卡
    iOS 符号表恢复 & 逆向支付宝
    模仿某网站招聘列表
    Winform在线更新
    WCF局域网内使用代理无法访问解决方法
    【JavaScript】又一神器框架:linq.js
    数组去重和两个数组求交集
    【写给大家看的CSS】定位元素:使用position/display布局
  • 原文地址:https://www.cnblogs.com/JetpropelledSnake/p/14212158.html
Copyright © 2011-2022 走看看