Herunterladen, Vorbereiten und Hochladen von Trainingsdaten
In diesem Beispiel verwenden Sie einen Trainingsdatensatz mit Informationen über Bankkunden, der den Beruf des Kunden, den Familienstand und die Art der Kontaktaufnahme mit ihm im Rahmen der Direktmarketingkampagne der Bank enthält. Um einen Datensatz für einen Hyperparameter-Abstimmungsauftrag zu verwenden, laden Sie ihn herunter, transformieren Sie die Daten und laden Sie sie dann in einen Amazon-S3-Bucket hoch.
Weitere Informationen über den Datensatz und die Datenumwandlung in diesem Beispiel finden Sie im Notebook hpo_xgboost_direct_marketing_sagemaker_APIs im Abschnitt Hyperparameteroptimierung der Registerkarte SageMaker-AI-Beispiele Ihrer Notebook-Instance.
Herunterladen und Auswerten des Trainingsdatensatzes
Um den Datensatz herunterzuladen und auszuwerten, führen Sie den folgenden Code in Ihrem Notebook aus:
!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
Vorbereiten und Hochladen von Daten
Bevor Sie den Hyperparameter-Optimierungsauftrag erstellen, müssen Sie die Daten vorbereiten und in einen S3-Bucket hochladen, wo der Hyperparameter-Optimierungsauftrag darauf zugreifen kann.
Führen Sie den folgenden Code in Ihrem Notebook aus:
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')
Nächster Schritt
Konfigurieren und Starten eines Hyperparameter-Optimierungsauftrags