Jak utworzyć krzywą przypomnienia precyzji w pythonie


Kiedy korzystamy z modeli klasyfikacyjnych w uczeniu maszynowym, dwie metryki, których często używamy do oceny jakości modelu, to precyzja i zapamiętywanie.

Dokładność : Popraw pozytywne przewidywania w stosunku do wszystkich pozytywnych przewidywań.

Oblicza się to w następujący sposób:

  • Dokładność = prawdziwie pozytywne wyniki / (prawdziwie pozytywne + fałszywie pozytywne)

Przypomnienie : Korygowanie pozytywnych przewidywań w stosunku do łącznej liczby rzeczywistych pozytywnych wyników

Oblicza się to w następujący sposób:

  • Przypomnienie = Prawdziwie pozytywne / (Prawdziwie pozytywne + Fałszywie negatywne)

Aby zwizualizować precyzję i przypominanie określonego modelu, możemy utworzyć krzywą przypominania o precyzji . Ta krzywa pokazuje kompromis między precyzją a przypominaniem dla różnych progów.

Krzywa precyzyjnego przypominania w Pythonie

Poniższy przykład pokazuje krok po kroku, jak utworzyć krzywą przypominania precyzji dla modelu regresji logistycznej w języku Python.

Krok 1: Importuj pakiety

Najpierw zaimportujemy niezbędne pakiety:

 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

Krok 2: Dopasuj model regresji logistycznej

Następnie utworzymy zbiór danych i dopasujemy do niego model regresji logistycznej:

 #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 ]

Krok 3: Utwórz krzywą precyzji i przypomnienia

Następnie obliczymy precyzję i przypominalność modelu oraz utworzymy krzywą precyzji-przypomnienia:

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

Krzywa precyzyjnego przypominania w Pythonie

Oś x pokazuje przywołanie, a oś y precyzję dla różnych progów.

Należy pamiętać, że wraz ze wzrostem przypominania precyzja maleje.

Stanowi to kompromis pomiędzy tymi dwoma metrykami. Aby zwiększyć zapamiętywanie naszego modelu, precyzja musi się zmniejszyć i odwrotnie.

Dodatkowe zasoby

Jak przeprowadzić regresję logistyczną w Pythonie
Jak utworzyć macierz zamieszania w Pythonie
Jak interpretować krzywą ROC (z przykładami)

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *