Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Fase 3: scaricare, esplorare e trasformare un set di dati
In questa fase, carica il set di dati Adult Census
Per eseguire il seguente esempio, incolla il codice di esempio in una cella dell'istanza del notebook.
Caricamento del set di dati del censimento degli adulti utilizzando SHAP
Utilizzando la libreria SHAP, importa il set di dati Adult Census come mostrato di seguito:
import shap X, y = shap.datasets.adult() X_display, y_display = shap.datasets.adult(display=True) feature_names = list(X.columns) feature_names
Nota
Se il kernel Jupyter corrente non dispone della libreria SHAP, installala eseguendo il comando conda
seguente:
%conda install -c conda-forge shap
Se si utilizza JupyterLab, è necessario aggiornare manualmente il kernel al termine dell'installazione e degli aggiornamenti. Esegui il seguente script IPython per arrestare il kernel (il kernel si riavvierà automaticamente):
import IPython IPython.Application.instance().kernel.do_shutdown(True)
L'oggetto elenco feature_names
dovrebbe restituire il seguente elenco di funzionalità:
['Age', 'Workclass', 'Education-Num', 'Marital Status', 'Occupation', 'Relationship', 'Race', 'Sex', 'Capital Gain', 'Capital Loss', 'Hours per week', 'Country']
Suggerimento
Se inizi con dati senza etichetta, puoi utilizzare Amazon SageMaker Ground Truth per creare un flusso di lavoro di etichettatura dei dati in pochi minuti. Per ulteriori informazioni, consulta Label Data.
Panoramica del set di dati
Esegui il seguente script per visualizzare la panoramica statistica del set di dati e gli istogrammi delle funzionalità numeriche.
display(X.describe()) hist = X.hist(bins=30, sharey=True, figsize=(20, 10))
![Panoramica del set di dati del censimento degli adulti.](images/get-started-ni/gs-ni-prepare-data-1.png)
Suggerimento
Se desideri utilizzare un set di dati che deve essere pulito e trasformato, puoi semplificare e ottimizzare la preelaborazione dei dati e l'ingegneria delle funzionalità utilizzando Amazon SageMaker Data Wrangler. Per ulteriori informazioni, consulta Prepare i dati ML con Amazon SageMaker Data Wrangler.
Suddivisione del set di dati in set di dati di addestramento, di convalida e di test
Utilizzando Sklearn, suddividi il set di dati in un set di addestramento e un set di test. Il set di addestramento viene utilizzato per addestrare il modello, mentre il set di test viene utilizzato per valutare le prestazioni del modello addestrato finale. Il set di dati viene ordinato casualmente in base al seed casuale fisso: l'80% del set di dati per il set di addestramento e il 20% per un set di test.
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]
Suddividi il set di addestramento per separare un set di convalida. Il set di convalida viene utilizzato per valutare le prestazioni del modello addestrato ottimizzando al contempo gli iperparametri del modello. Il 75% del set di addestramento diventa il set di addestramento finale e il resto è il set di convalida.
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]
Utilizzando il pacchetto pandas, allinea esplicitamente ogni set di dati concatenando le funzionalità numeriche con le etichette vere.
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)
Controlla se il set di dati è suddiviso e strutturato come previsto:
train
![Il set di dati di addestramento.](images/get-started-ni/gs-ni-prepare-data-2-train.png)
validation
![Il set di dati di convalida.](images/get-started-ni/gs-ni-prepare-data-2-validation.png)
test
![Il set di dati di test.](images/get-started-ni/gs-ni-prepare-data-2-test.png)
Conversione dei set di dati di addestramento e di convalida in file CSV
Converti gli oggetti dataframe train
e validation
in file CSV in modo che corrispondano al formato del file di input per l'algoritmo 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)
Caricamento dei set di dati su Amazon S3
Utilizzando SageMaker e Boto3, carica i set di dati di addestramento e convalida nel bucket Amazon S3 predefinito. I set di dati nel bucket S3 verranno utilizzati da un'istanza ottimizzata per il calcolo su SageMaker Amazon EC2 per la formazione.
Il codice seguente configura l'URI predefinito del bucket S3 per la SageMaker sessione corrente, crea una nuova demo-sagemaker-xgboost-adult-income-prediction
cartella e carica i set di dati di addestramento e convalida nella sottocartella. 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')
Esegui quanto segue AWS CLI per verificare se i file CSV sono stati caricati correttamente nel bucket S3.
! aws s3 ls {bucket}/{prefix}/data --recursive
Dovrebbe essere restituito il seguente output:
![Output del comando CLI per controllare i set di dati nel bucket S3.](images/get-started-ni/gs-ni-prepare-data-3.png)