เตรียมข้อมูลได้เร็วยิ่งขึ้นด้วยข้อมูลโค้ด PySpark และ Altair ใน Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

เตรียมข้อมูลได้เร็วยิ่งขึ้นด้วยข้อมูลโค้ด PySpark และ Altair ใน Amazon SageMaker Data Wrangler

Amazon SageMaker ข้อมูล Wrangler เป็นเครื่องมือรวบรวมและเตรียมข้อมูลที่สร้างขึ้นตามวัตถุประสงค์สำหรับการเรียนรู้ของเครื่อง (ML) ช่วยให้คุณใช้อินเทอร์เฟซแบบภาพเพื่อเข้าถึงข้อมูลและดำเนินการวิเคราะห์ข้อมูลเชิงสำรวจ (EDA) และวิศวกรรมคุณลักษณะ คุณลักษณะ EDA มาพร้อมกับความสามารถในการวิเคราะห์ข้อมูลในตัวสำหรับแผนภูมิ (เช่น พล็อตกระจายหรือฮิสโตแกรม) และความสามารถในการวิเคราะห์แบบจำลองที่ช่วยประหยัดเวลา เช่น ความสำคัญของคุณลักษณะ การรั่วไหลของเป้าหมาย และความสามารถในการอธิบายแบบจำลอง ความสามารถด้านวิศวกรรมคุณลักษณะมีการแปลงในตัวมากกว่า 300 แบบและสามารถทำการแปลงแบบกำหนดเองได้โดยใช้รันไทม์ Python, PySpark หรือ Spark SQL

สำหรับการแสดงภาพและการแปลงแบบกำหนดเอง ตอนนี้ Data Wrangler ได้จัดเตรียมข้อมูลโค้ดตัวอย่างสำหรับการแสดงภาพและการแปลงประเภททั่วไป ในโพสต์นี้ เราสาธิตวิธีใช้ข้อมูลโค้ดเหล่านี้เพื่อเริ่มต้น EDA ของคุณใน Data Wrangler อย่างรวดเร็ว

ภาพรวมโซลูชัน

ในขณะที่เขียนนี้ คุณสามารถนำเข้าชุดข้อมูลไปยัง Data Wrangler จาก บริการจัดเก็บข้อมูลอย่างง่ายของ Amazon (อเมซอน เอส3) อเมซอน อาเธน่า, อเมซอน Redshift, Databricks และ Snowflake สำหรับโพสต์นี้ เราใช้ Amazon S3 เพื่อจัดเก็บ 2014 Amazon ชุดข้อมูลรีวิว. ต่อไปนี้เป็นตัวอย่างของชุดข้อมูล:

{ "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" } 

ในโพสต์นี้ เราดำเนินการ EDA โดยใช้สามคอลัมน์—asin, reviewTimeและ overall—ซึ่งจับคู่กับรหัสผลิตภัณฑ์ วันที่เวลาตรวจสอบ และคะแนนรีวิวโดยรวม ตามลำดับ เราใช้ข้อมูลนี้เพื่อแสดงภาพไดนามิกสำหรับจำนวนรีวิวในแต่ละเดือนและหลายปี

การใช้ตัวอย่างโค้ดสำหรับ EDA ใน Data Wrangler

ในการเริ่มดำเนินการ EDA ใน Data Wrangler ให้ทำตามขั้นตอนต่อไปนี้:

  1. ดาวน์โหลด ชุดข้อมูลรีวิวเพลงดิจิตอล JSON และอัปโหลดไปยัง Amazon S3
    เราใช้สิ่งนี้เป็นชุดข้อมูลดิบสำหรับ EDA
  2. จุดเปิด สตูดิโอ Amazon SageMaker และสร้างโฟลว์ Data Wrangler ใหม่และนำเข้าชุดข้อมูลจาก Amazon S3

    ชุดข้อมูลนี้มีเก้าคอลัมน์ แต่เราใช้เพียงสามคอลัมน์เท่านั้น: asin, reviewTimeและ overall. เราจำเป็นต้องวางอีกหกคอลัมน์ที่เหลือ

  3. สร้างการแปลงแบบกำหนดเองแล้วเลือก หลาม (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. ใช้ กรองการประทับเวลานอกช่วง snippet ที่จะทิ้งข้อมูลก่อนปี 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. แสดง ค้นหาตัวอย่าง และเลือก Heatmap บนเมนูแบบเลื่อนลง
  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()
    )

    เราได้รับการสร้างภาพข้อมูลต่อไปนี้

    เตรียมข้อมูลได้เร็วยิ่งขึ้นด้วยข้อมูลโค้ด PySpark และ Altair ใน Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.
    หากคุณต้องการปรับปรุงแผนที่ความหนาแน่นให้ดียิ่งขึ้น คุณสามารถแบ่งข้อมูลเพื่อแสดงความเห็นก่อนปี 2011 เท่านั้น ซึ่งระบุได้ยากในแผนที่ความหนาแน่นที่เราเพิ่งสร้างขึ้นเนื่องจากมีรีวิวจำนวนมากตั้งแต่ปี 2012

  14. เพิ่มโค้ดหนึ่งบรรทัดในการแสดงภาพแบบกำหนดเองของคุณ:
    # 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()
    )

เราได้รับแผนที่ความร้อนต่อไปนี้

เตรียมข้อมูลได้เร็วยิ่งขึ้นด้วยข้อมูลโค้ด PySpark และ Altair ใน Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.

ขณะนี้ แผนที่ความหนาแน่นสะท้อนความเห็นก่อนปี 2011 ได้ชัดเจนขึ้น: เราสามารถสังเกตผลกระทบตามฤดูกาล (ช่วงสิ้นปีมีการซื้อมากขึ้น ดังนั้นจึงมีการตรวจทานมากขึ้น) และสามารถระบุเดือนที่ผิดปกติ เช่น ตุลาคม 2003 และ มีนาคม 2005 ได้ ควรตรวจสอบเพิ่มเติม เพื่อหาสาเหตุของความผิดปกติเหล่านั้น

สรุป

Data Wrangler คือเครื่องมือรวบรวมและเตรียมข้อมูลที่สร้างขึ้นตามวัตถุประสงค์สำหรับ ML ในโพสต์นี้ เราสาธิตวิธีดำเนินการ EDA และแปลงข้อมูลของคุณอย่างรวดเร็วโดยใช้ข้อมูลโค้ดที่ Data Wrangler จัดหาให้ คุณเพียงแค่ต้องค้นหาข้อมูลโค้ด ป้อนโค้ด และปรับพารามิเตอร์ให้ตรงกับชุดข้อมูลของคุณ คุณสามารถทำซ้ำสคริปต์ของคุณต่อไปเพื่อสร้างการแสดงภาพและการแปลงที่ซับซ้อนมากขึ้น
หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ Data Wrangler โปรดดูที่ สร้างและใช้ Data Wrangler Flow.


เกี่ยวกับผู้เขียน

เตรียมข้อมูลได้เร็วยิ่งขึ้นด้วยข้อมูลโค้ด PySpark และ Altair ใน Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.นิกิต้า อิฟคิน เป็นนักวิทยาศาสตร์ประยุกต์ Amazon SageMaker Data Wrangler

เตรียมข้อมูลได้เร็วยิ่งขึ้นด้วยข้อมูลโค้ด PySpark และ Altair ใน Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.ไฮเดอร์ นาควี เป็นสถาปนิกโซลูชันที่ AWS เขามีประสบการณ์ด้านการพัฒนาซอฟต์แวร์และสถาปัตยกรรมองค์กรอย่างกว้างขวาง เขามุ่งเน้นที่การทำให้ลูกค้าบรรลุผลทางธุรกิจด้วย AWS เขามาจากนิวยอร์ก

เตรียมข้อมูลได้เร็วยิ่งขึ้นด้วยข้อมูลโค้ด PySpark และ Altair ใน Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.หริศ ราชโกปาลัน เป็นสถาปนิกโซลูชันอาวุโสที่ Amazon Web Services Harish ทำงานร่วมกับลูกค้าองค์กรและช่วยเหลือพวกเขาในการเดินทางบนคลาวด์

เตรียมข้อมูลได้เร็วยิ่งขึ้นด้วยข้อมูลโค้ด PySpark และ Altair ใน Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence ค้นหาแนวตั้ง AI.เจมส์ หวู่ เป็นผู้เชี่ยวชาญด้าน AI/ML อาวุโส SA ที่ AWS เขาทำงานร่วมกับลูกค้าเพื่อเร่งความเร็วการเดินทางบนคลาวด์และติดตามการสร้างมูลค่าทางธุรกิจอย่างรวดเร็ว นอกจากนั้น James ยังหลงใหลในการพัฒนาและปรับขนาดโซลูชัน AI/ ML ขนาดใหญ่ในโดเมนต่างๆ ก่อนร่วมงานกับ AWS เขาเป็นผู้นำทีมเทคโนโลยีนวัตกรรมแบบสหสาขาวิชาชีพกับวิศวกร ML และนักพัฒนาซอฟต์แวร์สำหรับบริษัทชั้นนำระดับโลกในตลาดและอุตสาหกรรมโฆษณา

ประทับเวลา:

เพิ่มเติมจาก AWS Machine Learning AWS