Вы ошиблись в своем понимании кривых ROC.Кривая ROC отображает истинную положительную скорость (чувствительность) tpr = tp / (tp + fn)
против ложной положительной скорости (1 - специфичность) 1 - (tn / (tn + fp)
при различных пороговых значениях.Теперь я вижу, что ваш заголовок указывает на то, что вы хотите «ROC чувствительности и специфичности», но на самом деле чего-то подобного не существует.Способ определения чувствительности и специфичности - через кривую ROC.
Чтобы получить кривую ROC, измените график на:
plt.plot(fpr, tpr, 'b', label = 'AUC = %0.2f' % roc_auc)
Вы можете увидетькак вычислить как процент ложных срабатываний, так и истинный положительный коэффициент из приведенного выше объяснения.
Затем при интерпретации кривой ROC вы хотите, чтобы ваши классификаторы были расположены как можно ближе к верхнему левому углу, указывая на низкий уровень ложныхположительный показатель (высокая специфичность) и высокий истинный положительный показатель (высокая чувствительность).С учетом вышесказанного уровень ложноположительных результатов отражает не специфичность, а негативность специфичности.Вот почему вы хотите, чтобы он был минимальным.
Наконец, что не менее важно, ситуация, которая может довольно часто вводить людей в заблуждение, когда речь идет о кривых ROC, заключается в том, что вместо 1 - specificity
на оси X есть specificity
.Когда это происходит, направление значений меняется на противоположное (как на графике), поэтому оно изменяется от 1 до 0 вместо 0 до 1.