Рубрики
Без рубрики

ROC кривые в машинном обучении

Кривая ROC подписывается для операционной характеристической кривой приемника. ROC кривые отображают производительность классификационной модели.

Автор оригинала: 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 кривые?

Кривые 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()
ROC кривой логистической регрессии модели

Модуль Sklearn предоставляет нам Roc_curve Функция, которая возвращает ложные положительные ставки и истинные положительные ставки в качестве вывода.

Эта функция принимает фактические вероятности как классов, так и предсказанный положительный массив вероятностей, рассчитанного с использованием .predict_proba () метод Логистикарессия класс.

Там вы идете, теперь мы знаем, как построить кривую ROC для модели бинарной классификации.

Заключение

В этой статье мы получили некоторую информацию о кривых ROC и почему важно. У нас также есть некоторое представление о истинных положительных показателях и ложных положительных показателях и о том, как от них зависит кривые ROC. Наконец мы смотрели в код, чтобы с участием ROC кривых для модели логистической регрессии.

Счастливое обучение!