2016-04-15 19 views
3

Ich habe einen einfachen Code geschrieben, der One arguments "query_seq" verwendet, weitere Methoden berechnen den Deskriptor und am Ende können Vorhersagen mit "LogisticRegression" (oder beliebig andere Algorithmus mit der Funktion) Algorithmen als „0 (negativ für gegebenen Fall)“ oder bereitgestellt „1 (positiv für gegebenen Fall)“Wie kann man den Konfidenzwert einer Vorhersage mit scikit-learn bewerten?

def main_process(query_Seq): 
    LR = LogisticRegression() 
    GNB = GaussianNB() 
    KNB = KNeighborsClassifier() 
    DT = DecisionTreeClassifier() 
    SV = SVC(probability=True) 

    train_x, train_y,train_l = data_gen(p) 
    a = DC_CLASS() 
    test_x = a.main_p(query_Seq) 
    return Prediction(train_x, train_y, test_x,LR) 

Während wir Kreuzvalidierung durchgeführt haben wir die verschiedenen statistischen Parameter für die Genauigkeit berechnet Schätzung (Spezifität, Empfindlichkeit, mmc usw.) für einen Algorithmus. Nun, meine Frage ist, gibt es irgendeine Methode in scikit-learn, durch die wir den Konfidenzwert für eine Testdatenvorhersage schätzen können.

+1

suchen nach methode predict_proba – 404pio

Antwort

3

Viele Klassifikatoren können Ihnen einen Hinweis auf ihr eigenes Konfidenzniveau für eine gegebene Vorhersage geben, indem Sie die predict_proba anstelle der predict Methode aufrufen. Lesen Sie den Docstring dieser Methode, um den Inhalt des zurückgegebenen numpy Arrays zu verstehen.

Beachten Sie jedoch, dass Klassifikatoren auch Fehler bei der Schätzung ihres eigenen Konfidenzniveaus machen können. Um dies zu beheben, können Sie eine externe Kalibrierungsprozedur verwenden, um den Klassifizierer über ausgehaltene Daten zu kalibrieren (mithilfe einer Kreuzvalidierungsschleife). Die Dokumentation wird Ihnen mehr Details über die Kalibrierung:

http://scikit-learn.org/stable/modules/calibration.html

Schließlich ist zu beachten, dass LogisticRegression recht gut kalibriert Konfidenzniveaus standardmäßig gibt. Die meisten anderen Modellklassen profitieren von externer Kalibrierung.

+0

Warum der Downvote? Ich bin mir ziemlich sicher, dass dies die richtige Antwort auf die Frage ist. – ogrisel

+1

Sie sind nach dem Lesen viel nach Ihrem Vorschlag schreiben, das ist die beste Antwort, die ich denke. Vielleicht sollte man klären, ob Que. wird abgelehnt, damit man die Antwort oder zumindest einen Hinweis bekommt – jax