Es verarbeitet automatisch vor, wählt Algorithmen aus und optimiert die von AWS bereitgestellten Hyperparameter. Es ist AutoML, das auf SageMaker ausgeführt wird. Dieses Mal habe ich ein Beispiel für Autopilot, daher möchte ich es tatsächlich verschieben. → Autopilot-Beispiel
Erstellen Sie zunächst die erforderlichen Bibliotheken und Sitzungen.
jupyter
import sagemaker
import boto3
from sagemaker import get_execution_role
region = boto3.Session().region_name
session = sagemaker.Session()
bucket = session.default_bucket()
prefix = 'sagemaker/autopilot-dm'
role = get_execution_role()
sm = boto3.Session().client(service_name='sagemaker',region_name=region)
Laden Sie als Nächstes den Datensatz herunter. Die Daten, die wir dieses Mal verwenden, sind Bank Marketing Data Set. Es sind die Daten des Direktmarketings der Bank, und es scheinen die Daten zu sein, ob die feste Einzahlung ausgeführt werden soll.
jupyter
!wget -N https://archive.ics.uci.edu/ml/machine-learning-databases/00222/bank-additional.zip
!unzip -o bank-additional.zip
local_data_path = './bank-additional/bank-additional-full.csv'
Teilen Sie als Nächstes die heruntergeladenen Daten in Testdaten und Zugdaten auf und löschen Sie die Spalte der Zielvariablen "y".
jupyter
import pandas as pd
data = pd.read_csv(local_data_path, sep=';')
train_data = data.sample(frac=0.8,random_state=200)
test_data = data.drop(train_data.index)
test_data_no_target = test_data.drop(columns=['y'])
Laden Sie danach alle geteilten Daten in S3 hoch.
jupyter
train_file = 'train_data.csv';
train_data.to_csv(train_file, index=False, header=True)
train_data_s3_path = session.upload_data(path=train_file, key_prefix=prefix + "/train")
print('Train data uploaded to: ' + train_data_s3_path)
test_file = 'test_data.csv';
test_data_no_target.to_csv(test_file, index=False, header=False)
test_data_s3_path = session.upload_data(path=test_file, key_prefix=prefix + "/test")
print('Test data uploaded to: ' + test_data_s3_path)
Als nächstes werden wir Autopilot einstellen. In diesem Beispiel sind die Einstellungen wie folgt, aber es scheint, dass verschiedene andere Einstellungen vorgenommen werden können. Die Einstellungen sind in diesem Dokument beschrieben. Überprüfen Sie dies daher bitte. bitte versuche.
jupyter
input_data_config = [{
'DataSource': {
'S3DataSource': {
'S3DataType': 'S3Prefix',
'S3Uri': 's3://{}/{}/train'.format(bucket,prefix)
}
},
'TargetAttributeName': 'y'
}
]
output_data_config = {
'S3OutputPath': 's3://{}/{}/output'.format(bucket,prefix)
}
Nachdem die Einstellungen abgeschlossen sind, verschieben wir sie tatsächlich.
jupyter
from time import gmtime, strftime, sleep
timestamp_suffix = strftime('%d-%H-%M-%S', gmtime())
auto_ml_job_name = 'automl-banking-' + timestamp_suffix
print('AutoMLJobName: ' + auto_ml_job_name)
sm.create_auto_ml_job(AutoMLJobName=auto_ml_job_name,
InputDataConfig=input_data_config,
OutputDataConfig=output_data_config,
RoleArn=role)
Wenn Sie Folgendes schreiben, wird der Inhalt ausgegeben, der alle 30 Sekunden ausgeführt wird.
jupyter
print ('JobStatus - Secondary Status')
print('------------------------------')
describe_response = sm.describe_auto_ml_job(AutoMLJobName=auto_ml_job_name)
print (describe_response['AutoMLJobStatus'] + " - " + describe_response['AutoMLJobSecondaryStatus'])
job_run_status = describe_response['AutoMLJobStatus']
while job_run_status not in ('Failed', 'Completed', 'Stopped'):
describe_response = sm.describe_auto_ml_job(AutoMLJobName=auto_ml_job_name)
job_run_status = describe_response['AutoMLJobStatus']
print (describe_response['AutoMLJobStatus'] + " - " + describe_response['AutoMLJobSecondaryStatus'])
sleep(30)
Die Modellerstellung ist abgeschlossen, wenn die Ausgabe "Abgeschlossen" ist. Ich glaube, es hat etwas mehr als zwei Stunden gedauert.
Dieses Mal habe ich versucht, mit SageMaker Autopilot automatisch ein Modell zu erstellen. Ich habe wieder einmal festgestellt, dass AutoML erstaunlich ist, weil Sie ein Modell erstellen können, indem Sie einfach die Daten vorbereiten. Ich hoffe, dies wird die Schwierigkeit verringern, ein Modell zu erstellen und ML weit verbreitet zu machen.
Recommended Posts