Автор оригинала: Pankaj Kumar.
ROC Curve стоит за Приемник Операционная характеристическая кривая Отказ ROC кривые отображают производительность классификационной модели.
ROC говорит нам, насколько хороша модель для различения между данными классами, с точки зрения прогнозируемой вероятности.
В этой статье мы поймем кривые ROC, что такое AUC и реализует проблему бинарной классификации для понимания того, как построить кривую ROC для модели.
Введение в кривые ROC
Предположим, у нас есть модель логистической регрессии, которая классифицирует событие как True или false. Мы знаем, что пороговое значение по умолчанию для классификации точки как TRUE или FALSE, составляет 0,5 в логистической регрессии, но мы можем изменить это пороговое значение для соответствия нашей потребности.
Таким образом, кривая ROC представляет собой график ложной положительной скорости (FPR) (оси x) против истинной положительной скорости (TPR) (ось Y) для ряда различных пороговых значений кандидата от 0,0 до 1,0.
Понимание TPR и FPR
Как уже упоминалось, кривая ROC зависит от истинной положительной скорости и ложной положительной скорости, посмотрим, что они есть.
Истинная положительная скорость: Истинная положительная скорость рассчитывается как количество истинных положительных пластов, деленных на сумму количества истинных позитивов и количества ложных негативов.
True Positive Rate = True Positives / (True Positives + False Negatives)
Ложная положительная скорость: Ложноположительная скорость рассчитывается как количество ложных позитивов, деленных на сумму количества ложных срабатываний и количества истинных негативов.
False Positive Rate = False Positives / (False Positives + True Negatives)
Для разных пороговых значений мы получим разные TPR и FPR.
Почему мы используем ROC кривые?
Кривые ROC полезны по следующим причинам:
- площадь под кривой (AUC) Может использоваться в качестве индикатора производительности модели.
- Различные модели можно сравнить друг против друга на основе их кривых ROC.
Чтобы получить лучшую модель, мы хотим увеличить нашу истинную положительную ставку и снизить нашу ложную позитивную ставку).
Это означает, что наша модель сможет правильно отделить классы. Такие модели известны как умелые модели. В реальной жизни это никогда не достигается.
Модель без навыков на каждом пороге представлена диагональной линией из нижней левой части графика к верхней справа (синяя линия в вышеуказанной фигуре). Такие модели имеют AUC 0,5. Такие модели имеют равный TPR и FPR для каждого значения порога.
Построение кривых ROC в Python
Давайте теперь построим бинарный классификатор и сюжет, это кривая ROC, чтобы лучше понять процесс.
Мы будем использовать модель логистической регрессии для этого примера. Мы работаем с тремя важными библиотеками здесь – Матплотлиб , Numpy и Sklearn Отказ
#Importing Required Modules import numpy as np import matplotlib.pyplot as plt from sklearn.datasets import make_classification from sklearn.linear_model import LogisticRegression from sklearn.model_selection import train_test_split from sklearn.metrics import roc_curve ##Creating a Dataset X, label = make_classification(n_samples=500, n_classes=2, weights=[1,1], random_state=100) #Splitting the data into train and test sets X_train, X_test, y_train, y_test = train_test_split(X, label, test_size=0.3, random_state=1) #Creating the class object and model = LogisticRegression() model.fit(X_train, y_train) #predict probabilities probs = model.predict_proba(testX) #Keeping only positive class probs = probs[:, 1] #Calculating the FPR and TPR fpr, tpr, thresholds = roc_curve(testy, probs) #Plotting the figure plt.figure(figsize = (10,6)) plt.plot(fpr, tpr, color='red', label='ROC') plt.plot([0, 1], [0, 1], color='darkblue', linestyle='--') plt.xlabel('False Positive Rate') plt.ylabel('True Positive Rate') plt.title('Receiver Operating Characteristic Curve') plt.legend() plt.show()
Модуль Sklearn предоставляет нам Roc_curve
Функция, которая возвращает ложные положительные ставки и истинные положительные ставки в качестве вывода.
Эта функция принимает фактические вероятности как классов, так и предсказанный положительный массив вероятностей, рассчитанного с использованием .predict_proba ()
метод Логистикарессия
класс.
Там вы идете, теперь мы знаем, как построить кривую ROC для модели бинарной классификации.
Заключение
В этой статье мы получили некоторую информацию о кривых ROC и почему важно. У нас также есть некоторое представление о истинных положительных показателях и ложных положительных показателях и о том, как от них зависит кривые ROC. Наконец мы смотрели в код, чтобы с участием ROC кривых для модели логистической регрессии.
Счастливое обучение!