Interface d'entrée/sortie de l'algorithme LightGBM - Amazon SageMaker AI

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Interface d'entrée/sortie de l'algorithme LightGBM

Le boosting de gradient fonctionne sur les données tabulaires, avec les lignes représentant les observations, une colonne représentant la variable ou l'étiquette cible, et les autres colonnes représentant les fonctions.

L'implémentation SageMaker AI de LightGBM prend en charge le format CSV pour la formation et l'inférence :

  • Pour la formation ContentType, les entrées valides doivent être au format text/csv.

  • Pour l'inférence ContentType, les entrées valides doivent être du type text/csv.

Note

Pour l'entraînement CSV, l'algorithme suppose que la variable cible est dans la première colonne et que le CSV n'a pas d'enregistrement d'en-tête.

Pour l'inférence CSV, l'algorithme suppose que l'entrée CSV ne dispose pas de la colonne d'étiquette.

Format d'entrée pour les données d'entraînement, les données de validation et les caractéristiques catégorielles

Soyez conscient de la façon de formater vos données d'entraînement pour les entrer dans le modèle LightGBM. Vous devez fournir le chemin d'accès à un compartiment Amazon S3 contenant vos données d'entraînement et de validation. Vous pouvez également inclure une liste de caractéristiques catégorielles. Utilisez à la fois les canaux train et validation pour fournir vos données d'entrée. Vous pouvez également utiliser uniquement le canal train.

Note

train et training sont tous les deux des noms de canaux valides pour l'entraînement LightGBM.

Utilisation des deux canaux train et validation

Vous pouvez fournir vos données d'entrée par le biais de deux chemins S3, l'un pour le canal train et l'autre pour le canal validation. Chaque chemin S3 peut être soit un préfixe S3 pointant vers un ou plusieurs fichiers CSV, soit un chemin S3 complet pointant vers un fichier CSV spécifique. Les variables cibles doivent figurer dans la première colonne de votre fichier CSV. Les variables prédictives (caractéristiques) doivent figurer dans les autres colonnes. Si plusieurs fichiers CSV sont fournis pour les canaux train ou validation, l'algorithme LightGBM concatène les fichiers. Les données de validation sont utilisées pour calculer un score de validation à la fin de chaque itération de renforcement. Un arrêt précoce intervient lorsque le score de validation cesse de s'améliorer.

Si vos prédicteurs incluent des caractéristiques catégorielles, vous pouvez fournir un fichier JSON nommé categorical_index.json au même emplacement que votre ou vos fichiers de données d'entraînement. Si vous fournissez un fichier JSON pour les caractéristiques catégorielles, votre canal train doit pointer vers un préfixe S3 et non vers un fichier CSV spécifique. Ce fichier doit contenir un dictionnaire Python dans lequel la clé est la chaîne "cat_index_list" et la valeur est une liste d'entiers uniques. Chaque entier de la liste de valeurs doit indiquer l'indice de colonne des caractéristiques catégorielles correspondantes dans votre fichier CSV de données d'entraînement. Chaque valeur doit être un entier positif (supérieur à zéro car zéro représente la valeur cible), inférieur à Int32.MaxValue (2147483647) et inférieur au nombre total de colonnes. Il ne doit y avoir qu'un seul fichier JSON d'indices catégoriels.

Utilisation du seul canal train :

Vous pouvez également fournir vos données d'entrée par le biais d'un seul chemin S3 pour le canal train. Ce chemin S3 doit pointer vers un répertoire dont le sous-répertoire nommé train/ contient un ou plusieurs fichiers CSV. Vous pouvez éventuellement inclure un autre sous-répertoire dans le même emplacement appelé validation/ qui contient également un ou plusieurs fichiers CSV. Si les données de validation ne sont pas fournies, 20 % de vos données d'entraînement sont échantillonnées de façon aléatoire pour servir de données de validation. Si vos prédicteurs incluent des caractéristiques catégorielles, vous pouvez fournir un fichier JSON nommé categorical_index.json au même emplacement que vos sous-répertoires de données.

Note

Pour le mode d'entrée de l'entraînement CSV, la mémoire totale disponible pour l'algorithme (nombre d'instances multiplié par la mémoire disponible dans InstanceType) doit pouvoir contenir le jeu de données d'entraînement.

SageMaker AI LightGBM utilise le module Python Joblib pour sérialiser ou désérialiser le modèle, qui peut être utilisé pour enregistrer ou charger le modèle.

Pour utiliser un modèle entraîné avec SageMaker AI LightGBM avec le module JobLib
  • Utilisez le code Python suivant :

    import joblib import tarfile t = tarfile.open('model.tar.gz', 'r:gz') t.extractall() model = joblib.load(model_file_path) # prediction with test data # dtest should be a pandas DataFrame with column names feature_0, feature_1, ..., feature_d pred = model.predict(dtest)