Chuẩn bị dữ liệu nhanh hơn với các đoạn mã PySpark và Altair trong Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Chuẩn bị dữ liệu nhanh hơn với các đoạn mã PySpark và Altair trong Amazon SageMaker Data Wrangler

Trình sắp xếp dữ liệu Amazon SageMaker là một công cụ chuẩn bị và tổng hợp dữ liệu được xây dựng có mục đích cho học máy (ML). Nó cho phép bạn sử dụng giao diện trực quan để truy cập dữ liệu và thực hiện phân tích dữ liệu khám phá (EDA) và kỹ thuật tính năng. Tính năng EDA đi kèm với khả năng phân tích dữ liệu tích hợp cho biểu đồ (chẳng hạn như biểu đồ phân tán hoặc biểu đồ) và khả năng phân tích mô hình tiết kiệm thời gian như tầm quan trọng của tính năng, rò rỉ mục tiêu và khả năng giải thích mô hình. Khả năng kỹ thuật tính năng có hơn 300 biến đổi được tích hợp sẵn và có thể thực hiện các biến đổi tùy chỉnh bằng cách sử dụng thời gian chạy Python, PySpark hoặc Spark SQL.

Đối với hình ảnh hóa và chuyển đổi tùy chỉnh, Data Wrangler hiện cung cấp các đoạn mã ví dụ cho các loại hình ảnh hóa và chuyển đổi phổ biến. Trong bài đăng này, chúng tôi trình bày cách sử dụng các đoạn mã này để khởi động nhanh EDA của bạn trong Data Wrangler.

Tổng quan về giải pháp

Tại thời điểm viết bài này, bạn có thể nhập bộ dữ liệu vào Data Wrangler từ Dịch vụ lưu trữ đơn giản của Amazon (Amazon S3), amazon Athena, Amazon RedShift, Databricks và Snowflake. Đối với bài đăng này, chúng tôi sử dụng Amazon S3 để lưu trữ Amazon 2014 đánh giá tập dữ liệu. Sau đây là một mẫu của tập dữ liệu:

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

Trong bài đăng này, chúng tôi thực hiện EDA bằng cách sử dụng ba cột—asin, reviewTimeoverall—Có ánh xạ đến ID sản phẩm, ngày giờ đánh giá và điểm đánh giá tổng thể, tương ứng. Chúng tôi sử dụng dữ liệu này để trực quan hóa các động lực cho số lượng đánh giá qua các tháng và năm.

Sử dụng đoạn mã ví dụ cho EDA trong Data Wrangler

Để bắt đầu thực hiện EDA trong Data Wrangler, hãy hoàn thành các bước sau:

  1. Tải về Bộ dữ liệu đánh giá Digital Music JSON và tải nó lên Amazon S3.
    Chúng tôi sử dụng dữ liệu này làm tập dữ liệu thô cho EDA.
  2. Mở Xưởng sản xuất Amazon SageMaker và tạo luồng Data Wrangler mới và nhập tập dữ liệu từ Amazon S3.

    Tập dữ liệu này có chín cột, nhưng chúng tôi chỉ sử dụng ba: asin, reviewTimeoverall. Chúng ta cần bỏ sáu cột còn lại.

  3. Tạo một chuyển đổi tùy chỉnh và chọn Trăn (PySpark).
  4. Mở rộng Tìm kiếm đoạn mã ví dụ Và chọn Bỏ tất cả các cột ngoại trừ một số cột.
  5. Nhập đoạn mã được cung cấp vào biến đổi tùy chỉnh của bạn và làm theo hướng dẫn để sửa đổi mã.
    # 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)

    Bây giờ chúng ta có tất cả các cột mà chúng ta cần, hãy lọc dữ liệu để chỉ giữ lại các đánh giá trong khoảng 2000–2020.

  6. Sử dụng Lọc dấu thời gian bên ngoài phạm vi đoạn mã để giảm dữ liệu trước năm 2000 và sau năm 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))

    Tiếp theo, chúng tôi trích xuất năm và tháng từ cột Thời gian đánh giá.

  7. Sử dụng Ngày / giờ lông vũ biến đổi.
  8. Trong Trích xuất các cột, chọn nămtháng.

    Tiếp theo, chúng tôi muốn tổng hợp số lượng đánh giá theo năm và tháng mà chúng tôi đã tạo ở bước trước.

  9. Sử dụng Tính toán thống kê theo nhóm đoạn mã:
    # 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. Đổi tên tập hợp của bước trước từ count(overall) đến reviews_num băng cach chọn Quản lý các cột Đổi tên cột biến đổi.
    Cuối cùng, chúng tôi muốn tạo một bản đồ nhiệt để trực quan hóa việc phân bổ các đánh giá theo năm và theo tháng.
  11. Trên tab phân tích, hãy chọn Trực quan hóa tùy chỉnh.
  12. Mở rộng Tìm kiếm đoạn mã Và chọn Heatmap trên menu thả xuống.
  13. Nhập đoạn mã được cung cấp vào trực quan hóa tùy chỉnh của bạn:
    # 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()
    )

    Chúng tôi có được hình dung sau đây.

    Chuẩn bị dữ liệu nhanh hơn với các đoạn mã PySpark và Altair trong Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.
    Nếu bạn muốn nâng cao hơn nữa bản đồ nhiệt, bạn có thể chia nhỏ dữ liệu để chỉ hiển thị các bài đánh giá trước năm 2011. Rất khó để xác định các bài đánh giá này trong bản đồ nhiệt mà chúng tôi vừa tạo do số lượng lớn các bài đánh giá kể từ năm 2012.

  14. Thêm một dòng mã vào trực quan hóa tùy chỉnh của bạn:
    # 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()
    )

Chúng tôi nhận được bản đồ nhiệt sau đây.

Chuẩn bị dữ liệu nhanh hơn với các đoạn mã PySpark và Altair trong Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.

Giờ đây, bản đồ nhiệt phản ánh các đánh giá trước năm 2011 một cách rõ ràng hơn: chúng ta có thể quan sát các tác động theo mùa (cuối năm mang lại nhiều mua hàng hơn và do đó có nhiều đánh giá hơn) và có thể xác định các tháng bất thường, chẳng hạn như tháng 2003 năm 2005 và tháng XNUMX năm XNUMX. Cần điều tra thêm để xác định nguyên nhân của những dị thường đó.

Kết luận

Data Wrangler là một công cụ chuẩn bị và tổng hợp dữ liệu được xây dựng có mục đích cho ML. Trong bài đăng này, chúng tôi đã trình bày cách thực hiện EDA và chuyển đổi dữ liệu của bạn một cách nhanh chóng bằng cách sử dụng các đoạn mã do Data Wrangler cung cấp. Bạn chỉ cần tìm một đoạn mã, nhập mã và điều chỉnh các thông số để khớp với tập dữ liệu của mình. Bạn có thể tiếp tục lặp lại tập lệnh của mình để tạo các hình ảnh và chuyển đổi phức tạp hơn.
Để tìm hiểu thêm về Data Wrangler, hãy tham khảo Tạo và sử dụng Luồng trình xử lý dữ liệu.


Về các tác giả

Chuẩn bị dữ liệu nhanh hơn với các đoạn mã PySpark và Altair trong Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.Nikita Ivkin là một Nhà Khoa học Ứng dụng, Amazon SageMaker Data Wrangler.

Chuẩn bị dữ liệu nhanh hơn với các đoạn mã PySpark và Altair trong Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.Haider Naqvi là Kiến trúc sư Giải pháp tại AWS. Ông có nhiều kinh nghiệm phát triển phần mềm và kiến ​​trúc doanh nghiệp. Anh ấy tập trung vào việc cho phép khách hàng đạt được kết quả kinh doanh với AWS. Anh ấy sống ở New York.

Chuẩn bị dữ liệu nhanh hơn với các đoạn mã PySpark và Altair trong Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.Harish Rajagopalan là Kiến trúc sư giải pháp cao cấp tại Amazon Web Services. Harish làm việc với khách hàng doanh nghiệp và giúp họ trong hành trình trên đám mây.

Chuẩn bị dữ liệu nhanh hơn với các đoạn mã PySpark và Altair trong Amazon SageMaker Data Wrangler PlatoBlockchain Data Intelligence. Tìm kiếm dọc. Ái.James Wu là Chuyên gia cao cấp về AI / ML SA tại AWS. Anh ấy làm việc với khách hàng để tăng tốc hành trình đám mây của họ và theo dõi nhanh việc nhận ra giá trị kinh doanh của họ. Ngoài ra, James cũng rất đam mê phát triển và mở rộng các giải pháp AI / ML lớn trên nhiều lĩnh vực khác nhau. Trước khi gia nhập AWS, ông đã lãnh đạo một nhóm công nghệ đổi mới đa lĩnh vực với các kỹ sư ML và nhà phát triển phần mềm cho một công ty toàn cầu hàng đầu về thị trường và ngành quảng cáo.

Dấu thời gian:

Thêm từ Học máy AWS