【发布时间】:2020-10-25 07:12:56
【问题描述】:
在使用培训模块时,我使用字典来存储正在观察的参数以及参数值数据的相应准确性。参数是字典的键,准确度是值。
我在这里使用了 sklearn.metrics 工具来计算准确度。但结果显示以下行为。
def fit(self, X, Y):
acc={}
best_b = 0
for b in range(0, X.shape[1] + 1):
self.b=b
Y_Pred = self.predict(X)
acc[b]=accuracy_score(Y_Pred,Y)
print(type(acc))
best_b = max(acc, key=acc.get)
self.b = best_b
print("Best b : ", self.b, " with highest accuracy : ", acc[self.b])
输出:
<class 'dict'>
<ipython-input-184-8b55ae4bcee2> in fit(self, X, Y)
21 acc[b]=accuracy_score(Y_Pred,Y)
22 print(type(acc))
---> 23 best_b = max(acc, key=acc.get)
24 self.b = best_b
25 print("Best b : ", self.b, " with highest accuracy : ", acc[self.b])
TypeError: 'list' object is not callable
为什么字典被视为列表对象?
【问题讨论】:
-
type(max)是什么? -
type(acc) 是检查 acc 变量的数据类型。而这里的max应该返回一个int64值,key对应最大精度值。
-
我问的不是这个!
-
我认为这会有所帮助:stackoverflow.com/questions/268272/…
标签: python-3.x list numpy dictionary max