微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决为什么在尝试运行 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 举报,一经查实,本站将立刻删除。