有谁知道为什么我会收到这样的错误?
TypeError: unsupported operand type(s) for -: 'float' and 'NoneType'
如果你这样做,我将非常感激,我对此很陌生,正在努力学习,但我真的陷入了 Python 的本质!
Code:
for test in test_set:
person_id = test['person_id']
place_id = test['place_id']
rating = test['rating']
predicted_rating = simple_nn(person_id, place_id, 5)
#difference = (rating - predicted_rating)
sq_err = (rating - predicted_rating) * (rating - predicted_rating)
sq_err_sum = sq_err
sq_err_sum = sq_err_sum + sq_err
rmse = math.sqrt(sq_err_sum/5)
print rmse
根据您提供的内容和错误来判断,这是我的结论。
您唯一使用的地方-
操作数在两点中
sq_err = (rating- predicted_rating) * (rating - predicted_rating)
因为错误指出'float' and 'NoneType'
我们可以得出结论rating
是类型float
and predicted_rating
is NoneType
.
你定义的predicted_rating
as:
predicted_rating = simple_nn(person_id, place_id, 5)
所以这意味着你的函数代码中的某个地方simple_nn
你没有返回任何东西。也许如果您使用条件,则不会评估每个结束路径,并且函数只是返回。
例如...所有这些函数都返回 None 类型。
def example1():
pass
def example2():
return
def example3(a = True, b = True):
if not a:
return True
elif not b:
return False
请注意,在最后一个示例中,有一条路径不满足 if 情况,..因此它可能返回 None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)