使用 Amazon Redshift ML 執行進階分析 - AWS 方案指引

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

使用 Amazon Redshift ML 執行進階分析

由寶康 (AWS) 創建

環境:PoC 或試點

技術:分析、機器學習與人工智慧

工作負載:所有其他工作

AWS 服務:Amazon Redshift; Amazon SageMaker

Summary

在 Amazon Web Services (AWS) 雲端上,您可以使用 Amazon Redshift 機器學習 (亞馬遜 Redshift ML) 對存放在 Amazon Redshift 叢集或亞馬遜簡單儲存服務 (Amazon S3) 上的資料執行 ML 分析。Amazon Redshift ML 支援受監督式學習,這通常用於進階分析。Amazon Redshift ML 的使用案例包括收入預測、信用卡詐騙偵測和客戶生命週期價值 (CLV) 或客戶流失預測。

Amazon Redshift ML 可讓資料庫使用者使用標準 SQL 命令輕鬆建立、訓練和部署機器學習模型。Amazon Redshift ML 使用 Amazon SageMaker Autopilot 自動輔助駕駛功能,根據您的資料自動訓練和調整最佳機器學習模型以進行分類或回歸,同時保有控制權和能見度。

Amazon Redshift,Amazon S3 和亞馬遜之間的所有互動 SageMaker 都被抽象化並自動化。ML 模型經過訓練和部署之後,它就會在 Amazon Redshift 中以使用者定義函數 (UDF) 的形式提供,並可用於 SQL 查詢。 

此模式與 AWS 部落格中的 Amazon Redshift ML 使用 SQL 在 Amazon Redshift 中建立、訓練和部署機器學習模型相輔相成,以及使用入門資源中心的 Amazon SageMaker 教學課程建立、訓練和部署機器學習模型

先決條件和限制

先決條件

  • 有效的 AWS 帳戶

  • Amazon Redshift 表中的現有數據

技能

  • 熟悉 Amazon Redshift ML 使用的術語和概念,包括機器學習訓練和預測。如需這方面的詳細資訊,請參閱 Amazon 機器學習 (Amazon ML) 文件中的訓練機器學習模型。

  • 具備 Amazon Redshift 使用者設定、存取管理和標準 SQL 語法的經驗。如需這方面的詳細資訊,請參閱 Amazon Redshift 文件中的開始使用 Amazon Redshift。

  • Amazon S3 和 AWS Identity and Access Management (IAM) 的知識和經驗。 

  • 在 AWS Command Line Interface (AWS CLI) (AWS CLI) 中執行命令的經驗也很有幫助,但不是必需的。

限制

  • Amazon Redshift 叢集和 S3 儲存貯體必須位於相同的 AWS 區域。

  • 這種模式的方法僅支持監督學習模型,例如回歸,二進制分類和多類分類。 

架構

下列步驟說明 Amazon Redshift ML 如何搭配 SageMaker 建置、訓練和部署機器學習模型: 

  1. Amazon Redshift 會將訓練資料匯出到 S3 儲存貯體。

  2. SageMaker 自動輔助駕駛會自動預先處理訓練資料。

  3. 在叫用CREATE MODEL陳述式之後,Amazon Redshift ML 會用 SageMaker 於訓練。

  4. SageMaker Autopilot 會搜尋並建議 ML 演算法和最佳化超參數,以最佳化評估指標。

  5. Amazon Redshift ML 將輸出 ML 模型註冊為 Amazon Redshift 集群中的 SQL 函數。

  6. ML 模型的函數可以在 SQL 陳述式中使用。 

技術, 堆棧

  • Amazon Redshift

  • SageMaker

  • Amazon S3

工具

  • Amazon Redshift — Amazon Redshift 是一種企業級、PB 級規模的全受管資料倉儲服務。

  • 亞馬遜 Redshift ML — Amazon Redshift 機器學習 (Amazon Redshift ML) 是一種強大的雲端服務,可讓各種技能等級的分析師和資料科學家輕鬆使用機器學習技術。

  • Amazon S3 — Amazon Simple Storage Service (Amazon S3) 是互聯網的存儲。 

  • Amazon SageMaker — SageMaker 是一個全受管的 ML 服務。 

  • Amazon SageMaker 自動輔助駕駛 — SageMaker 自動輔助駕駛是一套功能集,可自動執行自動化機器學習 (AutoML) 程序的關鍵任務。

Code

您可以使用下列程式碼在 Amazon Redshift 中建立受監管的 ML 模型:

“CREATE MODEL customer_churn_auto_model FROM (SELECT state, account_length, area_code, total_charge/account_length AS average_daily_spend, cust_serv_calls/account_length AS average_daily_cases, churn FROM customer_activity WHERE record_date < '2020-01-01' ) TARGET churn FUNCTION ml_fn_customer_churn_auto IAM_ROLE 'arn:aws:iam::XXXXXXXXXXXX:role/Redshift-ML' SETTINGS ( S3_BUCKET 'your-bucket' );”)

注意:該SELECT州可以參考 Amazon Redshift 常規表,Amazon Redshift Spectrum 外部表,或兩者兼而有之。

史诗

任務描述所需技能
準備訓練和測試資料集。

登入 AWS 管理主控台並開啟 Amazon 主 SageMaker 控台。遵循建置、訓練和部署機器學習模型教學課程中的指示,建立包含標籤欄 (受監督訓練) 且沒有標題的 .csv 或 Apache Parquet 檔案。 

注意:我們建議您將原始資料集隨機排列並分割為模型訓練的訓練集 (70%),以及用於模型效能評估的測試集 (30%)。

資料科學家
任務描述所需技能
建立和設定 Amazon Redshift 叢集。

在 Amazon Redshift 主控台上,根據您的需求建立叢集。如需這方面的詳細資訊,請參閱 Amazon Redshift 文件中的建立叢集。 

重要事項:必須使用SQL_PREVIEW維護追蹤建立 Amazon Redshift 叢集。如需有關預覽曲目的詳細資訊,請參閱 Amazon Redshift 文件中的選擇叢集維護追蹤

DBA、雲端架構師
建立 S3 儲存貯體以存放訓練資料和模型成品。

在 Amazon S3 主控台上,為訓練和測試資料建立 S3 儲存貯體。如需建立 S3 儲存貯體的詳細資訊,請參閱從 AWS 快速入門建立 S3 儲存貯體。 

重要事項:請確定您的 Amazon Redshift 叢集和 S3 儲存貯體位於同一個區域。 

DBA、雲端架構師
建立 IAM 政策並將其附加到 Amazon Redshift 叢集。

建立 IAM 政策以允許 Amazon Redshift 叢集存取 SageMaker 和 Amazon S3。如需指示和步驟,請參閱 Amazon Redshift 文件中的叢集設定

DBA、雲端架構師
允許 Amazon Redshift 使用者和群組存取結構描述和資料表。

授與許可以允許 Amazon Redshift 中的使用者和群組存取內部和外部結構描述和表格。如需步驟和指示,請參閱 Amazon Redshift 文件中的管理許可和擁有權

DBA
任務描述所需技能
在 Amazon Redshift 中創建和訓練 ML 模型。

在 Amazon Redshift ML 中建立和訓練您的機器學習模型。如需詳細資訊,請參閱 Amazon Redshift 文件中的CREATE MODEL陳述式。

資料科學家開發人員
任務描述所需技能
使用產生的 ML 模型函數執行推論。

如需使用產生的 ML 模型函數執行推論的詳細資訊,請參閱 Amazon Redshift 文件中的預測

資料科學家、商業智慧使用者

準備訓練和測試資料集

準備和設定技術堆疊

在 Amazon Redshift 中創建和訓練 ML 模型

在 Amazon Redshift 中執行批次推論和預測

其他資源