Как построить фигуры ROC-AUC без использования scikit-узнайте

#object-detection #roc #auc

Вопрос:

У меня есть следующий список, содержащий несколько кортежей (TP, FP, FN):

 [(12, 0, 0), (5, 2, 2), (10, 0, 1), (7, 1, 1), (13, 0, 0), (7, 2, 2), (11, 0, 2)]
 

каждый кортеж представляет оценки для одного изображения. Это означает, что у меня есть 7 изображений, и я рассчитал оценки для задачи обнаружения объектов. Теперь я вычисляю точность и отзыв для каждого изображения(кортежа), используя следующую функцию:

 def calculate_recall_precision(data):
    precisions_bundle = []
    recalls_bundle = []

    for tp, fp, fn in data:
        precision = tp / (tp   fp)
        recall = tp / (tp   fn)
        precisions_bundle.append(precision)
        recalls_bundle.append(recall)

    return (precisions_bundle, recalls_bundle)
 

Эта функция возвращает кортеж, содержащий два списка. Первый — это значения точности для каждого изображения, а второй-значения отзыва для каждого изображения.
Теперь моя главная цель-построить кривые ROC и AUC, используя только matplotlib. Пожалуйста, обратите внимание, что я не хочу использовать библиотеку scikit-learn.