Skip to content

Instantly share code, notes, and snippets.

View quinsulon's full-sized avatar

Dr. Q quinsulon

  • Philadelphia, PA and Washington, DC
View GitHub Profile
@quinsulon
quinsulon / crp.py
Created October 4, 2017 22:50 — forked from kaustubhn/crp.py
Chinese Restaurant Process
# Implementation of a chinese restaurant process function for a given list of word vectors.
def crp(vecs):
clusterVec = [[0.0] * 25] # tracks sum of vectors in a cluster
clusterIdx = [[]] # array of index arrays. e.g. [[1, 3, 5], [2, 4, 6]]
ncluster = 0
# probablity to create a new table if new customer
# is not strongly "similar" to any existing table
pnew = 1.0/ (1 + ncluster)
N = len(vecs)
rands = [random.random() for x in range(N)] # N rand variables sampled from U(0, 1)
# vecs: an array of real vectors
def crp(vecs):
clusterVec = [] # tracks sum of vectors in a cluster
clusterIdx = [] # array of index arrays. e.g. [[1, 3, 5], [2, 4, 6]]
ncluster = 0
# probablity to create a new table if new customer
# is not strongly "similar" to any existing table
pnew = 1.0/ (1 + ncluster)
N = len(vecs)
rands = random.rand(N) # N rand variables sampled from U(0, 1)