相同的LDA参数和数据输入,但我每次都有不同的主题?

时间:2016-01-24 07:41:22

标签: apache-spark lda apache-spark-mllib

我在Spark MLlib框架中使用LDA。 为了确定主题数量,我尝试:运行LDA模型,增加主题数量,然后找到具有最大值对数似然性的最佳主题数。 但是,如果我以相同的方式和相同的输入数据再次运行。我有不同的主题数量的价值。你能帮我解决下面的两个问题:

我必须使用什么来确定主题数量:logLikelihood或logPrior

为什么相同的LDA参数和输入数据每次都会生成不同的主题?

如何稳定主题生成?

非常感谢你。

编辑: 我在运行LDA之前通过set seed找到了解决方案,使用:

<%
                List<String> Cartlist=new ArrayList<String>();

                String[] cart=request.getParameterValues("item");
                if(cart!=null){
                for(int i=0; i<cart.length;i++){    
                out.println(cart[i]);
                Cartlist.add(cart[i]);
                }
        }
%>
            <%session.setAttribute("list",Cartlist);%>



 <%ArrayList<String> ca = (ArrayList<String>)session.getAttribute("List");

                   out.println(ca);
             %>

1 个答案:

答案 0 :(得分:0)

您会看到这一点,因为LDA在训练和推理步骤中都使用随机性。尝试每次都设置相同的种子。