mutualInformation: modo de información mutua para la selección de características

Modo de información mutua para la selección de características que se usa en la transformación de selección de características selectFeatures.

Uso

  mutualInformation(numFeaturesToKeep = 1000, numBins = 256, ...)

Argumentos

numFeaturesToKeep

Si se especifica que el número de características que deben mantenerse es n, la transformación elige las n características que tienen la información mutua más alta con la variable dependiente. El valor predeterminado es 1000.

numBins

Número máximo de intervalos de valores numéricos. Se recomiendan potencias de 2. El valor predeterminado es 256.

...

Argumentos adicionales que se pasarán directamente al motor de proceso de Microsoft.

Detalles

La información mutua de dos variables aleatorias X y Y es una medida de la dependencia mutua entre las variables. Formalmente, la información mutua se puede escribir del siguiente modo:

I(X;Y) = E[log(p(x,y)) - log(p(x)) - log(p(y))]

donde la expectativa se toma de la distribución conjunta de X y Y. Aquí, p(x,y) es la función de densidad de probabilidad conjunta de X y Y; p(x) y p(y) son las funciones de densidad de probabilidad marginal de X y Y, respectivamente. En general, una mayor información mutua entre la variable dependiente (o etiqueta) y una variable independiente (o característica) significa que la etiqueta tiene una mayor dependencia mutua de esa característica.

El modo de selección de características de información mutua elige las características en función de la información mutua. Mantiene las numFeaturesToKeep características más importantes con la información mutua de mayor tamaño con la etiqueta.

Value

Cadena de caracteres que define el modo.

Autores

Microsoft Corporation Microsoft Technical Support

Referencias

Wikipedia: Mutual Information

Consulte también

minCountselectFeatures

Ejemplos


 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 features 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 those features appearing with at least a count of 5.
 outModel3 <- rxLogisticRegression(like~reviewCatHash, data = trainReviews, l1Weight = 0, 
     mlTransforms = list(
   categoricalHash(vars = c(reviewCatHash = "review"), hashBits = 7), 
   selectFeatures("reviewCatHash", mode = minCount(count = 5))))
 summary(outModel3)