Interface d'entrée et de sortie pour l' CatBoostalgorithme - Amazon SageMaker

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 et de sortie pour l' CatBoostalgorithme

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.

La SageMaker mise en place de CatBoost supports CSV de formation et d'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'CSVentraînement, l'algorithme suppose que la variable cible se trouve dans la première colonne et qu'CSVelle n'a pas d'enregistrement d'en-tête.

Pour CSV l'inférence, l'algorithme suppose que l'CSVentrée ne comporte pas de 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 dont vous devez formater vos données d'entraînement pour les saisir dans le CatBoost modèle. 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 training et validation pour fournir vos données d'entrée. Vous pouvez également utiliser uniquement le canal training.

Utilisation des deux canaux training et validation

Vous pouvez fournir vos données d'entrée par le biais de deux chemins S3, l'un pour le canal training et l'autre pour le canal validation. Chaque chemin S3 peut être un préfixe S3 pointant vers un ou plusieurs CSV fichiers ou un chemin S3 complet pointant vers un CSV fichier spécifique. Les variables cibles doivent se trouver dans la première colonne de votre CSV fichier. Les variables prédictives (caractéristiques) doivent figurer dans les autres colonnes. Si plusieurs CSV fichiers sont fournis pour les validation canaux training ou, l' CatBoost algorithme 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 JSON fichier nommé categorical_index.json au même endroit que votre ou vos fichiers de données d'entraînement. Si vous fournissez un JSON fichier pour des fonctionnalités catégoriques, votre training chaîne doit pointer vers un préfixe S3 et non vers un fichier spécifiqueCSV. 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'index de colonne des caractéristiques catégorielles correspondantes dans votre CSV fichier 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 JSON fichier d'index catégorique.

Utilisation du seul canal training :

Vous pouvez également fournir vos données d'entrée par le biais d'un seul chemin S3 pour le canal training. Ce chemin S3 doit pointer vers un répertoire dont le sous-répertoire est nommé et training/ qui contient un ou plusieurs CSV fichiers. Vous pouvez éventuellement inclure un autre sous-répertoire au même emplacement appelé validation/ qui contient également un ou plusieurs CSV fichiers. 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 JSON fichier nommé categorical_index.json au même endroit que vos sous-répertoires de données.

Note

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

SageMaker CatBoost utilise les catboost.CatBoostRegressor modules catboost.CatBoostClassifier et pour sérialiser ou désérialiser le modèle, ce qui peut être utilisé pour enregistrer ou charger le modèle.

Pour utiliser un modèle entraîné SageMaker CatBoost avec catboost
  • Utilisez le code Python suivant :

    import tarfile from catboost import CatBoostClassifier t = tarfile.open('model.tar.gz', 'r:gz') t.extractall() file_path = os.path.join(model_file_path, "model") model = CatBoostClassifier() model.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)