
# ფორმულირეთ და დაწერეთ განსაზღვრება იმისა, რა არის 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