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?