文字主題模型之LDA(一) LDA基礎
在前面我們講到了基於矩陣分解的LSI和NMF主題模型,這裡我們開始討論被廣泛使用的主題模型:隱含狄利克雷分佈(Latent Dirichlet Allocation,以下簡稱LDA)。注意機器學習還有一個LDA,即線性判別分析,主要是用於降維和分類的,如果大家需要了解這個LDA的資訊,參看之前寫的線性判別分析LDA原理總結。文字關注於隱含狄利克雷分佈對應的LDA。
1. LDA貝葉斯模型
LDA是基於貝葉斯模型的,涉及到貝葉斯模型離不開“先驗分佈”,“資料(似然)”和"後驗分佈"三塊。在樸素貝葉斯演算法原理小結中我們也已經講到了這套貝葉斯理論。在貝葉斯學派這裡:
先驗分佈 + 資料(似然)= 後驗分佈
這點其實很好理解,因為這符合我們人的思維方式,比如你對好人和壞人的認知,先驗分佈為:100個好人和100個的壞人,即你認為好人壞人各佔一半,現在你被2個好人(資料)幫助了和1個壞人騙了,於是你得到了新的後驗分佈為:102個好人和101個的壞人。現在你的後驗分佈裡面認為好人比壞人多了。這個後驗分佈接著又變成你的新的先驗分佈,當你被1個好人(資料)幫助了和3個壞人(資料)騙了後,你又更新了你的後驗分佈為:103個好人和104個的壞人。依次繼續更新下去。
2. 二項分佈與Beta分佈
對於上一節的貝葉斯模型和認知過程,假如用數學和概率的方式該如何表達呢?
對於我們的資料(似然),這個好辦,用一個二項分佈就可以搞定,即對於二項分佈:
其中p我們可以理解為好人的概率,k為好人的個數,n為好人壞人的總數。
雖然資料(似然)很好理解,但是對於先驗分佈,我們就要費一番腦筋了,為什麼呢?因為我們希望這個先驗分佈和資料(似然)對應的二項分佈集合後,得到的後驗分佈在後面還可以作為先驗分佈!就像上面例子裡的“102個好人和101個的壞人”,它是前面一次貝葉斯推薦的後驗分佈,又是後一次貝葉斯推薦的先驗分佈。也即是說,我們希望先驗分佈和後驗分佈的形式應該是一樣的,這樣的分佈我們一般叫共軛分佈。在我們的例子裡,我們希望找到和二項分佈共軛的分佈。
和二項分佈共軛的分佈其實就是Beta分佈。Beta分佈的表示式為:
Beta(p|α,β)=Γ(α+β)Γ(α)Γ(β)pα−1(1−p)β−1Beta(p|α,β)=Γ(α+β)Γ(α)Γ(β)pα−1(1−p)β−1其中ΓΓ是Gamma函式,滿足Γ(x)=(x−1)!Γ(x)=(x−1)!
仔細觀察Beta分佈和二項分佈,可以發現兩者的密度函式很相似,區別僅僅在前面的歸一化的階乘項。那麼它如何做到先驗分佈和後驗分佈的形式一樣呢?後驗分佈P(p|n,k,α,β)P(p|n,k,α,β)推導如下:
P(p|n,k,α,β)∝P(k|n,p)P(p|α,β)=P(k|n,p)P(p|α,β)=Binom(k|n,p)Beta(p|α,β)=(nk)pk(1−p)n−k×Γ(α+β)Γ(α)Γ(β)pα−1(1−p)β−1∝pk+α−1(1−p)n−k+β−1(1)(2)(3)(4)(5)(1)P(p|n,k,α,β)∝P(k|n,p)P(p|α,β)(2)=P(k|n,p)P(p|α,β)(3)=Binom(k|n,p)Beta(p|α,β)(4)=(nk)pk(1−p)n−k×Γ(α+β)Γ(α)Γ(β)pα−1(1−p)β−1(5)∝pk+α−1(1−p)n−k+β−1將上面最後的式子歸一化以後,得到我們的後驗概率為:
P(p|n,k,α,β)=Γ(α+β+n)相關推薦
文字主題模型之LDA(一) LDA基礎
在前面我們講到了基於矩陣分解的LSI和NMF主題模型,這裡我們開始討論被廣泛使用的主題模型:隱含狄利克雷分佈(Latent Dirichlet Allocation,以下簡稱LDA)。注意機器學習還有一個LDA,即線性判別分析,主要是用於降維和分類的,如果大家需要了解這個LD
文字主題模型之LDA(二) LDA求解之Gibbs取樣演算法
本文是LDA主題模型的第二篇,讀這一篇之前建議先讀文字主題模型之LDA(一) LDA基礎,同時由於使用了基於MCMC的Gibbs取樣演算法,如果你對MCMC和Gibbs取樣不熟悉,建議閱讀之前寫的MCMC系列MCMC(四)Gibbs取樣。 1. Gibbs取樣演算法求解LDA的思
文字主題模型之潛在語義分析(LDA:Latent Dirichlet Allocation)
1、LDA作用 傳統判斷兩個文件相似性的方法是通過檢視兩個文件共同出現的單詞的多少,如TF-IDF等,這種方法沒有考慮到文字背後的語義關聯,可能在兩個文件共同出現的單詞很少甚至沒有,但兩個文件是相似的。 舉個例子,有兩個
文字主題模型之非負矩陣分解(NMF)
在文字主題模型之潛在語義索引(LSI)中,我們講到LSI主題模型使用了奇異值分解,面臨著高維度計算量太大的問題。這裡我們就介紹另一種基於矩陣分解的主題模型:非負矩陣分解(NMF),它同樣使用了矩陣分解,但是計算量和處理速度則比LSI快,它是怎麼做到的呢? 1. 非負矩陣分解(NMF)概述
機器學習主題模型之LDA引數求解——Gibbs取樣
LDA引數推導的Gibbs取樣方法基於馬爾科夫鏈蒙特卡洛方法,因此首先學習MCMC方法。 一、馬爾科夫鏈蒙特卡洛方法 MCMC(Markov Chain Monte Carlo)方法是構造適合的馬爾科夫鏈,使其平穩分佈為待估引數的後驗分佈,抽樣並使用蒙特卡洛方法進行積
我是這樣一步步理解--主題模型(Topic Model)、LDA(案例程式碼)
1. LDA模型是什麼 LDA可以分為以下5個步驟: 一個函式:gamma函式。 四個分佈:二項分佈、多項分佈、beta分佈、Dirichlet分佈。 一個概念和一個理念:共軛先驗和貝葉斯框架。 兩個模型:pLSA、LDA。 一個取樣:Gibbs取樣 關於LDA有兩種含義,一種是線性判別分析(Linear
文本主題模型之非負矩陣分解(NMF)
slist 做到 主題模型 直觀 推薦算法 語言 開始 2.6 如果 在文本主題模型之潛在語義索引(LSI)中,我們講到LSI主題模型使用了奇異值分解,面臨著高維度計算量太大的問題。這裏我們就介紹另一種基於矩陣分解的主題模型:非負矩陣分解(NMF),它同樣使用了矩陣分解,但
appium自動化之(一)基礎環境配置
APPIUM 基礎環境配置 文章來源:企鵝號 - 全棧軟體測試 1、安裝配置JDK 這個不用多說 常規操作 2、Android SDK 安裝 官方下載地址:https://developer.android.com/studio/index.html?hl=zh-cn 其他地址:
gensim文字主題模型推薦
用gensim包做中文文字的推薦 一、gensim是generate similar的簡寫,叫做普遍相似。對於gensim這個包建議新手直接使用anaconda工具進行集中安裝 二、gensim
後臺學習之路(一):Java基礎回顧
集合: 單列集合: Collection:單列集合的根介面 List:實現了List介面的集合類,具備的特點:有序、
Tensorflow深度學習之十一:基礎影象處理
OpenCV是一個十分強大的視覺庫,tensorflow也提供了十分強大的圖片處理函式,下面是一個簡單的例子來說明使用tensorflow和opencv兩個工具進行深度學習程式的設計。 首先是使用的原始圖片: import tensorflow as
Android四大元件之服務(一)-----服務基礎功能簡述
服務(Service)是android的四大元件之一,在Android專案中擔任著後臺執行的大任,主要去完成那些不需要和使用者互動而且還要求長時間執行在後臺的工作。服務的執行不會對使用者使用app造成任何影響,這個元件屬於很常用的元件,幾乎每一款app產品都會用到,比如後臺
爬蟲基礎框架 之xpath(一) --- xpath基礎
join read [1] tco ext from ans 註意 csv xpath簡介 lxml是一個第三方框架,用於對xml文件進行格式化操作(html文件是一種特殊xml文件) xpath是一種基於xml文件,根據xml文件的文檔結構來提取目標元
爬蟲基礎框架 之bs4 (一) --- bs4基礎
nts ldr spa ant end for Coding gen fin bs4簡介 bs4是一個html的解析工具,根據html的特征和屬性來查找節點 1 from bs4 import BeautifulSoup 2 3 fp = open("
主題模型(LDA)(一)--通俗理解與簡單應用---一些程式碼
這篇文章主要給一些不太喜歡數學的朋友們的,其中基本沒有用什麼數學公式。 目錄 直觀理解主題模型 LDA的通俗定義 LDA分類原理 LDA的精髓 主題模型的簡單應用-希拉里郵件門 1.直觀理解主題模型 聽名字應該就知道他講的是什麼?假如有一篇文章text,通
機器學習之LDA主題模型演算法
1、知道LDA的特點和應用方向 1.1、特點 知道LDA說的降維代表什麼含義:將一篇分詞後的文章降維為一個主題分佈(即如20個特徵向量主題)。 根據對應的特徵向量中的相關主題概率(20個主題的概率相加為1即為主題分佈)得到對應的文件主題,屬於無監督學習(你沒有
主題模型(LDA)(一)--通俗理解與簡單應用
這篇文章主要給一些不太喜歡數學的朋友們的,其中基本沒有用什麼數學公式。 目錄 直觀理解主題模型 LDA的通俗定義 LDA分類原理 LDA的精髓 主題模型的簡單應用-希拉里郵件門 1.直觀理解主題模型 聽名字應該就知道他講的是什麼?假如有一
深入淺出講解LDA主題模型(一)
最近總是遇到主題模型LDA(Latent Dirichlet Allocation),網上的部落格寫的天花亂墜而不知所以然,無奈看了最厚的《LDA數學八卦》,觀完略通一二,記錄於此~順便放兩張遇到的圖,挺有意思的,共勉吧: 主題模型 首先我們來看
NLP:主題模型LDA+SVM進行文字分類
參考:http://www.cnblogs.com/pinard/p/6908150.htmlhttp://blog.csdn.net/TiffanyRabbit/article/details/764
Spark:聚類演算法之LDA主題模型演算法
Spark上實現LDA原理LDA主題模型演算法Spark實現LDA的GraphX基礎在Spark 1.3中,MLlib現在支援最成功的主題模型之一,隱含狄利克雷分佈(LDA)。LDA也是基於GraphX上構建的第一個MLlib演算法,GraphX是實現它最自然的方式。有許多演