Compartilhar via


mutualInformation: seleção de recursos no modo de informações mútua

Modo de informações mutuais da seleção de recursos usada na transformação de seleção de recursos selectFeatures.

Uso

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

Argumentos

numFeaturesToKeep

Se o número de recursos a serem mantidos for especificado como n, a transformação escolherá os n recursos que têm as maiores informações mútuas com a variável dependente. O valor padrão é 1000.

numBins

Número máximo de compartimentos para valores numéricos. São recomendadas potências de 2. O valor padrão é 256.

...

Argumentos adicionais a serem passados diretamente para o Microsoft Compute Engine.

Detalhes

As informações mútuas de duas variáveis aleatórias X e Y são uma medida da dependência mútua entre as variáveis. Formalmente, as informações mútuas podem ser escritas como:

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

em que a expectativa é obtida sobre a distribuição conjunta de X e Y. Aqui, p(x,y) é a função de densidade de probabilidade conjunta de X e Y. p(x) e p(y) são as funções de densidade de probabilidade marginal de X e Y, respectivamente. Em geral, uma informação mútua mais alta entre a variável (ou o rótulo) dependente e uma variável (ou recurso) independente significa que o rótulo tem maior dependência mútua sobre esse recurso.

O modo de seleção de recursos de informações mútuas seleciona os recursos com base nas informações mútuas. Ele mantém os numFeaturesToKeep principais recursos com as maiores informações mútuas com o rótulo.

Valor

Uma cadeia de caracteres que define o modo.

Autor(es)

Microsoft Corporation Microsoft Technical Support

Referências

Wikipedia: Mutual Information

Confira também

minCount selectFeatures

Exemplos


 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)