0

Ich erstelle das Modell mit 12 Parametern und {0,1} Labels mit logistischer Regression in Sklearn. Ich muss sehr vorsichtig mit Label 0 sein, ich bin in Ordnung, wenn einige '0' zu 1 falsch deklassiert werden. Der Zweck von diesem, dass ich die Daten von der Verarbeitung ausschließen möchte, wenn die Daten zu 0 klassifiziert werden.Vorhersagen bestimmter Label mit höchstwahrscheinlicher Wahrscheinlichkeit in der logistischen Regression

Wie kann ich die Parameter einstellen?

+0

Ihre Aussage: 'Ich muss sehr zuversichtlich über Label 0 sein, ich bin in Ordnung, wenn einige '0' zu 1. falsch klassifiziert wird. 'Widerspricht. Zuerst sagst du, dass du dich über Label 0 ziemlich sicher sein musst und dann sagst du, dass es in Ordnung ist, es falsch zu deklassifizieren. –

+0

Entschuldigung für die Konfision. Mit anderen Worten, ich möchte sicher sein: wenn ich 0 für Testdaten bekommen habe, dann ist die Wahrscheinlichkeit sehr hoch, nahe bei 99%, aber wenn ich 1 bekomme, bin ich mit einer niedrigeren Wahrscheinlichkeit einverstanden. macht es Sinn? – Vitaliy

Antwort

1

Sie suchen grundsätzlich nach Spezifität, die als TN/(TN+FP) definiert ist, wobei TN True Negative und FP False Positive ist. Sie können mehr darüber in dieser blog post und mehr in detail here lesen. Um dies zu implementieren müssen Sie make_scorer zusammen mit confusion_matrix metric in sklearn wie folgt verwenden:

from sklearn.metrics import confusion_matrix 
from sklearn.metrics import make_scorer 

def get_TN_rate(y_true,y_pred): 
    tn, fp, fn, tp = confusion_matrix(y_true, y_pred).ravel() 
    specificity = float(tn)/(float(tn)+float(fp)) 
    return specificity 

tn_rate = make_scorer(get_TN_rate,greater_is_better=True) 

Jetzt Sie tn_rate als Scoring-Funktion Ihre Klassifikator trainieren können.

+1

Ich bin sprachlos, das ist genau das, was ich gesucht habe! Danke vielmals! – Vitaliy

+0

Ich bin froh, dass ich helfen konnte :-) –

Verwandte Themen