Як створити криву точного відкликання в python


Використовуючи моделі класифікації в машинному навчанні, ми часто використовуємо два показники для оцінки якості моделі: точність і запам’ятовування.

Точність : правильні позитивні прогнози відносно загальної кількості позитивних прогнозів.

Це розраховується таким чином:

  • Точність = Справжні позитивні результати / (Справжні позитивні + Хибні позитивні результати)

Нагадування : виправлення позитивних прогнозів проти загальних фактичних позитивних результатів

Це розраховується таким чином:

  • Нагадування = Справжні позитивні результати / (Справжні позитивні + Хибні негативні)

Щоб візуалізувати точність і запам’ятовування певної моделі, ми можемо створити криву точності-запам’ятовування . Ця крива показує компроміс між точністю та запам’ятовуванням для різних порогів.

Крива точного відкликання в 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()
classify. fit (X_train, y_train)

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

Крок 3: Створіть криву точності запам’ятовування

Далі ми розрахуємо точність і відкликання моделі та створимо криву точності до відкликання:

 #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 ')

#displayplot
plt. show () 

Крива точного відкликання в Python

Вісь X показує запам’ятовування, а вісь Y – точність для різних порогів.

Зауважте, що зі збільшенням пам’яті точність зменшується.

Це являє собою компроміс між двома показниками. Щоб збільшити запам’ятовування нашої моделі, точність повинна зменшитися, і навпаки.

Додаткові ресурси

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

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *