Amazon MLS-C01: 探索的データ分析と可視化 — 学習ガイド
こちらの一部です: AWS Machine Learning Specialty MLS-C01 — 学習ガイド. 検証済みの解答で練習: Amazon試験ハブ, または時間制限付き模擬試験に挑戦: ExamRoll.io.
分布、変換、特徴量スケーリング
生の特徴量の分布を理解することは、探索的データ分析(EDA)の基礎です。まず、SageMaker StudioノートブックまたはSageMaker Processingジョブ(scikit-learn/pandasを使用したml.m5.xlarge)で、ヒストグラム、カーネル密度推定、分位数要約を用いて各変数のプロファイリングを行います。対数変換、Box–Cox変換、Yeo–Johnson変換、ランクベースの変換(分位点変換)は、右に歪んだデータに適していますが、Box–Cox変換は厳密に正の値を必要とし、ゼロでは失敗します。よくある落とし穴として、ゼロをオフセットせずに対数/Box–Cox変換を適用したり、モデル出力を解釈する際に変換を元に戻すのを忘れたりすることが挙げられます。標準化(平均ゼロ、単位分散)は、距離ベースの手法(k-means、PCA、SVM)や正則化線形モデルを適用する前に不可欠です。Min-Maxスケーリングは、有界な活性化関数を持つニューラルネットワークに有用です。デプロイ時には、変換器をSageMaker Feature Storeまたはモデルアーティファクトとして永続化し、オンライン推論とバッチ推論で同一の前処理が使用されるようにします。非常に大規模なS3データセットをプロファイリングし、要約統計量を生成するにはAWS GlueまたはGlue DataBrewを使用し、層化抽出されたサンプルをクエリするにはAthenaを使用します。決定基準はアルゴリズムの感度に依存します。ツリーアンサンブルはスケーリングされていない特徴量を許容しますが、線形および距離ベースの手法は許容しません。最後に、頑健な統計量(中央値、IQR)を用いて外れ値やヘビーテールをチェックし、データをやみくもに削除するのではなく、クリッピング、ウィンザライズ、または個別モデリング(セグメンテーション)を行うべきか検討します。
残差分析、学習曲線、診断テスト
残差は、モデルの誤設定(ゼロでない平均、不均一分散、自己相関、または非線形性)を明らかにします。これらは診断されなければなりません。SageMaker Studioで、残差を予測値に対して、また主要な特徴量に対してプロットします。自己相関についてはDurbin–Watson統計量を計算し、時系列の残差相関にはLjung–Box検定を使用します。回帰では、不均一分散を示す漏斗状の形状を探し、分散安定化変換を適用するか、不均一分散モデル(例:目的関数を調整したXGBoostや確率的予測)を使用します。学習曲線(訓練データセットサイズに対する訓練誤差と検証誤差のプロット)は、高バリアンス(過学習)または高バイアス(学習不足)を特定します。SageMaker Debuggerを使用してエポックごとのテンソルとCloudWatchメトリクスをキャプチャし、訓練損失が減少する一方で検証損失が発散した場合にトリガーされるCloudWatchアラームを追加します。よくある落とし穴として、時系列データに対してランダムな交差検証を使用すること(時間ベースの分割を使用すべき)や、不均衡データセットを正解率で評価すること(適合率-再現率曲線やAUC-PRを優先すべき)が挙げられます。ハイパーパラメータチューニングでは、これらの診断結果に基づいて意思決定を行います。検証ギャップが続く場合は、正則化を強める、データを追加する、またはモデルの複雑さを低減します。両方の誤差が高い場合は、モデルのキャパシティを増やすか、特徴量を追加します。再現性のために、診断プロットとメトリクスをSageMaker Experimentsを介して永続化します。
次元削減、PCA、固有値分析、クラスタリング
次元削減はノイズを低減し、解釈可能性を向上させます。スケーリング後にPCAまたはランダム化SVD(EMR/Glue上のscikit-learnまたはSpark MLlib)を適用します。説明分散比を調べてコンポーネント数を選択し、ローディングを調べてコンポーネントを元の特徴量にマッピングし直します。固有ベクトルの符号は任意であるため、ローディングの絶対値を解釈し、特徴量をその大きさでグループ化します。非常に非線形な構造には、t-SNEまたはUMAPを可視化のみに使用し、慎重な交差検証なしにモデルの前処理として使用してはいけません。クラスタリングでは、球状クラスタにはk-means(スケーリングが必要)、ソフトな割り当てにはガウス混合モデル(GMM)、密度ベースの形状にはDBSCANを選択します。比較のためにシルエットスコアとDavies–Bouldinインデックスを実行します。大規模データセットでは、SageMaker組み込みのk-means(GPU/CPUインスタンス)を使用するか、SageMaker Processingでミニバッチk-meansを実行します。カテゴリカルにエンコードされたワンホット特徴量にPCAを適用する落とし穴に注意してください。特徴量ハッシングまたは埋め込み層を検討してください。kを決定するには、エルボープロット、説明分散プロット、およびサブサンプル間でのクラスタの安定性を使用します。クラスタの重心とPCA変換器をSageMaker Feature Storeに永続化し、下流のリアルタイムスコアリングやセグメントベースのモデルで一貫した変換が使用されるようにします。
ドリフトとパフォーマンスのための可視化、モニタリング、およびAWS統合
可視化は、探索的かつ運用的なものです。アドホックなプロットにはSageMaker Studioのmatplotlib/seabornを、本番のパフォーマンスメトリクスを追跡するダッシュボードにはAmazon QuickSightを使用します。モデルのドリフトとデータ品質については、SageMaker Model MonitorとSageMaker Clarifyを介して、代表的なトレーニングサンプルでベースラインを確立し、分布のシフト、特徴量の重要度の変化、バイアスを検出します。Processingジョブのアーティファクトから派生したベースラインでModel Monitorを設定し、デプロイされたエンドポイントで1時間ごと/1日ごとのチェックによる継続的なモニタリングを有効化します。CloudWatchイベントとSNSでアラートをトリガーできます。ストリーミングの取り込みと分析には、Kinesis Data Firehoseを使用して、フォーマットをParquetに変換しながらJSONをS3に永続化する(レコードフォーマット変換とGlueカタログ統合を有効化)か、カスタム変換のためにLambdaをアタッチします。圧縮ファイルに対してほぼリアルタイムのSQLを実行するには、Glueデータカタログにデータをパーティション分割して登録し、Athenaでクエリを実行します。新しいS3オブジェクトが到着した際にはLambda経由でパーティションを更新します。よくある落とし穴には、ベースラインのバージョニングを怠ること、スキーマの進化を無視すること(Glue Schema Registryを使用)、集計メトリクスのみに依存することが含まれます。局所的な劣化を検出するために、常に特徴量ごとのドリフトとセグメントごとのパフォーマンスを含めるようにしてください。SageMaker ExperimentsとModel Monitorを併用して、ハイパーパラメータの変更をドリフトイベントと関連付け、リネージを維持します。
実践的な問題:ユースケースシナリオ
シナリオ: Acme Retailer社は、SageMaker Studio、S3データレイク、Kinesis Firehoseによる取り込み、Glueデータカタログ、そして可視化のためのQuickSightを含むAWS MLスタックを使用しています。チームは顧客の人口統計情報、セッションログ、購入履歴をJSONおよびParquetとしてS3に保存しています。
課題: 今後6ヶ月で最も解約する可能性が高い顧客セグメントを特定し、デプロイ後に特徴量の分布やモデルのパフォーマンスがドリフトした場合にそれを検出するためのモニタリングを確立すること。
推奨アプローチ:
- SageMaker Processingジョブ(ml.m5.xlarge)を作成し、pandas/sklearnを使用してデータをサンプリングおよびプロファイリングし、必要に応じて対数/Box–Cox変換を適用し、前処理アーティファクトをSageMaker Feature Storeに登録します。
- スケーリング後にPCA(scikit-learnまたはGlue/EMR上のSpark ML)を計算して次元を削減し、説明分散とローディングを調査し、SageMaker xgboostまたは組み込みのk-meansでクラスタリングを実行してセグメントを導出します。
- 時間を考慮した訓練/検証分割を使用して分類モデル(SageMakerのXGBoostまたはTensorFlowの小規模なNN)をトレーニングし、メトリクスをSageMaker Experimentsに記録し、不均衡データに対して早期停止とクラス重み付けを設定します。
- SageMakerエンドポイントでデプロイし、Processingジョブから生成されたベースラインを使用してModel Monitorを有効にし、1時間ごとのドリフトチェックとSNS経由で通知するCloudWatchアラームを設定します。セグメントレベルのパフォーマンスとドリフトをQuickSightで可視化します。
論理的根拠: このアプローチは、堅牢な前処理、解釈可能な次元削減、スケーラブルなクラスタリングを組み合わせてセグメンテーションを実現します。一方、SageMaker Model MonitorとQuickSightは、データとパフォーマンスのドリフトを運用レベルで検出する手段を提供し、Feature Storeを通じて再現可能な前処理を保証し、根本原因分析のために実験を追跡します。
← データエンジニアリングと特徴量エンジニアリング · すべてのドメイン · モデリング — 教師ありと教師なし(古典的なML) →
これらの問題を練習する → · ExamRoll.ioで時間制限付き練習 →
Pass the whole exam — not just this question
You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.
試験に合格する →