Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Schritt 3: Herunterladen, Durchsuchen und Transformieren eines Datensatzes
In diesem Schritt laden Sie dieDataset für Erwachsene
Zum Ausführen des folgenden Beispiels fügen Sie den Beispielcode in eine Zelle in Ihrer Notebook-Instance ein.
Lade Dataset für Erwachsene mit SHAP
Importieren Sie mit der SHAP-Bibliothek das Dataset für Erwachsene wie folgt dargestellt:
import shap X, y = shap.datasets.adult() X_display, y_display = shap.datasets.adult(display=True) feature_names = list(X.columns) feature_names
Wenn der aktuelle Jupyter-Kernel nicht über die SHAP-Bibliothek verfügt, installieren Sie ihn, indem Sie Folgendes ausführenconda
-Befehl:
%conda install -c conda-forge shap
Wenn Sie JupyterLab verwenden, müssen Sie den Kernel manuell aktualisieren, nachdem die Installation und die Updates abgeschlossen sind. Führen Sie das folgende iPython-Skript aus, um den Kernel herunterzufahren (der Kernel wird automatisch neu gestartet):
import IPython IPython.Application.instance().kernel.do_shutdown(True)
Diefeature_names
list -Objekt sollte die folgende Liste von Features zurückgeben:
['Age', 'Workclass', 'Education-Num', 'Marital Status', 'Occupation', 'Relationship', 'Race', 'Sex', 'Capital Gain', 'Capital Loss', 'Hours per week', 'Country']
Wenn Sie mit nicht beschrifteten Daten beginnen, können Sie Amazon verwenden SageMaker Ground Truth, um in wenigen Minuten einen Workflow zur Datenbeschriftung zu erstellen. Weitere Informationen hierzu finden Sie unterDatenkennzeichnungaus.
Überblick über das Dataset
Führen Sie das folgende Skript aus, um den statistischen Überblick über den Datensatz und die Histogramme der numerischen Features anzuzeigen.
display(X.describe()) hist = X.hist(bins=30, sharey=True, figsize=(20, 10))

Wenn Sie einen Datensatz verwenden möchten, der bereinigt und transformiert werden muss, können Sie die Datenvorverarbeitung und das Feature Engineering mit Amazon vereinfachen und rationalisieren SageMaker Daten Wrangler. Weitere Informationen hierzu finden Sie unterBereiten Sie ML-Daten mit Amazon vor SageMaker Daten Wrangleraus.
Teilen Sie den Datensatz in Train-, Validierungs- und Test-Datensätze auf
Teilen Sie den Datensatz mithilfe von Sklearn in ein Trainingsset und ein Testset auf. Das Trainingsset wird verwendet, um das Modell zu trainieren, während das Testset verwendet wird, um die Leistung des endgültig ausgebildeten Modells zu bewerten. Der Datensatz wird nach dem Zufallsprinzip mit dem festen Zufallswert sortiert: 80 Prozent des Datensatzes für den Trainingssatz und 20 Prozent davon für einen Testsatz.
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]
Teilen Sie das Trainingsset auf, um einen Validierungssatz zu trennen. Der Validierungssatz wird verwendet, um die Leistung des trainierten Modells zu bewerten und gleichzeitig die Hyperparameter des Modells zu optimieren. 75 Prozent des Trainingssatzes werden zum endgültigen Trainingssatz und der Rest ist der Validierungssatz.
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]
Richten Sie mit dem Pandas-Paket jeden Datensatz explizit aus, indem Sie die numerischen Features mit den True-Labels verketten.
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)
Prüfen Sie, ob der Datensatz wie erwartet geteilt und strukturiert ist:
train

validation

test

Konvertieren der Zug- und Validierungsdatasets in CSV-Dateien
Konvertieren Sie dastrain
undvalidation
Datenrahmenobjekte in CSV-Dateien, die dem Eingabedateiformat für den XgBoost-Algorithmus entsprechen.
# 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)
Hochladen der Datensätze auf Amazon S3
Verwendung der SageMaker und Boto3 laden Sie die Schulungs- und Validierungsdatensätze in den standardmäßigen Amazon S3 S3-Bucket hoch. Die Datensätze im S3-Bucket werden von einer rechenoptimierten SageMaker-Instanz auf Amazon EC2 für Schulungen verwendet.
Der folgende Code richtet den Standard-S3-Bucket-URI für Ihren aktuellen SageMaker session, erstellt eine neuedemo-sagemaker-xgboost-adult-income-prediction
und lädt die Schulungs- und Validierungsdatensätze in diedata
-Unterordner.
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')
Führen Sie Folgendes ausAWS CLIUm zu überprüfen, ob die CSV-Dateien erfolgreich in den S3-Bucket hochgeladen wurden.
! aws s3 ls {bucket}/{prefix}/data --recursive
Dabei sollte die folgende Ausgabe zurückgegeben werden:
