Teilen über


mutualInformation: Transinformationsmodus der Featureauswahl

Transinformationsmodus der Featureauswahl, der in der Featureauswahltransformation selectFeatures verwendet wird.

Verwendung

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

Argumente

numFeaturesToKeep

Wenn die Anzahl der beizubehaltenden Features mit n angegeben wird, wählt die Transformation die n Features aus, die die höchste Transinformation mit der abhängigen Variable haben. Der Standardwert lautet „1000“.

numBins

Maximale Anzahl von Intervallen für numerische Werte. Zweierpotenzen werden empfohlen. Der Standardwert ist 256.

...

Zusätzliche Argumente, die direkt an die Microsoft-Compute-Engine übergeben werden sollen.

Details

Die Transinformation der beiden zufälligen Variablen X und Y ist ein Maß für die gegenseitige Abhängigkeit der Variablen. Formal kann die Transinformation folgendermaßen geschrieben werden:

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

wobei der Erwartungswert über die gemeinsame Verteilung von X und Y genommen wird. Dabei ist p(x,y) die gemeinsame Wahrscheinlichkeitsdichtefunktion von X, und Y, p(x) und p(y) sind die Randwahrscheinlichkeitsdichtefunktionen von X bzw. Y. Im Allgemeinen bedeutet mehr Transinformation zwischen der abhängigen Variablen (oder Bezeichnung) und einer unabhängigen Variablen (oder einem Feature), dass die Bezeichnung eine höhere gegenseitige Abhängigkeit gegenüber diesem Feature aufweist.

Der Featureauswahlmodus für Transinformation wählt die Features basierend auf der Transinformation aus. Er behält die wichtigsten numFeaturesToKeep Features mit der höchsten Transinformation mit der Bezeichnung bei.

Wert

Eine Zeichenfolge, die den Modus definiert.

Autor(en)

Microsoft Corporation Microsoft Technical Support

References

Wikipedia: Mutual Information

Weitere Informationen

minCount selectFeatures

Beispiele


 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)