目录
说在前面
- 操作系统:win10
- python版本:3.6.3
- kettle版本:8.3
- 数据集:Soda
- Apriori算法:【数据挖掘】笔记一-兴趣度度量&Apriori算法
数据处理
- 原数据格式
- 目标数据格式
- 转换方法
【数据挖掘】Kettle分组合并
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')
- 结果
这个数据集不是很好,可能还需要预处理一下,,,,
转载:https://blog.csdn.net/qq_33446100/article/details/101713206
查看评论