讀取批次預測輸出檔案 - Amazon Machine Learning

我們不再更新 Amazon Machine Learning 服務或接受新使用者。本文件適用於現有使用者,但我們不再對其進行更新。如需詳細資訊,請參閱什麼是 Amazon Machine Learning

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

讀取批次預測輸出檔案

執行以下步驟,擷取批次預測輸出檔案:

  1. 尋找批次預測資訊清單檔案。

  2. 讀取資訊清單檔案,判斷輸出檔案的位置。

  3. 擷取包含預測的輸出檔案。

  4. 解譯輸出檔案的內容。目錄會根據用來產生預測的 ML 模型類型而有所不同。

以下章節會更詳細地說明操作步驟。

尋找批次預測資訊清單檔案

批次預測資訊清單檔案中包含的資訊,可將輸入檔案對應到預測輸出檔案。

若要尋找資訊清單檔案,請從建立批次預測物件時所指定的輸出位置開始。您可以使用預測物件來查詢已完成的批次預測物件,擷取此檔案的 S3 位置。Amazon ML APIhttps://console.aws.amazon.com/machinelearning/

資訊清單檔案所在的輸出位置路徑,包含附加到輸出位置的靜態字串 /batch-prediction/,和資訊清單檔案的名稱,也就是批次預測的 ID,再加上 .manifest

例如,如果您建立 ID 為bp-example 的批次預測物件,並指定了 S3 位置 s3://examplebucket/output/ 做為輸出位置,將會在以下位置找到資訊清單檔案:

s3://examplebucket/output/batch-prediction/bp-example.manifest

讀取資訊清單檔案

.manifest 檔案的內容會編碼為 JSON 對應,其中的金鑰是一組 S3 輸入資料檔案名稱的字串,而值是一組相關聯批次預測結果檔案的字串。每對輸入/輸出檔案都有一行映射內容。繼續舉例而言,如果 BatchPrediction 物件的建立輸入包含名為 data.csv 的單一檔案,而此檔案位於 s3://examplebucket/input/,您可能就會看到與下文類似的映射字串:

{"s3://examplebucket/input/data.csv":" s3://examplebucket/output/batch-prediction/result/bp-example-data.csv.gz"}

如果 BatchPrediction 物件的建立輸入包含名為 data1.csv、data2.csv 及 data3.csv 三個檔案,而這些檔案全都儲存在 S3 位置 s3://examplebucket/input/,您可能就會看到與下文類似的映射字串:

{"s3://examplebucket/input/data1.csv":"s3://examplebucket/output/batch-prediction/result/bp-example-data1.csv.gz", "s3://examplebucket/input/data2.csv":" s3://examplebucket/output/batch-prediction/result/bp-example-data2.csv.gz", "s3://examplebucket/input/data3.csv":" s3://examplebucket/output/batch-prediction/result/bp-example-data3.csv.gz"}

擷取批次預測輸出檔案

您可以從資訊清單映射下載各個批次預測檔案,然後直接在本機處理。檔案格式是使用 gzip 演算法壓縮的 CSV。在該檔案內,對應輸入檔案中的每個輸入觀察皆各有一行。

若要讓預測與批次預測的輸入檔案合併在一起,您可以對兩個檔案執行簡單的依記錄合併動作。批次預測的輸出檔案一律包含與預測輸入檔案相同的記錄數量,而且順序相同。如果輸入觀察處理失敗,就不會產生任何預測,那麼批次預測的輸出檔案將會在對應位置上出現一行空白。

解譯二元分類 ML 模型的批次預測檔案內容

二元分類模型的批次預測檔案欄名為 bestAnswer (最佳答案)score (分數)

bestAnswer (最佳答案) 欄包含的預測標籤 (「1」或「0」) 是評估了預測分數相較於分界分數而得出的結果。如需分界分數的詳細資訊,請參閱調整分界分數。Amazon ML 主控台上的模型評估功能或模型評估功能,設定 ML 模型的分界分數。如果您不設定分界分數,Amazon ML 便會使用預設值 0.5。

所以此分數欄包含 ML 模型對此預測指派的原始預測分數。Amazon ML 會使用邏輯回歸模型,所以此分數會嘗試模擬對應至 true (「1」) 值的觀察機率。請注意,score (分數) 是以科學記號標記法回報,因而下例第一列中的值 8.7642E-3 也就等於 0.0087642。

例如,若 ML 模型的分界分數是 0.75,二元分類模型的批次預測輸出檔案內容可能如下所示:

bestAnswer,score 0,8.7642E-3 1,7.899012E-1 0,6.323061E-3 0,2.143189E-2 1,8.944209E-1

輸入檔案中第二個和第五個觀察皆有高於 0.75 的預測分數,因此這些觀察的 bestAnswer 欄會出現「1」的值,而其他觀察則出現「0」的值。

解譯二進位多級分類 ML 模型的批次預測檔案內容

在多等級模型的批次預測檔案中,將會包含一個用於訓練資料中各個等級的欄位。欄名稱會出現在批次預測檔案的標題列。

Amazon ML 會對輸入檔案中的每個觀察運算出數個預測分數,而輸入資料集中定義的每個等級都會有一個分數。這等同於詢問「相對於其他等級,此觀察歸為此等級的機率為何?(以 0 和 1 來評估)」 每個分數可以轉譯為「該觀察屬於此等級的機率。」 由於預測分數會模擬觀察屬於一種等級或其他等級的基礎機率,因此一列中所有預測分數的總和為 1。您必須挑選一個等級做為模型的預測等級。通常,您可以挑選最有可能是最佳答案的等級。

例如,試想一下在試著預測客戶對產品的評價時,會以 1 到 5 顆星來評比。如果等級名為 1_star2_stars3_stars4_stars5_stars,那麼多級預測輸出檔案可能如下所示:

1_star, 2_stars, 3_stars, 4_stars, 5_stars 8.7642E-3, 2.7195E-1, 4.77781E-1, 1.75411E-1, 6.6094E-2 5.59931E-1, 3.10E-4, 2.48E-4, 1.99871E-1, 2.39640E-1 7.19022E-1, 7.366E-3, 1.95411E-1, 8.78E-4, 7.7323E-2 1.89813E-1, 2.18956E-1, 2.48910E-1, 2.26103E-1, 1.16218E-1 3.129E-3, 8.944209E-1, 3.902E-3, 7.2191E-2, 2.6357E-2

在此範例中,第一個觀察的預測分數最高,為 3_stars 級 (預測分數 = 4.77781E-1),因此您可以將結果解譯為,表示 3_stars 級是此觀察的最佳答案。請注意,預測分數會以科學記號標記法來報告,所以預測分數 4.77781E-1 也就等於 0.477781。

有時您也許並不想要選擇最高機率的等級,例如,您可能會想要建立最低閾值,若低於此值,即使某個等級有最高預測分數也不會將其視為最佳答案。假設您正在為電影分類,而且希望預測分數至少要有 5E-1,才能表示該分類是最佳答案。喜劇片取得的預測分數是 3E-1、劇情片是 2.5E-1、紀錄片是 2.5E-1、動作片是 2E-1。在此情況下,ML 模型預測您最可能會選擇喜劇片,但您決定不依該最佳答案做出選擇。這是因為所有預測分數都不超過您的基準預測分數 5E-1,所以您判斷這些預測不足以準確預估電影分類,而決定選擇其他方式。之後您的應用程式可能會將這部電影的「分類」欄位標為「不明」。

解譯回歸 ML 模型的批次預測檔案內容

回歸模型的批次預測檔案中有一個欄,名為 score (分數)。此欄包含輸入資料中每個觀察的原始數字預測。這些數值以科學記號標記法回報,因而下例第一列中的 score (分數) 值 -1.526385E1 也就等於 -15.26835。

此範例顯示在回歸模型上執行的批次預測輸出檔案:

score -1.526385E1 -6.188034E0 -1.271108E1 -2.200578E1 8.359159E0