我在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);
%>
答案 0 :(得分:0)
您会看到这一点,因为LDA在训练和推理步骤中都使用随机性。尝试每次都设置相同的种子。