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