Sobes.tech
Senior

# Формулирайте и запишете определение того, что такое roc auc. # Как считается roc_auc_score? # Напишите функцию, которая вычисляет roc_auc_score согласно написанному определению. # А для произвольного числа классов с заданным порядком приоритета? # Модель работает следующим образом # y_score[i] >= порог -> y_pred[i] = 1 # y_score[i] < порог -> y_pred[i] = 0 def test_roc_aur_score(): y_true = [0, 0, 0, 1, 0, 0] y_score = [0.2, 0.4, 0.31, 0.6, 0.3, 0.7] res_metric = roc_auc_score(y_true, y_score) assert res_metric == 0.8 y_true = [0, 1, 0, 0, 0, 1] y_score = [0.7, 0.6, 0.31, 0.31, 0.3, 0.2] res_metric = roc_auc_score(y_true, y_score) assert res_metric == 0.375 y_true = [0, 0, 0, 1, 0, 0] y_score = [0.2, 0.4, 0.31, 0.8, 0.3, 0.7] res_metric = roc_auc_score(y_true, y_score) assert res_metric == 1 y_true = [0, 0, 0, 0, 0, 0] y_score = [0.2, 0.4, 0.31, 0.8, 0.3, 0.7] res_metric = roc_auc_score(y_true, y_score) assert res_metric == 0 # Бонусные тесты для нескольких классов y_true = [0, 1, 0, 0.5, 0, 1] y_score = [0.7, 0.6, 0.31, 0.31, 0.3, 0.2] res_metric = roc_auc_score(y_true, y_score) assert res_metric == 0. y_true = [0, 0.1, 0.2, 0.3, 0.4, 0.6] y_score = [0, 0.1, 0.2, 0.3, 0.4, 0.6] res_metric = roc_auc_score(y_true, y_score) assert res_metric == 1