为了账号安全,请及时绑定邮箱和手机立即绑定

在字典中查找最小值 - TypeError int object not callable

在字典中查找最小值 - TypeError int object not callable

呼如林 2022-07-26 16:08:39
我的 ML 课程让我在决策树中找到错误值最小的叶子。叶子和错误值存储在字典中(输出下方){5: 35044.51299744237, 25: 29016.41319191076, 50: 27405.930473214907, 100: 27282.50803885739, 250: 27893.822225701646, 500: 29454.18598068598}现在,这本词典中的最优解应该是 100,因为它的错误率最低。代码片段如下:candidate_max_leaf_nodes = [5, 25, 50, 100, 250, 500]for i in candidate_max_leaf_nodes:#stores key,value pair of leaf_nodes, and their error values    mydict[i] = get_mae(i,train_X,val_X,train_y,val_y)print(mydict)#  Find the best value of max_leaf_nodes (it will be either 5, 25, 50, 100, 250 or 500)我尝试最小值的代码如下:tmp = min(mydict.values()) best_tree_size = [key for key in mydict if mydict[key] == tmp] 但是,我不断收到TypeError : 'int' object is not callable。有人可以解释我哪里出错了吗?我可以以更优化的方式找到最小值吗?
查看完整描述

3 回答

?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

您必须定义了一个名为 的整数变量min。不要这样做(或del min在调用min()函数之前)。



查看完整回答
反对 回复 2022-07-26
?
白衣非少年

TA贡献1155条经验 获得超0个赞

尝试这个


my_dict = {'x':500, 'y':5874, 'z': 560}


key_min = min(my_dict.keys(), key=(lambda k: my_dict[k]))


查看完整回答
反对 回复 2022-07-26
?
千巷猫影

TA贡献1829条经验 获得超7个赞

TypeError:“int”对象不可调用

由于这表示 TypeError,这可能是因为为 my_dict 返回的值可能是“Int”而不是“Dict”。您的代码似乎没有错误。检查字典是否正确。你的代码对我有用。

mydict = {'a':50, 'b':500, 'c': 50, 'd':5000, 'e':50000, 'f': 50}

tmp = min(mydict.values())

best_tree_size = [key for key in mydict if mydict[key] == tmp]

print(best_tree_size)

['a', 'c', 'f']


查看完整回答
反对 回复 2022-07-26
  • 3 回答
  • 0 关注
  • 100 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信