Langkah 3: Unduh, Jelajahi, dan Ubah Dataset - Amazon SageMaker

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Langkah 3: Unduh, Jelajahi, dan Ubah Dataset

Pada langkah ini, Anda memuat kumpulan data Sensus Dewasa ke instance notebook menggunakan Pustaka SHAP (SHapleyAdditiveexPlanations), meninjau kumpulan data, mengubahnya, dan mengunggahnya ke Amazon S3. SHAPadalah pendekatan teoritis permainan untuk menjelaskan output dari setiap model pembelajaran mesin. Untuk informasi selengkapnyaSHAP, lihat Selamat datang di SHAP dokumentasi.

Untuk menjalankan contoh berikut, tempelkan kode sampel ke sel di instance notebook Anda.

Muat Dataset Sensus Dewasa Menggunakan SHAP

Menggunakan SHAP pustaka, impor dataset Sensus Dewasa seperti yang ditunjukkan berikut:

import shap X, y = shap.datasets.adult() X_display, y_display = shap.datasets.adult(display=True) feature_names = list(X.columns) feature_names
catatan

Jika kernel Jupyter saat ini tidak memiliki SHAP pustaka, instal dengan menjalankan perintah berikut: conda

%conda install -c conda-forge shap

Jika Anda menggunakan JupyterLab, Anda harus menyegarkan kernel secara manual setelah instalasi dan pembaruan selesai. Jalankan IPython skrip berikut untuk mematikan kernel (kernel akan restart secara otomatis):

import IPython IPython.Application.instance().kernel.do_shutdown(True)

Objek feature_names daftar harus mengembalikan daftar fitur berikut:

['Age', 'Workclass', 'Education-Num', 'Marital Status', 'Occupation', 'Relationship', 'Race', 'Sex', 'Capital Gain', 'Capital Loss', 'Hours per week', 'Country']
Tip

Jika memulai dengan data yang tidak berlabel, Anda dapat menggunakan Amazon SageMaker Ground Truth untuk membuat alur kerja pelabelan data dalam hitungan menit. Untuk mempelajari lebih lanjut, lihat Data Label.

Ikhtisar Dataset

Jalankan skrip berikut untuk menampilkan ikhtisar statistik dari kumpulan data dan histogram fitur numerik.

display(X.describe()) hist = X.hist(bins=30, sharey=True, figsize=(20, 10))
Ikhtisar kumpulan data Sensus Dewasa.
Tip

Jika Anda ingin menggunakan kumpulan data yang perlu dibersihkan dan diubah, Anda dapat menyederhanakan dan merampingkan preprocessing data dan rekayasa fitur menggunakan Amazon Data Wrangler. SageMaker Untuk mempelajari lebih lanjut, lihat Mempersiapkan Data ML dengan Amazon SageMaker Data Wrangler.

Pisahkan Dataset menjadi Train, Validation, dan Test Datasets

Menggunakan Sklearn, bagi dataset menjadi satu set pelatihan dan set tes. Set pelatihan digunakan untuk melatih model, sedangkan set tes digunakan untuk mengevaluasi kinerja model terlatih akhir. Dataset diurutkan secara acak dengan benih acak tetap: 80 persen dari kumpulan data untuk set pelatihan dan 20 persennya untuk satu set tes.

from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=1) X_train_display = X_display.loc[X_train.index]

Pisahkan set pelatihan untuk memisahkan set validasi. Set validasi digunakan untuk mengevaluasi kinerja model yang dilatih sambil menyetel hiperparameter model. 75 persen dari set pelatihan menjadi set pelatihan akhir, dan sisanya adalah set validasi.

X_train, X_val, y_train, y_val = train_test_split(X_train, y_train, test_size=0.25, random_state=1) X_train_display = X_display.loc[X_train.index] X_val_display = X_display.loc[X_val.index]

Menggunakan paket pandas, secara eksplisit menyelaraskan setiap kumpulan data dengan menggabungkan fitur numerik dengan label sebenarnya.

import pandas as pd train = pd.concat([pd.Series(y_train, index=X_train.index, name='Income>50K', dtype=int), X_train], axis=1) validation = pd.concat([pd.Series(y_val, index=X_val.index, name='Income>50K', dtype=int), X_val], axis=1) test = pd.concat([pd.Series(y_test, index=X_test.index, name='Income>50K', dtype=int), X_test], axis=1)

Periksa apakah kumpulan data dibagi dan terstruktur seperti yang diharapkan:

train
Contoh dataset pelatihan.
validation
Contoh dataset validasi.
test
Contoh dataset uji.

Ubah Kumpulan Data Kereta dan Validasi menjadi File CSV

Ubah objek train dan validation kerangka data menjadi CSV file agar sesuai dengan format file input untuk algoritme. XGBoost

# Use 'csv' format to store the data # The first column is expected to be the output column train.to_csv('train.csv', index=False, header=False) validation.to_csv('validation.csv', index=False, header=False)

Unggah Dataset ke Amazon S3

Menggunakan SageMaker dan Boto3, unggah kumpulan data pelatihan dan validasi ke bucket Amazon S3 default. Kumpulan data dalam bucket S3 akan digunakan oleh SageMaker instans yang dioptimalkan komputasi di Amazon untuk pelatihan. EC2

Kode berikut menyiapkan bucket S3 default URI untuk SageMaker sesi Anda saat ini, membuat demo-sagemaker-xgboost-adult-income-prediction folder baru, dan mengunggah kumpulan data pelatihan dan validasi ke subfolder. data

import sagemaker, boto3, os bucket = sagemaker.Session().default_bucket() prefix = "demo-sagemaker-xgboost-adult-income-prediction" boto3.Session().resource('s3').Bucket(bucket).Object( os.path.join(prefix, 'data/train.csv')).upload_file('train.csv') boto3.Session().resource('s3').Bucket(bucket).Object( os.path.join(prefix, 'data/validation.csv')).upload_file('validation.csv')

Jalankan berikut ini AWS CLI untuk memeriksa apakah CSV file berhasil diunggah ke bucket S3.

! aws s3 ls {bucket}/{prefix}/data --recursive

Ini harus mengembalikan output berikut:

Output dari CLI perintah untuk memeriksa dataset di bucket S3.