機械学習用のデータを準備する
Amazon SageMaker Data Wrangler
ノーコードで前処理から学習まで
2022/09/23 第15回勉強会
自己紹介
● 名前: 西岡 賢一郎
○ Twitter: @ken_nishi
○ note: 西岡賢一郎@研究者から経営者へ (https://note.com/kenichiro)
○ YouTube: 【経営xデータサイエンスx開発】西岡 賢一郎のチャンネル
(https://www.youtube.com/channel/UCpiskjqLv1AJg64jFCQIyBg)
● 経歴
○ 東京大学で位置予測アルゴリズムを研究し博士 (学術) を取得
○ 東京大学の博士課程在学中にデータサイエンスをもとにしたサービスを提供する株式会社ト
ライディアを設立
○ トライディアを別のIT会社に売却し、CTOとして3年半務め、2021年10月末にCTOを退職
○ CDPのスタートアップと株式会社データインフォームドの2つに所属
○ 自社および他社のプロダクト開発チーム・データサイエンスチームの立ち上げ経験
今回のお話
● Amazon SageMaker Data Wranglerとは
● Amazon SageMaker Data Wranglerの基本的な使い方
● デモ
Amazon SageMaker Data Wranglerとは
Amazon SageMaker Data Wranglerとは
● データを機械学習で使いやすいように前処理するサービス
○ 機械学習 (ML) 用のデータを集約して準備するのにかかる時間を数週間から数分に短縮します
○ 300 を超える組み込みのデータ変換が含まれているため、コードを記述しなくても、機能を
すばやく正規化、変換、および結合できます
○ Amazon SageMaker Pipelines を使用して完全に自動化された ML ワークフローを構築し、
Amazon SageMaker Feature Store で再利用できるように保存できます
○ 出典: https://aws.amazon.com/jp/sagemaker/data-wrangler/
● よく使いそうな機能
○ データの前処理 (欠損値、外れ値の処理、データの分割・結合、エンコーディング等)
○ 処理されたデータの保存 (csv, parquet)
○ データ処理のスクリプト作成
○ 学習モデルの作成
AWS Data Wranglerとの違い
● Amazon SageMaker Data Wrangler
○ SageMaker上のサービス
○ Amazon SageMaker Studio上でGUIを使
ってノーコードで利用可能 (複雑な処理が
必要な場合はコードも使える)
● AWS Data Wrangler
○ AWS SDK for pandas (awswrangler) とい
う名前に変更された
○ pandasのDataFrameをs3へ書き込んだり、
S3やAthenaからの読み込みを簡単にした
りなどをするPythonライブラリ
Amazon SageMaker Data Wranglerの
基本的な使い方
データ変換
● Handle Missing Values
● Manage Columns
● Manage Rows
● Manage Vectors
● Process Numeric
● Sampling
● Search and Edit
● Split data
● Parse Value as Type
● Validate String
● Unnest JSON Data
● Explode Array
様々なデータ変換を実施できる (参考: データを変換する)
● Join Datasets
● Concatenate Datasets
● Balance Data
● Custom Transforms
● Custom Formula
● Encode Categorical
● Featurize Text
● Transform Time Series
● Featurize Datetime
● Format String
● Handle Outliers
変換の基本操作
+ボタンからメニューを呼び出す
標準の変換
用意されている変換リストから適用したい変換を選び、カラムなど必要な情報を
GUIで指定していく
Custom Formula
Spark SQLの様々な関数を使うことができる
例: concat(col_a, col_b)
● String Functions
● Date & Time Functions
● Math Functions
● …
ただし、カラム名がスペースや特殊文字を含んでいる場合、事前に変換しておく
必要がある (Custom Formula)
Custom Transform
● Python (PySpark, Pandas, UDF), SQL
(PySpark SQL)などでコードを使って変換
をすることが可能
● サンプルSnippetが用意されているため、
Snippetを参考にしながら実装も可能
● データはdfに格納されており、dfを上書き
する形で、変換を反映
コードの種類を選択
Snippetを選択
Snippetの表示
Join
JOINはメニューから選択し、GUIで対象を指定する
Joinを選択
Concatenate
ConcatenateもJoinと同様にメニューから選択し、GUIで対象を指定する
Concatenateを選択
学習
Autopilot experimentで、学習モデルの作成、エンドポイントの作成、データの調
査結果作成が可能
学習済みモデル一覧
目的変数を選択
Data Wrangler外へデータを保存
変換後のデータは直接S3 (CSV, parquet)と
SageMaker Feature Storeに保存可能
Add destinationを選択
Export用コード作成
● 変換したデータを吐き出すためのスクリ
プトを自動生成が可能
● export先に合わせて様々なコードが利用可
能
Export to を選択
デモ
● Amazon SageMaker Data Wranglerを使った処理の紹介
○ Import
○ データ変換
○ 分析
○ 学習モデル作成
● コード: https://github.com/knishioka/machine-learning-
workshop/tree/main/sagemaker/data_wrangler

機械学習用のデータを準備する Amazon SageMaker Data Wrangler - ノーコードで前処理から学習まで

Editor's Notes

  • #3 こちらが私のプロフィールとなります。 機械学習には、大学時代の研究から携わっており、自分で立ち上げたスタートアップでも機械学習を使ったサービスを提供していました。 プロダクト開発チームやデータサイエンスチームの立ち上げなどもやっています。