我有一个数组“D”,包含狗和它们的健康状况。 方法返回1或0,并将2D数组的一行作为输入。 我想将分类器结果与2D数组的第13列进行比较 在理想情况下,分类器总是返回与该列中指定的值相同的值。 现在,我尝试通过将成功数相加并除以结果总数来计算分类器的总命中率。你知道吗
到目前为止,我已经设计了一个枚举for循环,以便按顺序将行移交给分类器。你知道吗
def accuracy(D, classifier):
for i, item in enumerate(D):
if classifier(item)==D[i,13]
#Compare result of classifier with actual value
x+=1 #Increase x on a hit
acc=(x/D.length)
#Divide x by length of D to calculate hitrate eg. "0.5"; 100% would be "1"
return acc
可能有一个简单的格式错误的地方或我有一个错误,在我的逻辑。 (我现在进入Python 2天) 我想我可能做得不对。你知道吗
假设同时定义了
D
和classifier
,那么代码中会有一些错误,这些错误都会给出合理的错误消息(除了float casting之外,python可能会很棘手)。你知道吗在if查询中,你们两个都缺少了一个
:
,并且试图访问数组D
,比如D[i, 13]
,这是不允许的。二维数组是通过另一组[]
访问的,比如D[i][13]
。但是,由于您已经在枚举2D数组,因此最好使用item[13]
来获取值。你知道吗最后,如果您希望在末尾有一个十进制值,您还需要将其中至少一个值转换为浮点值,如
float(x)/D.length
,否则它只会将其四舍五入为0或1。你知道吗固定代码:
相关问题 更多 >
编程相关推荐