概觀
您將學到的內容
在本指南中,您將:
- 匯入資料集
- 選取用於分類的目標變數
- 以視覺方式檢查資料集
- 利用 SageMaker Canvas 快速建置功能建置 ML 模型
- 了解模型的特徵與指標
- 產生並理解批次和單個預測
先決條件
在開始本指南之前,您需要具備:
- AWS 帳戶:如果您還沒有,請按照設定您的環境快速入門指南進行操作。
AWS 經驗
初階
完成時間
20 分鐘
完成成本
請參閱 SageMaker Canvas 定價以估算本教學的成本。
要求
您必須登入 AWS 帳戶。
使用的服務
Amazon SageMaker Canvas
上次更新日期
2022 年 6 月 28 日
使用案例
在本教學中,您將建置可預測貨物預計到達時間 (ETA,以天為單位) 的 ML 模型。您將使用包含交付產品完整貨運資料的資料集,其中包含預計時間、裝運、優先順序、貨運商和產地。
步驟 1:設定 Amazon SageMaker Studio 網域
每個 AWS 帳戶在每個 AWS 區域只能擁有一個 SageMaker Studio 網域。如果您在美國東部 (維吉尼亞北部) 區域已有 SageMaker Studio 網域,請按照 SageMaker Studio 設定指南將所需的 AWS IAM 政策連接到您的 SageMaker Studio 帳戶,然後略過步驟 1,並直接進行步驟 2。
如果您沒有現有的 SageMaker Studio 網域,請繼續進行步驟 1 以執行 AWS CloudFormation 範本,該範本將建立 SageMaker Studio 網域,並新增本教學其餘部分所需的許可。
選擇 AWS CloudFormation 堆疊連結。此連結將開啟 AWS CloudFormation 主控台,並建立您的 SageMaker Studio 網域和名為 studio-user 的使用者。它還會向您的 SageMaker Studio 帳戶新增所需的許可。在 CloudFormation 主控台中,確認右上角顯示的 Region (區域) 是 US East (N. Virginia) (美國東部 (維吉尼亞北部))。Stack name (堆疊名稱) 應為 CFN-SM-IM-Lambda-Catalog,且不應變更。此堆疊大約需要 10 分鐘來建立所有資源。
此堆疊假定您已經在您的帳戶中設定了公有 VPC。如果您沒有公有 VPC,請參閱具有單一公有子網路的 VPC,了解如何建立公有 VPC。
選取 I acknowledge that AWS CloudFormation might create IAM resources (我認知 AWS CloudFormation 可能會建立 IAM 資源),然後選擇 Create stack (建立堆疊)。
在 CloudFormation 窗格中,選擇 Stacks (堆疊)。建立此堆疊約需要 10 分鐘。建立該堆疊後,堆疊的狀態應從 CREATE_IN_PROGRESS 變更為 CREATE_COMPLETE。
步驟 2:登入 SageMaker Canvas 並上傳資料集到 Amazon S3 儲存貯體
在 AWS Console 的搜尋列中輸入 SageMaker Canvas 並轉至 SageMaker Canvas。
在左側窗格的控制面板下方選擇 Canvas,然後在右上角的 Region (區域) 下拉式清單中選擇 US East (N. Virginia) (美國東部 (維吉尼亞北部))。
- 在 SageMaker Canvas 頁面上,選擇 Launch SageMaker Canvas (啟動 SageMaker Canvas)。
- 在控制面板頁面上,選取 studio-user 旁 Launch app (啟動應用程式) 下拉式清單中的 Canvas。
- SageMaker Canvas 的 Creating application (建置應用程式) 畫面將會顯示。該應用程式需要幾分鐘才能載入完畢。
如果這是您首次在 US-East 1 中使用 SageMaker,SageMaker Canvas 將建立一個具有以下格式名稱的 Amazon S3 儲存貯體:sagemaker-<您的區域>-<您的帳戶 ID>。在繼續學習本教學的其他部分之前,請下載下方資料集並將它們儲存到您的本機電腦。然後,您需要上傳這些資料集到 SageMaker Canvas 為您建立的預設 S3 儲存貯體。
在 AWS Console 搜尋列中,輸入 S3,然後選取 S3。
S3 主控台開啟後,您可以在 Buckets (儲存貯體) 區段的下方找到 SageMaker Canvas 為您建立的預設儲存貯體。選擇名為 sagemaker-<您的區域>-<您的帳戶 ID> 的儲存貯體,然後在下一頁上選擇 Upload (上傳)。
在 Upload (上傳) 頁面上,選擇 Add files (新增檔案),然後選取您在上一步中下載的兩個資料集。捲動至頁面底部,然後選擇 Upload (上傳)。SageMaker Canvas 在建置模型前會存取這些檔案。
步驟 3:設定 SageMaker Canvas 以自動建置模型
將資料匯入到 SageMaker Canvas,以進行目視檢查和模型建置。
匯入資料集到 SageMaker Canvas。
- 在 SageMaker Canvas 介面上,選擇左側窗格中的 Datasets (資料集),然後選擇 + Import (+ 匯入)。
- 選取名稱為 sagemaker-<您的區域>-<您的帳戶 ID> 的 Amazon S3 儲存貯體,您在上一步中將資料集上傳到了該儲存貯體。選取 shipping_logs.csv 和 product_descriptions.csv 資料集左側的核取方塊以選取它們。頁面底部將出現兩個新按鈕:Preview all (預覽全部) 和 Import data (匯入資料)。選擇 Preview all (預覽全部)。這使您可以檢視資料集的 100 列預覽。
- 在勾選資料集後,選擇 Import data (匯入資料),以便將它們匯入到 SageMaker Canvas。
在 SageMaker Canvas 頁面的 Datasets (資料集) 區段下方,您將看到匯入的兩個資料集。選擇 Join data (聯結資料)。
在 Join Datasets (聯結資料集) 頁面上,將兩個資料集從左側窗格拖動到右側窗格。選取兩個資料集之間的聯結圖示。顯示有關聯結詳細資訊的快顯將顯示。確認聯結類型為 Inner,聯結欄為 ProductId。選擇 Save & close (儲存並關閉),然後選擇 Import data (匯入資料)。
- 在 Import data (匯入資料) 對話方塊中,輸入名稱 ConsolidatedShippingData 到 Import dataset name (匯入資料集名稱) 欄位,然後選擇 Import data (匯入資料)。
步驟 4:建置、訓練和分析 ML 模型
設定目標變數,目視檢查資料的屬性,並啟動模型建置程序。
在 SageMaker Canvas 使用者介面中,選擇 Models (模型),然後選擇 + New model (+ 新增模型)。在 Create new model (建立新的模型) 對話方塊中,輸入 ShippingForecast 到 Model name (模型名稱) 欄位,然後選擇 Create (建立)。
模型檢視頁面有 4 個標籤,代表建置模型和取得預測的各個步驟。這些標籤是:
- Select (選取) – 設定輸入資料。
- Build (建置) – 建置 ML 模型。
- Analyze (分析) – 分析模型輸出和特徵。
- Predict (預測) – 針對批次或單個樣本執行預測。
在 Select (選取) 標籤中,選擇您在上一步建立的 ConsolidatedShippingData 資料集的選項按鈕。此資料集包含 16 欄和 10,000 列。它還包含有關資料集形狀和大小的概要描述。選擇 Select dataset (選取資料集)。
在選取資料集以後,SageMaker Canvas 會自動進入 Build (建置) 階段。在此標籤中,選擇目標欄,在此範例中為 ActualShippingDays。由於此欄包含貨物到達所需的天數歷史,因此它非常適合用作目標欄。
- 在選取目標欄後,SageMaker Canvas 會自動嘗試推論問題類型。由於您想知道的是客戶需要多少天才能收到貨物,因此這是一個迴歸或數字預測問題。對於某個應變目標變數,迴歸根據一個或多個與之相關的其他變數或屬性來估算該應變目標變數的值。在此例中,SageMaker Canvas 最初可能預測該使用案例為時間序列預測類型問題,因為它在資料集中偵測到日期欄。不過,您可以使用頁面中央的 Change type (變更類型) 連結,手動選取 Numeric model type (數字模型類型),將問題類型變更為數字模型類型。
- 注意 XShippingDistance 和 YShippingDistance 欄與目標之間的相關性可忽略不計。
- 對於與目標之間相關性可忽略不計的特徵,由於它們無法為當前預測任務提供足夠資訊,因此可以將它們刪除。XShippingDistance, YShippingDistance、ProductID 和 OrderID 欄是主索引鍵,而且預計不會包含重要資訊,因此可刪除。您可以取消勾選核取方塊。
- 您可以選取垂直條圖示,以檢查欄的分佈。這非常適用於反白資料中存在的不平衡和潛在偏差。
在模型建置完成後,SageMaker Canvas 會自動切換到 Analyze (分析) 標籤,以顯示快速訓練結果。採用快速建置所建置的 SageMaker Canvas 模型預測的運輸天數誤差在實際值的 +/-1.2333 天範圍內。機器學習在訓練模型的過程中引入一些隨機性,因此不同的建置方式會產生不同的結果。所以,您看到的確切效能指標可能有所差異。
在 Overview (概覽) 標籤下方,SageMaker Canvas 會顯示欄影響或預計的每個輸入欄對於預測目標欄的重要性。在本例中,ExpectedShippingDays 欄對運輸天數預測的影響最大。在右側窗格中,您還可以看到各特徵的影響方向。例如,ExpectedShippingDays 的值越高,它對運輸天數預測的影響越正面。
在 Scoring (得分) 標籤下方,您可以看到代表 ActualshippingDays 最佳擬合迴歸線的繪圖。平均而言,模型預測值與 ActualShippingDays 的實際值存在 +/- 1.2333 的差異。數字預測的 Scoring (得分) 區段顯示一條線,表明模型的預測值與用於預測的資料之間的關係。數字預測的值通常為 +/- RMSE (均方根誤差) 值。模型預測的值一般都在 RMSE 的範圍以內。線條四周的紫色區段的寬度為 RMSE 範圍。預測值通常落在該範圍之內。若要更深入了解模型效能,選取右側的 Advanced metrics (進階指標) 連結,以顯示 Advanced metrics (進階指標) 頁面。
- Advanced metrics (進階指標) 頁面上顯示各種指標,包括 R2、平均絕對誤差 (MAE)、平均絕對百分比誤差 (MAPE),以及均方根誤差 (RMSE)。Advanced metrics (進階指標) 頁面還顯示一些繪圖,以方便直覺地檢查模型效能。其中有一張影像顯示殘差或誤差圖。水平線表示 0 誤差或完美的預測。藍色的點表示誤差。它們與水平線的距離表示誤差幅度。
- 在 Advanced metrics (進階指標) 頁面上向下捲動,您可以看到誤差密度圖,顯示誤差的分佈及其相對於模型 MAE 和 RMSE 的擴散。形狀與常態分佈相似的誤差密度曲線說明模型的效能良好。
步驟 5:產生模型預測
現在您得到了一個迴歸模型,您可以使用該模型執行預測,也可以建立該模型的新版本,並使用標準建置流程進行訓練。在這一步中,您將使用 SageMaker Canvas 針對資料集產生單個和批次預測。
若要開始產生預測,選擇 Predict (預測) 標籤。
- 選擇 Analyze (分析) 頁面底部的 Predict (預測) 按鈕,或選擇 Predict (預測) 標籤。在 Predict (預測) 頁面上,Batch prediction (批次預測) 已選取。選取 Select dataset (選取資料集),然後選取資料集 ConsolidatedShippingData。在實際 ML 工作流程中,此資料集應與訓練資料集分離。但為簡單起見,我們使用相同的資料集來示範 SageMaker Canvas 如何產生預測。選擇 Generate predictions (產生預測)。
- 幾秒鐘後,預測完成。選擇 options icon (選項圖示) 並選取 preview (預覽),將游標暫留在在預測資料集名稱或狀態上方以檢視預測預覽。您還可以選擇 Download (下載),以下載包含完整輸出的 CSV 檔案。SageMaker Canvas 會為每列資料返回預覽。在本教學中,重要性最高的特徵為 ExpectedShippingDays。它也會被顯示在預測旁,以方便目視比較。
- 在 Predict (預測) 頁面上,您可以透過選取 Single prediction (單個預測) 為單個樣本產生預測。SageMaker Canvas 會顯示一個介面,您可以在其中為模型中使用的每個輸入變數手動輸入值。此類分析適用於假設情境,即您想知道一項或多項變數的值增大或減小時,預測會發生怎樣的變化。透過對一組欄值的預測,SageMaker Canvas 可提供單項特徵的重要性。這能夠揭示對當前樣本預測具有重大影響力的欄。
標準模型不在本教學的討論範圍。不過,此模式下的訓練與本教學中所列的步驟類似。
您可以在開始時為模型命名,如 ShippingForecastStandardModel。此外,在 Build (建置) 標籤上,您可以選擇 Standard Model (標準模型),而不是 Quick Model (快速模型)。然後,繼續執行餘下步驟的操作。使用標準建置模式時,您能夠透過 SageMaker Studio 與資料科學家分享經過訓練的模型,從而能夠開展協作、快速微調模型和進行模型迭代。模型訓練完成後,Analyze (分析) 標籤就會提供分享選項。
步驟 6:清除 AWS 資源
最佳實務是刪除不再使用的資源,以免產生意外費用。
導覽至 S3 主控台並選取 Buckets (儲存貯體) 選單選項。
從測試儲存貯體中刪除測試物件。選取您在本教學中使用的儲存貯體的名稱。選取測試物件名稱左側的核取方塊,然後選取 Delete (刪除) 按鈕。在 Delete objects (刪除物件) 頁面上,確認您是否已選取要刪除的物件,並在 Permanently delete objects (永久刪除物件) 確認方塊中輸入 permanently delete (永久刪除)。然後,選取 Delete object (刪除物件) 按鈕以繼續。接下來,您將看到一條橫幅,指明刪除是否成功。
在 SageMaker Canvas 首頁上,選擇 Models (模型)。在右側窗格中,您可以看到建立的模型。選取 View (檢視) 選項右側的垂直省略符號,並選取 Delete model (刪除模型)。
在 SageMaker Studio 主控台中,選取 studio-user,然後對 Apps (應用程式) 下方列出的每個應用程式選擇 Delete app (刪除應用程式)。按螢幕上的提示確認刪除操作。等待狀態顯示為 Deleted (已刪除)。
如果您在步驟 1 中使用了現有的 SageMaker Studio 網域,請略過步驟 6 的其餘部分並直接進入「結論」部分。
如果您在步驟 1 中執行 CloudFormation 範本來建立新的 SageMaker Studio 網域,請繼續執行下列步驟以刪除由 CloudFormation 範本建立的網域、使用者和資源。
若要開啟 CloudFormation 主控台,請在 AWS Console 搜尋列中輸入 CloudFormation,然後從搜尋結果中選擇 CloudFormation。
在 CloudFormation 窗格中,選擇 Stacks (堆疊)。從狀態下拉式清單中,選取 Active (作用中)。在 Stack name (堆疊名稱) 下,選擇 CFN-SM-IM-Lambda-Catalog 開啟堆疊詳細資訊頁面。
在 CFN-SM-IM-Lambda-Catalog 堆疊詳細資訊頁面上,選擇 Delete (刪除) 以刪除在步驟 1 中建立的堆疊及資源。
結論
恭喜您! 您已完成在不編寫程式碼的情況下產生機器學習預測教學。
您成功地使用 Amazon SageMaker Canvas 從 Amazon S3 匯入並準備了資料集以用於 ML,選取了目標變數,利用快速建置模式建置了 ML 模型,並使用了視覺化介面。
後續步驟
訓練機器學習模型
標記用於機器學習的訓練資料