Algorithme d'extraction des caractéristiques d'apprentissage automatique dans Talend - 6.1

Composants Talend Guide de référence

EnrichVersion
6.1
EnrichProdName
Talend Big Data
Talend Big Data Platform
Talend Data Fabric
Talend Data Integration
Talend Data Management Platform
Talend Data Services Platform
Talend ESB
Talend MDM Platform
Talend Open Studio for Big Data
Talend Open Studio for Data Integration
Talend Open Studio for Data Quality
Talend Open Studio for ESB
Talend Open Studio for MDM
Talend Real-Time Big Data Platform
task
Création et développement
Gouvernance de données
Qualité et préparation de données
EnrichPlatform
Studio Talend

Ce tableau présente les algorithmes d'extraction des caractéristiques utilisés dans le composant tModelEncoder.

Avertissement

La version Streaming de ce composant est disponible dans la Palette du studio si vous avez souscrit à Talend Real-time Big Data Platform ou Talend Data Fabric.

Algorithme

Type de données Talend de la colonne d'entrée

Type de données Talend pour la colonne de sortie

Job Talend supporté

Paramètres disponibles1

Objectifs

Scénarios possibles

HashingTF

Object

Vector

Spark Batch

Spark Streaming

  • numFeatures : le nombre de caractéristiques définissant la dimension du vecteur de caratéristiques.

    Par exemple, vous pouvez saisir numFeatures=220 pour définir la dimension. Si vous ne saisissez pas de paramètre, la valeur par défaut, 220, est utilisé.

Les vecteurs de sortie sont des vecteurs creux. Par exemple, un document se présentant comme suit tModelEncoder transforms your data to features. peut être transformé en (3,[0,1,2],[1.0,2.0,3.0]), si vous saisissez numFeatures=3.

Pour plus d'informations concernant la lecture d'un vecteur creux, consultez Local vector.

Pour plus d'informations concernant l'API Spark HashingTF, consultez ML HashingTF (en anglais).

En tant qu'algorithme de traitement de texte, HashingTF convertit des données d'entrée en vecteurs de caractéristiques de longueur fixe pour refléter l'importance d'un terme (un mot ou une séquence de mots) en calculant la fréquence à laquelle ces mots apparaissent dans les données d'entrée.

Dans un Job Spark Batch, il est généralement utilisé avec l'algorithme IDF (Inverse document frequency) pour rendre plus fiable le calcul de poids. Dans le contexte d'un Job Spark Talend, vous devez ajouter un second tModelEncoder pour appliquer l'algorithme Inverse document frequency sur la sortie des calculs de l'algorithme HashingTF.

Les données doivent être segmentées avant d'être envoyées pour calcul via HashingTF. Cependant, si les données à utiliser n'ont pas été segmentées, vous devez utiliser un autre tModelEncoder pour appliquer l'algorithme Tokenizer ou l'algorithme Regex tokenizer pour préparer les données.

Pour plus d'informations concernant l'implémentation de l'algorithme HashingTF dans Spark, consultez HashingTF (en anglais) dans la documentation Spark.

Il peut être utilisé pour préparer les données pour des composants de Classification ou de Clustering de la famille Machine Learning, afin de créer un modèle d'analyse de sentiments.

Inverse document frequency

Vector

Vector

Spark Batch

  • minDocFreq : nombre minimum de documents devant contenir un terme. Ce nombre est le seuil indiquant qu'un terme devient approprié aux calculs IDF.

    Par exemple, si vous saisissez minDocReq=5, alors que seuls 4 documents contiennent un terme, ce terme est considéré comme faux et aucun calcul IDF n'est appliqué dessus.

Pour plus d'informations concernant l'API Spark de cet algorithme IDF, consultez ML feature IDF (en anglais).

Comme algorithme de traitement de texte, Inverse document frequency (IDF) est souvent utilisé pour traiter la sortie des calculs HashingTF afin de réduire l'importance des termes qui apparaissent dans de trop nombreux documents.

Il requiert un composant tModelEncoder effectuant les calculs HashingTF pour fournir les données d'entrée.

Pour plus d'informations concernant l'implémentation de IDF dans Spark, consultez IDF dans la documentation Spark (en anglais).

Il peut être utilisé pour préparer les données pour des composants de Classification ou de Clustering de la famille Machine Learning, afin de créer un modèle d'analyse de sentiments.

Word2Vector

List

Vector

Spark Batch

  • maxIter : nombre maximum d'itérations pour obtenir le résultat optimal. Par exemple, maxIter=5.

  • minCount : nombre minimum de fois qu'un mot doit apparaître pour être inclus dans le vocabulaire du modèle Word2Vector. La valeur par défaut est minCount=5.

  • numPartitions : nombre de partitions.

  • seed : numéro de la graine aléatoire.

  • stepSize : taille de l'étape pour chaque itération. Cela définit le rythme d'apprentissage.

  • vectorSize : taille de chaque vecteur de caractéristique. La valeur par défaut est vectorSize=100, avec laquelle les valeurs numériques 100 sont calculées pour identifier un document.

Si vous devez configurer plusieurs paramètres, séparez ces paramètres à l'aide de point-virgules ";", par exemple, maxIter=5;minCount=4.

Pour plus d'informations concernant l'API Spark de Word2Vector, consultez Word2Vec (en anglais).

Word2Vector transforme un document en un vecteur de caractéristiques, pou utilisation dans d'autres calculs d'apprentissage, comme les calculs de similarité de textes.

Pour plus d'informations concernant l'implémentation Word2Vector dans Spark, consultez Word2Vec dans la documentation de Spark (en anglais).

Il peut être utilisé pour préparer les données pour des composants de Classification ou de Clustering de la famille Machine Learning, afin de, par exemple, trouver des commentaires similaires d'utilisateurs concernant un produit.

Binarizer

Double

Double

Spark Batch

Spark Streaming

  • threshold : seuil utilisé pour binariser des caractéristiques continues. Les caractéristiques supérieures à ce seuil sont binarisées à 1.0 et les fonctionnalités égales ou supérieurs à ce seuil sont binarisées à 0.0.

    La valeur par défaut est threshold=0.0.

Pour plus d'informations concernant l'API Spark Binarizer, consultez ML Binarizer (en anglais).

En utilisant le seuil défini, Binarizer transforme une caractéristique en une caractéristique binaire de laquelle la valeur est distribuée pour être 1.0 ou 0.0.

Pour plus d'informations concernant l'implémentation de Binarizer dans Spark, consultez Binarizer dans la documentation Spark (en anglais).

Il peut être utilisé pour préparer les données pour des composants de Classification ou de Clustering de la famille Machine Learning, afin de, par exemple, évaluer si le commentaire d'un utilisateur indique sa satisfaction ou son insatisfaction.

Bucketizer

Double

Double

Spark Batch

Spark Streaming

  • split : paramètre utilisé pour segmenter des caractéristiques continues en buckets. Un bucket est un intervalle semi-ouvert [x,y) défini par les valeurs des limites (x et y) que vous attribuez, sauf le dernier bucket, qui contient également y.

    Par exemple, vous pouvez saisir split=Double.NEGATIVE_INFINITY, -0.5, 0.0, 0.5, Double.POSITIVE_INFINITY pour segmenter les valeurs comme -0.5, 0.3, 0.0, 0.2. Double.NEGATIVE_INFINITY et Double.POSITIVE_INFINITY sont recommandés lorsque vous ne connaissez pas les limites supérieure et inférieure de la colonne cible.

Pour plus d'informations concernant l'API Spark Bucketizer, consultez Bucketizer (en anglais).

Bucketizer segmente des valeurs continues en plusieurs groupes, en fonction de limites définies par l'utilisateur.

Pour plus d'informations concernant l'implémentation de Bucketizer dans Spark, consultez Bucketizer dans la documentation de Spark (en anglais).

Il peut être utilisé pour préparer les données catégoriques pour la classification de l'apprentissage ou des modèles de clustering.

Normalizer

Vector

Vector

Spark Batch

Spark Streaming

  • p : valeur de la norme de degré p utilisée pour standardiser à la norme d'unité les vecteurs de caractéristiques du flux d'entrée.

    La valeur par défaut est p=2, ce qui signifie utiliser la norme euclidienne Euclidean norm (en anglais).

Pour plus d'informations concernant l'API Spark Normalizer, consultez Normalizer (en anglais).

Normalizer normalise les unités de chaque vecteur des données d'entrée afin d'améliorer les performances des calculs d'apprentissage.

Pour plus d'informations concernant l'implémentation de l'algorithme Normalizer dans Spark, consultez Normalizer dans la documentation de Spark (en anglais).

Il peut être utilisé pour normaliser le résultat du calcul TF-IDF afin d'améliorer les performances de la classification de texte (par le tLogicRegressionModel par exemple) ou du clustering de texte.

One hot encoder

Double

Vector

Spark Batch

Spark Streaming

  • dropLast : paramètre booléen utilisé pour déterminer s'il faut exclure la dernière catégorie.

    La valeur par défaut est dropLast=true, signifiant que la dernière catégorie est exclue, avec pour résultat que le vecteur de sortie de cette catégorie contient uniquement 0 et chaque vecteur utilise un peu moins d'espace de stockage. Cette configuration vous permet de sauver de l'espace de stockage pour les vecteurs de sortie.

Pour plus d'informations concernant l'API Spark One hot encoder, consultez OneHotEncoder.

One hot encoder permet à l'algorithme attendant des caractéristiques continues d'utiliser des caractéristiques catégoriques en mappant la colonne des indices de libellés des caractéristiques catégoriques d'une colonne de code binaire.

Vous pouvez utiliser un autre tModelEncoder avec l'algorithme String indexer pour créer cette colonne d'indices de libellés.

Pour plus d'informations concernant l'implémentation de l'algorithme OneHotEncoder dans Spark, consultez OneHotEncoder dans la documentation Spark (en anglais).

Il peut être utilisé pour fournir des données de caractéristiques aux composants de Classification ou de Clustering, comme le tLogicRegressionModel.

Polynomial expansion

Vector

Vector

Spark Batch

Spark Streaming

  • degree : degré polynomial à développer. Un haut degré d'expansion des caractéristiques signifie souvent plus de précision dans le modèle à créer, mais un trop haut degré peut mener à un surapprentissage dans les résultats de l'analyse prédictive basée sur le même modèle.

    La valeur par défaut est degree=2, ce qui signifie un développement des caractéristiques d'entrée dans un espace polynomial de deux degrés 2-degree.

Pour plus d'informations concernant l'API Spark Polynomial expansion, consultez Polynomial expansion (en anglais).

Polynomial expansion développe les caractéristiques d'entrée pour améliorer les performance des calculs d'apprentissage.

Pour plus d'informations concernant l'implémentation de PolynomialExpansion dans Spark, consultez PolynomialExpansion dans la documentation Spark.

Il peut être utilisé pour traiter des données de caractéristiques pour les composants de Classification ou de Clustering, comme le tLogicRegressionModel.

Regex tokenizer

String

Object

Spark Batch

Spark Streaming

  • gaps : paramètre booléen utilisé pour indiquer si la regex divise le texte d'entrée (quand gaps=true) à l'aide d'un ou plusieurs caractères blancs ou si elle fait correspondre de manière répétée un mot (quand gaps=false).

    Par défaut, ce paramètre est configuré à true et le délimiteur par défaut est \\s+, qui fait correspondre un ou plusieurs caractères.

  • pattern : paramètre utilisé pour configurer le modèle de regex pattern rapprochant les mots du texte d'entrée.

  • minTokenLength : paramètre utilisé pour filtrer les mots rapprochés à l'aide d'une longueur minimale. La valeur par défaut est 1, pour éviter de retourner des chaînes de caractères vides.

Si vous devez configurer différents paramètres, séparez-les à l'aide d'un point-virgule (;), par exemple,gaps=true;minTokenLength=4.

Pour plus d'informations concernant l'API Spark Regex tokenizer, consultez RegexTokenizer (en anglais).

Regex tokenizer effectue une segmentation avancée basée sur les modèles de regex donnés.

Pour plus d'informations concernant l'implémentation de RegexTokenizer dans Spark, consultez RegexTokenizer dans la documentation Spark (en anglais).

Il est souvent utilisé pour traiter du texte en termes fouilles de texte pour les composants de Classification ou de Clustering, comme le tRandomForestModel, afin de créer, par exemple, un modèle pour filtrer les messages indésirables (spams).

Tokenizer

String

Object

Spark Batch

Spark Streaming

Vous n'avez pas besoin de configurer de paramètre supplémentaire pour Tokenizer.

Pour plus d'informations concernant l'API Spark Tokenizer, consultez Tokenizer (en anglais).

Tokenizer divise le texte d'entrée (souvent des phrases) en termes individuels (souvent des mots).

Notez que ces mots sont tous convertis en minuscules.

Pour plus d'informations concernant l'implémentation de Tokenizer dans Spark, consultez Tokenizer dans la documentation Spark (en anglais).

Il est souvent utilisé pour traiter du texte en termes de fouilles de texte pour les composants de Classification ou de Clustering, comme le tRandomForestModel, afin de créer, par exemple, un modèle pour filtrer les messages indésirables (spam).

Standard scaler

Vector

Vector

Spark Batch

  • withMean : paramètre booléen utilisé pour indiquer de centrer chaque vecteur de données de caractéristiques à l'aide de la moyenne (c'est-à-dire soustraire la moyenne des numéros des caractéristiques de chacun de ces numéros) avant l'application de Standard scaler. Centrer les données permet de construire une sortie dense et, quand les données d'entrée sont creuses, cela crée une exception.

    Par défaut, ce paramètre est configuré à false, ce qui signifie que l'action de centrer n'est pas effectuée.

  • withStd : paramètre booléen utilisé pour indiquer s'il faut appliquer cet algorithme sur les données d'entrée pour obtenir un écart type.

    Par défaut, withStd est configuré à true, ce qui signifie normaliser les vecteurs de caractéristiques pour obtenir un écart type.

Si vous devez configurer différents paramètres, séparez-les par un point-virgule (;), par exemple, withMean=true;withStd=true.

Notez que si vous avez configuré les deux paramètres à false, Standard scaler n'effectue aucune action.

Pour plus d'informations concernant l'API Spark Standard scaler, consultez StandardScaler (en anglais).

Standard scaler standardise chaque vecteur d'entrée pour avoir un écart type unitaire (variance unitaire), exemple fréquent de distribution normale. Les données standardisées peuvent améliorer le taux de convergence et empêcher les caractéristiques ayant de grandes variances d'exercer une trop grande influence durant l'apprentissage du modèle.

Pour plus d'informations concernant l'implémentation de StandardScaler dans Spark, consultez StandardScaler dans la documentation de Spark.

Il peut être utilisé pour préparer les données pour les composants de Classification ou de Clustering, comme le tKMeanModel.

String indexer

String

Double

Spark Batch

Vous n'avez pas besoin de configurer de paramètre supplémentaire pour l'algorithme String indexer.

Pour plus d'informations concernant l'API Spark String indexer, consultez StringIndexer (en anglais).

String indexer génère des indices pour les caractéristiques des catégories (libellés de type chaîne de caractères). Ces indices peuvent être utilisés par d'autres algorithmes comme le One hot encoder afin de construire des caractéristiques continues.

Les indices sont triés par fréquence. Le libellé le plus fréquent obtient l'index 0.

Pour plus d'informations concernant implémentation de StringIndexer dans Spark, consultez StringIndexer dans la documentation de Spark (en anglais).

String indexer, avec le One hot encoder, permet aux algorithmes attendant des caractéristiques continues d'utiliser des caractéristiques de catégories.

Vector indexer

Vector

Vector

Spark Batch

  • maxCategories : le paramètre utilisé pour définir le seuil indiquant si une colonne de vecteurs représente des caractéristiques catégoriques ou continues. Par exemple, si vous saisissez maxCategories=2, les colonnes contenant plus de 2 valeurs distinctes seront déclarées comme colonnes de caractéristiques continues et les autres colonnes comme colonnes de caractéristiques catégoriques.

    La valeur par défaut est maxCategories=20.

Pour plus d'informations concernant l'API Spark Vector indexer, consultez VectorIndexer (en anglais).

Vector indexer identifie les colonnes de caractéristiques selon votre définition du paramètre maxCategories et indexe les catégories de chaque colonne identifiée, à partir du 0. Les autres colonnes sont déclarées comme colonnes de caractéristiques continues et ne sont pas indexées.

Pour plus d'informations concernant l'implémentation de VectorIndexer dans Spark, consultez VectorIndexer dans la documentation Spark.

Vector indexer donne des index à des caractéristiques catégoriques afin que les algorithmes comme les calculs Decision Trees computations exécutés par le tRandomForestModel, puissent gérer de manière appropriée les fonctionnalités de catégories.

Vector assembler

types numériques, type Boolean et type Vector

Vector

Spark Batch

Spark Streaming

  • inputCols : paramètre utilisé pour indiquer les colonnes d'entrée à combiner en une colonne de vecteurs. Par exemple, vous pouvez saisir inputCols=id,country_code afin de combiner la colonne id et la colonne country_code.

Pour plus d'informations concernant l'API Spark Vector assembler, consultez VectorAssembler (en anglais).

Vector assembler combine les colonnes d'entrée sélectionnées en une colonne de vecteurs pouvant être utilisée par d'autres algorithmes ou calculs d'apprentissage automatique pour les caractéristiques de vecteurs attendus.

Notez que Vector assembler ne recalcule pas les caractéristiques prises des différentes colonnes. Il combine uniquement les colonnes de caractéristiques en un vecteur unique mais laisse les caractéristiques telles qu'elles sont.

Lorsque vous sélectionnez Vector assembler, la colonne Input column de la table Transformation table dans la vue Basic settings du tModelEncoder est désactivée et vous devez utiliser le paramètre inputCols dans la colonne Parameters afin de sélectionner les colonnes d'entrée à combiner.

Pour plus d'informations concernant l'implémentation de VectorAssembler dans Spark, consultez VectorAssembler dans la documentation de Spark (en anglais).

Vector assembler prépare les vecteurs de caractéristiques pour les calculs Logistic Regression ou Decision Tree effectués par les composants comme tLogisticRegressionModel et tRandomForestModel.

1 : Si vous ne configurez pas les paramètres vous-même, les valeurs par défaut sont utilisées.