[PYTHON] J'ai essayé de créer un modèle avec l'exemple d'Amazon SageMaker Autopilot

Qu'est-ce que SageMaker Autopilot?

Il prétraite, sélectionne automatiquement les algorithmes et optimise les hyper paramètres fournis par AWS. C'est AutoML qui fonctionne sur SageMaker. Cette fois, j'ai un échantillon d'Autopilot, donc j'aimerais vraiment le déplacer. → Exemple de pilote automatique

Essayez de déplacer l'échantillon

Tout d'abord, créez les bibliothèques et sessions nécessaires.

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)

Ensuite, téléchargez le jeu de données. Les données que nous utilisons cette fois sont Ensemble de données marketing de la banque. Ce sont les données du marketing direct de la banque, et il semble que ce soit les données d'exécuter ou non le dépôt fixe.

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'

Ensuite, divisez les données téléchargées en données de test et données de train, et supprimez la colonne de la variable objectif "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'])

Après cela, téléchargez chaque donnée divisée sur S3.

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)

Ensuite, nous allons définir le pilote automatique. Dans cet exemple, les paramètres sont les suivants, mais il semble que divers autres paramètres peuvent être définis. Les paramètres sont décrits dans ce document, alors assurez-vous de le vérifier. s'il vous plaît essayez.

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

Maintenant que les paramètres sont terminés, déplaçons-le.

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)

En écrivant ce qui suit, le contenu qui est exécuté toutes les 30 secondes sera sorti.

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)

La création du modèle est terminée lorsque la sortie est "Terminée". Je pense que cela a pris un peu plus de deux heures.

Résumé

Cette fois, j'ai essayé de créer un modèle automatiquement à l'aide de SageMaker Autopilot. J'ai réalisé une fois de plus qu'AutoML est incroyable parce que vous pouvez créer un modèle simplement en préparant les données. J'espère que cela réduira la difficulté de créer un modèle et rendra le ML largement utilisé.

Recommended Posts

J'ai essayé de créer un modèle avec l'exemple d'Amazon SageMaker Autopilot
J'ai essayé de faire quelque chose comme un chatbot avec le modèle Seq2Seq de TensorFlow
J'ai essayé de créer une liste de nombres premiers avec python
J'ai essayé de prédire le comportement du nouveau virus corona avec le modèle SEIR.
J'ai essayé de prédire le nombre de personnes infectées au niveau national de la nouvelle corona avec un modèle mathématique
J'ai essayé de trouver l'entropie de l'image avec python
J'ai essayé de trouver la moyenne de plusieurs colonnes avec TensorFlow
J'ai fait une fonction pour vérifier le modèle de DCGAN
J'ai essayé d'écrire dans un modèle de langage profondément appris
[Python] J'ai essayé de créer automatiquement un rapport quotidien de YWT avec la messagerie Outlook
J'ai essayé de créer un linebot (implémentation)
J'ai essayé de créer un environnement de MkDocs sur Amazon Linux
J'ai essayé de créer un linebot (préparation)
Application correspondante, j'ai essayé de prendre des statistiques de personnes fortes et j'ai essayé de créer un modèle d'apprentissage automatique
[Introduction à StyleGAN] J'ai joué avec "The Life of a Man" ♬
J'ai essayé de créer des taureaux et des vaches avec un programme shell
J'ai essayé d'agrandir la taille du volume logique avec LVM
J'ai écrit un doctest dans "J'ai essayé de simuler la probabilité d'un jeu de bingo avec Python"
J'ai essayé d'améliorer l'efficacité du travail quotidien avec Python
J'ai essayé de créer un mécanisme de contrôle exclusif avec Go
J'ai essayé de déverrouiller l'entrée 2 lock sésame d'une simple pression sur le bouton AWS IoT
J'ai essayé de transcrire les actualités de l'exemple d'intégration commerciale sur Amazon Transcribe
J'ai essayé de créer un programme qui convertit les nombres hexadécimaux en nombres décimaux avec python
J'ai essayé de créer un plug-in avec HULFT IoT Edge Streaming [Development] (2/3)
J'ai essayé d'obtenir le code d'authentification de l'API Qiita avec Python.
J'ai essayé d'extraire automatiquement les mouvements des joueurs Wiire avec un logiciel
J'ai essayé de créer un plug-in avec HULFT IoT Edge Streaming [Execution] (3/3)
J'ai essayé de rationaliser le rôle standard des nouveaux employés avec Python
[Outlook] J'ai essayé de créer automatiquement un e-mail de rapport quotidien avec Python
J'ai essayé de visualiser le texte du roman "Weather Child" avec Word Cloud
J'ai essayé de visualiser le modèle avec la bibliothèque d'apprentissage automatique low-code "PyCaret"
J'ai essayé d'obtenir les informations sur le film de l'API TMDb avec Python
J'ai créé un exemple pour accéder à Salesforce en utilisant Python et Bottle
Je souhaite créer facilement un modèle de bruit
J'ai essayé de sauvegarder les données avec discorde
J'ai essayé de démarrer Jupyter avec toutes les lumières d'Amazon
J'ai essayé de vectoriser les paroles de Hinatazaka 46!
J'ai fait une application d'envoi de courrier simple avec tkinter de Python
Quand j'ai essayé de créer un environnement virtuel avec Python, cela n'a pas fonctionné
J'ai essayé de visualiser facilement les tweets de JAWS DAYS 2017 avec Python + ELK
J'ai essayé de créer facilement un système de présence entièrement automatique avec Selenium + Python
[Azure] J'ai essayé de créer une machine virtuelle Linux avec Azure de Microsoft Learn
J'ai essayé de créer un bouton pour Slack avec Raspeye + Tact Switch
J'ai essayé d'envoyer automatiquement la littérature du nouveau virus corona à LINE avec Python
J'ai essayé d'entraîner la fonction péché avec chainer
J'ai essayé d'extraire des fonctionnalités avec SIFT d'OpenCV
J'ai essayé de résumer la forme de base de GPLVM
Comment créer un sous-menu avec le plug-in [Blender]
J'ai essayé de toucher un fichier CSV avec Python
J'ai essayé de visualiser les informations spacha de VTuber
J'ai essayé d'effacer la partie négative de Meros
J'ai essayé de résoudre le problème avec Python Vol.1
J'ai essayé de classer les voix des acteurs de la voix
J'ai essayé d'exécuter l'exemple de code du module Ansible