categorical:机器学习分类数据转换
可在训练模型之前对数据执行的分类转换。
用法
categorical(vars, outputKind = "ind", maxNumTerms = 1e+06, terms = "",
...)
参数
vars
要转换的字符向量或变量名称列表。 如果已命名,则名称表示要创建的新变量的名称。
outputKind
指定输出类型的字符串。
"ind"
:输出指示器向量。 输入列是类别向量,而且输出在输入列中的每个槽中包含一个指示器向量。"bag"
:输出一个多集向量。 如果输入列是类别向量,则输出将包含一个向量,其中每个槽中的值为该类别在输入向量中出现的次数。 如果输入列仅包含一个类别,则指示器矢量和包向量等效"key"
:输出索引。 输出是一个类别的整数 ID(介于 1 和字典中的类别数之间)。
默认值是"ind"
。
maxNumTerms
指定字典中要包含的最大类别数的整数。 默认值为 1000000。
terms
条件或类别的可选字符向量。
...
发送到计算引擎的其他参数。
详细信息
categorical
转换通过数据集传递,在文本列上操作,从而生成类别字典。 对于每一行,输入列中显示的整个文本字符串均定义为类别。 分类转换的输出是一个指示器向量。
此向量中的每个槽对应于字典中的一个类别,因此其长度为生成的字典的大小。 分类转换可以应用于一个或多个列,在这种情况下,它将为它所应用到的每个列生成一个单独的字典。
当前不支持 categorical
处理系数数据。
值
一个 maml
对象,用于定义转换。
作者
Microsoft Corporation Microsoft Technical Support
另请参阅
rxFastTrees、rxFastForest、rxNeuralNet、rxOneClassSvm、rxLogisticRegression。
示例
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 transform: the entire string is treated as a category
outModel1 <- rxLogisticRegression(like~reviewCat, data = trainReviews,
mlTransforms = list(categorical(vars = c(reviewCat = "review"))))
# Note that 'I hate it' and 'I love it' (the only strings appearing more than once)
# have non-zero weights
summary(outModel1)
# Use the model to score
scoreOutDF1 <- rxPredict(outModel1, data = testReviews,
extraVarsToWrite = "review")
scoreOutDF1