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.
Carica il set di dati del censimento per adulti utilizzando SHAP
Utilizzando la SHAP libreria, importate 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 SHAP libreria, installatela eseguendo il seguente comando: conda
%conda install -c conda-forge shap
Se si utilizza JupyterLab, è necessario aggiornare manualmente il kernel al termine dell'installazione e degli 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
Converti i set di dati di addestramento e convalida in file CSV
Converti gli oggetti train
e validation
dataframe in file in modo che corrispondano al formato del CSV 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' SageMakeristanza ottimizzata per il calcolo su Amazon per la formazione. EC2
Il codice seguente configura il bucket S3 predefinito URI 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 CSV file sono stati caricati correttamente nel bucket S3.
! aws s3 ls {bucket}/{prefix}/data --recursive
Dovrebbe essere restituito il seguente output: