開始使用 Data Wrangler - Amazon SageMaker

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

開始使用 Data Wrangler

Amazon SageMaker 數據牧馬人是 Amazon SageMaker 工作室經典的功能。您可以透過本章節了解如何存取並開始使用 Data Wrangler。請執行下列操作:

  1. 完成必要條件中的每個步驟。

  2. 按照存取 Data Wrangler中的程序開始使用 Data Wrangler。

必要條件

若要使用 Data Wrangler,您必須完成下列先決條件。

  1. 若要使用 Data Wrangler,您需要存取 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體。如需使用適用於 Amazon EC2 執行個體的更多相關資訊,請參閱執行個體。要了解如何查看配額,並在必要時請求增加配額,請參閱AWS 服務配額

  2. 設定安全與許可中描述的必要許可。

  3. 如果您的組織使用的防火牆會封鎖網際網路流量,您必須擁有下列 URL 的存取權:

    • https://ui.prod-1.data-wrangler.sagemaker.aws/

    • https://ui.prod-2.data-wrangler.sagemaker.aws/

    • https://ui.prod-3.data-wrangler.sagemaker.aws/

    • https://ui.prod-4.data-wrangler.sagemaker.aws/

若要使用資料牧馬人,您需要使用作用中的 Studio 傳統執行個體。要瞭解如何啟動新執行個體,請參閱Amazon SageMaker 域名概述。當您的 Studio 傳統型執行個體已就緒時,請使用中的指示存取 Data Wrangler

存取 Data Wrangler

以下程序假設您已經完成 必要條件

要訪問工作室經典版中的數據牧馬人,請執行以下操作。

  1. 登入經典工作室。如需詳細資訊,請參閱 Amazon SageMaker 域名概述

  2. 選擇Studio

  3. 選擇啟動應用程式

  4. 從下拉式清單中選取 Studio

  5. 選擇首頁圖示。

  6. 選擇資料

  7. 選擇 Data Wrangler

  8. 您也可以執行下列動作來建立 Data Wrangler 流程。

    1. 在頂端導覽列中,選取 檔案

    2. 選取新的

    3. 選取Data Wrangler 流程

  9. (選用) 重新命名新目錄和 .flow 檔案。

  10. 當您在 Studio 傳統版中建立新的 .flow 檔案時,您可能會看到介紹資料牧馬人的輪播。

    這可能需要幾分鐘的時間。

    只要您的「用戶詳細信息」頁面上的KernelGateway應用程序處於「待處理」狀態,此消息 若要查看此應用程式的狀態,請在 Amazon SageMaker Studio 傳統版頁面的 SageMaker 主控台中,選取您用來存取 Studio 傳統版的使用者名稱。在 [使用者詳細資料] 頁面上,您會在 [應用KernelGateway] 底下看到 等到此應用程式狀態為就緒,開始使用 Data Wrangler。第一次啟動 Data Wrangler 時,大約需要 5 分鐘的時間。

  11. 若要開始使用,請選擇資料來源並使用它來匯入資料集。如需進一步了解,請參閱匯入

    匯入資料集時,資料集會顯示在資料流程中。如需進一步了解,請參閱建立和使用 Data Wrangler 流程

  12. 匯入資料集之後,Data Wrangler 會自動推斷每個資料欄中的資料類型。選擇資料類型步驟旁的+,然後選取編輯資料類型

    重要

    將轉換新增至資料類型步驟之後,您就無法使用更新類型批次更新資料欄類型。

  13. 使用資料流程新增轉換和分析。如需進一步了解,請參閱轉換資料分析與視覺化

  14. 若要匯出完整資料流量,請選擇匯出,然後選擇匯出選項。如需進一步了解,請參閱匯出

  15. 最後,選擇 元件和登錄檔圖示,然後從下拉式清單中選取 Data Wrangler,以查看您建立的所有 .flow 檔案。您可以使用此功能表來尋找資料流程,並在資料流程之間移動。

啟動 Data Wrangler 之後,您可以利用下列章節,逐步了解如何使用 Data Wrangler 建立機器學習 (ML) 資料準備流程。

更新 Data Wrangler

我們建議您定期更新數據牧馬人工作室經典版應用程序以訪問最新功能和更新。Data Wrangler 應用程式名稱以 sagemaker-data-wrang 開頭。若要瞭解如何更新工作室傳統版應用程式,請參閱關閉並更新工作室傳統版應用程式

示範:Data Wrangler Titanic 資料集演練

下列區段提供逐步解說,以協助您開始使用 Data Wrangler。本逐步解說假設您已按照存取 Data Wrangler中的步驟進行操作,並開啟要用於示範的新資料流程檔案。您可能想要將此 .flow 檔案重新命名為類似titanic-demo.flow的檔案。

本逐步解說使用 Titanic 資料集。這是 Titanic 資料集的修改版本,您可以更輕鬆地匯入 Data Wrangler 流程。該資料集包含 1912 年 RMS Titanic 首航乘客的生存狀況,年齡,性別和艙等 (作為經濟地位的表徵)。

您將在本教學課程中執行下列步驟。

  1. 執行以下任意一項:

    • 開啟 Data Wrangler 流程,然後選擇使用範例資料集

    • Titanic 資料集上傳到 Amazon Simple Storage Service (Amazon S3),然後將此資料集匯入 Data Wrangler。

  2. 使用 Data Wrangler 分析來分析此資料集。

  3. 使用 Data Wrangler 資料轉換來定義資料流量。

  4. 將流程匯出至 Jupyter 筆記本,您可以用來建立 Data Wrangler 任務。

  5. 處理您的數據,並開始訓練任務以 SageMaker 訓練 XGBoost 二進制分類器。

將資料集上傳至 S3 並匯入

若要開始使用,您可以使用下列其中一個方法,將 Titanic 資料集匯入 Data Wrangler:

  • 直接從 Data Wrangler 流程匯入資料集

  • 將資料集上傳到 Amazon S3,然後將其匯入 Data Wrangler

若要將資料集直接匯入 Data Wrangler,請開啟流程,然後選擇使用範例資料集

將資料集上傳到 Amazon S3 並將其匯入 Data Wrangler,將與您匯入自己資料的經驗更接近。下列資訊說明如何上傳資料集並匯入資料集。

在開始將資料匯入 Data Wrangler 之前,請下載 Titanic 資料集,並將其上傳到您要完成此示範 AWS 區域中的 Amazon S3 (Amazon S3) 儲存貯體。

如果您是 Amazon S3 的新使用者,可以在 Amazon S3 主控台中使用拖放功能來執行此操作。要瞭解如何操作,請參閱使用拖放功能上傳文件和文件夾在亞馬遜簡單儲存服務用戶指南中。

重要

將資料集上傳到要用來完成此示範的相同 AWS 區域中的 S3 儲存貯體。

資料集成功上傳到 Amazon S3 後,您可以將其匯入 Data Wrangler。

匯入 Titanic 資料集到 Data Wrangler
  1. 選擇資料流量索引標籤中的匯入資料按鈕,或選擇匯入索引標籤。

  2. 選取 Amazon S3

  3. 使用從 S3 資料表匯入資料集,尋找您新增 Titanic 資料集的儲存貯體。選擇 Titanic 資料集 CSV 檔案以開啟詳細資訊面板。

  4. 詳細資訊下,檔案類型 應為 CSV。檢查第一行是標題,以指定資料集的第一行是標題。您也可以將資料集命名為更好記的名稱,例如Titanic-train

  5. 選擇匯入按鈕。

當您的資料集匯入資料 Data Wrangler 時,資料集就會出現在 資料流量索引標籤中。您可以在節點上按兩下以進入節點詳細資訊檢視,這裡可以讓您新增轉換或分析。您可以透過加號圖示快速存取導覽。在下一節中,您將使用此資料流程來新增分析和轉換步驟。

資料流程

在資料流程區段中,資料流程中唯一的步驟為近期匯入的資料集和資料類型步驟。套用轉換後,您可以回到此選項卡,查看資料流程的狀態。現在,在準備分析索引標籤下增加一些基本轉換。

準備與視覺化

Data Wrangler 具有內建的轉換和視覺化,可用來分析、清理和轉換資料。

節點詳細資訊檢視的資料 索引標籤會列出右側面板中的所有內建轉換,其中也包含您可以在其中新增自訂項目的區域。下列使用案例展示如何使用這些轉換。

若要取得可協助您進行資料探勘和特徵工程的資訊,請建立資料品質和深入分析報告。報告中的資訊可協助您清理和處理資料。它為您提供諸如缺少值的數量和極端值數量等資訊。如果您的資料有問題,例如目標洩漏或不平衡,洞察報告可以引起您注意這些問題。如需建立報告的更多相關資訊,請參閱取得有關資料和資料品質的洞察

資料探勘

首先,使用分析資料建立資料表摘要。請執行下列操作:

  1. 選擇資料流程中資料類型步驟旁的 +,然後選取新增分析

  2. 分析 區域中,從下拉式清單中選取 表格摘要

  3. 為表格摘要指定一個名稱

  4. 選取預覽,以預覽將會建立的表格。

  5. 選擇 儲存,將其儲存至資料流程。會顯示於所有分析資料下。

使用您看到的統計資料,您可以建立類似下列與此資料集相關的觀察結果:

  • 平均票價 (平均值) 約為 33 美元,而最高票價超過 500 美元。此欄可能具有極端值。

  • 使用? 指示資料集所缺少的值。許多欄位中的缺少值:cabinembarkedhome.dest

  • 年齡類別遺失超過 250 個值。

接下來,使用從這些統計資料中獲得的洞察來清理資料。

捨棄未使用的欄位

使用上一節的分析,清除資料集以準備進行訓練。若要將新的轉換新增至資料流程,請選擇資料流程中資料類型步驟旁的 +,然後選擇 新增轉換

首先,捨棄您不想要用於訓練的資料欄。您可以使用pandas分析程式庫以執行此操作,也可以使用其中一個內建的轉換。

使用下列程序來捨棄未使用的資料欄。

捨棄未使用的資料欄。

  1. 開啟 Data Wrangler 流程。

  2. 此網域 Data Wrangler 流程中有兩個節點。選擇資料類型節點右側的 +

  3. 選擇新增轉換

  4. 所有步驟 欄中,選擇 新增步驟

  5. 標準轉換清單中,選擇 管理欄位。標準轉換是現成的內建轉換。確定已選取 捨棄資料欄

  6. 要刪除的資料欄底下,檢查下列欄位名稱:

    • cabin

    • ticket

    • name

    • sibsp

    • parch

    • home.dest

    • boat

    • 本文

  7. 選擇預覽

  8. 確認已捨棄資料欄,然後選擇新增

請遵循下列步驟,使用 pandas 執行此操作。

  1. 所有步驟 欄中,選擇 新增步驟

  2. 自訂轉換清單中,選擇 自訂轉換

  3. 為您的轉換提供名稱,然後從下拉式清單中選擇 Python (Pandas)

  4. 請在程式碼框中輸入 Python 指令碼。

    cols = ['name', 'ticket', 'cabin', 'sibsp', 'parch', 'home.dest','boat', 'body'] df = df.drop(cols, axis=1)
  5. 選擇預覽以預覽變更,然後選擇新增以新增轉換。

清除缺少值

現在,清除缺少值。您可以使用處理缺少值轉換群組來執行此操作。

一些欄數有缺少值。在剩餘資料欄中,年紀票價包含缺少值。使用自訂轉換檢查此內容。

使用 Python (Pandas)選項,使用以下命令快速檢閱每個資料欄中的項目數:

df.info()

若要捨棄年齡類別中缺少值的資料列,請執行下列動作:

  1. 選擇處理缺少值

  2. 轉換器 選擇 捨棄缺少值

  3. 選擇輸入欄位年齡

  4. 選擇預覽以參閱新資料框,然後選擇新增以將轉換新增至流程。

  5. 票價重複相同的過程。

您可以在 自訂轉換 區段df.info()中使用,以確認所有資料列現在都有 1,045 個值。

自訂 Pandas:編碼

試圖使用 Pandas 進行平面編碼。編碼分類資料是為類別建立數值表示的過程。例如,如果您的類別是 DogCat,則可以將此資訊編碼為兩個向量:[1,0] 表示 Dog,而 [0,1] 表示 Cat

  1. 自訂轉換區段中,從下拉式清單中選擇 Python (Pandas)

  2. 請在程式碼框中輸入以下內容。

    import pandas as pd dummies = [] cols = ['pclass','sex','embarked'] for col in cols: dummies.append(pd.get_dummies(df[col])) encoded = pd.concat(dummies, axis=1) df = pd.concat((df, encoded),axis=1)
  3. 選擇預覽以預覽變更。每個資料欄的編碼版本會新增到資料集。

  4. 選擇新增以新增轉換。

自訂 SQL:選取資料欄

現在,選擇要繼續使用 SQL 的資料欄。對於此示範,選取下列SELECT陳述式中列出的資料欄清單。因為是否倖存是您訓練的目標欄,所以將該欄放在第一位。

  1. 在「自訂轉換」區段中,從下拉式清單中選取「PySpark SQL (SQL)」。

  2. 請在程式碼框中輸入以下內容。

    SELECT survived, age, fare, 1, 2, 3, female, male, C, Q, S FROM df;
  3. 選擇預覽以預覽變更。SELECT陳述式中列出的資料欄清單是唯一的剩餘資料欄。

  4. 選擇新增以新增轉換。

匯出至 Data Wrangler 筆記本

完成建立資料流程後,您有許多匯出選項。下一節解釋如何匯出至 Data Wrangler 任務筆記本。Data Wrangler 任務是使用處理資料流程中,所定義的步驟來處理資料。若要進一步了解所有匯出選項,請參閱匯出

匯出至 Data Wrangler 任務筆記本

當您使用 Data Wrangler 任務匯出資料流程時,程序會自動建立 Jupyter 筆記本。這個筆記本會在您的 Studio Classic 執行個體中自動開啟,並設定為執行 SageMaker 處理工作以執行資料牧馬人資料流程 (稱為資料牧馬人工作)。

  1. 儲存資料流程。選取檔案,然後選取儲存 Data Wrangler 流程

  2. 傳回資料流程索引標籤,選取資料流程 (SQL) 中的最後一個步驟,然後選擇 + 以開啟導覽。

  3. 選擇匯出Amazon S3 (透過 Jupyter 筆記本)。這會開啟 Jupyter 筆記本。

  4. 為核心選擇任何 Python 3 (資料科學) 核心

  5. 核心啟動時,執行筆記本書中的儲存格,直到開始 SageMaker 訓練 Job (選用) 為止。

  6. 或者,如果您要建立 SageMaker訓練 Job 來訓練 XGBoost 分類器的訓練工作,您可以在開始 SageMaker訓練工作 (選用) 中執行儲存格。您可以在 Amazon SageMaker 定價中找到執行 SageMaker 訓練任務的成本。

    或者,您可以將在訓練 XGBoost 分類器中找到的程式碼區塊新增至筆記本,然後執行,以使用 XGBoost 開放原始碼程式庫來訓練 XGBoost 分類器。

  7. 取消註釋並在清理下運行單元格並運行它以將 SageMaker Python SDK 還原為其原始版本。

您可以在 [理] 索引標籤的 SageMaker 主控台中監視資料牧馬人工作狀態。此外,您可以使用 Amazon 監控您的資料牧馬人任務。 CloudWatch如需其他資訊,請參閱使用 CloudWatch 日誌和指標監控 Amazon SageMaker 處理任務

如果您開始執行訓練工作,您可以使用 [訓練] 區段中 [訓練工作] 下方的 SageMaker主控台監視其狀態。

訓練 XGBoost 分類器

您可以使用 Jupyter 筆記本或 Amazon 自動駕駛儀訓練 XGBoost 二進制分類器。 SageMaker 您可以使用 Autopilot 來自動訓練和微調模型,這些模型是根據您的 Data Wrangler 流程中轉換的資料而來。若要取得有關 Autopilot 的更多資訊,請參閱在資料流程上自動訓練模型

在啟動 Data Wrangler 任務的同一筆記本中,您可以提取資料,並使用準備好的資料以最小化的資料準備方式,來訓練 XGBoost 二進位分類器。

  1. 首先,使用pip升級必要的模組,並移除 _SUCCESS 文件 (當使用awswrangler時,這個檔案會造成問題)。

    ! pip install --upgrade awscli awswrangler boto sklearn ! aws s3 rm {output_path} --recursive --exclude "*" --include "*_SUCCESS*"
  2. 從 Amazon S3 讀取資料。您可以使用awswrangler遞迴讀取 S3 字首中的所有 CSV 文件。然後將資料分割為功能和標籤。標籤是資料框的首欄。

    import awswrangler as wr df = wr.s3.read_csv(path=output_path, dataset=True) X, y = df.iloc[:,:-1],df.iloc[:,-1]
    • 最後,建立 DMatrices (XGBoost 的基本資料結構),並使用 XGBoost 二進制分類進行交叉驗證。

      import xgboost as xgb dmatrix = xgb.DMatrix(data=X, label=y) params = {"objective":"binary:logistic",'learning_rate': 0.1, 'max_depth': 5, 'alpha': 10} xgb.cv( dtrain=dmatrix, params=params, nfold=3, num_boost_round=50, early_stopping_rounds=10, metrics="rmse", as_pandas=True, seed=123)

關閉 Data Wrangler

當您完成使用 Data Wrangler 後,我們建議您關閉其執行的執行個體,以避免產生額外費用。要瞭解如何關閉 Data Wrangler 應用程式和關聯的執行個體,請參閱關閉 Data Wrangler