# Recommended method for clustering multinomial distributions

I have a matrix with $U$ rows and $N$ columns where:

• $U$ is the number of users on a website.
• $N$ is the set of possible actions when a user participates (one per participation)
• The position $u\times n$ of the matrix indicates how many times user $u$ has chosen action $n$.
• Thus, the sum of values in column $u$ is the total number of participations for $u$.

Note that the choices of $n$ are mutually exclusive, that is, users can only choose one type of participation at a time.

I would like to cluster users according to their choices.

What alternatives do I have?

I'm thinking of a couple of ways:

• (a) Normalise the rows so that they become multinomial distributions (and so that I can compare users even if some participated more than others). Then apply some standard method like hierarchical clustering, using Pearson correlation as my similarity metric.

• (b) Normalise the rows and, since I have now probability distributions, cluster them (how?)

I can do (a) easily, but I got thinking that, since rows are multinomial distributions, I might be doing it wrong if I ignore this.

I'm tempted to consider a Bayesian approach: putting Multinomial distributions over the counts and a common Dirichlet prior over the Multinomials, but unless there is some R library for that case, I'd prefer something out the of box.

Question: Is (a) correct? What other options do I have?

• Every two users form a 2xN frequency table. So you are free to compute any coefficient that is able to serve as their dissimilarity. Such as sqrt(chi-square), phi. etc. These are nice distances for counts. Commented Aug 15, 2016 at 20:39

Consider every time a user did something equivalent to the user writing a word. "page1 page2 submit page1 ..." Then you can usual text analysis approaches.

In particular, you can use the vector space model and TF-IDF for similarity. Then try hierarchical clustering.