для двоичной классификации вам не нужно сравнивать значения, это можно легко сделать с помощью простого добавления:
A = [[1, 0, 0, 1, 1, 1, 1, 1, 1, 0], [1, 0, 0, 1, 1, 1, 0, 1, 0, 0], [1, 0, 0, 0, 1, 1,
0, 1, 1, 1]]
B = [1, 0, 0, 1, 0, 1, 0, 1, 1, 1]
predictions = np.array(A)
y_test = np.array(B)
for c in A:
acc = sum([((x*y)+(x-1)*(y-1)) for x,y in zip(c,B)])/len(B)
print(acc)
>>>0.7
>>>0.7
>>>0.8
так почему ((x*y)+(x-1)*(y-1))
работает.
хорошо, если вы попробуете четыре случая: (0,0),(0,1),(1,0),(1,1)
вы увидите, что для тех, где классы разные, каждая часть суммы равна 0, а для тех, где классы равны, только одна часть суммы равна не равно 0 и равно 1. Таким образом, для каждого шага он ставит 1, если классы равны, и 0 в противном случае.
Это маленький трюк, который значительно ускоряет вычисление точности.