Я бы хотел получить специфичность точно так же, как точность и отзыв задаются как precision_recall_curve.
precision_recall_curve
precisions, recalls, thresholds = sklearn.metrics.precision_recall_curve(ground_truth, predictions)
Как мне этого добиться?
Итак, я посмотрел на исходный код sklearn.metrics.precision_recall_curve (https://github.com/scikit-learn/scikit-learn/blob/2e90b897768fd360ef855cb46e0b37f2b6faaf72/sklearn/metrics/_ranking.py) и изменил его в соответствии со своими потребностями.
sklearn.metrics.precision_recall_curve
import numpy as np from sklearn.metrics.ranking import _binary_clf_curve def specificity_sensitivity_curve(y_true, probas_pred): """ Compute specificity-sensitivity pairs for different probability thresholds. For reference, see 'precision_recall_curve' """ fps, tps, thresholds = _binary_clf_curve(y_true, probas_pred) sensitivity = tps / tps[-1] specificity = (fps[-1] - fps) / fps[-1] last_ind = tps.searchsorted(tps[-1]) sl = slice(last_ind, None, -1) return np.r_[specificity[sl], 1], np.r_[sensitivity[sl], 0], thresholds[sl]