Untitled
unknown
plain_text
2 years ago
1.2 kB
10
Indexable
def calculate_map(actual, predicted):
"""
Calculate Mean Average Precision (MAP) for the recommendations.
Args:
actual (str or int): Actual user who resolved the ticket.
predicted (list): List of recommended users.
Returns:
float: Mean Average Precision (MAP) score.
"""
avg_precision = 0.0
num_correct = 0
if actual in predicted:
num_correct += 1
precision_at_k = num_correct / (predicted.index(actual) + 1)
avg_precision += precision_at_k
if num_correct == 0:
return 0.0
return avg_precision
def calculate_topk_accuracy(actual, predicted, k):
"""
Calculate Top-k Accuracy for the recommendations.
Args:
actual (str or int): Actual user who resolved the ticket.
predicted (list): List of recommended users.
k (int): Number of top-k recommendations to consider.
Returns:
float: Top-k Accuracy score.
"""
topk_predictions = predicted[:k]
if actual in topk_predictions:
return 1.0
else:
return 0.0
Editor is loading...