AutoGluon - 自列表格演算法的輸入和輸出介面 - Amazon SageMaker AI

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

AutoGluon - 自列表格演算法的輸入和輸出介面

梯度提升在表格式資料中操作,含有代表觀察的行、還有一個代表目標變數或標籤的欄,而剩下的欄則代表功能。

AutoGluon-Tabular 的 SageMaker AI 實作支援 CSV 進行訓練和推論:

  • 對於訓練 ContentType,有效輸入必須為文字/csv

  • 對於推論 ContentType,有效輸入必須是文字 /csv

注意

對於 CSV 訓練,演算法假設目標變數在第一個欄,且 CSV 沒有標題記錄。

對於 CSV 推論,演算法假設 CSV 輸入沒有標籤欄。

訓練資料、驗證資料和分類功能的輸入格式

請注意如何設定訓練資料的格式,以便輸入 AutoGluon - 自列表格模型。您必須提供包含訓練和驗證資料之 Amazon S3 儲存貯體的路徑。您也可以內涵分類功能清單。同時使用trainingvalidation通道來提供您的輸入資料。或者,您可以只使用training頻道。

同時使用trainingvalidation通道

您可以透過兩個 S3 路徑提供輸入資料,一個用於training通道,另一個用於validation通道。每個 S3 路徑可以是指向一個特定 CSV 檔案的 S3 字首或完整的 S3 路徑。目標變數應位於 CSV 檔案的第一欄中。預測變量 (功能) 應該位於其餘列中。驗證資料用於計算每次增加迭代結束時的驗證分數。當驗證分數停止改善時,會套用提前停止。

如果您的預測器包含分類功能,您可以在訓練資料檔案categorical_index.json的相同位置提供名為 的 JSON 檔案。如果您提供用於分類功能的 JSON 檔案,您的training頻道必須指向 S3 前置詞,而不是特定的 CSV 檔案。這個文件應該包含一個 Python 字典,其中索引鍵是字串 "cat_index_list",該值是唯一整數的清單。值清單中的每個整數應指出訓練資料 CSV 檔案中對應分類特徵的欄索引。每個值都應該是一個正整數 (大於零,因為零表示目標值)、小於 Int32.MaxValue (2147483647),且小於資料欄的總數。應該只有一個分類索引 JSON 檔案。

僅使用training通道

或者,您也可以透過training通道的單一 S3 路徑提供輸入資料。此 S3 路徑應指向名為 training/ 的子目錄,其中包含 CSV 檔案的目錄。您可以選擇將另一個子目錄包含在名為 validation/ 且同時具有 CSV 檔案的相同位置。如果未提供驗證資料,則會隨機抽樣 20% 的訓練資料,做為驗證資料。如果您的預測值包含分類功能,您可以提供名categorical_index.json為與訓練資料檔案相同的位置的 JSON 檔案。

注意

對於 CSV 訓練輸入模式,可供演算法使用的總記憶體 (執行個體計數乘以在 InstanceType 中可用的記憶體) 需可保留訓練資料集。

SageMaker AI AutoGluon-Tabular 使用 autogluon.tabular.TabularPredictor模組序列化或還原序列化模型,可用於儲存或載入模型。

使用以 SageMaker AI AutoGluon-Tabular 訓練的模型搭配 AutoGluon 架構
  • 使用以下 Python 程式碼:

    import tarfile from autogluon.tabular import TabularPredictor t = tarfile.open('model.tar.gz', 'r:gz') t.extractall() model = TabularPredictor.load(model_file_path) # prediction with test data # dtest should be a pandas DataFrame with column names feature_0, feature_1, ..., feature_d pred = model.predict(dtest)