vbem.m
来自「使用变分EM方法实现的LDA文本模型 输入为文本即可 分解实现」· M 代码 · 共 30 行
M
30 行
function [alpha,q] = vbem(d,beta,alpha0,emmax)% [alpha,q] = vbem(d,beta,alpha0,[emmax])% calculates a document and words posterior for a document d.% alpha : Dirichlet posterior for a document d% q : (L * K) matrix of word posterior over latent classes% d : document data% alpha0 : Dirichlet prior of alpha% emmax : maximum # of VB-EM iteration.% $Id: vbem.m,v 1.5 2004/11/08 12:42:18 dmochiha Exp $if nargin < 4 emmax = 20;endl = length(d.id);k = length(alpha0);q = zeros(l,k);nt = ones(1,k) * l / k;pnt = nt;for j = 1:emmax % vb-estep q = mnormalize(beta(d.id,:) * diag(exp(psi(alpha0 + nt))),2); % vb-mstep nt = d.cnt * q; % converge? if (j > 1) && converged(nt,pnt,1.0e-2) break; end pnt = nt;endalpha = alpha0 + nt;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?