为什么在尝试运行 apriori 算法时会出错?

问题描述

错误:ValueError:除非设置了 vectorize,否则无法在大小为 0 的输入上调用 otypes

原始数据是我处理的。我创建了一些集群,现在我想为每个集群运行算法。

#Loading neccesary packages
import numpy as np
import pandas as pd
from mlxtend.frequent_patterns import apriori
from mlxtend.frequent_patterns import association_rules
cluster0 = pd.read_csv('cluster0.csv')
cluster0.head()

output

#Data Cleaning
cluster0['product_name'] = cluster0['product_name'].str.strip() #removes spaces from beginning and end
cluster0.dropna(axis=0,subset=['product_name'],inplace=True) #removes duplicate invoice
cluster0['product_name'] = cluster0['product_name'].astype('str') #converting invoice number to be string
cluster0.head()
mybasket = (cluster0
          .groupby(['basket_id','product_name'])['Units']
          .sum().unstack().reset_index().fillna(0)
          .set_index('basket_id'))
mybasket.head()

output

#converting all positive vaues to 1 and everything else to 0
def my_encode_units(x):
    if x <= 0:
        return 0
    if x >= 1:
        return 1

my_basket_sets = mybasket.applymap(my_encode_units)
#Generatig frequent itemsets
my_frequent_itemsets = apriori(my_basket_sets,min_support=0.07,use_colnames=True)
#generating rules
my_rules = association_rules(my_frequent_itemsets,metric="lift",min_threshold=1)

output

使用其他数据框可以正常工作。 numpy 版本:1.19.2

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)