我有两个数组(y_true 和 y_pred),都由相同长度的 0 和 1 组成。
我想要一种更有效/更快的方法来计算 y_pred == y_true 的次数以及 y_pred == 1 的次数。我对计算匹配的 0 不感兴趣。
现在,我的函数看起来像这样使用 for 循环:
from sklearn.metrics.scorer import make_scorer
# Make a custom metric function
def my_custom_accuracy(y_true, y_pred): # Bring in the arrays
good_matches = 0 # Set counter to 0
for num, i in enumerate(y_pred): # for each y_pred in array...
if i == y_true[num] & i == 1: # if y_pred == y_true AND y_pred == 1...
good_matches += 1 # count it as a good match
return float(good_matches / sum(y_true)) # return good matches as a % of all the 1's in y_true
....它可以工作,但是 for 循环很慢而且效率不高。我希望利用这样的东西:
# Make a custom metric function
def my_custom_accuracy(y_true, y_pred):
return float(sum(y_pred == y_true)) / sum(y_true)
...简单,但我不知道如何添加“& y_pred == 1”部分。有任何想法吗?谢谢!
智慧大石
跃然一笑
一只斗牛犬
随时随地看视频慕课网APP
相关分类