Descarga, preparación y carga de datos de entrenamiento - Amazon SageMaker

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Descarga, preparación y carga de datos de entrenamiento

En este ejemplo, se utiliza un conjunto de datos de entrenamiento de información sobre clientes de bancos que incluye el trabajo del cliente, su estado civil y cómo fueron contactados durante la campaña de marketing directo del banco. Para utilizar un conjunto de datos para un trabajo de ajuste de hiperparámetros, debe descargarlo, transformar los datos y, a continuación, cargarlos en un bucket de Amazon S3.

Para obtener más información sobre el conjunto de datos y la transformación de datos que realiza el ejemplo, consulte el cuaderno HPO_XGBoost_Direct_Marketing_Sagemaker/APIS en la sección Ajuste de hiperparámetros de la pestaña Ejemplos de su instancia de bloc de notas. SageMaker

Descarga y exploración del conjunto de datos de entrenamiento

Para descargar y explorar el conjunto de datos, ejecute el siguiente código en su cuaderno:

!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

Preparación y carga de los datos

Antes de crear el trabajo de ajuste de hiperparámetros, prepare los datos y cárguelos en un bucket de S3 al que pueda obtener acceso el trabajo de ajuste de hiperparámetros.

Ejecute el siguiente código en su cuaderno:

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')

Paso siguiente

Configuración y lanzamiento de un trabajo de ajuste de hiperparámetros