AmazonSageMakerデータラングラー は、単一のビジュアル インターフェイスから機械学習 (ML) 用のデータを理解し、集計、変換、および準備するのに役立ちます。 300 を超える組み込みのデータ変換が含まれているため、コードを記述しなくても、機能をすばやく正規化、変換、結合できます。
データ サイエンスの実践者は、データセットから特徴を変換および抽出する必要があるビジネス上の問題を解決するために、データを生成、観察、および処理します。 序数エンコーディングやワンホット エンコーディングなどの変換は、データセットのエンコーディングを学習します。 これらのエンコードされた出力は、トレーニング済みパラメーターと呼ばれます。 データセットは時間の経過とともに変化するため、変換フローをデータに関連したものに保つために、以前は見られなかったデータのエンコーディングを再調整することが必要になる場合があります。
以前にトレーニングされたパラメーターを使用して、必要に応じて再調整できる、トレーニング済みパラメーターの再調整機能を発表できることを嬉しく思います。 この投稿では、この機能の使用方法を示します。
Data Wrangler 修理機能の概要
この機能が次の例でどのように機能するかを説明してから、トレーニング済みパラメーターの再調整機能の詳細に進みます。
顧客データセットにカテゴリ機能があるとします。 country
のような文字列として表されます Australia
& Singapore
. ML アルゴリズムには数値入力が必要です。 したがって、これらのカテゴリ値は数値にエンコードする必要があります。 カテゴリ データのエンコードは、カテゴリの数値表現を作成するプロセスです。 たとえば、カテゴリの国に値がある場合 Australia
& Singapore
、この情報を 1 つのベクトルにエンコードできます: [0, XNUMX] を表す Australia
および [0, 1] を表す Singapore
. ここで使用される変換はワンホット エンコーディングであり、新しくエンコードされた出力にはトレーニングされたパラメーターが反映されます。
モデルをトレーニングした後、時間の経過とともに顧客が増加し、国のリストにより明確な値が表示されるようになります。 新しいデータセットには、別のカテゴリを含めることができます。 India
、元のデータセットの一部ではなく、モデルの精度に影響を与える可能性があります。 したがって、時間をかけて収集された新しいデータでモデルを再トレーニングする必要があります。
この問題を解決するには、エンコーディングを更新して新しいカテゴリを含め、最新のデータセットに従ってベクトル表現を更新する必要があります。 この例では、エンコーディングに新しいカテゴリが反映されている必要があります。 country
ボタンの隣にある India
. 通常、エンコーディングを更新するこのプロセスを修復操作と呼びます。 修復操作を実行すると、新しいエンコーディングが取得されます。 Australia
: [1, 0, 0], Singapore
: [0, 1, 0]、および India
: [0, 0, 1]。 ワンホット エンコーディングを再調整してから、新しいデータセットでモデルを再トレーニングすると、予測の品質が向上します。
Data Wrangler のトレーニング済みパラメーターの再調整機能は、次の場合に役立ちます。
- 新しいデータがデータセットに追加されます – データセットが新しいデータで強化された場合、ML モデルの再トレーニングが必要です。 最適な結果を得るには、トレーニング済みのパラメーターを新しいデータセットに再適合させる必要があります。
- サンプル データで特徴量エンジニアリングを実行した後の完全なデータセットでのトレーニング – 大規模なデータセットの場合、トレーニング済みパラメーターを学習するためにデータセットのサンプルが考慮されますが、これはデータセット全体を表していない場合があります。 完全なデータセットでトレーニング済みパラメーターを再学習する必要があります。
以下は、データセットに対して実行される最も一般的な Data Wrangler 変換の一部であり、トレーニング済みパラメーターの再調整オプションの恩恵を受けます。
Data Wrangler での変換の詳細については、次を参照してください。 データを変換する.
この投稿では、Data Wrangler を使用してデータセットでこれらのトレーニング済みパラメーターを処理する方法を示します。 運用ジョブで Data Wrangler フローを使用して、データの成長や変化に応じてデータを再処理できます。
ソリューションの概要
この投稿では、公開されているデータセットで Data Wrangler の調整トレーニング済みパラメーター機能を使用する方法を示します。 Kaggle: Zillow の米国住宅データ、米国の販売物件。 住宅のさまざまな地理的分布にわたる住宅販売価格があります。
次の図は、トレーニング済みパラメーターの再調整機能を使用した Data Wrangler のアーキテクチャの概要を示しています。 また、トレーニング済みパラメーターを再調整しない場合のデータ品質への影響を示し、最後に結果を対比します。
ワークフローには次の手順が含まれます。
- 探索的データ分析の実行 – Data Wrangler で新しいフローを作成して、探索的データ分析 (EDA) を開始します。 ビジネス データをインポートして、トレーニング用のデータを理解、クリーニング、集約、変換、および準備します。 参照する サンプルデータセットで Amazon SageMaker Data Wrangler の機能を調べる Data Wrangler で EDA を実行する方法の詳細については、
- データ処理ジョブを作成する – この手順では、データセットに対して行ったすべての変換を、構成済みの場所に保存されたフロー ファイルとしてエクスポートします。 Amazon シンプル ストレージ サービス (Amazon S3) の場所。 Data Wrangler によって生成されたフロー ファイルを使用したデータ処理ジョブは、データセットで学習した変換とトレーニング済みパラメーターを適用します。 データ処理ジョブが完了すると、出力ファイルは宛先ノードで構成された Amazon S3 の場所にアップロードされます。 デフォルトでは、refit オプションはオフになっていることに注意してください。 処理ジョブを即座に実行する代わりに、次のこともできます。 処理ジョブをスケジュールする Data Wrangler – Create Job を使用して数回クリックするだけで、特定の時間に実行できます。
- トレーニング済みパラメーターの調整機能を使用してデータ処理ジョブを作成する – 完全または強化されたデータセットでトレーニング済みパラメーターの再学習を強制するジョブの作成中に、新しい調整済みトレーニング済みパラメーター機能を選択します。 フロー ファイルを保存するための Amazon S3 の場所の設定に従って、データ処理ジョブは新しいフロー ファイルを作成または更新します。 ステップ 3 と同じ Amazon S2 の場所を設定すると、データ処理ジョブは、ステップ 2 で生成されたフロー ファイルを更新します。これを使用して、フローをデータに関連させることができます。 処理ジョブが完了すると、出力ファイルは宛先ノードで構成された S3 バケットにアップロードされます。 生産ワークフローのデータセット全体で更新されたフローを使用できます。
前提条件
開始する前に、データセットを S3 バケットにアップロードしてから、Data Wrangler にインポートします。 手順については、を参照してください。 AmazonS3からデータをインポートする.
それでは、アーキテクチャ図に記載されている手順を見ていきましょう。
Data Wrangler で EDA を実行する
トレーニング済みパラメーターの再調整機能を試すには、Data Wrangler で次の分析と変換を設定します。 EDA のセットアップの最後に、Data Wrangler は、データセットからトレーニング済みパラメーターを使用してキャプチャーされたフロー ファイルを作成します。
- 探索的データ分析のために、Amazon SageMaker Data Wrangler で新しいフローを作成します。
- Amazon S3 にアップロードしたビジネス データをインポートします。
- ファイルの種類、区切り文字、サンプリングなどを選択するためのデータとオプションをプレビューできます。 この例では、 最初のK データセットから最初の 50,000 レコードをインポートするために Data Wrangler によって提供されるサンプリング オプション。
- 選択する インポート.
- Data Wrangler によって適用されたデータ型の一致を確認したら、新しい分析を追加します。
- 分析タイプ、選択する データ品質と洞察レポート.
- 選択する 創造する.
Data Quality and Insights Report を使用すると、欠損値、無効な値、特徴の種類、外れ値の数などの一般的な情報を含む、データセットの簡単な概要を取得できます。 機能を選択できます property_type
& city
データセットに変換を適用して、トレーニング済みパラメーターの再調整機能を理解するため。
機能に注目しよう property_type
データセットから。 レポートでは 機能の詳細 セクションでは、 property_type
、カテゴリ機能である、および Data Wrangler によって 50,000 のサンプリングされたデータセットから導出された XNUMX つの一意の値。 完全なデータセットには、フィーチャのカテゴリがさらにある場合があります property_type
. 多くの一意の値を持つ機能の場合、序数のエンコードを好む場合があります。 機能にいくつかの一意の値がある場合は、ワンホット エンコーディング アプローチを使用できます。 この例では、ワンホット エンコーディングを選択します。 property_type
.
同様に、 city
多数の一意の値を持つテキスト データ型である機能に序数エンコーディングを適用してみましょう。
- Data Wrangler フローに移動し、プラス記号を選択して、 変換を追加.
- 選択する カテゴリをエンコードする カテゴリ機能を変換するためのオプション。
Data Quality and Insights Report の特徴 property_type
XNUMX つの固有のカテゴリを示します。 CONDO
, LOT
, MANUFACTURED
, SINGLE_FAMILY
, MULTI_FAMILY
, TOWNHOUSE
.
- 最適化の適用、選択する ワンホットエンコード.
機能にワンホット エンコーディングを適用した後 property_type
、新しい列として追加された個別の機能として、50,000 つのカテゴリすべてをプレビューできます。 このプレビューを生成するために、データセットから XNUMX レコードがサンプリングされたことに注意してください。 このフローで Data Wrangler 処理ジョブを実行すると、これらの変換がデータセット全体に適用されます。
- 新しい変換を追加して、 カテゴリをエンコードする フィーチャに変換を適用するには
city
、より多くの一意のカテゴリ テキスト値があります。 - この機能を数値表現にエンコードするには、次を選択します。 序数エンコード for 最適化の適用.
- この変換で [プレビュー] を選択します。
カテゴリ特徴が city
出力列の序数値にマップされます e_city
.
- を選択して、このステップを追加します。 アップデイト.
- 送信先を Amazon S3 に設定して、適用された変換をデータセットに保存し、出力を CSV ファイルとして生成できます。
Data Wrangler は、ユーザー インターフェイスで定義したワークフローをフロー ファイルとして保存し、設定されたデータ処理ジョブの Amazon S3 の場所にアップロードします。 このフロー ファイルは、Data Wrangler 処理ジョブを作成してより大きなデータセットに変換を適用する場合、または新しい強化データを変換してモデルを再トレーニングする場合に使用されます。
修復を有効にせずに Data Wrangler データ処理ジョブを起動する
これで、refit オプションが新しいデータセットでトレーニング済みパラメーターをどのように使用するかを確認できます。 このデモでは、同じデータで動作する XNUMX つの Data Wrangler 処理ジョブを定義します。 最初の処理ジョブでは修理が有効になりません。 XNUMX 番目の処理ジョブでは、refit を使用します。 最後に効果を比較します。
- 選択する ジョブを作成 Data Wrangler でデータ処理ジョブを開始します。
- 職種名、名前を入力します。
- トレーニング済みパラメーター、選択しないでください 修理.
- 選択する ジョブの構成.
- 出力フロー ファイルを保存するためのインスタンス タイプ、ボリューム サイズ、Amazon S3 の場所などのジョブ パラメータを設定します。
- Data Wrangler は、フロー ファイル S3 の場所にフロー ファイルを作成します。 フローは変換を使用してパラメーターをトレーニングし、後で refit オプションを使用してこれらのパラメーターを再トレーニングします。
- 選択する 創造する.
データ処理ジョブが完了するまで待って、宛先ノードで構成された S3 バケット内の変換されたデータを確認します。
修復を有効にして Data Wrangler データ処理ジョブを起動する
トレーニング済みパラメーターの再調整機能を有効にして、別の処理ジョブを作成してみましょう。 このオプションは、データセット全体で再学習されたトレーニング済みパラメーターを適用します。 このデータ処理ジョブが完了すると、フロー ファイルが作成されるか、設定された Amazon S3 の場所に更新されます。
- 選択する ジョブを作成.
- 職種名、名前を入力します。
- トレーニング済みパラメーター選択 修理.
- あなたが選択した場合 全ラインナップを見る、すべてのトレーニング済みパラメーターを確認できます。
- 選択する ジョブの構成.
- Amazon S3 フロー ファイルの場所を入力します。
- 選択する 創造する.
データ処理ジョブが完了するまで待ちます。
宛先ノードで構成された S3 バケットを参照して、定義された変換を実行するデータ処理ジョブによって生成されたデータを表示します。
Data Wrangler 処理ジョブを実行するための Python コードへのエクスポート
Data Wrangler の [ジョブの作成] オプションを使用して処理ジョブを開始する代わりに、Data Wrangler フローを Jupyter ノートブックにエクスポートして、データ処理ジョブをトリガーできます。 Data Wrangler は、入力、出力、処理ジョブ構成、およびジョブ ステータス チェック用のコードを含む Jupyter ノートブックを生成します。 データ変換の要件に従って、パラメーターを変更または更新できます。
- 最終の横にあるプラス記号を選択します 最適化の適用 ノード。
- 選択する 輸出 〜に Amazon S3 (Jupyter ノートブック経由).
入力、出力、処理ジョブ構成、およびジョブ ステータス チェック用のコードを含む、Jupyter ノートブックが開かれているのを確認できます。
- コードを介してトレーニング済みパラメーターの再調整オプションを適用するには、次のように設定します。
refit
パラメータをTrue
.
データ処理ジョブの結果を比較する
Data Wrangler 処理ジョブが完了したら、3 つの新しい Data Wrangler フローを作成し、データ処理ジョブによって生成された出力を設定済みの Amazon SXNUMX 送信先に保存する必要があります。
Amazon S3 宛先フォルダー内の構成済みの場所を参照して、データ処理ジョブの出力を確認できます。
処理ジョブの結果を調べるには、Data Quality and Insights Report を使用して XNUMX つの新しい Data Wrangler フローを作成し、変換結果を比較します。
- Amazon SageMaker Data Wrangler で新しいフローを作成します。
- Amazon S3 から出力ファイルを有効にしないでデータ処理ジョブをインポートします。
- 新しい分析を追加します。
- 分析タイプ、選択する データ品質と洞察レポート.
- 選択する 創造する.
上記の手順を繰り返し、新しいデータ ラングラー フローを作成して、refit を有効にしてデータ処理ジョブの出力を分析します。
次に、機能の処理ジョブの出力を見てみましょう property_type
Data Quality and Insights レポートを使用します。 データとインサイト レポートの一覧で機能の詳細までスクロールします。 feature_type
.
トレーニング済みパラメーター処理ジョブの再調整により、データセット全体でトレーニング済みパラメーターが再調整され、新しい値がエンコードされました APARTMENT
完全なデータセットで XNUMX つの個別の値を使用します。
通常の処理ジョブは、サンプル データセットのトレーニング済みパラメーターを適用しました。 property_type
特徴。 データの場合 feature_type
APARTMENT
無効な処理戦略 スキップが適用され、データ処理ジョブはこの新しいカテゴリを学習しません。 ワンホット エンコーディングは、新しいデータに存在するこの新しいカテゴリをスキップし、エンコーディングはカテゴリをスキップします APARTMENT
.
ここで、別の機能に注目しましょう。 city
. 再調整トレーニング済みパラメーター処理ジョブは、パラメーターで使用可能なすべての値を再学習しました city
新しいデータを考慮して、機能。
図に示すように 機能の概要 レポートのセクション、新しいエンコードされた機能列 e_city
は、トレーニング済みパラメーターの再調整機能を使用して、100% 有効なパラメーターを持っています。
対照的に、通常の処理ジョブでは、新しいエンコードされた特徴列に 82.4% の欠損値があります。 e_city
. この現象は、学習済みのトレーニング済みパラメーターのサンプル セットのみが完全なデータセットに適用され、データ処理ジョブによって再適合が適用されないためです。
次のヒストグラムは、序数でエンコードされた特徴を示しています e_city
. 最初のヒストグラムは、refit オプションで変換された特徴のものです。
次のヒストグラムは、再調整オプションなしで変換されたフィーチャのものです。 オレンジ色の列は、Data Quality and Insights レポートの欠損値 (NaN) を示しています。 サンプル データセットから学習されていない新しい値は、Data Wrangler UI で構成されているように非数 (NaN) として置き換えられます。 無効な処理戦略.
refit トレーニング済みパラメーターを使用したデータ処理ジョブは、 property_type
& city
データセット全体からの新しい値を考慮した機能。 再調整されたトレーニング済みパラメーターがない場合、データ処理ジョブは、サンプリングされたデータセットの事前学習済みトレーニング済みパラメーターのみを使用します。 次に、それらを新しいデータに適用しますが、新しい値はエンコードの対象とは見なされません。 これは、モデルの精度に影響します。
クリーンアップ
Data Wrangler を使用していないときは、Data Wrangler が実行されているインスタンスをシャットダウンして、追加料金が発生しないようにすることが重要です。
作業が失われないように、Data Wrangler をシャットダウンする前にデータ フローを保存してください。
- データフローを保存するには Amazon SageMakerスタジオ、選択する File、を選択します データラングラーの流れを保存. Data Wrangler は、60 秒ごとにデータ フローを自動的に保存します。
- Data Wrangler インスタンスをシャットダウンするには、Studio で、 インスタンスとカーネルの実行.
- アプリの実行で、sagemaker-data-wrangler-1.0 アプリの横にあるシャットダウン アイコンを選択します。
- 選択する すべてシャットダウン 確認します。
Data Wrangler は ml.m5.4xlarge インスタンスで実行されます。 このインスタンスは インスタンスの実行 Data Wrangler アプリをシャットダウンしたとき。
Data Wrangler アプリをシャットダウンした後、次に Data Wrangler フロー ファイルを開くときに再起動する必要があります。 これには数分かかる場合があります。
まとめ
この投稿では、Data Wrangler のトレーニング済みパラメーターの再調整機能の概要を説明しました。 この新機能を使用すると、トレーニング済みのパラメーターを Data Wrangler フローに保存できます。データ処理ジョブは、トレーニング済みのパラメーターを使用して、学習した変換を大規模なデータセットまたは強化データセットに適用します。 このオプションは、テキスト フィーチャ、数値データのベクトル化、外れ値の処理に適用できます。
ML ライフサイクルのデータ処理全体でトレーニング済みパラメーターを保持することで、データ処理ステップが簡素化および削減され、堅牢な特徴量エンジニアリングがサポートされ、新しいデータでのモデル トレーニングと強化トレーニングがサポートされます。
データ処理要件に合わせて、この新機能を試すことをお勧めします。
著者について
ハリハラン・スレッシュ AWS のシニア ソリューション アーキテクトです。 彼は、データベース、機械学習、および革新的なソリューションの設計に情熱を注いでいます。 AWS に入社する前は、Hariharan は製品アーキテクト、コア バンキング実装スペシャリスト、および開発者であり、11 年以上にわたって BFSI 組織と協力してきました。 テクノロジー以外では、パラグライダーとサイクリングを楽しんでいます。
サントッシュクルカルニ は、オーストラリアのスポーツ顧客と協力するアマゾン ウェブ サービスのエンタープライズ ソリューション アーキテクトです。 彼は、AI/ML、ビッグデータ、およびソフトウェア開発に関する知識を使用して、ビジネス上の問題を解決する大規模な分散アプリケーションを構築することに情熱を注いでいます。
ヴィシャル・カプール AWSAIのシニア応用科学者です。 彼は、顧客がデータラングラーのデータを理解できるよう支援することに情熱を注いでいます。 余暇には、マウンテンバイクやスノーボードを楽しんだり、家族と一緒に過ごしたりしています。
アニケト・マンジュナート Amazon SageMaker のソフトウェア開発エンジニアです。 彼は Amazon SageMaker Data Wrangler のサポートを支援し、分散機械学習システムに情熱を注いでいます。 仕事以外では、ハイキング、映画鑑賞、クリケットを楽しんでいます。