2017-07-03 72 views
-1

我正在使用Scikit-Learn的LatentDirichletAllocation模型。 X是包含5000個特徵(100 x 5000)的100個文檔的矩陣。我運行了以下代碼:我如何解讀scikit學習LDA方法的轉換結果?

from sklearn.decomposition import LatentDirichletAllocation 
lda = LatentDirichletAllocation(n_topics = 5) 
X_new = lda.fit_transform(X) 

X_new現在是一個100 X 5的矩陣,它應該是每個文檔的主題分佈。但是,我不確定如何解釋實際值。每個數組的總和不等於100,所以它本身不是一個分佈。例如,前兩個文檔的數組爲:

[66404.6, 0.2, 2004.7, 0.2, 0.2] 
[0.2,47.3,0.2,14.0,02] 

如何解釋/歸一化這些數字?

回答

1

我認爲這個問題更適合在這裏:https://datascience.stackexchange.com

但是,既然你問在這裏,每個單元是本文檔「多少」適合的N議題之一(在你的情況,5)。 它沒有被標準化,因爲每個文檔都是針對每個主題分別進行衡量(所以理論上所有主題都可以得到0分)。如果你想規範化它,你當然可以,只需在l1中對每一行進行標準化 - 並且這將顯示文檔在所有主題上的分佈情況。

+0

也就是說,可以通過將每個單元的值除以該行的總和來正常化? – runawaykid

+1

是的。但這會給你每1份文件的分配,並且你將無法比較文件(例如,標準化後,2個矢量:[1,2,3,4,5]和[100,200,300,400,500]將是相同的 - 而第二份文件是每個科目的100倍以上)。 –