對比傳統K-Means等聚類演算法,LDA主題模型在文本聚類上有何優缺點?

本人大三,最近在跟導師做自然語言相關研究,由於剛剛入門,接觸並簡單測試了一下LDA,感覺不是特別清楚,LDA是不是就是把文本按主題聚類?其對比其他傳統聚類演算法有何優缺點?


慢,非常慢...

這裡有一篇微博上的討論,大家對於微博上關於LDA和PLSA的討論,推薦給題主看一下


lda和plsa的區別請參見 @紀路 的答案 我只談plsa和傳統演算法的關係

當我們談到plsa的時候 我們默認了兩個假設:

1 一篇文本包含多個主題

2 每個主題生成各種詞語的概率服從multinomial分布

傳統kmeans演算法首先違反第二個假設 假定了詞語向量服從多元高斯分布 其次 想要模擬第一個假設 我只想到一個非常hack的方法 將每個詞語和文檔id對當做一個對象 把這個文檔中的其他詞語當做特徵

通常我們說的nb不是一個聚類演算法 但是在plsa的那篇開創性論文中已經提到了一種nb mixture演算法 這種演算法和plsa的唯一區別就是違反了第一個假設

最後 違反第一個假設沒什麼大不了的 只是你得到的類和plsa的類的意義不同罷了


題主題目說的分類 題干里又變成了聚類 因為題主是剛接觸 所以有很多概念上的不清 把接觸到的東西放在一起拿出來問 但其實這是很不適合的 不適合作答

到底想問分類還是聚類

說是聚類吧

用樸素貝葉斯做聚類?我不太清楚這個的意義,一般說起樸素貝葉斯有兩個意思,一是一種假設,假設特徵是條件獨立的,一個特指樸素貝葉斯分類器。條件獨立的假設是一種簡化問題的常見方法,可以用在任何概率模型中。

說是分類:

最後有一句「其對比其他傳統聚類演算法有何優缺點?」

寫題目時請三思,如果自己沒有搞清想問什麼,別人更難看懂,自然也得不到想要的答案。


其實我覺得可以用層次聚類代替k-means聚類,只不過字典變得非常大時,pca降維會爆內存。我現在在搜狗語料庫做聚類(PCA降維+層次聚類),精度在80%左右,不知道用PLSA這樣的演算法聚類精度能在多少。


推薦閱讀:

海量數據的聚類通常如何做?
哪種聚類演算法可以不需要指定聚類的個數,而且可以生成聚類的規則?
如何根據每個策略的 daily return 對不同策略進行最為有效的分類?

TAG:數據挖掘 | 自然語言處理 | 主題模型 | 文本分類 | 聚類演算法 |