Thank you for this great work !
I just wanted to make a remark about the confusion matrix function – the y_true comes before the y_pred in the sklearn.metrics.confusion_matrix function's signature.
sklearn.metrics.confusion_matrix(y_true, y_pred, *, labels=None, sample_weight=None, normalize=None)