Apriori 未运行
Posted
技术标签:
【中文标题】Apriori 未运行【英文标题】:Apriori not running 【发布时间】:2020-01-16 00:06:30 【问题描述】:我正在尝试使用 apriori 查找参数之间的相关性,但我不断收到此错误,我尝试使用efficient_apriori 但它只打印“2”
import pandas as pd
import numpy as np
from apriori import apriori
import matplotlib.pyplot as plt
%matplotlib inline
df = pd.read_csv('D:\\Project\\database\\2-Second Parameters chosen\\Half Year\\HalfYearCombine2.csv',header=None,low_memory=False)
data = []
for i in range(0,15578088):
data.append([str(df.values[i,j])
for j in range(0,14)])
dataset = apriori(data, min_length = 2,
min_support = 0.2, min_confidence = 0.2,
min_lift = 3)
if dataset:
print('not none!')
print(len(dataset))
else:
print('dataset is none!')
错误是:
Traceback (most recent call last):
File "C:\ProgramData\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py", line 3296, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-13-de4fe3df3901>", line 5, in <module>
from apriori import apriori
File "C:\ProgramData\Anaconda3\lib\site-packages\apriori.py", line 79
print freqSet-conseq,'-->',conseq,'conf:',conf
^
SyntaxError: Missing parentheses in call to 'print'. Did you mean print(freqSet-conseq,'-->',conseq,'conf:',conf)?
我不知道为什么它在调用 print 时显示缺少括号,而我的 print 函数看起来不错?
谢谢。
【问题讨论】:
【参考方案1】:注意 "print freqSet-conseq,'-->',conseq,'conf:',conf" 没有括号吗?这意味着它是用python2编写的。你肯定已经为 python2 安装了 apriori,但是你使用的是 python3。
为 python3 安装 apriori 并重试。
【讨论】:
@Jonathan DiMatteo,我真的很抱歉,因为我对这一切都很陌生,在 jupyter 笔记本上它说我正在使用 python 3.7.3 ,我所做的只是输入 pip install先验的,谢谢。 试试pip3 install apriori
似乎您没有安装 python3 的 pip (pip3)。要么安装它并重试,要么学习使用虚拟环境(见这里docs.python.org/3/tutorial/venv.html)【参考方案2】:
efficient_apriori
打印2
的原因是因为它返回一个带有(itemsets, rules)
的元组。要使用efficient_apriori
,您可以执行以下操作:
from efficient_apriori import apriori
itemsets, rules = apriori(data, min_support=min_support, min_confidence=min_confidence)
if rules:
print(len(rules))
【讨论】:
以上是关于Apriori 未运行的主要内容,如果未能解决你的问题,请参考以下文章