【数据挖掘】Apriori算法初步应用

说在前面

数据处理

python code

  • 相关库
    pip install pandas
    pip install mlxtend
    
  • 代码
    import pandas as pd
    from mlxtend.preprocessing import TransactionEncoder
    from mlxtend.frequent_patterns import apriori, association_rules
    
    def getData(path):
    	nlist = []#读取已转换后的数据
    	index=0
    	with open(path,"r",encoding='utf-8') as f:
    		lines = f.readlines()
    		for line in lines:
    			line_elems = line.split(';')
    			nlist_elem=[]
    			for i in line_elems:
    				if i[0] != ' ':
    					nlist_elem.append(i.strip().split(' ')[0])
    			nlist.append(nlist_elem)
    			#print(nlist_elem)
    	return nlist
    
    
    shopping_list = getData("file.txt") 
    
     # 使用TransactionEncoder将原始数据转为mlxtend接受的特定数据格式
    te = TransactionEncoder() 
    # 转为布尔值的array
    df_tf = te.fit_transform(shopping_list)  
    # print(df_tf)
    # 转为dataframe形式,将列名转化为原来的商品名
    df = pd.DataFrame(df_tf, columns=te.columns_)  
    print(df)
    
    # 设置最小支持度
    frequent_itemsets = apriori(df, min_support=0.003, use_colnames=True)
    # 设置按照支持度从大到小排序
    frequent_itemsets.sort_values(by='support', ascending=False, inplace=True)
    print(frequent_itemsets)
    
    # 设置使用最小置信度
    rules = association_rules(frequent_itemsets,metric='confidence',min_threshold=0.9)
    # 设置按照置信度重大到小排序
    rules.sort_values(by='confidence', ascending=False, inplace=True)
    print(rules)
    
    rules.to_csv('test.csv', encoding='gbk')
    
  • 结果
    这个数据集不是很好,可能还需要预处理一下,,,,
    在这里插入图片描述
发布了106 篇原创文章 · 获赞 41 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/qq_33446100/article/details/101713206