我在Python代码中遇到了这一行,并且不知道它是如何做的:
do_update = error !=0
这是上下文,代码是感知器分类器:
def update(self, instance):
"""
Perform perceptron update, if the wrong label is predicted.
Return a boolean value indicating whether an update was performed.
"""
error = 0
predicted_output = self.prediction(instance.feature_counts)
if(predicted_output==True and instance.label==False):error = 1
if(predicted_output==False and instance.label==True):error = -1
do_update = error !=0
if do_update:
for feature, count in instance.feature_counts.items():
self.weights[feature] += error*count
return do_update
有人可以解释一下它的工作原理吗?
答案 0 :(得分:2)
do_update = error !=0
表示:评估error !=0
并将结果分配给do_update
。
error !=0
的评估将是一个布尔值(真/假),基于error
的值。
具体做法是:
如果error
等于0
,则do_update
将为False
如果error
不等于0
,则do_update
将为True
答案 1 :(得分:0)
这是存储支票结果的快捷方式。
由于error != 0
返回bool,do_update
为False
或True
。
基本上,如果error为0,则do_update为False,否则do_update为True。
答案 2 :(得分:0)
error !=0
是一个布尔表达式,如果True
不包含值error
,则返回0
,否则返回False
。添加括号可能会有所帮助:
do_update = (error != 0)