Amazon SageMaker Data Wrangler PlatoBlockchain Data IntelligenceのPySparkおよびAltairコードスニペットを使用して、データをより迅速に準備します。 垂直検索。 愛。

Amazon SageMaker Data WranglerのPySparkおよびAltairコードスニペットを使用して、データをより迅速に準備します

AmazonSageMakerデータラングラー は、機械学習(ML)用の専用のデータ集約および準備ツールです。 ビジュアルインターフェイスを使用してデータにアクセスし、探索的データ分析(EDA)と特徴エンジニアリングを実行できます。 EDA機能には、チャート(散布図やヒストグラムなど)のデータ分析機能と、機能の重要性、ターゲットリーク、モデルの説明可能性などの時間節約モデル分析機能が組み込まれています。 特徴エンジニアリング機能には300を超える組み込みの変換があり、Python、PySpark、またはSparkSQLランタイムのいずれかを使用してカスタム変換を実行できます。

カスタムの視覚化と変換のために、DataWranglerは一般的なタイプの視覚化と変換のサンプルコードスニペットを提供するようになりました。 この投稿では、これらのコードスニペットを使用してデータラングラーでEDAをクイックスタートする方法を示します。

ソリューションの概要

この記事の執筆時点では、データセットをデータラングラーにインポートできます。 Amazon シンプル ストレージ サービス (Amazon S3)、 アマゾンアテナ, Amazonレッドシフト、Databricks、およびSnowflake。 この投稿では、AmazonS3を使用して2014Amazonを保存します レビューデータセット。 以下は、データセットのサンプルです。

{ "reviewerID": "A2SUAM1J3GNN3B", "asin": "0000013714", "reviewerName": "J. McDonald", "helpful": [2, 3], "reviewText": "I bought this for my husband who plays the piano. He is having a wonderful time playing these old hymns. The music is sometimes hard to read because we think the book was published for singing from more than playing from. Great purchase though!", "overall": 5.0, "summary": "Heavenly Highway Hymns", "unixReviewTime": 1252800000, "reviewTime": "09 13, 2009" } 

この投稿では、XNUMXつの列を使用してEDAを実行します—asin, reviewTime, overall-それぞれ、製品ID、レビュー日時、および全体的なレビュースコアにマップされます。 このデータを使用して、数か月および数年にわたるレビュー数のダイナミクスを視覚化します。

データラングラーでのEDAのサンプルコードスニペットの使用

データラングラーでEDAの実行を開始するには、次の手順を実行します。

  1. ダウンロード デジタルミュージックレビューデータセット JSONを使用してAmazonS3にアップロードします。
    これをEDAの生のデータセットとして使用します。
  2. Open Amazon SageMakerスタジオ 新しいデータラングラーフローを作成し、AmazonS3からデータセットをインポートします。

    このデータセットにはXNUMXつの列がありますが、使用するのはXNUMXつだけです。 asin, reviewTime, overall。 他のXNUMXつの列を削除する必要があります。

  3. カスタム変換を作成して選択します Python(PySpark).
  4. 詳細 サンプルスニペットを検索する 選択して いくつかを除くすべての列を削除します.
  5. 提供されたスニペットをカスタムトランスフォームに入力し、指示に従ってコードを変更します。
    # Specify the subset of columns to keep
    cols = ["asin", "reviewTime", "overall"] cols_to_drop = set(df.columns).difference(cols) df = df.drop(*cols_to_drop)

    必要な列がすべて揃ったので、データをフィルタリングして、2000〜2020年のレビューのみを保持しましょう。

  6. 範囲外のタイムスタンプをフィルタリングする 2000年以前と2020年以降のデータを削除するスニペット:
    from pyspark.sql.functions import col
    from datetime import datetime # specify the start and the stop timestamp
    timestamp_start = datetime.strptime("2000-01-01 12:00:00", "%Y-%m-%d %H:%M:%S")
    timestamp_stop = datetime.strptime("2020-01-01 12:00:00", "%Y-%m-%d %H:%M:%S") df = df.filter(col("reviewTime").between(timestamp_start, timestamp_stop))

    次に、reviewTime列から年と月を抽出します。

  7. 日付/時刻を機能化する 変換します。
  8. 列を抽出する、選択する & .

    次に、前のステップで作成した年と月ごとのレビュー数を集計します。

  9. グループで統計を計算する スニペット:
    # Table is available as variable `df`
    from pyspark.sql.functions import sum, avg, max, min, mean, count # Provide the list of columns defining groups
    groupby_cols = ["reviewTime_year", "reviewTime_month"] # Specify the map of aggregate function to the list of colums
    # aggregates to use: sum, avg, max, min, mean, count
    aggregate_map = {count: ["overall"]} all_aggregates = []
    for a, cols in aggregate_map.items(): all_aggregates += [a(col) for col in cols] df = df.groupBy(groupby_cols).agg(*all_aggregates)

  10. 前のステップの集計の名前を count(overall) 〜へ reviews_num 選択することによって 列の管理 列の名前を変更 変換します。
    最後に、年別および月別のレビューの分布を視覚化するヒートマップを作成します。
  11. [分析]タブで、[ カスタム視覚化.
  12. 詳細 スニペットを検索 選択して ヒートマップ ドロップダウンメニューで
  13. 提供されたスニペットをカスタムビジュアライゼーションに入力します。
    # Table is available as variable `df`
    # Table is available as variable `df`
    import altair as alt # Takes first 1000 records of the Dataframe
    df = df.head(1000) chart = ( alt.Chart(df) .mark_rect() .encode( # Specify the column names for X and Y axis, # Both should have discrete values: ordinal (:O) or nominal (:N) x= "reviewTime_year:O", y="reviewTime_month:O", # Color can be both discrete (:O, :N) and quantitative (:Q) color="reviews_num:Q", ) .interactive()
    )

    次の視覚化が得られます。

    Amazon SageMaker Data Wrangler PlatoBlockchain Data IntelligenceのPySparkおよびAltairコードスニペットを使用して、データをより迅速に準備します。 垂直検索。 愛。
    ヒートマップをさらに強化したい場合は、データをスライスして2011年より前のレビューのみを表示できます。2012年以降のレビューが大量にあるため、作成したヒートマップではこれらを特定するのは困難です。

  14. カスタムビジュアライゼーションにXNUMX行のコードを追加します。
    # Table is available as variable `df`
    import altair as alt df = df[df.reviewTime_year < 2011]
    # Takes first 1000 records of the Dataframe
    df = df.head(1000) chart = ( alt.Chart(df) .mark_rect() .encode( # Specify the column names for X and Y axis, # Both should have discrete values: ordinal (:O) or nominal (:N) x= "reviewTime_year:O", y="reviewTime_month:O", # Color can be both discrete (:O, :N) and quantitative (:Q) color="reviews_num:Q", ) .interactive()
    )

次のヒートマップを取得します。

Amazon SageMaker Data Wrangler PlatoBlockchain Data IntelligenceのPySparkおよびAltairコードスニペットを使用して、データをより迅速に準備します。 垂直検索。 愛。

現在、ヒートマップは2011年より前のレビューをより明確に反映しています。季節的な影響を観察でき(年末には購入が増え、レビューが増える)、2003年2005月やXNUMX年XNUMX月などの異常な月を特定できます。さらに調査する価値があります。それらの異常の原因を特定します。

まとめ

Data Wranglerは、ML用の専用のデータ集約および準備ツールです。 この投稿では、Data Wranglerが提供するコードスニペットを使用してEDAを実行し、データをすばやく変換する方法を示しました。 スニペットを見つけてコードを入力し、データセットに一致するようにパラメータを調整するだけです。 スクリプトを繰り返し処理して、より複雑な視覚化と変換を作成できます。
データラングラーの詳細については、以下を参照してください。 データラングラーフローの作成と使用.


著者について

Amazon SageMaker Data Wrangler PlatoBlockchain Data IntelligenceのPySparkおよびAltairコードスニペットを使用して、データをより迅速に準備します。 垂直検索。 愛。ニキータ・イヴキン は、Amazon SageMakerDataWranglerの応用科学者です。

Amazon SageMaker Data Wrangler PlatoBlockchain Data IntelligenceのPySparkおよびAltairコードスニペットを使用して、データをより迅速に準備します。 垂直検索。 愛。ハイダーナクヴィ AWSのソリューションアーキテクトです。 彼は、広範なソフトウェア開発とエンタープライズアーキテクチャの経験があります。 彼は、お客様がAWSでビジネスの成果を達成できるようにすることに重点を置いています。 彼はニューヨークを拠点としています。

Amazon SageMaker Data Wrangler PlatoBlockchain Data IntelligenceのPySparkおよびAltairコードスニペットを使用して、データをより迅速に準備します。 垂直検索。 愛。ハリッシュラジャゴパラン アマゾンウェブサービスのシニアソリューションアーキテクトです。 Harishは企業のお客様と協力し、クラウドへの移行を支援します。

Amazon SageMaker Data Wrangler PlatoBlockchain Data IntelligenceのPySparkおよびAltairコードスニペットを使用して、データをより迅速に準備します。 垂直検索。 愛。ジェームズ・ウー AWSのシニアAI/MLスペシャリストSAです。 彼は顧客と協力して、クラウドジャーニーを加速し、ビジネス価値の実現を迅速に進めます。 それに加えて、Jamesは、さまざまなドメインにわたる大規模なAI/MLソリューションの開発とスケーリングにも情熱を注いでいます。 AWSに入社する前は、市場および広告業界のトップグローバル企業のMLエンジニアおよびソフトウェア開発者とともに多分野のイノベーションテクノロジーチームを率いていました。

タイムスタンプ:

より多くの AWS機械学習