kalamri2 / bnp_tutorial

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

To recreate the examples from the tutorial,
open R and run the following commands at the R prompt.

==============================================
====   Tutorial Part I
==============================================

Load the functions for Example 1:
> source("ex1_beta.R")

Draw a random distribution using a beta random variable
with parameters (1,1).
Keep pressing enter to get more iid beta random variables.
Press "x" and then enter when you're done.
> ex1_draw_betas(1)
Choose a very small parameter tuple
> ex1_draw_betas(0.01)
Choose a very large parameter tuple
> ex1_draw_betas(1000)

You can use the function "ex1_draw_betas_diffa"
to draw random distributions using both beta parameters.
e.g. > ex1_draw_betas_diffa(1,10)

Load the functions for Example 2.
Note: you may need to install the MCMCpack package first: > install.packages("MCMCpack")
> source("ex2_diri.R")

Draw a random distribution using a Dirichlet random variable
with all parameters 1.
Keep pressing enter to get more iid Dirichlet random variables.
Press "x" and then enter when you're done.
> ex2_draw_diris(K=4,a_scalar=1)
Choose a very small shared parameter
> ex2_draw_diris(K=4,a_scalar=0.01)
Choose a very large shared parameter
> ex2_draw_diris(K=4,a_scalar=1000)

Note: though we didn't cover it in the tutorial,
you can use the function "ex2_draw_diris_diffa"
to draw random distributions using different Dirichlet parameters.
e.g. > ex2_draw_diris_diffa(c(1,3,5,2))

Load Example 3.
Draw a Dirichlet distribution with large K.
> source("ex3_largeK_distr.R")
Press enter to keep making draws from the random distribution.
Press "x" and then enter when you're done.
To repeat the default settings:
> ex3_gen_largeK_diri(K=1000,a=0.01)
For larger a, try:
> ex3_gen_largeK_diri(K=1000,a=1)
For smaller a, try:
> ex3_gen_largeK_diri(K=1000,a=0.001)

Note: in the tutorial we tried out different values
of a. Although we didn't cover it in the tutorial,
you can use the function "ex3_gen_largeK_diri"
to also try out different values of K.

Load Example 4.
Look at the cluster assignments according to a Dirichlet distribution with large K.
> source("ex4_largeK_count.R")
Press enter to keep making draws from the random distribution.
Press "x" and then enter when you're done.

Note: though we didn't cover it in the tutorial,
you can use the function "ex4_gen_largeK_count"
to draw cluster assignments with different values of K and a.
E.g. > ex4_gen_largeK_count(K=1000,a=0.01)

Load the functions for Example 5:
> source("ex5_gem.R")

Draw a random distribution with GEM parameter alpha.
We tried alpha=1,10,100.
E.g. > ex5_draw_gem(alpha=10)

==============================================
====   Tutorial Part II
==============================================

Load Example 6:
> source("ex6_dpmm.R")
Press enter to keep making draws from the DPMM.
Enter a number to make a larger number of draws at once.
Press "x" and then enter when you're done.

==============================================
====   Tutorial Part III
==============================================

Load Example 7
Draw a random, simulated data set.
Run a Gibbs sampler for a CRP Gaussian mixture model
with all data points initialized to the same cluster.
> source("ex7_sampler.R")
Press enter to keep making Gibbs samples.
Enter a number to go that many full iterations forward in the sampler.
Press "x" and then enter when you're done.

Run a Gibbs sampler for a CRP Gaussian mixture model
with all data points initialized to their own cluster.
> ex7_crp_gibbs(data=data$x, sd=1, initz=1:nrow(data$x))

Note: though we didn't cover it in the tutorial,
you can generate a new data set, possibly
with a different data set size or with
different cluster widths, with the function
"ex7_gen_data".
e.g. > data = ex7_gen_data(Ndata=1000,sd=0.3)

About


Languages

Language:R 100.0%