LDA主题模型困惑度计算
生活随笔
收集整理的這篇文章主要介紹了
LDA主题模型困惑度计算
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
對于LDA模型,最常用的兩個評價方法困惑度(Perplexity)、相似度(Corre)。
其中困惑度可以理解為對于一篇文章d,所訓練出來的模型對文檔d屬于哪個主題有多不確定,這個不確定成都就是困惑度。困惑度越低,說明聚類的效果越好。
計算公式 分母是測試集中所有單詞之和,即測試集的總長度,不用排重。其中p(w)指的是測試集中每個單詞出現的概率,計算公式如下。p(z|d)表示的是一個文檔中每個主題出現的概率,就是程序中的.theta文件,p(w|z)表示的是詞典中的每一個單詞在某個主題下出現的概率,就是程序中的.phi文件。
1 public void getRe(double[][] phi, double[][] theta){
2 double count = 0;
3 int i = 0;
4 Iterator iterator = userWords.entrySet().iterator();
5 while(iterator.hasNext()){
6 Map.Entry entry = (Map.Entry) iterator.next();
7 ArrayList<String> list = (ArrayList<String>) entry.getValue();
8 double mul = 0;
9 for(int j = 0; j < list.size(); j++){
10 double sum = 0;
11 String word = list.get(j);
12 int index = wordMap.get(word);
13 for (int k = 0; k < K; k++){
14 sum = sum + phi[k][index] * theta[i][k];
15 }
16 mul = mul + Math.log(sum);
17 }
18 count = count + mul;
19 i++;
20 }
21 count = 0 - count;
22 P = Math.exp(count / N);
23 System.out.println("Perplexity:" + P);
對于不同Topic所訓練出來的模型,計算它的困惑度。最小困惑度所對應的Topic就是最優的主題數。
總結
以上是生活随笔為你收集整理的LDA主题模型困惑度计算的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: docker 搭建ntp服务器
- 下一篇: AWG含义及尺寸电流对照表