使用 Amazon Redshift ML 執行進階分析 - AWS Prescriptive Guidance

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

使用 Amazon Redshift ML 執行進階分析

由寶康 (AWS) 創作

環境:PoC 或試驗

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

工作負載:所有其他工作負載

AWS 服務:Amazon Redshift; Amazon SageMaker

Summary

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

Amazon Redshift ML 可讓資料庫使用者輕鬆使用標準 SQL 命令建立、訓練和部署 ML 模型。Amazon Redshift ML 使用 Amazon SageMaker Autopilot 自動輔助輔助輔助輔助模型,根據您的資料自動訓練和調整最佳的分類或回歸模型,同時保持控制和可見性。

Amazon Redshift、Amazon S3、與 Amazon SagMaker 之間的所有互動都會抽象出來和自動化。培訓和部署 ML 模型後,它變得可作為定義的函數(UDF),可用於 SQL 查詢。 

這種模式補充了使用 SQL 與 Amazon Redshift ML 在 Amazon Redshift 中建立、訓練和部署 ML 模型AWS 以及使用 Amazon SageMaker 來建置、訓練和部署 ML 模型教學課程資源中心入門

先決條件和限制

先決條件

  • 作用中的 AWS 帳戶

  • Amazon Redshift 表中的現有數據

技能

  • 熟悉 Amazon Redshift ML 使用的術語和概念,包括Machine Learning訓練,以及預測。如需此項目的詳細資訊,請參閱定型 ML 模型在 Amazon Machine Learning (Amazon ML) 文檔中。

  • 擁有 Amazon Redshift 使用者設定、存取管理和標準 SQL 語法的經驗。如需此項目的詳細資訊,請參閱Amazon Redshift 入門在 Amazon Redshift 文檔中。

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

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

限制

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

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

Architecture

下列步驟說明 Amazon Redshift ML 如何搭配 SSageMaker 來建置、訓練和部署毫升模型: 

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

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

  3. 之後CREATE MODEL語句被調用,Amazon Redshift 毫升使用 SagMaker 進行培訓。

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

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

  6. ML 模型的功能可以在 SQL 語句中使用。 

技術堆疊

  • Amazon Redshift

  • SageMaker

  • Amazon S3

Tools

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

  • Amazon Redshift ML— Amazon Redshift 機器學習 (Amazon Redshift ML) 是一種穩固的雲端型服務,能夠讓各技能等級的分析師和資料科學家都能輕鬆運用 ML 技術。

  • Amazon S3— Amazon Simple Storage Service (Amazon S3) 是網際網路儲存服務。 

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

  • Amazon SageMaker Access— SagMaker Autopilot 是一項功能集,可自動執行自動化機器學習 (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 外部表格或兩者。

Epics

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

登入 AWS 管理主控台並開啟 Amazon SagMaker 主控台。按照中的說明作業建置、訓練和部署機器學習模型教程創建一個具有標籤列的 .csv 或 Apache 實木複合地板文件(受監管的訓練)並且沒有標題。 

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

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

在 Amazon Redshift 主控台上,根據您的需求建立叢集。如需此項目的詳細資訊,請參閱建立叢集在 Amazon Redshift 文檔中。 

重要:Amazon Redshift 叢集必須使用SQL_PREVIEW維護軌道。如需預覽軌道的詳細資訊,請參閱選擇叢集維護軌道在 Amazon Redshift 文檔中。

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

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

重要:確定 Amazon Redshift 叢集和 S3 儲存貯體位於相同區域。 

DBA,雲端架構師
建立 IAM 政策並連接到 Amazon Redshift 叢集。

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

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

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

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

在 Amazon Redshift ML 中創建和訓練您的 ML 模型。如需詳細資訊,請參閲 。CREATE MODEL陳述式。

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

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

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

準備訓練和測試資料集

準備和設定技術堆疊

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

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

其他資源