Apriori关联度代码如下
from mlxtend.frequent_patterns import association_rules, apriori
inputfile = 'apriori_res_y_list.csv'
outputfile = 'apriori_res_y_list.xls' # 结果文件
data = pd.read_csv(inputfile)
# data = data.iloc[:,:4]
print(u'\n转换原始数据至0-1矩阵...')
ct = lambda x : pd.Series(1, index=x[pd.notnull(x)]) # 转换0-1矩阵的过渡函数
# b = map(ct, data..iloc[:,:].values as_matrix()) # 用map方式执行
b = map(ct, data.iloc[:,:].values) # 用map方式执行
data = pd.DataFrame(list(b)).fillna(0) # 实现矩阵转换,空值用0填充
def encode(x):
if x<=0:
return 0
if x>=1:
return 1
# 类似onehot编码
my_basket_sets = data.applymap(encode)
# apriori方法
frequent_items = apriori(my_basket_sets, min_support = 0.3,use_colnames = True)
print(frequent_items)
主要使用mlxtend库中apriori函数完成关联度分析功能
min_support = 0.3 # 是最小支持度
数据格式如下:
可以带上列名。