关于LDA的理论部分,参考其他博客(链接待定),本文主要记录spark中LDA的实现。
spark1.4版本的LDA原文比较简单,下面主要是以翻译官网为主。
理论部分
LDA是一个主题模型,它能够推理出一个文本文档集合的主题。LDA可以认为是一个聚类算法,原因如下:
- 主题对应聚类中心,文档对应数据集中的样本(数据行)
- 主题和文档都在一个特征空间中,其特征向量是词频向量
- 跟使用传统的距离来评估聚类不一样的是,LDA使用评估方式是一个函数,该函数基于文档如何生成的统计模型。
LDA以词频向量表示的文档集合作为输入,输出结果提供:
- Topics:推断出的主题,每个主题是单词上的概率分布。
- Topic distributions for documents:对训练集中的每个文档,LDA给一个在主题上的概率分布。
LDA参数
- K:主题数量(或者说聚簇中心数量)
- maxIterations:EM算法的最大迭代次数
- docConcentration:文档在主题上分布的先验参数。当前必须大于1,值越大,推断出的分布越平滑。默认为-1,自动设置。
- topicConcentration:主题在单词上的先验分布参数。当前必须大于1