Share via


selectFeatures: Transformation de sélection des caractéristiques de Machine Learning

La transformation de sélection de caractéristiques sélectionne des caractéristiques à partir des variables spécifiées à l’aide du mode spécifié.

Utilisation

  selectFeatures(vars, mode, ...)

Arguments

vars

Une formule ou un vecteur/une liste de chaînes spécifiant le nom des variables sur lesquelles la sélection de caractéristiques est effectuée, si le mode est minCount(). Par exemple : ~ var1 + var2 + var3. Si le mode est mutualInformation(), une formule ou une liste nommée de chaînes décrivant la variable dépendante et les variables indépendantes. Par exemple : label ~ ``var1 + var2 + var3.

mode

Spécifie le mode de sélection des caractéristiques. Cela peut être minCount ou mutualInformation.

...

Arguments supplémentaires à passer directement au moteur de calcul Microsoft.

Détails

La transformation de sélection de caractéristiques sélectionne des caractéristiques à partir des variables spécifiées à l’aide de l’un des deux modes suivants : dénombrement ou informations mutuelles. Pour plus d’informations, consultez minCount et mutualInformation.

Valeur

Un objet maml définissant la transformation.

Voir aussi

minCountmutualInformation

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 hash transform which generated 128 features.
 outModel1 <- rxLogisticRegression(like~reviewCatHash, data = trainReviews, l1Weight = 0, 
     mlTransforms = list(categoricalHash(vars = c(reviewCatHash = "review"), hashBits = 7)))
 summary(outModel1)

 # Apply a categorical hash transform and a count feature selection transform
 # which selects only those hash slots that has value.
 outModel2 <- rxLogisticRegression(like~reviewCatHash, data = trainReviews, l1Weight = 0, 
     mlTransforms = list(
   categoricalHash(vars = c(reviewCatHash = "review"), hashBits = 7), 
   selectFeatures("reviewCatHash", mode = minCount())))
 summary(outModel2)

 # Apply a categorical hash transform and a mutual information feature selection transform
 # which selects only 10 features with largest mutual information with the label.
 outModel3 <- rxLogisticRegression(like~reviewCatHash, data = trainReviews, l1Weight = 0, 
     mlTransforms = list(
   categoricalHash(vars = c(reviewCatHash = "review"), hashBits = 7), 
   selectFeatures(like ~ reviewCatHash, mode = mutualInformation(numFeaturesToKeep = 10))))
 summary(outModel3)