Scaricare, preparare e caricare i dati di addestramento - Amazon SageMaker AI

Scaricare, preparare e caricare i dati di addestramento

Per questo esempio, utilizziamo un set di dati di addestramento con informazioni sui clienti di una banca che include la professione del cliente, lo stato civile e le modalità di contatto durante la campagna di marketing diretto della banca. Per utilizzare un set di dati per un processo di ottimizzazione degli iperparametri, scaricalo, trasforma i dati e quindi caricalo in un bucket Amazon S3 .

Per ulteriori informazioni sul set di dati e sulla trasformazione dei dati eseguita nell’esempio, consulta il notebook hpo_xgboost_direct_marketing_sagemaker_APIs nella sezione Ottimizzazione degli iperparametri della scheda Esempi di SageMaker AI nell’istanza del notebook.

Scaricare ed esplorare il set di dati di addestramento

Per scaricare ed esplorare il set di dati, esegui il codice seguente nel notebook:

!wget -N https://archive.ics.uci.edu/ml/machine-learning-databases/00222/bank-additional.zip !unzip -o bank-additional.zip data = pd.read_csv('./bank-additional/bank-additional-full.csv', sep=';') pd.set_option('display.max_columns', 500) # Make sure we can see all of the columns pd.set_option('display.max_rows', 5) # Keep the output on one page data

Preparare e caricare i dati

Prima di creare il processo di ottimizzazione degli iperparametri, prepara i dati e caricali in un bucket S3 a cui può accedere il processo di ottimizzazione degli iperparametri.

Esegui il codice seguente nel notebook:

data['no_previous_contact'] = np.where(data['pdays'] == 999, 1, 0) # Indicator variable to capture when pdays takes a value of 999 data['not_working'] = np.where(np.in1d(data['job'], ['student', 'retired', 'unemployed']), 1, 0) # Indicator for individuals not actively employed model_data = pd.get_dummies(data) # Convert categorical variables to sets of indicators model_data model_data = model_data.drop(['duration', 'emp.var.rate', 'cons.price.idx', 'cons.conf.idx', 'euribor3m', 'nr.employed'], axis=1) train_data, validation_data, test_data = np.split(model_data.sample(frac=1, random_state=1729), [int(0.7 * len(model_data)), int(0.9*len(model_data))]) pd.concat([train_data['y_yes'], train_data.drop(['y_no', 'y_yes'], axis=1)], axis=1).to_csv('train.csv', index=False, header=False) pd.concat([validation_data['y_yes'], validation_data.drop(['y_no', 'y_yes'], axis=1)], axis=1).to_csv('validation.csv', index=False, header=False) pd.concat([test_data['y_yes'], test_data.drop(['y_no', 'y_yes'], axis=1)], axis=1).to_csv('test.csv', index=False, header=False) boto3.Session().resource('s3').Bucket(bucket).Object(os.path.join(prefix, 'train/train.csv')).upload_file('train.csv') boto3.Session().resource('s3').Bucket(bucket).Object(os.path.join(prefix, 'validation/validation.csv')).upload_file('validation.csv')

Fase succcessiva

Configurare e avviare il processo di ottimizzazione degli iperparametri