import copy import pandas as pd from mlxtend.frequent_patterns import fpmax from mlxtend.preprocessing import TransactionEncoder # 传入模型的数据需要满足特定的格式,可以用这种方法来转换为bool值,也可以用函数转换为0、1 def FPmax_deal(data): return data.dropna().tolist() def FPmax(data,min_support): #data=data.tolist() temp_df=pd.Dataframe(data) df_arr = temp_df.apply(FPBS_deal,axis=1).tolist() te = TransactionEncoder() # 定义模型 df_tf = te.fit_transform(df_arr) #需要将data转换成transact_items_matrix编码方式 transact_items_matrix = pd.Dataframe(df_tf,columns=te.columns_) #print(transact_items_matrix) rule_items=fpmax(transact_items_matrix,min_support=min_support,use_colnames=True) print(rule_items) if __name__ == '__main__': test_list = [[1,3,4], [2,3,5], [1,2,3,5], [2,5], [1,2,3,5]] FPmax(test_list,0.4)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)