categorical : Transformation de données catégorielle dans le cadre du Machine Learning

Transformation catégorielle qui peut être effectuée sur les données avant d'effectuer l'apprentissage d'un modèle.

Utilisation

  categorical(vars, outputKind = "ind", maxNumTerms = 1e+06, terms = "",
    ...)

Arguments

vars

Vecteur de caractères ou liste de noms de variables à transformer. Si une dénomination est utilisée, les noms représentent les noms des nouvelles variables à créer.

outputKind

Chaîne de caractères indiquant le type de sortie.

  • "ind" : génère un vecteur d’indicateur. La colonne d’entrée est un vecteur de catégories et la sortie contient un vecteur d’indicateur par emplacement dans la colonne d’entrée.
  • "bag" : génère un vecteur à plusieurs ensembles. Si la colonne d’entrée est un vecteur de catégories, la sortie contient un vecteur dans lequel la valeur de chaque emplacement correspond au nombre d’occurrences de la catégorie dans le vecteur d’entrée. Si la colonne d’entrée contient une seule catégorie, le vecteur d’indicateur et le vecteur de conteneur sont équivalents.
  • "key" : génère un index. La sortie est un ID d'entier (entre 1 et le nombre de catégories contenues dans le dictionnaire) de la catégorie.
    La valeur par défaut est "ind".

maxNumTerms

Entier qui spécifie le nombre maximum de catégories à inclure dans le dictionnaire. La valeur par défaut est 1000000.

terms

Vecteur de caractères facultatif des termes ou des catégories.

...

Arguments supplémentaires envoyés au moteur de calcul.

Détails

La transformation categorical passe par un jeu de données, en opérant sur des colonnes de texte, pour générer un dictionnaire de catégories. Pour chaque ligne, la totalité de la chaîne de texte figurant dans la colonne d'entrée est définie en tant que catégorie. La sortie de la transformation catégorielle est un vecteur d'indicateur. Chaque emplacement de ce vecteur correspond à une catégorie du dictionnaire. Sa longueur représente donc la taille du dictionnaire généré. La transformation catégorielle peut être appliquée à une ou plusieurs colonnes, auquel cas elle génère un dictionnaire distinct pour chaque colonne à laquelle elle est appliquée.

categorical n'est actuellement pas pris en charge pour gérer les données de facteur.

Valeur

Un objet maml définissant la transformation.

Auteur(s)

Microsoft Corporation Microsoft Technical Support

Voir aussi

rxFastTrees, rxFastForest, rxNeuralNet, rxOneClassSvm, rxLogisticRegression.

Exemples


 trainReviews <- data.frame(review = c( 
         "This is great",
         "I hate it",
         "Love it",
         "Do not like it",
         "Really like it",
         "I hate it",
         "I like it a lot",
         "I kind of hate it",
         "I do like it",
         "I really hate it",
         "It is very good",
         "I hate it a bunch",
         "I love it a bunch",
         "I hate it",
         "I like it very much",
         "I hate it very much.",
         "I really do love it",
         "I really do hate it",
         "Love it!",
         "Hate it!",
         "I love it",
         "I hate it",
         "I love it",
         "I hate it",
         "I love it"),
      like = c(TRUE, FALSE, TRUE, FALSE, TRUE,
         FALSE, TRUE, FALSE, TRUE, FALSE, TRUE, FALSE, TRUE,
         FALSE, TRUE, FALSE, TRUE, FALSE, TRUE, FALSE, TRUE, 
         FALSE, TRUE, FALSE, TRUE), stringsAsFactors = FALSE
     )

     testReviews <- data.frame(review = c(
         "This is great",
         "I hate it",
         "Love it",
         "Really like it",
         "I hate it",
         "I like it a lot",
         "I love it",
         "I do like it",
         "I really hate it",
         "I love it"), stringsAsFactors = FALSE)


 # Use a categorical transform: the entire string is treated as a category
 outModel1 <- rxLogisticRegression(like~reviewCat, data = trainReviews, 
     mlTransforms = list(categorical(vars = c(reviewCat = "review"))))
 # Note that 'I hate it' and 'I love it' (the only strings appearing more than once)
 # have non-zero weights
 summary(outModel1)

 # Use the model to score
 scoreOutDF1 <- rxPredict(outModel1, data = testReviews, 
     extraVarsToWrite = "review")
 scoreOutDF1