LDA小結及在gensim中的應用

2021-07-31 17:10:45 字數 1328 閱讀 8911

首先,感謝rickjin的《lda數學八卦》,能兼具如此數學功底和寫作功底的人,著實不多。這是我的個人的思路小結,沒有數學推導,如果想仔細研究,推薦大家去閱讀那篇八卦,寫的很精彩。

lda是nlp領域乙個非常重要的非監督演算法。一直想仔細研究一番。

看完rickjin的《lda數學八卦》,不說理解透徹,這個演算法前前後後的思考過程還是比較清晰的。

首先,why?lda出現的原因是啥呢?

其實是這樣,我們人類在寫文章的時候,構思過程是這樣,我們首先想乙個中心思想,圍繞這個中心思想,可以選擇多個主題,再根據主題選擇下面相應的字詞。例如,我們寫一篇遊記,我們會寫自然風光主題30%,歷史主題30%,個人感受30%,其他10%。在不同的主題下,相同詞語出現的概率是不一樣的。

因此,總結一下就是:一篇文件可能有多個主題,而在多個主題下邊有詞語的不同概率分布。

下邊遇到乙個有趣的事情,統計分為兩個流派:頻率派和貝葉斯學派。這兩個派別解決如上問題,分別產生的演算法是plsa和lda。區別在哪呢?就在於對這個引數的認識。頻率學派的代表plsa,根據頻率最大似然估計概率,得到結果。plsa比較好理解。

而貝葉斯學派認為,引數也時符合某種分布的,因此,plsa的引數需要加上先驗分布,而那就是lda了。

重點就是這個先驗分布。

由於主題的引數和詞語的引數是多項式分布,而多項式分布的先驗概率分布,比較好的選擇是它的共軛分布—狄利克雷分布。我們做出這個假設後,就是lda演算法了。

任何乙個機器學習演算法,少不了兩個:

1、求參

2、解碼

現在就是貝葉斯學派的求參過程了,先說這個。

為何是狄利克雷分布?

因為狄利克雷分布和beta分布一樣,隨著引數的改變,形狀變化很大,所以可以擬合很多很多分布。把它作為先驗分布,合適,大不了引數改改,換個形狀擬合;另乙個就是,因為前面主題模型是多項式分布,而多項式分布的共軛分布就是狄利克雷分布。

何為共軛分布?

共軛分布是指資料符合多項式分布的時候,引數的先驗分布和後驗分布都能保持狄利克雷分布的形式。這種形式不變的好處是,我們能夠在先驗分布中賦予引數很明確的物理意義,這個物理意義可以延續到後驗分布中進行解釋,同時從先驗變換到後驗的過程中,從資料中補充的知識也容易有物理解釋。

可以這麼理解吧,我們假設引數的先驗分布是狄利克雷分布,然後我們有符合多項式分布的後驗知識,然後我們求引數的後驗分布。而狄利克雷分布是多項式分布的共軛分布,所以,這個後驗分布依然是狄利克雷分布。

理解lda的所有數學過程其實就是理解狄利克雷分布和多項式分布的共軛結構。

取樣就是取值。

未完待續。

sklearn中的類及用法 小結2

sklearn中的決策樹,模組 sklearn.tree tree.decisiontreeclassififier 分類樹 tree.decisiontreeregressor 回歸樹 tree.export graphviz 將生成的決策樹匯出為 dot格式,畫圖專用 tree.extratre...

c const型別在類設計中的用法小結

l類中的 const 型資料一共有 5種形式 1.常物件 const 物件 2.常函式 const 函式 3.常指標 const 指標 兩種寫法 4.常引用 const 引用 一種寫法 引用的不可重用性 1.常物件 類名 const 物件名 const 類名 物件名 作用 建立乙個常物件,其中的值不...

qwt 在qtcreator中的整合,及出現的問題

宣告 下面非特殊說明,qtcreator的版本都是qtcreator3.2.1 linux 系統 ubuntu 16.0 一 在整合之前首先要明確的問題 1 確保qmake qtcreator qtdesigner和qt的版本一致,要麼是qt4要麼是qt5。2 如果用qt4,那麼就用qt4的對應的q...