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
Weitere Informationen
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)