Как написать функцию accuracy_solution, которая вычисляет точность модели машинного обучения (МО)?

Имеется модель машинного обучения, которая по изображению определяет, какое время суток на нём представлено: день или ночь. Необходимо провести оценку качества работы модели на некотором наборе тестовых изображений. Для каждого из тестовых изображений известно, какое время суток на нём представлено.

Необходимо реализовать функцию accuracy_solution(real,predicted), которая вычисляет точность модели, как долю примеров из тестовой выборки, для которых модель правильно установила время суток.

На вход accuracy_solution принимает два списка:

real — список, состоящий из 0 и 1. Если на позиции i в списке находится 0, то это значит, что на i-ом изображении в тестовой выборке представлено ночное время суток. Если на позиции i в списке находится 1, то это значит, что на i-ом изображении представлен день.

predicted — список, состоящий из 0 и 1 и содержащий предсказания модели для каждого элемента тестовой выборки. Если на позиции i списка находится 0, то модель посчитала, что на соответствующем изображении представлена ночь. В противном случае на i-ой позиции будет стоять 1.

В результате работы accuracy_solution возвращает долю примеров из тестовой выборки, на которых модель выдала корректное предсказание. Например, если модель угадала 2 из 10 примеров, то функция должна вернуть 0.2 (то есть 2, разделённое на 10). Если модель угадала 42 из 100 примеров, то результат работы функции должен быть равен 0.42 (то есть 42/100). И так далее.


Ответы (1 шт):

Автор решения: Prog

Если я правильно понял:

def accuracy_solution(real, predicted):
        global overlap
        for i in range(len(real)):
            if real[i] == predicted[i]:
                overlap += 1


overlap = 0
accuracy_solution(real, predicted)
print(overlap / len(real))
→ Ссылка