Как нарисовать РПЦ по чувствительности и специфичности? - PullRequest
0 голосов
/ 24 декабря 2018

Для специфичности = 1 - FPR я изменил код следующим образом:

plt.plot(1-fpr, tpr, 'b', label = 'AUC = %0.2f' % roc_auc)

Но рисунок кажется неправильным.enter image description here

Это то, что я вижу на бумаге.enter image description here

1 Ответ

0 голосов
/ 25 декабря 2018

Вы ошиблись в своем понимании кривых 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.

...