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à.
Preparare un set di dati
In questo passaggio, carichi il set di dati Adult Census sull'
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 lo utilizzi JupyterLab, devi aggiornare manualmente il kernel dopo aver completato l'installazione e gli aggiornamenti. Esegui lo IPython script seguente per spegnere 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))

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

validation

test

Conversione dei set di dati di addestramento e di convalida in file CSV
Converti gli oggetti train
e validation
dataframe 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 AI 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' SageMakeristanza ottimizzata per il calcolo su Amazon per la formazione. EC2
Il codice seguente configura l'URI predefinito del bucket S3 per la sessione SageMaker AI 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:
