import numpy as np
import pandas as pd
import sklearn.metricsdef evaluation(y, yhat):
y = np.array(y).reshape(-1)
yhat_prob = np.array(yhat).reshape(-1)
yhat_01 = np.array(yhat).reshape(-1)>0.5
acc = sklearn.metrics.accuracy_score(y,yhat_01)
pre = sklearn.metrics.precision_score(y,yhat_01)
rec = sklearn.metrics.recall_score(y,yhat_01)
f1 = sklearn.metrics.f1_score(y,yhat_01)
auc = sklearn.metrics.roc_auc_score(y,yhat_prob)
return {'acc':acc,'pre':pre,'rec':rec,'f1':f1,'auc':auc}y = [0,0,0,1]
yhat = [0,0,0,0.1] evaluation(y,yhat)/home/coco/anaconda3/envs/pyod/lib/python3.11/site-packages/sklearn/metrics/_classification.py:1497: UndefinedMetricWarning: Precision is ill-defined and being set to 0.0 due to no predicted samples. Use `zero_division` parameter to control this behavior.
_warn_prf(average, modifier, f"{metric.capitalize()} is", len(result))
{'acc': 0.75, 'pre': 0.0, 'rec': 0.0, 'f1': 0.0, 'auc': 1.0}