2017-07-03 2 views
-1

私はScikit-LearnのLatentDirichletAllocationモデルを使用しています。 Xは、5000個の特徴(100×5000)を有する100個の文書のマトリックスである。私は次のコードを実行しました:scikit learnのLDAメソッドの変換結果をどのように解釈しますか?

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

X_newは、各文書のトピック配布でなければなりません。しかし、私はどのように実際の値を解釈するか分からない。各配列は合計100ではないので、それ自体がディストリビューションではありません。たとえば、最初の2つのドキュメントの配列は次のとおりです。

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

これらの数値を解釈/正規化するにはどうすればよいですか?

答えて

1

私はこの質問にはもっとここに似合うと思う:あなたがここにそれを求めているので、この文書は、n個のトピックのいずれ合っ「どのくらい」、各セルは、https://datascience.stackexchange.com

しかし(あなたのケースでは、5)。 各文書が各トピックに対して個別に測定されているため、正規化されていません(理論上、すべてのトピックでスコアが0になります)。それを正規化したいのであれば、l1の各行を正規化するだけで、すべてのトピックに対する文書の配布を表示できます。

+0

つまり、各セルの値を行の合計で割って正規化することは正常ですか? – runawaykid

+1

はい。これは1文書あたりの分布を与え、文書を比較することはできません(たとえば、正規化した後、[1,2,3,4,5]と[100,200,300,400,500]のベクトルは同じになります) - 第2の文書は各対象に100倍以上関連している)。 –

関連する問題