若是您有任何疑問,請在下面發表評論。
大數據部落 -中國專業的第三方數據服務提供商,提供定製化的一站式數據挖掘和統計分析諮詢服務
統計分析和數據挖掘諮詢服務: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語言數據分析挖掘必知必會課程!