В контексте бинарной классификации чувствительность и специфичность — два важных показателя производительности, которые оценивают точность модели классификации. Чувствительность, также известная как доля истинных положительных результатов или отзыв, измеряет долю фактических положительных случаев, которые были правильно идентифицированы. С другой стороны, специфичность измеряет долю фактически выявленных отрицательных случаев.
Вот несколько методов Python для расчета чувствительности и специфичности:
Метод 1: использование scikit-learn
from sklearn.metrics import confusion_matrix
def calculate_sensitivity_specificity(y_true, y_pred):
tn, fp, fn, tp = confusion_matrix(y_true, y_pred).ravel()
sensitivity = tp / (tp + fn)
specificity = tn / (tn + fp)
return sensitivity, specificity
# Example usage
y_true = [1, 0, 1, 0, 1]
y_pred = [1, 0, 0, 0, 1]
sensitivity, specificity = calculate_sensitivity_specificity(y_true, y_pred)
print("Sensitivity:", sensitivity)
print("Specificity:", specificity)
Метод 2: вычисления с нуля
def calculate_sensitivity_specificity(y_true, y_pred):
tp = sum((y_true == 1) & (y_pred == 1))
tn = sum((y_true == 0) & (y_pred == 0))
fp = sum((y_true == 0) & (y_pred == 1))
fn = sum((y_true == 1) & (y_pred == 0))
sensitivity = tp / (tp + fn)
specificity = tn / (tn + fp)
return sensitivity, specificity
# Example usage
y_true = [1, 0, 1, 0, 1]
y_pred = [1, 0, 0, 0, 1]
sensitivity, specificity = calculate_sensitivity_specificity(y_true, y_pred)
print("Sensitivity:", sensitivity)
print("Specificity:", specificity)
Метод 3: использование numpy
import numpy as np
def calculate_sensitivity_specificity(y_true, y_pred):
cm = np.array([[sum((y_true == 0) & (y_pred == 0)), sum((y_true == 1) & (y_pred == 0))],
[sum((y_true == 0) & (y_pred == 1)), sum((y_true == 1) & (y_pred == 1))]])
sensitivity = cm[1, 1] / (cm[1, 1] + cm[1, 0])
specificity = cm[0, 0] / (cm[0, 0] + cm[0, 1])
return sensitivity, specificity
# Example usage
y_true = np.array([1, 0, 1, 0, 1])
y_pred = np.array([1, 0, 0, 0, 1])
sensitivity, specificity = calculate_sensitivity_specificity(y_true, y_pred)
print("Sensitivity:", sensitivity)
print("Specificity:", specificity)
Эти методы предоставляют различные способы расчета чувствительности и специфичности в Python. Вы можете выбрать тот, который лучше всего соответствует вашим потребностям.