FPmax算法Python实现例子
各类优化算法入门优秀论文总结目录
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(FPmax_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)