Skip to content

Commit d9f4b76

Browse files
author
Ben Goodrich
committed
fix hmm examples
1 parent 8f19242 commit d9f4b76

File tree

5 files changed

+146
-38
lines changed

5 files changed

+146
-38
lines changed

misc/hmm/hmm-analytic.data.R

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
library("MCMCpack")
2+
library("rstan")
3+
4+
# CONSTANTS
5+
K <- 3;
6+
V <- 10;
7+
T <- 100;
8+
T_unsup <- 500;
9+
alpha <- rep(1,K);
10+
beta <- rep(0.1,V);
11+
12+
# DATA
13+
w <- rep(0,T);
14+
z <- rep(0,T);
15+
u <- rep(0,T_unsup);
16+
17+
# PARAMETERS
18+
theta <- rdirichlet(K,alpha);
19+
phi <- rdirichlet(K,beta);
20+
21+
# SIMULATE DATA
22+
23+
# supervised
24+
z[1] <- sample(1:K,1);
25+
for (t in 2:T)
26+
z[t] <- sample(1:K,1,replace=TRUE,theta[z[t - 1], 1:K]);
27+
for (t in 1:T)
28+
w[t] <- sample(1:V,1,replace=TRUE,phi[z[t],1:V]);
29+
30+
# unsupervised
31+
y <- rep(0,T_unsup);
32+
y[1] <- sample(1:K,1);
33+
for (t in 2:T_unsup)
34+
y[t] <- sample(1:K,1,replace=TRUE,theta[y[t-1],1:K]);
35+
for (t in 1:T_unsup)
36+
u[t] <- sample(1:V,1,replace=TRUE,phi[y[t], 1:V]);

misc/hmm/hmm-semisup.data.R

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
library("MCMCpack")
2+
library("rstan")
3+
4+
# CONSTANTS
5+
K <- 3;
6+
V <- 10;
7+
T <- 100;
8+
T_unsup <- 500;
9+
alpha <- rep(1,K);
10+
beta <- rep(0.1,V);
11+
12+
# DATA
13+
w <- rep(0,T);
14+
z <- rep(0,T);
15+
u <- rep(0,T_unsup);
16+
17+
# PARAMETERS
18+
theta <- rdirichlet(K,alpha);
19+
phi <- rdirichlet(K,beta);
20+
21+
# SIMULATE DATA
22+
23+
# supervised
24+
z[1] <- sample(1:K,1);
25+
for (t in 2:T)
26+
z[t] <- sample(1:K,1,replace=TRUE,theta[z[t - 1], 1:K]);
27+
for (t in 1:T)
28+
w[t] <- sample(1:V,1,replace=TRUE,phi[z[t],1:V]);
29+
30+
# unsupervised
31+
y <- rep(0,T_unsup);
32+
y[1] <- sample(1:K,1);
33+
for (t in 2:T_unsup)
34+
y[t] <- sample(1:K,1,replace=TRUE,theta[y[t-1],1:K]);
35+
for (t in 1:T_unsup)
36+
u[t] <- sample(1:V,1,replace=TRUE,phi[y[t], 1:V]);

misc/hmm/hmm-sim.R

Lines changed: 2 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,5 @@
1-
library("MCMCpack")
21
library("rstan")
3-
4-
# CONSTANTS
5-
K <- 3;
6-
V <- 10;
7-
T <- 100;
8-
T_unsup <- 500;
9-
alpha <- rep(1,K);
10-
beta <- rep(0.1,V);
11-
12-
# DATA
13-
w <- rep(0,T);
14-
z <- rep(0,T);
15-
u <- rep(0,T_unsup);
16-
17-
# PARAMETERS
18-
theta <- rdirichlet(K,alpha);
19-
phi <- rdirichlet(K,beta);
20-
21-
# SIMULATE DATA
22-
23-
# supervised
24-
z[1] <- sample(1:K,1);
25-
for (t in 2:T)
26-
z[t] <- sample(1:K,1,replace=TRUE,theta[z[t - 1], 1:K]);
27-
for (t in 1:T)
28-
w[t] <- sample(1:V,1,replace=TRUE,phi[z[t],1:V]);
29-
30-
# unsupervised
31-
y <- rep(0,T_unsup);
32-
y[1] <- sample(1:K,1);
33-
for (t in 2:T_unsup)
34-
y[t] <- sample(1:K,1,replace=TRUE,theta[y[t-1],1:K]);
35-
for (t in 1:T_unsup)
36-
u[t] <- sample(1:V,1,replace=TRUE,phi[y[t], 1:V]);
37-
38-
2+
source("hmm.data.R")
393
fit <- stan('hmm-semisup.stan', # 'hmm-fit-semisup.stan',
40-
data=list(K=K,V=V,T=T,T_unsup=T_unsup,M=M,w=w,z=z,u=u,alpha=alpha,beta=beta),
4+
data=list(K=K,V=V,T=T,T_unsup=T_unsup,w=w,z=z,u=u,alpha=alpha,beta=beta),
415
iter=200, chains=1, init=0); # fit = fit // reuse model

misc/hmm/hmm-sufficient.data.R

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
library("MCMCpack")
2+
library("rstan")
3+
4+
# CONSTANTS
5+
K <- 3;
6+
V <- 10;
7+
T <- 100;
8+
T_unsup <- 500;
9+
alpha <- rep(1,K);
10+
beta <- rep(0.1,V);
11+
12+
# DATA
13+
w <- rep(0,T);
14+
z <- rep(0,T);
15+
u <- rep(0,T_unsup);
16+
17+
# PARAMETERS
18+
theta <- rdirichlet(K,alpha);
19+
phi <- rdirichlet(K,beta);
20+
21+
# SIMULATE DATA
22+
23+
# supervised
24+
z[1] <- sample(1:K,1);
25+
for (t in 2:T)
26+
z[t] <- sample(1:K,1,replace=TRUE,theta[z[t - 1], 1:K]);
27+
for (t in 1:T)
28+
w[t] <- sample(1:V,1,replace=TRUE,phi[z[t],1:V]);
29+
30+
# unsupervised
31+
y <- rep(0,T_unsup);
32+
y[1] <- sample(1:K,1);
33+
for (t in 2:T_unsup)
34+
y[t] <- sample(1:K,1,replace=TRUE,theta[y[t-1],1:K]);
35+
for (t in 1:T_unsup)
36+
u[t] <- sample(1:V,1,replace=TRUE,phi[y[t], 1:V]);

misc/hmm/hmm.data.R

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
library("MCMCpack")
2+
library("rstan")
3+
4+
# CONSTANTS
5+
K <- 3;
6+
V <- 10;
7+
T <- 100;
8+
T_unsup <- 500;
9+
alpha <- rep(1,K);
10+
beta <- rep(0.1,V);
11+
12+
# DATA
13+
w <- rep(0,T);
14+
z <- rep(0,T);
15+
u <- rep(0,T_unsup);
16+
17+
# PARAMETERS
18+
theta <- rdirichlet(K,alpha);
19+
phi <- rdirichlet(K,beta);
20+
21+
# SIMULATE DATA
22+
23+
# supervised
24+
z[1] <- sample(1:K,1);
25+
for (t in 2:T)
26+
z[t] <- sample(1:K,1,replace=TRUE,theta[z[t - 1], 1:K]);
27+
for (t in 1:T)
28+
w[t] <- sample(1:V,1,replace=TRUE,phi[z[t],1:V]);
29+
30+
# unsupervised
31+
y <- rep(0,T_unsup);
32+
y[1] <- sample(1:K,1);
33+
for (t in 2:T_unsup)
34+
y[t] <- sample(1:K,1,replace=TRUE,theta[y[t-1],1:K]);
35+
for (t in 1:T_unsup)
36+
u[t] <- sample(1:V,1,replace=TRUE,phi[y[t], 1:V]);

0 commit comments

Comments
 (0)