说明:
spark.lda 适合 SparkDataFrame 上的潜在 Dirichlet 分配模型。用户可以调用summary获取拟合LDA模型的摘要,spark.posterior计算新数据的后验概率,spark.perplexity计算新数据的log perplexity和write.ml/read.ml保存/加载拟合楷模。
用法:
spark.lda(data, ...)
spark.posterior(object, newData)
spark.perplexity(object, data)
## S4 method for signature 'SparkDataFrame'
spark.lda(
data,
features = "features",
k = 10,
maxIter = 20,
optimizer = c("online", "em"),
subsamplingRate = 0.05,
topicConcentration = -1,
docConcentration = -1,
customizedStopWords = "",
maxVocabSize = bitwShiftL(1, 18)
)
## S4 method for signature 'LDAModel'
summary(object, maxTermsPerTopic)
## S4 method for signature 'LDAModel,SparkDataFrame'
spark.perplexity(object, data)
## S4 method for signature 'LDAModel,SparkDataFrame'
spark.posterior(object, newData)
## S4 method for signature 'LDAModel,character'
write.ml(object, path, overwrite = FALSE)
参数:
data用于训练的 SparkDataFrame。...传递给方法的附加参数。objectspark.lda拟合的潜在狄利克雷分配模型。newData用于测试的 SparkDataFrame。features特征列名。 libSVM-format 列或character-format 列有效。k主题数。maxIter最大迭代次数。optimizer用于训练 LDA 模型的优化器,"online" 或 "em",默认为 "online"。subsamplingRate(对于在线优化器)要在小批量梯度下降的每次迭代中采样和使用的语料库的分数,范围为 (0, 1]。topicConcentration浓度参数(通常命名为beta或eta)用于优先放置在主题分布上的术语,默认为 -1 以在 Spark 端自动设置。使用summary检索有效的topicConcentration。只接受 1 号数字。docConcentration浓度参数(通常命名为alpha)用于优先放置在主题上的文档分布(theta),默认为 -1 以在 Spark 端自动设置。使用summary检索有效的 docConcentration。只接受 1-size 或k-size numeric。customizedStopWords需要从给定语料库中删除的停用词。如果 libSVM-format 列用作特征列,则忽略该参数。maxVocabSize最大词汇量,默认 1 << 18maxTermsPerTopic为每个主题收集的最大术语数。默认值为 10。path保存模型的目录。overwrite如果输出路径已经存在,是否覆盖。默认为 FALSE,这意味着如果输出路径存在则抛出异常。
返回:
spark.lda 返回一个拟合的潜在狄利克雷分配模型。
summary 返回拟合模型的汇总信息,是一个列表。该列表包括
浓度参数通常命名为docConcentrationalpha,用于先前放置在主题上的文档分布theta浓度参数通常命名为topicConcentrationbeta或eta用于在术语上放置主题分布的先验整个语料库的对数似然logLikelihood日志困惑logPerplexityTRUE 用于分布式模型,FALSE 用于本地模型isDistributed语料库中的术语数vocabSize前 10 个术语及其在所有主题中的权重topics训练语料库的全部术语,如果 libsvm 格式文件用作训练集,则为 NULLvocabulary给定当前参数估计,在训练集中观察到的标记的对数似然:log P(docs | topic, topic distributions for docs, Dirichlet hyperparameters) 它仅适用于分布式 LDA 模型(即优化器 = "em")trainingLogLikelihood当前参数估计的对数概率:log P(topics, topic distributions for docs | Dirichlet hyperparameters) 仅适用于分布式 LDA 模型(即优化器 = "em")logPrior
spark.perplexity 返回给定 SparkDataFrame 的 log perplexity,或者如果缺少参数 "data",则返回训练数据的 log perplexity。
spark.posterior 返回一个包含名为"topicDistribution" 的后验概率向量的 SparkDataFrame。
注意:
spark.lda 自 2.1.0
摘要(LDAModel)自 2.1.0 起
spark.perplexity(LDAModel) 自 2.1.0 起
spark.posterior(LDAModel) 自 2.1.0 起
write.ml(LDAModel, character) 自 2.1.0 起
例子:
text <- read.df("data/mllib/sample_lda_libsvm_data.txt", source = "libsvm")
model <- spark.lda(data = text, optimizer = "em")
# get a summary of the model
summary(model)
# compute posterior probabilities
posterior <- spark.posterior(model, text)
showDF(posterior)
# compute perplexity
perplexity <- spark.perplexity(model, text)
# save and load the model
path <- "path/to/model"
write.ml(model, path)
savedModel <- read.ml(path)
summary(savedModel)
相关用法
- R SparkR spark.lm用法及代码示例
- R SparkR spark.logit用法及代码示例
- R SparkR spark.lapply用法及代码示例
- R SparkR spark.decisionTree用法及代码示例
- R SparkR spark.powerIterationClustering用法及代码示例
- R SparkR spark.svmLinear用法及代码示例
- R SparkR spark.gaussianMixture用法及代码示例
- R SparkR spark.naiveBayes用法及代码示例
- R SparkR spark.getSparkFiles用法及代码示例
- R SparkR spark.survreg用法及代码示例
- R SparkR spark.mlp用法及代码示例
- R SparkR spark.fmClassifier用法及代码示例
- R SparkR spark.gbt用法及代码示例
- R SparkR spark.getSparkFilesRootDirectory用法及代码示例
- R SparkR spark.addFile用法及代码示例
- R SparkR spark.isoreg用法及代码示例
- R SparkR spark.als用法及代码示例
- R SparkR spark.glm用法及代码示例
- R SparkR spark.fmRegressor用法及代码示例
- R SparkR spark.kmeans用法及代码示例
注:本文由纯净天空筛选整理自spark.apache.org大神的英文原创作品 Latent Dirichlet Allocation。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。
