Amazon SageMaker Data Wrangler: 機械学習のためのデータ準備を簡素化 この記事は、前提条件、データ準備、タイタニックデータセットを使用したモデルトレーニングをカバーする、Amazon SageMaker Data Wranglerへのアクセス方法と利用方法に関する包括的なガイドを提供します。データのインポート、変換の適用、データフローのエクスポートに関するステップバイステップの手順が含まれています。
主要ポイント
ユニークな洞察
実用的な応用
主要トピック
重要な洞察
学習成果
• 主要ポイント • ユニークな洞察 • 実用的な応用 • 主要トピック 1
Data Wranglerを使用したデータ準備
2
XGBoostを使用したモデルトレーニング
3
Amazon S3との統合
• 重要な洞察 • 学習成果
例
チュートリアル
コードサンプル
ビジュアル
基礎
高度なコンテンツ
実践的なヒント
ベストプラクティス
“ Amazon SageMaker Data Wranglerの概要Amazon SageMaker Data Wranglerは、Amazon SageMaker Studio Classic内の強力なツールであり、機械学習(ML)プロジェクトのデータ準備プロセスを合理化および簡素化するように設計されています。ユーザーフレンドリーなビジュアルインターフェイスを提供し、データサイエンティストやMLエンジニアが効率的にデータをインポート、分析、変換、エクスポートできるようにします。Data Wranglerを使用することで、ユーザーはデータの準備に必要な時間と労力を大幅に削減でき、モデルの開発とデプロイにより集中できるようになります。この包括的なガイドでは、セットアップからデータ操作やモデルトレーニングのための高度な機能の活用まで、Data Wranglerの必須事項を説明します。
“ Data Wranglerを使用するための前提条件Amazon SageMaker Data Wranglerの使用を開始する前に、必要な前提条件を満たしていることを確認する必要があります。これには、Amazon EC2インスタンスへのアクセス、必要なセキュリティと権限の設定、アクティブなStudio Classicインスタンスの所有が含まれます。
1. **Amazon EC2インスタンス**: Amazon Elastic Compute Cloud(Amazon EC2)インスタンスへのアクセスが必要です。利用可能なインスタンスタイプや、必要に応じてクォータの増加をリクエストする方法については、AWSのドキュメントを参照してください。
2. **セキュリティと権限**: セキュリティと権限のドキュメントに概説されている必要な権限を設定します。これにより、Data Wranglerおよび関連するAWSサービスを使用するための適切なアクセス権が保証されます。
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/`
4. **アクティブなStudio Classicインスタンス**: アクティブなStudio Classicインスタンスが必要です。まだお持ちでない場合は、Amazon SageMaker AI Domain Overviewの手順に従って新しいインスタンスを起動してください。KernelGatewayアプリケーションが「準備完了」状態であることを確認してから進んでください。
“ SageMaker Studio ClassicでData Wranglerにアクセスする前提条件が完了したら、次の手順に従ってSageMaker Studio Classic内でData Wranglerにアクセスできます。
1. **Studio Classicにログイン**: 資格情報を使用してSageMaker Studio Classicにログインします。詳細については、Amazon SageMaker AI Domain Overviewを参照してください。
2. **Studioを選択**: Studioインターフェイスに移動します。
3. **アプリケーションの起動**: アプリケーションドロップダウンリストから「Studio」を選択します。
4. **ホームに移動**: ホームアイコンを選択してメインダッシュボードにアクセスします。
5. **データを選択**: 「データ」オプションをクリックします。
6. **Data Wranglerを選択**: 「Data Wrangler」を選択してアプリケーションを起動します。
または、次の手順で新しいData Wranglerフローを作成することもできます。
1. **ファイルを選択**: 上部のナビゲーションバーで「ファイル」を選択します。
2. **新規を選択**: 「新規」を選択します。
3. **Data Wranglerフローを選択**: 「Data Wranglerフロー」を選択します。
必要に応じて、新しいディレクトリと`.flow`ファイルを名前変更することもできます。Data Wranglerの初期ロードには数分かかる場合があり、KernelGatewayアプリケーションの準備ができるまでカルーセルが表示されることがあります。
“ Data Wranglerの機能を探索する:タイタニックデータセットのウォークスルーData Wranglerの使用方法を理解するために、このセクションではタイタニックデータセットを使用したウォークスルーを提供します。このデータセットには、乗客の生存状況、年齢、性別、クラスなどのタイタニック号の乗客に関する情報が含まれています。このウォークスルーに従うことで、Data Wranglerを使用してデータをインポート、分析、変換、エクスポートする方法を学ぶことができます。
**ウォークスルーのステップ:**
1. **Data Wranglerフローを開く**: 新しいData Wranglerフローを開き、サンプルデータセットを使用するか、タイタニックデータセットをAmazon S3にアップロードしてData Wranglerにインポートします。
2. **データセットを分析**: Data Wranglerの分析ツールを使用してデータセットを探索し、洞察を得ます。
3. **データフローを定義**: Data Wranglerのデータ変換機能を使用してデータフローを定義します。
4. **フローをエクスポート**: フローをJupyter Notebookにエクスポートして、Data Wranglerジョブを作成します。
5. **データを処理**: データを処理し、SageMakerトレーニングジョブを開始してXGBoostバイナリ分類器をトレーニングします。
“ Data Wranglerを使用したデータのインポートと準備タイタニックデータセットは、次のいずれかの方法でData Wranglerにインポートできます。
1. **Data Wranglerフローから直接インポート**: フローを開き、「サンプルデータセットを使用」を選択します。
2. **Amazon S3にアップロード**: データセットをAmazon S3バケットにアップロードし、その後Data Wranglerにインポートします。
データセットをAmazon S3にアップロードするには:
1. **タイタニックデータセットをダウンロード**: タイタニックデータセットをダウンロードします。
2. **S3にアップロード**: このデモンストレーションで使用するAWSリージョンのAmazon S3バケットにデータセットをアップロードします。Amazon S3コンソールを使用してファイルをドラッグアンドドロップできます。
データセットがAmazon S3に正常にアップロードされたら、Data Wranglerにインポートできます。
1. **データのインポートを選択**: データフロータブで、「データのインポート」ボタンまたは「インポート」タブを選択します。
2. **Amazon S3を選択**: 「Amazon S3」を選択します。
3. **データセットを特定**: データセットのインポートテーブルを使用して、タイタニックデータセットを追加したバケットを見つけます。CSVファイルを選択して詳細ペインを開きます。
4. **詳細を設定**: ファイルタイプがCSVであることを確認し、最初の行がヘッダーであることを示すチェックボックスをオンにします。データセットに「Titanic-train」のようなわかりやすい名前を付けることもできます。
5. **インポート**: 「インポート」ボタンを選択します。
データセットをインポートした後、データフロータブに表示されます。ノードをダブルクリックしてノード詳細ビューに入り、変換または分析を追加できます。
“ データの分析と可視化Data Wranglerは、データを分析、クリーニング、変換するための組み込みの変換および可視化機能を提供します。ノード詳細ビューの右側パネルには、すべての組み込み変換とカスタム変換を追加するセクションがリストされています。
**データ品質とインサイトレポートの作成**
データに関する洞察を得るために、データ品質とインサイトレポートを作成します。このレポートは、欠損値や外れ値などの問題を特定するのに役立ちます。また、ターゲットリーケージや不均衡などの潜在的な問題についても警告します。
**テーブルサマリーの作成**
1. **分析の追加**: データフローのデータ型ステップの横にある「+」を選択し、「分析の追加」を選択します。
2. **テーブルサマリーを選択**: 分析エリアで、ドロップダウンリストから「テーブルサマリー」を選択します。
3. **サマリーに名前を付ける**: テーブルサマリーに名前を付けます。
4. **プレビュー**: 「プレビュー」を選択してテーブルのプレビューを表示します。
5. **保存**: 「保存」を選択してデータフローに追加します。データは「すべての分析」の下に表示されます。
提供された統計情報から、平均運賃や、「cabin」、「embarked」、「age」などの列の欠損値の存在などの観察を行うことができます。
“ Data Wranglerを使用したデータの変換データを分析した後、トレーニングのためにクリーニングおよび準備するために、データフローに変換を追加できます。実行できる一般的な変換をいくつか紹介します。
**未使用の列の削除**
1. **変換の追加**: データフローのデータ型ステップの横にある「+」を選択し、「変換の追加」を選択します。
2. **列の管理を選択**: 「すべてのステップ」列で、「ステップの追加」を選択し、標準変換リストから「列の管理」を選択します。「列の削除」が選択されていることを確認します。
3. **削除する列を選択**: トレーニングに使用しない列(例:「cabin」、「ticket」、「name」、「sibsp」、「parch」、「home.dest」、「boat」、「body」)を選択します。
4. **プレビューと追加**: 「プレビュー」を選択して列が削除されたことを確認し、「追加」を選択して変換をフローに追加します。
**欠損値のクリーニング**
1. **欠損値の処理を選択**: 「欠損値の処理」を選択します。
2. **欠損値の削除を選択**: トランスフォーマーの「欠損値の削除」を選択します。
3. **入力列を選択**: 欠損値のある列(例:「age」)を選択します。
4. **プレビューと追加**: 「プレビュー」を選択して新しいデータフレームを表示し、「追加」を選択して変換をフローに追加します。
**Pandasを使用したカスタム変換**
Pandasを使用したカスタム変換を使用して、より複雑なデータ操作を実行することもできます。たとえば、カテゴリカルデータにワンホットエンコーディングを使用できます。
```python
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)
```
**SQLを使用したカスタム変換**
SQLを使用して、さらなる分析のために特定の列を選択できます。
```sql
SELECT survived, age, fare, 1, 2, 3, female, male, C, Q, S FROM df;
```
“ データフローのエクスポートとSageMakerとの統合データフローを作成したら、さらに使用するためにエクスポートできます。一般的なオプションの1つは、Data Wranglerジョブノートブックにエクスポートすることです。このプロセスは、Data Wranglerデータフローを実行するためのSageMaker処理ジョブを構成するJupyterノートブックを自動的に作成します。
**Data Wranglerジョブノートブックへのエクスポート**
1. **データフローを保存**: 「ファイル」を選択し、「Data Wranglerフローの保存」を選択します。
2. **データフロータブに戻る**: データフロータブに戻り、データフローの最後のステップを選択します。
3. **エクスポートを選択**: 「エクスポート」を選択し、「Amazon S3(Jupyter Notebook経由)」を選択します。これにより、Jupyterノートブックが開きます。
4. **カーネルを選択**: Python 3(データサイエンス)カーネルのいずれかを選択します。
5. **ノートブックを実行**: 「トレーニングSageMakerジョブを開始(オプション)」セクションに到達するまで、ノートブックのセルを実行します。
SageMaker AIコンソールの「処理」タブでData Wranglerジョブのステータスを監視できます。Amazon CloudWatchを使用してData Wranglerジョブを監視することもできます。
“ 準備されたデータを使用したXGBoost分類器のトレーニングData Wranglerでデータを準備した後、JupyterノートブックまたはAmazon Autopilotのいずれかを使用してXGBoostバイナリ分類器をトレーニングできます。Autopilotは、Data Wranglerフローから直接変換されたデータに基づいてモデルを自動的にトレーニングおよび最適化できます。
**Jupyterノートブックを使用したトレーニング**
Data Wranglerジョブを起動したのと同じノートブックで、準備されたデータを抽出し、最小限の追加データ準備でXGBoostバイナリ分類器をトレーニングできます。
1. **必要なモジュールをアップグレード**: pipを使用して必要なモジュールをアップグレードし、`_SUCCESS`ファイルを削除します。
```bash
! pip install --upgrade awscli awswrangler boto sklearn
! aws s3 rm {output_path} --recursive --exclude "*" --include "*_SUCCESS*"
```
2. **Amazon S3からデータを読み込む**: awswranglerを使用して、S3プレフィックスからすべてのCSVファイルを再帰的に読み込みます。次に、データを特徴量とラベルに分割します。
```python
import awswrangler as wr
df = wr.s3.read_csv(path=output_path, dataset=True)
X, y = df.iloc[:,:-1],df.iloc[:,-1]
```
3. **DMatricesを作成し、クロスバリデーションを実行する**: DMatrices(XGBoostのネイティブデータ構造)を作成し、XGBoostバイナリ分類を使用してクロスバリデーションを実行します。
```python
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 Studio Classicアプリケーションを定期的に更新することをお勧めします。更新するには、Studio Classicアプリケーションの終了と更新に関するドキュメントを参照してください。
Data Wranglerの使用が終了したら、追加のコストが発生しないように、実行中のインスタンスを閉じることをお勧めします。シャットダウンする方法については、Data Wranglerの終了に関するドキュメントを参照してください。
元のリンク: https://docs.aws.amazon.com/zh_cn/sagemaker/latest/dg/data-wrangler-getting-started.html
コメント(0)