0 / 0
Retourner à la version anglaise de la documentation
Détails de l'implémentation AutoAI
Dernière mise à jour : 28 nov. 2024
Détails de l'implémentation AutoAI

AutoAI prépare automatiquement les données, applique des algorithmes ou des estimateurs et génère les pipelines de modèles les mieux adaptés à vos données et à votre cas d'utilisation.

Les sections suivantes décrivent certains de ces détails techniques qui entrent dans la génération des pipelines et fournissent une liste de documents de recherche qui décrivent comment AutoAI a été conçu et implémenté.

Préparation des données pour la formation (pré-traitement des données)

Pendant la préparation automatique des données ou le pré-traitement, AutoAI analyse les données de formation et les prépare à la sélection des modèles et à la génération de pipeline. La plupart des jeux de données contiennent des valeurs manquantes, mais les algorithmes d'apprentissage automatique n'attendent généralement aucune valeur manquante. Une exception à cette règle est décrite dans la section 3.4 de xgboost . Les algorithmes AutoAI effectuent diverses imputations de valeurs manquantes dans votre jeu de données à l'aide de différentes techniques, ce qui rend vos données prêtes pour l'apprentissage automatique. En outre, AutoAI détecte et catégorise les fonctions en fonction de leurs types de données, tels que catégoriels ou numériques. Il explore les stratégies de codage et de mise à l'échelle basées sur la catégorisation des fonctions.

La préparation de données comprend les étapes suivantes :

Classification de colonne de caractéristiques

  • Détecte les types de colonnes de caractéristiques et les classifie en tant que classe catégorielle ou numérique.
  • Détecte différents types de valeurs manquantes (par défaut, fournie par l'utilisateur, valeurs extrêmes)

Ingénierie des fonctionnalités

  • Gère les lignes pour lesquelles les valeurs cible sont manquantes (suppression (par défaut) ou imputation cible).
  • Supprime les colonnes à valeur unique (sauf date/heure et horodatage).
  • Supprime les colonnes à valeur constante.

Prétraitement (imputation et codage des données)

  • Applique les stratégies d'imputation/de codage/de mise à l'échelle Sklearn (de manière distincte sur chaque colonne de caractéristiques). Par exemple, la méthode par défaut en cours pour les stratégies d'imputation des valeurs manquantes, qui sont utilisées dans le produit, est most frequent pour les variables catégorielles et mean pour les variables numériques.
  • Gère les libellés de jeu de test qui n'ont pas été vus dans l'ensemble d'apprentissage.
  • Fonction HPO: optimise les stratégies d'imputation, de codage et de mise à l'échelle en fonction d'un ensemble de données et d'un algorithme

Sélection automatique du modèle

La deuxième étape d'une formation expérimentale AutoAI est la sélection automatisée des modèles. L'algorithme de sélection de modèle automatisé utilise l'allocation de données à l'aide de la stratégie des limites supérieures. Cette approche alloue séquentiellement de petits sous-ensembles de données de formation parmi un grand ensemble d'algorithmes. L'objectif est de sélectionner un algorithme qui donne une précision quasi-optimale lorsqu'il est entraîné sur toutes les données, tout en minimisant le coût des échantillons mal alloués. Le système prend actuellement en charge tous les algorithmes Scikit-learn, ainsi que les algorithmes populaires XGBoost et LightGBM . L'entraînement et l'évaluation de modèles sur de grands ensembles de données sont coûteux. L'approche consistant à démarrer de petits sous-ensembles et à allouer des sous-ensembles plus grands de manière incrémentielle à des modèles qui fonctionnent bien sur le jeu de données permet de gagner du temps, sans sacrifier les performances.Des algorithmes de la machine d'apprentissage snap ont été ajoutés au système pour augmenter encore davantage la performance.

Sélection des algorithmes pour un modèle

Les algorithmes sont normalement sélectionnés parce qu'ils conviennent aux données et à la nature du modèle, mais cette sélection peut aussi faire un compromis entre justesse (ou exactitude) et durée de l'exécution, si le modèle est configuré pour cette option. Par exemple, pour l'entraînement, les algorithmes Snap ML sont généralement plus rapides que les algorithmes Scikit-learn. Il s'agit souvent des algorithmes préférés que AutoAI sélectionne automatiquement pour les cas où l'entraînement est optimisé pour un temps d'exécution et une précision plus courts. Vous pouvez les sélectionner manuellement si la vitesse d'entraînement est une priorité. Pour les détails, consultez la documentation de Snap ML. Pour une discussion sur les cas où les algorithmes SnapML sont utiles, consultez cet article de blog sur l'utilisation des algorithmes SnapML .

Algorithmes utilisés pour les modèles de classification

Ces algorithmes sont les algorithmes par défaut utilisés pour la sélection de modèles pour les problèmes de classification.

Tableau 1 : Algorithmes par défaut de classification
Algorithme description
Discriminant d'arbre de décisions Mappe les observations sur un élément (représenté dans les branches) à des conclusions sur la valeur cible de l'élément (représentée dans les feuilles). Prend en charge les libellés binaires et multiclasses, ainsi que les fonctions continues et catégorielles.
Discriminant d'arbres supplémentaires Algorithme de moyenne basé sur des arbres de décisions aléatoires.
Discriminant d'arbre boosté de gradient Produit un modèle de prévision de classification sous la forme d'un ensemble d'arbres de décisions. Il prend en charge les libellés binaires et les fonctions continues et catégorielles.
Discriminant LGBM Cadre de stimulation de gradient qui utilise un algorithme d'apprentissage basé sur les arbres (horizontal) au niveau des feuilles.
Régression logistique Analyse un jeu de données dans lequel une ou plusieurs variables indépendantes déterminent l'un des deux résultats. Seule la régression logistique binaire est prise en charge.
Classificateur de forêt aléatoire Construit plusieurs arbres de décisions pour générer le libellé qui correspond à un mode pour chaque arbre de décisions. Il prend en charge les libellés binaires et multiclasses, ainsi que les fonctions continues et catégorielles.
SnapDecisionTreeClassifier Cet algorithme fournit un discriminant d'arbre de décision à l'aide de la bibliothèque IBM Snap ML.
SnapLogisticRegression Cet algorithme fournit une régression logistique régularisée à l'aide du solveur IBM Snap ML.
SnapRandomForestClassifier Cet algorithme fournit un discriminant de forêt aléatoire à l'aide de la bibliothèque IBM Snap ML.
SnapSVMClassifier Cet algorithme fournit une machine vectorielle de support régularisée à l'aide du solveur IBM Snap ML.
Classificateur XGBoost Procédure sure et exacte qui peut être utilisée pour les problèmes de classification. Les modèles XGBoost sont utilisés dans divers domaines, y compris le classement de la recherche sur le Web et l'écologie.
SnapBoostingMachineClassifier Machine de boosting pour les tâches de classification binaires et multi-classes qui mélangent des arbres de décision binaires à des modèles linéaires avec des caractéristiques de fourier aléatoire.

Algorithmes utilisés pour les modèles de régression

Ces algorithmes sont les algorithmes par défaut utilisés pour la sélection automatique de modèles pour les problèmes de régression.

Tableau 2 : Algorithmes par défaut de régression
Algorithme description
Régression d'arbre de décisions Mappe les observations sur un élément (représentées sous forme de branches) aux conclusions relatives à la valeur cible de l'élément (représentées sous forme de feuilles). Prend en charge les fonctions continues et catégorielles.
Régression d'arbres supplémentaires Algorithme de moyenne basé sur des arbres de décisions aléatoires.
Régression de stimulation de gradient Produit un modèle de prévision de régression sous la forme d'un ensemble d'arbres de décisions. Prend en charge les fonctions continues et catégorielles.
Régression LGBM Cadre de stimulation de gradient qui utilise des algorithmes d'apprentissage basés sur les arbres.
Régression linéaire Modélise la relation linéaire entre une variable dépendante scalaire y et une ou plusieurs variables explicatives (ou variables indépendantes) x.
Régression de forêt aléatoire Construit plusieurs arbres de décisions pour générer la prévision moyenne de chaque arbre de décisions. Prend en charge les fonctions continues et catégorielles.
Arête La régression d'arête est similaire à OLS (Ordinary Least Squares), mais impose une pénalité sur la taille des coefficients.
SnapBoostingMachineRegressor Cet algorithme fournit une machine de boosting en utilisant la bibliothèque IBM Snap ML qui peut être utilisée pour construire un ensemble d'arbres de décisions.
SnapDecisionTreeRegressor Cet algorithme fournit un arbre de décisions à l'aide de la bibliothèque IBM Snap ML.
SnapRandomForestRegressor Cet algorithme fournit une forêt aléatoire à l'aide de la bibliothèque IBM Snap ML.
Régression XGBoost GBRT est une procédure prête à l'emploi précise et efficace qui peut être utilisée pour les problèmes de régression. Les modèles de boosting d'arbre de gradient sont utilisés dans divers domaines, y compris le classement de la recherche Web et l'écologie.

Métriques par type de modèle

Les métriques suivantes sont disponibles pour mesurer la précision des pipelines lors de l'entraînement et pour évaluer les données.

Métriques de classification binaire

  • Exactitude (utilisée par défaut pour le classement des pipelines)
  • Roc auc
  • Précision moyenne
  • F
  • Perte logistique négative
  • Précision
  • Rappel

Métriques de classification multiclasse

Les métriques des modèles à classes multiples génèrent des scores indiquant les performances d'un pipeline par rapport à la mesure spécifiée. Par exemple, un F1 moyennes précision (des prévisions effectuées, du nombre de prévisions positives correctes) et un rappel (de toutes les prévisions positives possibles, du nombre de prévisions correctes).

Vous pouvez affiner un score en le qualifiant pour calculer l'indicateur donné globalement (macro), par libellé (micro), ou pour pondérer un ensemble de données déséquilibré afin de favoriser les classes avec plus de représentation.

  • Les métriques avec le qualificateur micro calculent globalement les métriques en comptant le nombre total de vrais positifs, de faux négatifs et de faux positifs.
  • Les indicateurs associés au qualificateur macro calculent les indicateurs de chaque libellé et trouvent leur moyenne non pondérée. Tous les libellés sont pondérés de manière égale.
  • Les indicateurs avec le qualificateur pondéré calculent les indicateurs pour chaque libellé et trouvent leur moyenne pondérée par la contribution de chaque classe. Par exemple, dans un jeu de données qui inclut des catégories pour les pommes, les pêches et les prunes, s'il existe de nombreuses autres instances de pommes, la métrique pondérée accorde plus d'importance à la prévision correcte des pommes. Cela modifie la macro pour tenir compte du déséquilibre des libellés. Utilisez une métrique pondérée telle que F1-weighted pour un jeu de données déséquilibré.

Les métriques de classification multiclasse sont les suivantes :

  • Exactitude (utilisée par défaut pour le classement des pipelines)
  • F1
  • Micro F1
  • Macro F1
  • Pondération F1
  • Précision
  • Micro Précision
  • Macro Précision
  • Pondération Précision
  • Rappel
  • Micro Rappel
  • Marco Rappel
  • Pondération Rappel

Métriques de régression

  • Erreur quadratique moyenne des racines négatives (utilisée par défaut pour le classement des pipelines)
  • Erreur absolue moyenne négative
  • Erreur logistique quadratique moyenne des racine négatives
  • Variance explicitée
  • Erreur quadratique moyenne négative
  • Erreur logistique quadratique moyenne négative
  • Erreur absolue médiane négative
  • R2

Ingénierie des caractéristiques automatisée

La troisième étape du processus AutoAI est l'ingénierie automatique des fonctionnalités. L'algorithme d'ingénierie automatisée des fonctionnalités est basé sur Cognito, décrit dans les articles de recherche Cognito : Automated Feature Engineering for Supervised Learning et Feature Engineering for Predictive Modeling by using Reinforcement Learning . Le système explore les différents choix de construction de caractéristiques de manière hiérarchique et non exhaustive, tout en maximisant progressivement la précision du modèle grâce à une stratégie d'exploration et d'exploitation. Cette méthode est inspirée de la stratégie " d'essai et d'erreur " pour l'ingénierie des fonctionnalités, mais menée par un agent autonome à la place d'un humain.

Métriques utilisées pour l'importance des fonctions

Pour les algorithmes de classification et de régression basés sur des arbres, tels que Decision Tree, Extra Trees, Random Forest, XGBoost, Gradient Boost et LGBM, les importances de fonction sont leurs scores d'importance de fonction inhérents en fonction de la réduction du critère utilisé pour sélectionner les points de division, et calculées lorsque ces algorithmes sont entraînés sur les données d'apprentissage.

Pour les algorithmes non arborescents tels que la régression logistique, la régression linéaire, SnapSVM, et Ridge, les importances des caractéristiques sont les importances des caractéristiques d'un algorithme Random Forest formé sur les mêmes données d'apprentissage que l'algorithme non arborescent.

Pour tout algorithme, toutes les importances de fonction se trouvent dans la plage comprise entre zéro et une et ont été normalisées en tant que rapport par rapport à l'importance de la fonction maximale.

Transformations des données

Pour l'ingénierie des fonctions, AutoAI utilise une nouvelle approche qui explore les différents choix de construction de fonction de manière structurée et non exhaustive, tout en maximisant progressivement la précision du modèle à l'aide de l'apprentissage par renforcement. Il en résulte une séquence optimisée de transformations pour les données qui correspondent le mieux aux algorithmes, ou aux algorithmes, de l'étape de sélection du modèle. Ce tableau répertorie certaines des transformations utilisées et certaines conditions bien connues dans lesquelles elles sont utiles. Il ne s'agit pas d'une liste exhaustive de scénarios où la transformation est utile, car cela peut être complexe et difficile à interpréter. Enfin, les scénarios répertoriés n'expliquent pas la façon dont les transformations sont sélectionnées. La sélection des transformations à appliquer est effectuée à travers des essais et des erreurs orientés performances.

Tableau 3 : Transformations de l'ingéniérie de fonctionnalité
Nom code FONCTION
Analyse en composantes principales pca Réduit les dimensions des données et effectuer un réalignement sur un système de coordonnées plus approprié. Aide à s'adapter à la " malédiction de la dimensionnalité " dans les données corrélées linéairement. Elle élimine la redondance et sépare les signaux significatifs dans les données.
Programme de mise à l'échelle standard stdscaler Met à l'échelle les fonctions de données à une plage standard. Cela contribue à l'efficacité et à l'efficacité de certains algorithmes d'apprentissage et d'autres transformations telles que PCA.
Logarithme Journal Réduit l'asymétrie à droite des fonctions et les rend plus symétriques. La symétrie résultante dans les fonctions aide les algorithmes à mieux comprendre les données. Même la mise à l'échelle basée sur la moyenne et l'écart est plus significative sur les données symétriques. En outre, il peut capturer des relations physiques spécifiques entre la fonction et la cible qui sont mieux décrites via un logarithme.
Racine cubique cbrt Réduit l'asymétrie à droite dans des données telles qu'un logarithme, mais est plus faible qu'un logarithme en termes d'impact, ce qui peut être préférable dans certains cas.Il s'applique également aux valeurs négatives ou nulles auxquelles le journal ne s'applique pas.La racine cubique peut également modifier des unités par exemple, en réduisant le volume vers la longueur.
Racine carrée sqrt Réduit la légère asymétrie à droite des données. Elle est plus faible que l'algorithme ou la racine cubique. Il fonctionne avec des zéros et réduit les dimensions spatiales telles que la surface à la longueur.
Carré square Réduit l'asymétrie à gauche dans une mesure modérée pour rendre ces distributions plus symétriques. Il peut également être utile pour capturer certains phénomènes tels que la croissance super-linéaire.
Produit produit Un produit de deux caractéristiques peut exposer une relation non linéaire pour mieux prédire la valeur cible que les valeurs individuelles seules. Par exemple, le coût d'un article en nombre d'articles vendus est une meilleure indication de la taille d'une entreprise que n'importe laquelle d'entre elles seules.
XOR numérique nxor Cette transformation permet de saisir le type de relation " disjonction exclusive " entre les variables, similaire à une XOR bit à bit, mais dans un contexte numérique général.
Somme sum Parfois, la somme de deux fonctions est mieux corrélée à la cible de prévision que les fonctions individuelles. Par exemple, les prêts de différentes sources, lorsqu'ils sont résumés, offrent une meilleure idée de l'endettement total d'un demandeur de crédit.
Diviser Diviser La division est un opérande fondamental qui est utilisé pour exprimer des quantités telles que le PIB brut sur la population (PIB par habitant), représentant la durée de vie moyenne d'un pays mieux que le PIB seul ou la population seule.
Valeur maximale max Prend la plus élevée des deux valeurs.
Arrondi round Cette transformation peut être considérée comme une perturbation ou un ajout de bruit pour réduire le surajustement qui pourrait être le résultat d'observations inexactes.
Valeur absolue abs Ne tient compte que de la magnitude et non du signe d'observation. Parfois, la direction ou le signe d'une observation n'a pas autant d'importance que l'ampleur de celle-ci, comme le déplacement physique, tout en considérant le carburant ou le temps passé dans le mouvement réel.
Tangente hyperbolique tanh La fonction d'activation non linéaire peut améliorer la précision de la prédiction, similaire à celle des fonctions d'activation du réseau de neurones.
Sinus sin Peut réorienter les données pour découvrir des tendances périodiques, telles que des mouvements harmoniques simples.
cosinus cos Peut réorienter les données pour découvrir des tendances périodiques, telles que des mouvements harmoniques simples.
Tangente tan La transformation de la tangente trigonométrique est généralement utile lorsqu'elle est utilisée conjointement avec d'autres transformations.
Agglomération des fonctions Agglomération des fonctions Le regroupement de différentes fonctions en groupes, en fonction de la distance ou de l'affinité, facilite la classification de l'algorithme d'apprentissage.
Sigmoïdale sigmoid La fonction d'activation non linéaire peut améliorer la précision de la prédiction, similaire à celle des fonctions d'activation du réseau de neurones.
Forêt d'isolation (Isolation Forest) isoforestanomaly Effectue le groupement (clustering) des données en utilisant une forêt d'isolation pour créer une nouvelle caractéristique contenant un score d'anomalie pour chaque échantillon.
Mot à vecteur word2vec Cet algorithme, qui est utilisé pour l'analyse de texte, est appliqué avant toutes les autres transformations. Il utilise un corpus de texte comme entrée et génère un ensemble de vecteurs. En transformant le texte en une représentation numérique, il peut détecter et comparer les mots similaires. Lorsqu'il est formé avec suffisamment de données, word2vec peut faire des prédictions précises sur le sens ou la relation d'un mot à d'autres mots. Les prédictions peuvent être utilisées pour analyser le texte et prédire le sens dans les applications d'analyse de sentiments.

Optimisation d'hyperparamètres

L'étape finale dans AutoAI est l'optimisation de l'hyper-paramètre. L'approche AutoAI optimise les paramètres des pipelines les plus performants à partir des phases précédentes. Cette opération est effectuée en explorant les plages de paramètres de ces pipelines à l'aide d'un optimiseur d'hyperparamètres de boîte noire appelé RBFOpt. RBFOpt est décrit dans le document de recherche RBFOpt : une bibliothèque open source pour l'optimisation de boîte noire avec des évaluations de fonctions coûteuses . RBFOpt est adapté aux expérimentations AutoAI car il est conçu pour les optimisations avec des évaluations coûteuses, comme dans le cas de l'apprentissage et de l'évaluation d'un algorithme. L'approche de RBFOpt construit et affine de manière itérative un modèle de substitution de la fonction objectif inconnue pour converger rapidement malgré les longues durées d'évaluation de chaque itération.


Foire aux questions relatives à AutoAI

Les questions suivantes sont fréquemment posées au sujet de la création d'une expérimentation AutoAI :

Combien de pipelines sont créés ?

Deux paramètres AutoAI déterminent le nombre de pipelines :

  • Max_num_daub_ensembles : Nombre maximal (top-K classé par sélection de modèle DAUB) de l'algorithme sélectionné, ou types d'estimateurs, par exemple LGBMClassifierEstimator, XGBoostClassifierEstimator, ou LogisticRegressionEstimator à utiliser dans la composition du pipeline. La valeur par défaut est 1, où seul le rang le plus élevé par type d'algorithme de sélection de modèle est utilisé.

  • num_niveaux: Nombre de sous-ensembles du fichier complet pour entraîner les pipelines en plus du fichier complet. La valeur par défaut est 1 ; elle permet d'entraîner le jeu de données complet.

Pour chaque type de pli et d'algorithme, AutoAI crée quatre pipelines d'amélioration accrue, correspondant à:

  1. Pipeline avec des paramètres sklearn par défaut pour ce type d'algorithme
  2. Pipeline avec algorithme optimisé à l'aide de HPO
  3. Pipeline avec ingénierie des caractéristiques optimisée
  4. Pipeline avec ingénierie des fonctions optimisées et algorithme optimisé à l'aide de HPO

Le nombre total de pipelines générés est le suivant:

TotalPipelines= max_num_daub_ensembles * 4, if num_folds = 1:  
                       
TotalPipelines= (num_folds+1) * max_num_daub_ensembles * 4,  if num_folds > 1 :

Quelle est l'optimisation d'hyperparamètres appliquée à mon modèle ?

L'AutoAI utilise un algorithme de recherche globale sans dérivation, basé sur un modèle, appelé RBfOpt, qui est adapté à l'entraînement coûteux du modèle d'apprentissage automatique et aux évaluations de notation requises par l'optimisation des hyperparamètres (HPO). Contrairement à l'optimisation bayésienne, qui ajuste un modèle de Gauss à la fonction d'objectif inconnue, RBfOpt s'adapte à un mode de fonction de base radiale pour accélérer la reconnaissance des configurations d'hyperparamètres qui maximisent la fonction d'objectif du problème d'apprentissage automatique en question. Cette accélération est obtenue en réduisant le nombre d'évaluations coûteuses de notation et d'entraînement de modèle d'apprentissage automatique et en éliminant la nécessité de calculer des dérivés partiels.

Pour chaque niveau et type d'algorithme, AutoAI crée deux pipelines qui utilisent HPO pour optimiser le type d'algorithme :

  • La première est basée sur l'optimisation de ce type d'algorithme en fonction de l'ensemble de données prétraité (imputé/encodé / mis à l'échelle) (pipeline 2) ci-dessus).
  • Le second est basé sur l'optimisation du type d'algorithme en fonction de l'ingénierie des caractéristiques optimisée du jeu de données (fourni/codé/mis à l'échelle) prétraité.

Les valeurs de paramètre des algorithmes de tous les pipelines générés par AutoAI sont publiées dans des messages d'état.

Pour plus de détails sur l'algorithme RbfOpt, voir :

Comment la signification des caractéristiques est-elle calculée?

Lorsque vous configurez une expérimentation de classification ou de régression, vous pouvez éventuellement spécifier comment gérer les fonctions sans impact sur le modèle. Les choix sont de toujours supprimer la fonction, de les supprimer lorsqu'elle améliore la qualité du modèle ou de ne pas les supprimer. La signification de la fonction est calculée comme suit:

  • L'importance des fonctions est calculée sur l'échantillon de données.
  • Certains estimateurs ne disposent pas de fonctions intégrées permettant de renvoyer des importances de fonction. Dans ces cas, un estimateur tel que RandomForest est utilisé pour mesurer l'impact.
  • Le nombre de fonctions est important-si la valeur d'importance d'une fonction est 0.0000000001 , mais qu'il existe un grand nombre de fonctions de faible importance (par exemple, plus de 200), le fait de les quitter ou de les supprimer peut avoir un impact sur les résultats de l'expérimentation.

En mode automatique, les étapes suivantes sont utilisées pour confirmer que la suppression des fonctions de faible importance n'affecte pas les résultats de l'expérimentation:

  • Si la suppression de toutes les fonctions dont l'importance est calculée à 0 a un impact sur la précision du modèle, l'algorithme d'analyse en composantes principales est appliqué à ces fonctions et sélectionne les K premières composantes expliquant la variance à 90% entre ces fonctions non significatives.
  • Ensuite, les composants transformés sont utilisés en tant que nouvelles caractéristiques à la place des caractéristiques d'origine et le modèle est à nouveau évalué.
  • S'il y a encore une baisse de précision, toutes les fonctions d'origine sont ajoutées à l'expérimentation.

Références de recherche

Cette liste comprend certains des articles de recherche fondamentale qui décrivent de façon plus détaillée comment AutoAI a été conçu et mis en œuvre pour promouvoir la confiance et la transparence dans le processus automatisé de création de modèles.

Etapes suivantes

Imputation de données dans des expérimentations AutoAI

Rubrique parent : Présentation d'AutoAI

Recherche et réponse à l'IA générative
Ces réponses sont générées par un modèle de langue de grande taille dans watsonx.ai en fonction du contenu de la documentation du produit. En savoir plus