Schritt 6: Evaluation des Modells - Amazon SageMaker

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Schritt 6: Evaluation des Modells

Nachdem Sie nun ein Modell mit Amazon SageMaker geschult und bereitgestellt haben, werten Sie das Modell aus, um sicherzustellen, dass es für neue Daten präzise Vorhersagen generiert. Verwenden Sie für die Modellauswertung das Test-Dataset, das Sie in erstellt habenSchritt 3: Herunterladen, Erkunden und Transformieren eines Datensatzesaus.

Bewerten Sie das bereitgestellte Modell SageMaker Hosting-Services

Um das Modell zu bewerten und es in der Produktion zu verwenden, rufen Sie den Endpunkt mit dem Test-Dataset auf und prüfen Sie, ob die von Ihnen erzielten Schlussfolgerungen eine Zielgenauigkeit zurückgeben, die Sie erreichen möchten.

So bewerten Sie das Modell

  1. Richten Sie die folgende Funktion ein, um jede Zeile des Testsatzes vorherzusagen. Im folgenden Beispielcode wird dierows-Argument besteht darin, die Anzahl der gleichzeitig vorherzusagen zu prognostizierenden Zeilen anzugeben. Sie können den Wert ändern, um eine Batch-Inferenz durchzuführen, die die Hardwareressource der Instance vollständig nutzt.

    import numpy as np def predict(data, rows=1000): split_array = np.array_split(data, int(data.shape[0] / float(rows) + 1)) predictions = '' for array in split_array: predictions = ','.join([predictions, xgb_predictor.predict(array).decode('utf-8')]) return np.fromstring(predictions[1:], sep=',')
  2. Führen Sie den folgenden Code aus, um Vorhersagen über das Test-Dataset zu treffen und ein Histogramm zu plotten. Sie müssen nur die Featurespalten des Test-Datasets verwenden, ausgenommen die 0te Spalte für die tatsächlichen Werte.

    import matplotlib.pyplot as plt predictions=predict(test.to_numpy()[:,1:]) plt.hist(predictions) plt.show()
    
                        Ein Histogramm vorhergesagter Werte.
  3. Die prognostizierten Werte sind Float-Typ. ErmittelnTrueoderFalsebasierend auf den Float-Werten müssen Sie einen Grenzwert festlegen. Wie im folgenden Beispielcode gezeigt, verwenden Sie die SciKIT-Learn-Bibliothek, um die Ausgabe-Verwirrungsmetriken und den Klassifizierungsbericht mit einem Cutoff von 0,5 zurückzugeben.

    import sklearn cutoff=0.5 print(sklearn.metrics.confusion_matrix(test.iloc[:, 0], np.where(predictions > cutoff, 1, 0))) print(sklearn.metrics.classification_report(test.iloc[:, 0], np.where(predictions > cutoff, 1, 0)))

    Dies sollte die folgende Verwirrungsmatrix zurückgeben:

    
                        Ein Beispiel für Verwirrungsmatrix und Statistiken, nachdem die Schlussfolgerung auf das bereitgestellte Modell erhalten wurde.
  4. Um den besten Cutoff mit dem angegebenen Testsatz zu finden, berechnen Sie die Protokollverlustfunktion der logistischen Regression. Die Log-Loss-Funktion ist definiert als die negative Log-Log-Wahrscheinlichkeit eines Logistikmodells, das Vorhersagewahrscheinlichkeiten für seine Grund-Truth-Labels zurückgibt. Der folgende Beispielcode berechnet numerisch und iterativ die Protokollverlustwerte (-(y*log(p)+(1-y)log(1-p)), wobeiyist das wahre Label undpist eine Wahrscheinlichkeitsschätzung der entsprechenden Testprobe. Es gibt einen Protokollverlust im Vergleich zu Cutoff-Graph zurück.

    import matplotlib.pyplot as plt cutoffs = np.arange(0.01, 1, 0.01) log_loss = [] for c in cutoffs: log_loss.append( sklearn.metrics.log_loss(test.iloc[:, 0], np.where(predictions > c, 1, 0)) ) plt.figure(figsize=(15,10)) plt.plot(cutoffs, log_loss) plt.xlabel("Cutoff") plt.ylabel("Log loss") plt.show()

    Dies sollte die folgende Protokollverlustkurve zurückgeben.

  5. Finden Sie die Mindestpunkte der Fehlerkurve mit dem NumPyargminundmin-Funktionen:

    print( 'Log loss is minimized at a cutoff of ', cutoffs[np.argmin(log_loss)], ', and the log loss value at the minimum is ', np.min(log_loss) )

    Dies sollte zurückgegeben werden:Log loss is minimized at a cutoff of 0.53, and the log loss value at the minimum is 4.348539186773897aus.

    Anstatt die Protokollverlustfunktion zu berechnen und zu minimieren, können Sie alternativ eine Kostenfunktion schätzen. Wenn Sie beispielsweise ein Modell trainieren möchten, um eine binäre Klassifizierung für ein Geschäftsproblem wie ein Prognoseproblem der Kundenabwanderung durchzuführen, können Sie Gewichte auf die Elemente der Verwirrungsmatrix festlegen und die Kostenfunktion entsprechend berechnen.

Sie haben nun Ihr erstes Modell in SageMaker geschult, bereitgestellt und ausgewertet.

Tipp

Verwenden Sie Amazon, um Modellqualität, Datenqualität und Bias-Drift zu überwachen SageMaker Modellmonitor und SageMaker Clarify. Weitere Informationen hierzu finden Sie unterAmazon SageMaker Model Monitor,Überwachen der Datenqualität,Überwachen der Modellqualität,Überwachen der Bias-Drift, undÜberwachen der Feature-Namensnennungaus.

Tipp

Um eine menschliche Überprüfung der ML-Vorhersagen mit geringem Vertrauen oder einer zufälligen Stichprobe von Prognosen zu erhalten, verwenden Sie Amazon Augmented AI Human Review Workflows. Weitere Informationen finden Sie unterVerwenden von Amazon Augmented AI für Human Reviewaus.