我一直在使用真实世界数据集(.csv文件)上的自组织映射(SOM)。我正在尝试根据Min-Max规范化对数据进行规范化,以提高效率。
但是我遇到了错误。错误就像:"unsupported operand type(s) for list and float"
。
我找不到更好的解决方案,我完全迷失了。
for i in range(num):
trr=eval(str(arr[i]))[0:-31]
print trr
for i in range(num):
normalized = (trr-min(trr))/(max(trr)-min(trr))
print normalized
并在开头声明trr
:
trr = [[0 for x in range(num)] for x in range(num)]
答案 0 :(得分:2)
缩进似乎破了,我不知道如何解决它,但是,无论如何,关键是:
normalized = (trr-min(trr))/(max(trr)-min(trr))
显然,trr
这里是一个列表(或者你不会寻找它的min
和max
)但是你正试图对它进行算术运算 - 没有好处。我建议:
base = min(trr)
range = max(trr) - base
normalized = [(x-base)/range for x in trr]
最有可能实现我猜你想到的。