Téléchargement, préparation et chargement des données d'entraînement - Amazon SageMaker

Téléchargement, préparation et chargement des données d'entraînement

Pour cet exemple, vous utilisez un ensemble de données d'entraînement contenant des informations sur les clients de la banque (emploi, statut marital et mode de contact lors de la campagne de marketing direct de la banque. Pour utiliser un jeu de données pour une tâche de réglage d'hyperparamètres, commencez par le télécharger, transformez ensuite les données, puis téléchargez-les dans un compartiment Amazon S3.

Pour plus d'informations sur l'ensemble de données et la transformation des données effectuée dans cet exemple, consultez le bloc-notes hpo_xgboost_direct_marketing_sagemaker_APIs dans la section Réglage des hyperparamètres de l'onglet Exemples SageMaker de votre instance de bloc-notes.

Téléchargement et exploration de l'ensemble de données d'entraînement

Pour télécharger et explorer l'ensemble de données, exécutez le code suivant dans votre bloc-notes :

!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

Préparation et chargement des données

Avant de créer la tâche de réglage des hyperparamètres, préparez les données et chargez-les dans un compartiment S3 dans lequel la tâche de réglage des hyperparamètres pourra y accéder.

Exécutez le code suivant dans votre bloc-notes:

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

Étape suivante

Configuration et lancement de la tâche de réglage des hyperparamètres