2012-06-22 89 views
30

我已閱讀LDA,並瞭解在輸入文檔集合時如何生成主題的數學。LDA主題建模 - 培訓和測試

參考文獻說,LDA是一種算法,只要給出一個文檔集合(不需要監督),就可以發現該集合中的文檔所表達的「主題」。因此,通過使用LDA算法和吉布斯採樣器(或變分貝葉斯),我可以輸入一組文檔和輸出,我可以得到主題。每個主題都是一組具有分配概率的術語。

我不明白的是,如果上述說法屬實,那麼爲什麼很多主題建模教程都會談論將數據集分爲訓練集和測試集?

任何人都可以向我解釋LDA如何用於訓練模型的步驟(基本概念),然後可以使用它來分析另一個測試數據集?

+1

一個很好的問題! – KillBill

回答

30

將數據分解爲訓練集和測試集是評估學習算法性能的常用步驟。對於監督式學習來說,這更爲明確,在訓練集上訓練模型,然後看看它在測試集上的分類與真實類別標籤相匹配的程度。對於無監督學習,這種評估有點棘手。在主題建模的情況下,性能的常見衡量標準是perplexity。您在訓練集上訓練模型(如LDA),然後您會看到模型在測試集上「困惑」的程度。更具體地說,您可以衡量測試文檔的單詞分佈由主題表示的單詞分佈表示得如何。

困惑對於模型或參數設置之間的相對比較是有利的,但它的數值並沒有多大意義。我更喜歡使用以下,有些手冊,評價過程,評價的主題模型:

  1. 檢查主題:看各主題中的最高的可能性的話。他們聽起來像是形成了一個有凝聚力的「話題」,或者只是一些隨機的單詞?
  2. 檢查主題分配:從培訓中拿出一些隨機文檔,並查看LDA分配給他們的主題。手動檢查指定主題中的文檔和主題詞。它看起來像話題真正描述了文件實際上在談論什麼?

我意識到這個過程並不像人們喜歡的那樣好,也不像定量,但說實話,主題模型的應用也很少是定量的。我建議根據您應用的問題評估您的主題模型。

祝你好運!

+0

非常感謝gregamis的解釋。對於你的點數2)。主題分配到文檔,你如何去分配主題到文檔中的單詞?你是否順序瀏覽文檔中的單詞並查找主題中的同一單詞並將該主題分配給該單詞?那麼如果你這樣做,當一個單詞出現在一個以上的話題中的概率很高時會發生什麼?說一個非常簡單的例子,'河岸'和'銀行賬戶'。 – tan

+1

@tan:主題應該分配給文檔而不是單詞。也不是手動的。 –

+0

@gregamis:感謝您發佈此信息。那麼,我們是否使用監督LDA /任何其他主題建模技術來評估主題模型? – user1930402