|
17 | 17 | model = init(X,m); |
18 | 18 | end |
19 | 19 | tol = 1e-4; |
20 | | -maxIter = 1000; |
| 20 | +maxIter = 2000; |
21 | 21 | llh = -inf(1,maxIter); |
22 | 22 | for iter = 2:maxIter |
23 | 23 | % E-step |
|
29 | 29 | llh = llh(2:iter); |
30 | 30 |
|
31 | 31 | function model = init(X, k) |
32 | | -d = size(X,1); |
33 | | -model.mu0 = randn(k,1); |
34 | | -model.P0 = iwishrnd(eye(k),k); |
35 | | -model.A = randn(k,k); |
36 | | -model.G = iwishrnd(eye(k),k); |
37 | | -model.C = randn(d,k); |
38 | | -model.S = iwishrnd(eye(d),d); |
39 | | -% [A,C,Z] = ldsPca(X,k,3*k); |
40 | | -% model.mu0 = Z(:,1); |
41 | | -% model.P0 = ; |
42 | | -% model.A = A; |
43 | | -% model.C = C; |
44 | | -% model.G = ; |
45 | | -% model.S = ; |
| 32 | +% d = size(X,1); |
| 33 | +% model.mu0 = randn(k,1); |
| 34 | +% model.P0 = iwishrnd(eye(k),k); |
| 35 | +% model.A = randn(k,k); |
| 36 | +% model.G = iwishrnd(eye(k),k); |
| 37 | +% model.C = randn(d,k); |
| 38 | +% model.S = iwishrnd(eye(d),d); |
| 39 | +[A,C,Z] = ldsPca(X,k,3*k); |
| 40 | +model.mu0 = Z(:,1); |
| 41 | +E = Z(:,1:end-1)-Z(:,2:end); |
| 42 | +model.P0 = (dot(E(:),E(:))/(k*size(E,2)))*eye(k); |
| 43 | +model.A = A; |
| 44 | +E = A*Z(:,1:end-1)-Z(:,2:end); |
| 45 | +model.G = E*E'/size(E,2); |
| 46 | +model.C = C; |
| 47 | +E = C*Z-X(:,1:size(Z,2)); |
| 48 | +model.S = E*E'/size(E,2); |
46 | 49 |
|
47 | 50 | function model = maximization(X ,nu, U, Ezz, Ezy) |
48 | 51 | n = size(X,2); |
|
0 commit comments