Как создать кривую Precision-Recall в Python

Как создать кривую Precision-Recall в Python

При использовании моделей классификации в машинном обучении мы часто используем две метрики для оценки качества модели: точность и полнота.

Precision : Правильные положительные прогнозы относительно общего количества положительных прогнозов.

Это рассчитывается как:

  • Точность = истинные положительные результаты / (истинные положительные результаты + ложные положительные результаты)

Вспомнить : исправить положительные прогнозы по отношению к общему количеству фактических положительных результатов.

Это рассчитывается как:

  • Отзыв = истинные положительные результаты / (истинные положительные результаты + ложноотрицательные результаты)

Чтобы визуализировать точность и полноту для определенной модели, мы можем создать кривую точность-полнота.Эта кривая показывает компромисс между точностью и полнотой для различных пороговых значений.

Кривая точного отзыва в Python

В следующем пошаговом примере показано, как создать кривую точного полноты для модели логистической регрессии в Python.

Шаг 1: Импорт пакетов

Сначала мы импортируем необходимые пакеты:

from sklearn import datasets
from sklearn. model_selection import train_test_split
from sklearn. linear_model import LogisticRegression
from sklearn. metrics import precision_recall_curve
import matplotlib.pyplot as plt

Шаг 2: Подберите модель логистической регрессии

Далее мы создадим набор данных и подгоним к нему модель логистической регрессии:

#create dataset with 5 predictor variables
X, y = datasets. make_classification (n_samples= 1000 ,
 n_features= 4 ,
 n_informative= 3 ,
 n_redundant= 1 ,
 random_state= 0 )

#split dataset into training and testing set
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size= .3 ,random_state= 0 )

#fit logistic regression model to dataset
classifier = LogisticRegression()
classifier. fit (X_train, y_train)

#use logistic regression model to make predictions
y_score = classifier. predict_proba (X_test)[:, 1 ]

Шаг 3: Создайте кривую Precision-Recall

Далее мы рассчитаем точность и полноту модели и создадим кривую точность-отзыв:

#calculate precision and recall
precision, recall, thresholds = precision_recall_curve(y_test, y_score)

#create precision recall curve
fig, ax = plt.subplots()
ax.plot(recall, precision, color='purple')

#add axis labels to plot
ax.set_title('Precision-Recall Curve')
ax.set_ylabel('Precision')
ax.set_xlabel('Recall')

#display plot
plt.show() 
Кривая точного отзыва в Python

По оси X показан отзыв, а по оси Y — точность для различных пороговых значений.

Обратите внимание, что по мере увеличения полноты точность снижается.

Это представляет собой компромисс между двумя показателями. Чтобы увеличить полноту нашей модели, точность должна уменьшиться, и наоборот.

Дополнительные ресурсы

Как выполнить логистическую регрессию в Python
Как создать матрицу путаницы в Python
Как интерпретировать кривую ROC (с примерами)

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.