train_acc = np.mean(y_train == y_train_pred)
此表达式的分配和评估如何工作?
答案 0 :(得分:1)
简单,让我们假设您有以下两个numpy数组:
y_train = np.array([1, 2, 3, 4])
y_train_pred = np.array([1, 2, 3, 5])
我们可以看到,这两个数组仅在最后一个元素上有所不同。因此,当我们应用y_train == y_train_pred
时,我们将得到:
>>> y_train == y_train_pred
array([ True, True, True, False])
# same as array([ 1, 1, 1, 0])
现在,当我们应用np.mean
时,我们将得到其平均值3/4
:
>>> np.mean(y_train == y_train_pred)
0.75
因此,要回答您的问题:==
在前面的语法中是什么意思?它仅表示遍历numpy数组,并检查y_train
中的每个元素是否等于y_train_pred
的相对元素,如果匹配则返回True
,如果不匹配则返回False
t。
希望这能回答您的问题!
答案 1 :(得分:0)
y_train == y_train_pred
是在逐个元素的基础上求值的,结果是一个布尔数组,其元素数量与y_train
和y_train_pred
中的元素相同。当两个数组中的两个对应元素相同时,结果元素为True。否则是错误的。然后np.mean()
计算True元素的数量并将其除以数组的长度。结果将分配给train_acc
。