如何确定LDA的主题个数
本文参考自:https://www.zhihu.com/question/32286630
- 选取初始K值,得到初始模型,计算各topic之间的相似度
- 增加或减少K的值,重新训练得到模型,再次计算topic之间的相似度
- 重复第二步直到得到最优的K
另外,Willi Richert , Luis Pedro Coelho著的《机器学习系统设计》第4章专门讨论了LDA主题模型,其中一节讲了“Choosing the number of topics”。文中提到
One of the methods for automatically determining the number of topics is called
the ** hierarchical Dirichlet process (HDP)**
LDA中如何确定topic数量一直都没有公认的好方法,原因在于不同业务对于生成topic的要求是存在差异的。
如果LDA的结果是用于某个目标明确的学习任务(比如分类),那么就直接采用最终任务的指标来衡量就好了,能够实现分类效果最好的topic个数就是最合适的。
如果没有这样的任务怎么办?业界最常用的指标包括Perplexity,MPI-score等。以我的经验,通过观察Perplexity/MPI-score这些指标随topic个数的变化确实能够帮助我们选择合适的个数值,比如可以找出曲线的拐点。但是这些指标只能作为参考,而不能作为标准。
有的业务需要topic之间相互比较独立,那么就可以选择考察topic之间的相关性作为额外的指标。而有的业务可以容忍topic之间存在overlap,但是对topic中词的聚合性要求高,这时候就需要寻找一些聚类的指标做评判标准。
最后,肉眼看仍然是我目前发现的最简单有效的方法。
如何确定LDA的主题个数的更多相关文章
- LDA概率主题模型
目录 LDA 主题模型 几个重要分布 模型 Unigram model Mixture of unigrams model PLSA模型 LDA 怎么确定LDA的topic个数? 如何用主题模型解决推 ...
- 百度开源其NLP主题模型工具包,文本分类等场景可直接使用L——LDA进行主题选择本质就是降维,然后用于推荐或者分类
2017年7月4日,百度开源了一款主题模型项目,名曰:Familia. InfoQ记者第一时间联系到百度Familia项目负责人姜迪并对他进行采访,在本文中,他将为我们解析Familia项目的技术细节 ...
- LDA算法 (主题模型算法) 学习笔记
转载请注明出处: http://www.cnblogs.com/gufeiyang 随着互联网的发展,文本分析越来越受到重视.由于文本格式的复杂性,人们往往很难直接利用文本进行分析.因此一些将文本数值 ...
- LDA(主题模型算法)
LDA整体流程 先定义一些字母的含义: 文档集合D,topic集合T D中每个文档d看作一个单词序列< w1,w2,...,wn >,wi表示第i个单词,设d有n个单词.(LDA里面称之为 ...
- [综] Latent Dirichlet Allocation(LDA)主题模型算法
多项分布 http://szjc.math168.com/book/ebookdetail.aspx?cateid=1&§ionid=983 二项分布和多项分布 http:// ...
- 文本主题模型之LDA(二) LDA求解之Gibbs采样算法
文本主题模型之LDA(一) LDA基础 文本主题模型之LDA(二) LDA求解之Gibbs采样算法 文本主题模型之LDA(三) LDA求解之变分推断EM算法(TODO) 本文是LDA主题模型的第二篇, ...
- 文本主题模型之LDA(一) LDA基础
文本主题模型之LDA(一) LDA基础 文本主题模型之LDA(二) LDA求解之Gibbs采样算法 文本主题模型之LDA(三) LDA求解之变分推断EM算法(TODO) 在前面我们讲到了基于矩阵分解的 ...
- LDA主题模型学习笔记5:C源代码理解
1.说明 本文对LDA原始论文的作者所提供的C代码中LDA的主要逻辑部分做凝视,原代码可在这里下载到:https://github.com/Blei-Lab/lda-c 这份代码实现论文<Lat ...
- 基于gensim的LDA主题模型实现 一键式函数打包
def genlda(textlist,n): ticks = str(time.time()).replace('.','')[-6:-1] nn=str(n) dictionary = corpo ...
随机推荐
- GAN 生成mnist数据
参考资料 GAN原理学习笔记 生成式对抗网络GAN汇总 GAN的理解与TensorFlow的实现 TensorFlow小试牛刀(2):GAN生成手写数字 参考代码之一 #coding=utf-8 #h ...
- 【Properties】Properties的load方法
Properties的load方法其实就是传进去一个输入流,字节流或者字符流,字节流利用InputStreamReader转化为字符流, 然后字符流用BufferedReader包装,Buffered ...
- 部署到服务器-执行脚本-脚本传递参数-需要base on 执行传入的参数(被测环境的ip)
测试脚本 # !/usr/bin/python # -*- coding:utf-8 -*- import sys sys.path.append("..") from utils ...
- Android开发人员必备的10个开发工具
工欲善其事,必先利其器,Android SDK 本身包含很多帮助开发人员设计.开发.测试和发布 Android 应用的工具,在本文中,我们将讨论 10 个最常用的工具. 1.Eclipse ADT E ...
- 【NOIP模拟题】Permutation(dp+高精度)
首先我们可以这样想: 设状态f[i, j]表示1-i序列有j个'<'的方案数 那么考虑转移 因为i比i-1大,所以可以考虑从i-1来转移.首先i是要插入1-i-1这个序列的,所以我们可以思考插入 ...
- ACM计算几何模板——二维几何基础(基本运算,点和线,多边形)
/*==========================*\ | 计算几何基础函数 | | 1.点和向量的定义 | | 2.向量的基本运算 | | 3.点积 | | 4.向量长度 | | 5.两向量角 ...
- php 实现Iterator 接口
<?php class MyIterator implements Iterator{ private $var = array(); public function __construct($ ...
- keepalive和脑裂问题
keepalive keepalive起初专门为lvs负载均衡软件设计的,用来管理监控lvs集群系统中各个服务节点的状态,后来又加入了可以实现高可用的vrrp功能. keepalive软件通过vrrp ...
- jquery中return false的作用
jquery中的return false既阻止默认事件,又阻止冒泡: 在原生的js中,return false只有一个功能,那就是阻止默认事件. <!DOCTYPE html> <h ...
- 第一次广搜!HDU1548--A Strange Lift
一上来看见题目就用了深搜(因为只会深搜)果断内存超限(据说时间也会超限)无奈只好开始用广搜 其实广搜的思路和深搜有很多类似的地方 不过实现的过程中用到了队列 因此有点难以理解(好吧我个人认为) 这题是 ...