文章目录

  • 1. 狄利克雷分布
  • 2. 潜在狄利克雷分配模型
  • 3. 学习推理
  • 4. sklearn.decomposition.LatentDirichletAllocation

潜在狄利克雷分配(latent Dirichlet allocation,LDA),作为基于 贝叶斯学习的话题模型,是潜在语义分析、概率潜在语义分析的扩展,于2002年由Blei等提出。LDA在文本数据挖掘、图像处理、生物信息处理等领域被广泛使用。

LDA模型是文本集合的生成概率模型

  • 假设每个文本话题的一个多项分布表示

  • 每个话题单词的一个多项分布表示

  • 特别假设文本的话题分布的先验分布是狄利克雷分布

  • 话题的单词分布的先验分布也是狄利克雷分布

  • 先验分布的导入使LDA能够更好地应对话题模型学习中的过拟合现象

LDA的文本集合的生成过程如下:

  • 首先随机生成一个文本的话题分布
  • 之后在该文本的每个位置,依据该文本的话题分布随机生成一个话题
  • 然后在该位置依据该话题的单词分布随机生成一个单词
  • 直至文本的最后一个位置,生成整个文本。重复以上过程生成所有文本

LDA模型是含有隐变量的概率图模型

  • 模型中,每个话题的单词分布,每个文本的话题分布,文本的每个位置的话题是隐变量
  • 文本的每个位置的单词是观测变量
  • LDA模型的学习与推理无法直接求解,通常使用吉布斯抽样(Gibbs sampling)和变分EM算法(variational EM algorithm),前者是蒙特卡罗法,而后者是近似算法

1. 狄利克雷分布

狄利克雷分布(Dirichlet distribution)是一种多元连续随机变量的概率分布,是贝塔分布(beta distribution)的扩展。在贝叶斯学习中,狄利克雷分布常作为多项分布的先验分布使用。

定义:

多元连续随机变量 θ=(θ1,θ2,...,θk)\theta = (\theta_1,\theta_2,...,\theta_k)θ=(θ1​,θ2​,...,θk​) 的概率密度函数为:
p(θ∣α)=Γ(∑i=1kαi)∏i=1kΓ(αi)∏i=1kθiαi−1∑i=1kθi=1,θi≥0,αi>0,记作θ∼Dir(α)p(\theta|\alpha) = \frac{\Gamma \bigg(\sum\limits_{i=1}^k \alpha_i\bigg)}{\prod\limits_{i=1}^k \Gamma(\alpha_i)} \prod\limits_{i=1}^k \theta_i^{\alpha_i-1}\quad \sum\limits_{i=1}^k \theta_i = 1, \theta_i\ge 0,\alpha_i >0,记作\theta \sim Dir(\alpha)p(θ∣α)=i=1∏k​Γ(αi​)Γ(i=1∑k​αi​)​i=1∏k​θiαi​−1​i=1∑k​θi​=1,θi​≥0,αi​>0,记作θ∼Dir(α)
伽马函数,Γ(s)=∫0∞xs−1e−xdx,s>0伽马函数,\Gamma(s) = \int_0^{\infty} x^{s-1}e^{-x}dx, \quad s>0伽马函数,Γ(s)=∫0∞​xs−1e−xdx,s>0
伽马函数性质:
Γ(s+1)=sΓ(s)\Gamma(s+1) = s\Gamma(s)Γ(s+1)=sΓ(s)
当 sss 是自然数时,有 Γ(s+1)=s!\Gamma(s+1) = s!Γ(s+1)=s!

2. 潜在狄利克雷分配模型


LDA模型是概率图模型:

  • 特点:以狄利克雷分布为多项分布的先验分布
  • 学习:就是给定文本集合,通过后验概率分布的估计,推断模型的所有参数

利用LDA进行话题分析,就是对给定文本集合,学习到每个文本的话题分布,以及每个话题的单词分布

  • 可以认为LDA是PLSA(概率潜在语义分析)的扩展
  • 相同点:两者都假设话题是单词的多项分布,文本是话题的多项分布
  • 不同点:LDA使用狄利克雷分布作为先验分布,而PLSA不使用先验分布(或者说假设先验分布是均匀分布),两者对文本生成过程有不同假设
  • 学习过程:LDA基于贝叶斯学习,而PLSA基于极大似然估计
  • LDA的优点是:使用先验概率分布,可以防止学习过程中产生的过拟合(over-fitting)

3. 学习推理

LDA模型的学习与推理不能直接求解。

  • 通常采用的方法是吉布斯抽样算法变分EM算法
  • 前者是蒙特卡罗法,而后者是近似算法

4. sklearn.decomposition.LatentDirichletAllocation

sklearn.decomposition.LatentDirichletAllocation官网介绍

class sklearn.decomposition.LatentDirichletAllocation(n_components=10,
doc_topic_prior=None, topic_word_prior=None, learning_method='batch',
learning_decay=0.7, learning_offset=10.0, max_iter=10, batch_size=128,
evaluate_every=-1, total_samples=1000000.0, perp_tol=0.1,
mean_change_tol=0.001, max_doc_update_iter=100, n_jobs=None, verbose=0,
random_state=None)

n_components, optional (default=10),话题数量

实践参考:https://www.cnblogs.com/pinard/p/6908150.html

潜在狄利克雷分配(Latent Dirichlet Allocation,LDA)相关推荐

  1. 隐含狄利克雷分布(Latent Dirichlet Allocation)

    隐含狄利克雷分布(Latent Dirichlet Allocation,   注意机器学习还有一个LDA,即线性判别分析(线性判别分析https://blog.csdn.net/qq_3529078 ...

  2. Dirichlet Distribution狄利克雷分布 / Latent Dirichlet Allocation (LDA)隐藏狄利克雷概念的理解

    目录: Dirichlet Distribution 狄利克雷分布 Bayesian Generative Models 贝叶斯生成模型 Mixture Models and the EM algor ...

  3. Latent Dirichlet Allocation (LDA)

    文章目录 LDA可以用来干什么? LDA模型简单引入与贝叶斯估计 二项分布与多项分布 共轭分布 MCMC采样 MCMC = Markov Chain(马尔科夫链)+ Monte Carlo(蒙特卡洛) ...

  4. R语言文本主题模型之潜在语义分析(LDA:Latent Dirichlet Allocation)

    文本分析:主题建模 library(tidyverse) theme_set( theme_bw()) 目标 定义主题建模 解释Latent Dirichlet以及此过程的工作原理 演示如何使用LDA ...

  5. sklearn自学指南(part52)--潜在狄利克雷分配(LDA)

    学习笔记,仅供参考,有错必纠 文章目录 分解信号的分量(矩阵分解问题) 潜在狄利克雷分配(LDA) 分解信号的分量(矩阵分解问题) 潜在狄利克雷分配(LDA) 潜在狄利克雷分配(Latent Diri ...

  6. 复现经典:《统计学习方法》第20章 潜在狄利克雷分配

    0章 潜在狄利克雷分配 本文是李航老师的<统计学习方法>一书的代码复现.作者:黄海广 备注:代码都可以在github中下载.我将陆续将代码发布在公众号"机器学习初学者" ...

  7. 简单易学的机器学习算法——Latent Dirichlet Allocation(理论篇)

    引言 LDA(Latent Dirichlet Allocation)称为潜在狄利克雷分布,是文本语义分析中比较重要的一个模型,同时,LDA模型中使用到了贝叶斯思维的一些知识,这些知识是统计机器学习的 ...

  8. Latent dirichlet allocation note

    2 Latent Dirichlet Allocation Introduction LDA是给文本建模的一种方法,它属于生成模型.生成模型是指该模型可以随机生成可观测的数据,LDA可以随机生成一篇由 ...

  9. “西游记之大圣归来”短评主题分析-Latent Dirichlet Allocation

    功能 输出影评主题: 输出每份评论在各个主题上的权重分布. 工具 python2 spark2.0.2 引言 在机器学习中,LDA是两个常用模型的简称:线性判别分析(Linear Discrimina ...

  10. 潜在狄利克雷分配(LDA,Latent Dirichlet Allocation)模型(三)

    潜在狄利克雷分配(LDA,Latent Dirichlet Allocation)模型(三) 目录 潜在狄利克雷分配(LDA,Latent Dirichlet Allocation)模型(三) 主题演 ...

最新文章

  1. python浅拷贝 深拷贝
  2. python mutilprocessing多进程编程
  3. Android-Universal-Image-Loader 的使用说明
  4. MAC OS 命令行使用详解
  5. 译文 | 与TensorFlow的第一次接触 第三章:聚类
  6. BranchCache实验(1)总部的服务器配置
  7. Android开发环境搭建与入门Hello World
  8. Java并发:五种线程安全类型、线程安全的实现、枚举类型
  9. Visual Studio 2012正式版官方下载地址
  10. 【TWVRP】基于matlab遗传算法求解带时间窗的载重约束外卖配送车辆路径规划问题【含Matlab源码 1417期】
  11. Java第二次作业參考代码
  12. android定位坑简书,android webview 定位问题
  13. Lua C API中文函数手册
  14. 海康人脸服务器型号,DS-2CD7A27FWD/F-LZ(S) 海康人脸识别摄像机 海康200万像素深眸智能人脸日夜筒型网络摄像机...
  15. 夏普(SHARP) LS050T1SX01 液晶屏接口定义
  16. 关于使用克莱姆法则和矩阵消元法解线性方程组的效率的比较
  17. DBeaver Column repay _ script _ sql is read-only : Nocorresponding table column问题
  18. 在快手工作是一种什么样的体验?
  19. 什么是memcache,常见的memcache方法
  20. 神操作!用 Python 操作 xmind 绘制思维导图!

热门文章

  1. java mapstring_ object 遍历_ListMapString,Object使用Java代码遍历以获取String,Object的值...
  2. caffe caffe.cpp 程序入口分析
  3. SharePoint 入门介绍
  4. 滚动到页面底部自动加载内容
  5. linux-pcap 抓包程序框架
  6. 简单banner制作
  7. 网络数据的背后-网络日志的分析指标【转】
  8. Python核心教程(第二版)读书笔记(三)
  9. Java代码优化方案 J2ME内存优化
  10. Linux内核代码,第一次看到这样使用的宏