若是您有任何疑问,请在下面发表评论。
大数据部落 -中国专业的第三方数据服务提供商,提供定制化的一站式数据挖掘和统计分析咨询服务
统计分析和数据挖掘咨询服务:y0.cn/teradat(咨询服务请联系官网客服)
【服务场景】
科研项目; 公司项目外包;线上线下一对一培训;数据爬虫采集;学术研究;报告撰写;市场调查。
【大数据部落】提供定制化的一站式数据挖掘和统计分析咨询
欢迎选修咱们的R语言数据分析挖掘必知必会课程!
主题建模是一种在大量文档中查找抽象主题的艺术方法。一种做为监督无的机器学习方法,主题模型不容易评估,由于没有标记的“基础事实”数据可供比较。然而,因为主题建模一般须要预先定义一些参数(首先是要发现的主题ķ的数量),所以模型评估对于找到给定数据的“最佳”参数集是相当重要的。微信
使用未标记的数据时,模型评估很难。这里描述的指标都试图用理论方法评估模型的质量,以便找到“最佳”模型。app
有些指标仅用于评估后验分布(主题 - 单词和文档 - 主题分布),而无需以某种方式将模型与观察到的数据进行比较。机器学习
主题建模的主要功能位于tmtoolkit.lda_utils
。函数
接下来,咱们加载由文档标签,词汇表(惟一单词)列表和文档 - 术语 - 矩阵组成的数据dtm
。咱们确保dtm
尺寸合适:post
如今咱们定义应该评估的参数集咱们设置了一个常量参数字典。const_params
,它将用于每一个主题模型计算并保持不变咱们还设置了。varying_params
包含具备不一样参数值的字典的不一样参数列表:学习
在这里,咱们想要从一系列主题中计算不一样的主题模型ks = [10, 20, .. 100, 120, .. 300, 350, .. 500, 600, 700]
。因为咱们有26个不一样的值ks
,咱们将建立和比较26个主题模型。请注意,还咱们alpha
为每一个模型定义了一个参数1/k
(有关LDA中的α和测试超参数的讨论,请参见下文)。参数名称必须与所使用的相应主题建模包的参数匹配。在这里,咱们将使用lda
,所以咱们经过参数,如n_iter
或n_topics
(例如,而与其余包的参数名称也会有所不一样num_topics
,不是而n_topics
在gensim)。测试
咱们如今可使用模块中的evaluate_topic_models
函数开始评估咱们的模型tm_lda
,并将不一样参数列表和带有常量参数的字典传递给它:大数据
默认状况下,这将使用全部CPU内核来计算模型并并行评估它们。 ui
该plot_eval_results
函数使用在评估期间计算的全部度量建立³³绘图。以后,若是须要,咱们可使用matplotlib方法调整绘图(例如添加绘图标题),最后咱们显示和/或保存绘图。lua
主题模型评估,alpha = 1 / k,beta = 0.01
请注意,对于“loglikelihood”度量,仅报告最终模型的对数似然估计,这与Griffiths和Steyvers使用的调和均值方法不一样。没法使用Griffiths和Steyvers方法,由于它须要一个特殊的Python包(gmpy2) ,这在我运行评估的CPU集群机器上是不可用的。可是,“对数似然”将报告很是类似的结果。
除了主题数量以外,还有alpha和beta(有时是文献中的eta)参数。二者都用于定义Dirichlet先验,用于计算各自的后验分布.Alpha是针对特定于文档的主题分布的先验的“浓度参数”,而且是针对主题特定的单词分布的先前的β 。
主题模型,alpha = 1 / k,beta = 0.1
当咱们使用与上述相同的alpha参数和相同的k范围运行评估时,可是当β= 0.1而不是β= 0.01时,咱们看到对数似然在k的较低范围内最大化,即大约70到300(见上图) 。
组合这些参数有不少种可能性,可是解释这些参数一般并不容易。下图显示了不一样情景的评估结果:(1)α和β的固定值取决于k,(2)α和β都固定, (3)α和β均取决于k。
(1)主题模型,alpha = 0.1,beta = 1 /(10k)
(2)主题模型,alpha = 0.1,beta = 0.01
(3)主题模型,alpha = 1 / k,beta = 1 /(10k)
LDA超参数α,β和主题数量都相互关联,相互做用很是复杂。在大多数状况下,用于定义模型“粒度”的beta的固定值彷佛是合理的,这也是Griffiths和Steyvers所推荐的。一个更精细的模型评估,具备不一样的alpha参数(取决于k)使用解释的指标能够完成不少主题。
大数据部落 -中国专业的第三方数据服务提供商,提供定制化的一站式数据挖掘和统计分析咨询服务
统计分析和数据挖掘咨询服务:y0.cn/teradat(咨询服务请联系官网客服)
【服务场景】
科研项目; 公司项目外包;线上线下一对一培训;数据爬虫采集;学术研究;报告撰写;市场调查。
【大数据部落】提供定制化的一站式数据挖掘和统计分析咨询
欢迎选修咱们的R语言数据分析挖掘必知必会课程!