Вычислить отзыв при K с помощью Python

  1. Метод 1: использование функции metrics.recall_scoreScikit-learn:

    from sklearn.metrics import recall_score
    def calculate_recall_at_k(true_labels, predicted_labels, k):
    top_k_predicted = predicted_labels[:k]
    return recall_score(true_labels, top_k_predicted)
  2. Метод 2: вычисление отзыва вручную при k:

    def calculate_recall_at_k(true_labels, predicted_labels, k):
    top_k_predicted = predicted_labels[:k]
    relevant_items = sum(true_labels)
    true_positives = sum(top_k_predicted * true_labels[:k])
    return true_positives / relevant_items
  3. Метод 3. Использование NumPy и Scikit-learn:

    import numpy as np
    from sklearn.metrics import recall_score
    def calculate_recall_at_k(true_labels, predicted_labels, k):
    top_k_indices = np.argsort(predicted_labels)[-k:]
    top_k_predicted = predicted_labels[top_k_indices]
    top_k_true_labels = true_labels[top_k_indices]
    return recall_score(top_k_true_labels, top_k_predicted)

Эти методы рассчитывают запоминаемость при k, которая измеряет долю релевантных элементов среди предсказанных меток из топ-k.