Hoe u een precisie-herroepcurve in python maakt


Bij het gebruik van classificatiemodellen in machine learning zijn precisie en herinnering twee maatstaven die we vaak gebruiken om de modelkwaliteit te evalueren.

Nauwkeurigheid : corrigeer positieve voorspellingen ten opzichte van het totale aantal positieve voorspellingen.

Dit wordt als volgt berekend:

  • Nauwkeurigheid = echte positieven / (echte positieven + valse positieven)

Herinnering : positieve voorspellingen corrigeren ten opzichte van het totale aantal werkelijke positieve resultaten

Dit wordt als volgt berekend:

  • Herinnering = Echte positieven / (Echte positieven + Valse negatieven)

Om de precisie en herinnering van een bepaald model te visualiseren, kunnen we een precisie-herinneringscurve maken. Deze curve toont de afweging tussen precisie en herinnering voor verschillende drempels.

Precisie terugroepcurve in Python

In het volgende stapsgewijze voorbeeld ziet u hoe u een nauwkeurige terugroepcurve maakt voor een logistisch regressiemodel in Python.

Stap 1: Pakketten importeren

Eerst zullen we de benodigde pakketten importeren:

 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

Stap 2: Pas het logistische regressiemodel aan

Vervolgens zullen we een dataset creëren en er een logistisch regressiemodel aan koppelen:

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

Stap 3: Creëer de precisie-herinneringscurve

Vervolgens berekenen we de precisie en het terugroepen van het model en creëren we een precisie-terugroepcurve:

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

Precisie terugroepcurve in Python

De x-as toont de herinnering en de y-as toont de precisie voor verschillende drempels.

Merk op dat naarmate de herinnering toeneemt, de precisie afneemt.

Dit vertegenwoordigt het compromis tussen de twee statistieken. Om de herinnering aan ons model te vergroten, moet de precisie afnemen en omgekeerd.

Aanvullende bronnen

Hoe logistieke regressie uit te voeren in Python
Hoe je een verwarringsmatrix creëert in Python
Een ROC-curve interpreteren (met voorbeelden)

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert