步驟 6:評估模型 - Amazon SageMaker

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

步驟 6:評估模型

現在您已經使用 Amazon 訓練和部署模型 SageMaker,請評估該模型,以確保該模型對新資料產生準確的預測。要評估模型,請使用您已在 步驟 3:下載、探索和轉換資料集 中建立的測試資料集。

評估部署到 SageMaker 主機服務的模型

要評估模型並在生產環境中使用它,請使用測試資料集調用端點,並檢查您獲得的推論是否傳回要實現的目標準確性。

若要評估模型
  1. 設定下列函式以預測測試集的每一行。在下列範例程式碼中,rows 引數是指定一次要預測的行數。您可以變更它的值,以執行完全利用執行個體硬體資源的批次推論。

    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. 執行以下程式碼以對測試資料集進行預測並繪製長條圖。您只需要測試資料集的功能列,不包括第 0 列的實際值。

    import matplotlib.pyplot as plt predictions=predict(test.to_numpy()[:,1:]) plt.hist(predictions) plt.show()
    預測值的長條圖。
  3. 預測值是浮點類型。要確定 TrueFalse 基於浮點值,你需要設置一個截止值。如下列範例程式碼所示,使用 Scikit-學習程式庫傳回輸出混淆量度和分類報告,截止值為 0.5。

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

    這應該會傳回下列混淆矩陣:

    取得已部署模型的推論後,混淆矩陣和統計資料的範例。
  4. 為了找到特定測試集的最佳截止,請運算邏輯迴歸的日誌遺失函式。日誌遺失函式定義為物流模型的負對數可能性,該物流模型會傳回其接地真值標籤的預測機率。下列範例程式碼會以數值和反覆方式計算日誌遺失值 (-(y*log(p)+(1-y)log(1-p)),其中 y 是真實的標籤,而且 p 是對應測試樣本的概率估計。它傳回一個日誌遺失與截止圖。

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

    這應該會傳回下列日誌遺失曲線。

    記錄遺失曲線之後的範例。
  5. 使用 and min 函數尋找誤差曲線的 NumPyargmin最小點:

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

    這應該傳回:Log loss is minimized at a cutoff of 0.53, and the log loss value at the minimum is 4.348539186773897

    您可以估算成本函式作為替代方案,而不是計算和最小化日誌遺失函式。例如,如果您想要訓練模型來針對企業問題 (例如客戶流失率預測問題) 執行二進制分類,您可以設定混淆矩陣元素的權重,並相應地計算成本函式。

您現在已經在中訓練、部署和評估您的第一個模型 SageMaker。

提示

若要監控模型品質、資料品質和偏差偏移,請使用 Amazon SageMaker 模型監控和 SageMaker澄清。若要進一步了解,請參閱 Amazon SageMaker Model Monitor監控資料品質監控模型品質監控偏差監控功能歸因漂移

提示

若要取得低信賴度機器學習 (ML) 預測的人工審查或隨機預測樣本,請使用 Amazon 增強版 AI 人工審核工作流程。有關詳細資料,請參閱使用 Amazon 增強版 AI 進行人工審核