Skip to content

Files

Latest commit

 

History

History

examples

{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Verstaile Hierarchical Dirichlet Processes\n",
    "\n",
    "The following code is supplemental to the paper:\n",
    "\n",
    "### Scalable and Flexible Clustering of Grouped Data via Parallel and Distributed Sampling in Versatile Hierarchical Dirichlet Processes\n",
    "\n",
    "It contains the paper code, in addition to 4 Jupyter Notebooks (Running Julia) featuring 4 of the experiments.\n",
    "Due to size constraints, not all experiments are included in this, however, they can be replicated using this code.\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### How to run this?\n",
    "\n",
    "You need to install Julia, with IJulia for Jupyter Notebook supports:\n",
    "https://julialang.org/\n",
    "\n",
    "To run the code, in addition, you need to install the following packages:\n",
    "* StatsBase\n",
    "* Distributed\n",
    "* DistributedArrays\n",
    "* Distributions\n",
    "* SpecialFunctions\n",
    "* CatViews\n",
    "* LinearAlgebra\n",
    "* Random\n",
    "* NPZ\n",
    "* JLD2\n",
    "* Clustering\n",
    "* PDMats\n",
    "* DPMMSubClusters\n",
    "* IJulia\n",
    "* Images\n",
    "* ImageMagick\n",
    "\n",
    "You can use the following to add them all at once (1 line):\n",
    "```\n",
    "]add StatsBase Distributed DistributedArrays Distributions SpecialFunctions CatViews LinearAlgebra Random NPZ JLD2 Clustering PDMats DPMMSubClusters IJulia Images ImageMagick\n",
    "```\n",
    "\n",
    "Note that as Julia need to build packages, it is recommended after install to use `using <package>` in order to precompile every thing.\n",
    "\n",
    "After installing the above, you can run any of the attached Notebooks, or create new ones.\n",
    "\n",
    "In order for all the PATH to work in the distributed setting which we use, you need to run `jupyter-notebook` from within the Notebooks directory. Or change each process path manually.\n",
    "\n",
    "### Distributed Aspect\n",
    "\n",
    "The code must have atleast 1 additional worker process (using `addprocs(#)`). You can add processes over different machines if you wish, check https://docs.julialang.org/en/v1/stdlib/Distributed/index.html  for the instructions."
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Julia 1.3.0",
   "language": "julia",
   "name": "julia-1.3"
  },
  "language_info": {
   "file_extension": ".jl",
   "mimetype": "application/julia",
   "name": "julia",
   "version": "1.3.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}