Python 类型错误:';模块';对象不可调用-apriori
我正在为Randonmized算法编写代码。当我试图用python3 random.py-f T10I4D100K.dat-p0.1-s0.05-c0.05运行此代码时,它导致TypeError:“module”对象不可调用。我应该换哪一部分 回溯(最近一次呼叫最后一次): 文件“random.py”,第48行,在Python 类型错误:';模块';对象不可调用-apriori,python,python-3.x,Python,Python 3.x,我正在为Randonmized算法编写代码。当我试图用python3 random.py-f T10I4D100K.dat-p0.1-s0.05-c0.05运行此代码时,它导致TypeError:“module”对象不可调用。我应该换哪一部分 回溯(最近一次呼叫最后一次): 文件“random.py”,第48行,在 main() 文件“random.py”,第41行,主 文件到数组() 文件“random.py”,第32行,在文件到数组中 if(决策(参数概率)): 文件“random.py”,
main()
文件“random.py”,第41行,主
文件到数组()
文件“random.py”,第32行,在文件到数组中
if(决策(参数概率)):
文件“random.py”,第19行,在decision中
返回random.random()
TypeError:“模块”对象不可调用
import argparse
import time
import sys
import random
from efficient_apriori import apriori
parser = argparse.ArgumentParser(description="datasets")
parser.add_argument('-f', '--file',
default="sample.txt",help="http://fimi.uantwerpen.be/data/")
parser.add_argument('-s', '--min_support', default = 0.5,
help="minimum support, set to 0.5 by default")
parser.add_argument('-c', '--min_confidence', default = 0.5,
help="minimum confidence, set to 1 by default")
parser.add_argument('-p', '--probability', default = 1,
help="Probability for randomlized slice")
args = parser.parse_args()
#memory_data [Brisket_Number][Item_Number]
memory_data = []
data_list = []
def decision(probability):
return random.random() < float(probability)
#------------------------------------------File Handling------------------------------------------
def file_to_array():
i = 1
data_file = open(args.file, "r")
print("Reading File into Array...\n")
#if its comment line
for line in data_file:
line = line.rstrip()
line_row = line.split()
memory_data.append(line_row)
if (decision(args.probability)):
data_list.append(tuple(line_row))
i += 1
data_file.close()
#print("Array:",memory_data,"\n")
#print("Data_list:",data_list)
print ("Reading complete ",i, " lines in total.")
def main():
start_time = time.time()
file_to_array()
#Apriori()
itemsets, rules = apriori(data_list, min_support= float(args.min_support),
min_confidence=float(args.min_confidence))
#print(itemsets)
print(rules)
print("--- Total run time: %s seconds ---" % (time.time() - start_time))
if __name__ == "__main__":
main()
import argparse
导入时间
导入系统
随机输入
从有效的apriori导入apriori
parser=argparse.ArgumentParser(description=“datasets”)
parser.add_参数('-f','-file',
default=“sample.txt”,help=“http://fimi.uantwerpen.be/data/")
add_参数('-s','-min_-support',默认值=0.5,
help=“最小支持,默认设置为0.5”)
parser.add_参数('-c','-min_-confidence',默认值=0.5,
help=“最小置信度,默认设置为1”)
parser.add_参数('-p','-probability',default=1,
help=“随机切片的概率”)
args=parser.parse_args()
#记忆数据[胸脯编号][项目编号]
内存_数据=[]
数据列表=[]
def决策(概率):
返回random.random()<浮点(概率)
#------------------------------------------文件处理------------------------------------------
def文件到数组():
i=1
数据文件=打开(args.file,“r”)
打印(“正在将文件读入数组…\n”)
#如果它的注释行
对于数据_文件中的行:
line=line.rstrip()
行\行=行。拆分()
内存\数据.追加(行\行)
如果(决策(参数概率)):
数据列表。追加(元组(行)
i+=1
数据_文件.close()
#打印(“数组:”,内存\u数据,“\n”)
#打印(“数据列表:”,数据列表)
打印(“阅读完成”,i,“共行”)
def main():
开始时间=time.time()
文件到数组()
#Apriori()
项目集,规则=apriori(数据列表,最小支持=float(args.min支持),
最小置信度=浮动(参数最小置信度))
#打印(项目集)
打印(规则)
打印(“---总运行时间:%s秒----”%(time.time()-开始时间))
如果名称=“\uuuuu main\uuuuuuuu”:
main()
您的模块名为random.py
。当您将random
导入模块时,实际上是在导入您自己的模块。它在模块中创建一个全局名称random
,也称为random
这行代码失败:
return random.random() < float(probability)
返回random.random()
第一个
random
是您的模块。第二个random
是由import random语句定义的名称。您还需要共享错误回溯来帮助您。查看是否可以创建。我刚刚添加了回溯,因此需要将模块名称random.py更改为其他名称。对吧?那会解决问题的。