I have a dataset that has the opinions of 30 different TV shows for 2000 high school students.

A student could have said they liked the show, did not have an opinion, or disliked the show. These values then translate to [1,0,-1] in my dataset.

I would now like to find approx 10-20 clusters of student types based on this dataset.

Because there are only 3 unique values in each field, it seems like this data should follow clustering rules for binary data (ex: avoid kmeans). I have been reading literature on that but am still struggling to determine what the best methods would be.

If anyone has any input on what would be best, I would really appreciate it!

Below is smaller example of the dataset:

Student Friends Seinfeld HIMYM Cheers
Student A 1 1 1 -1
Student B 1 0 0 -1
Student C 0 1 -1 -1
  • $\begingroup$ why don't you want to use kmeans? $\endgroup$
    – alexmolas
    Commented Jul 21, 2022 at 8:16

1 Answer 1


I don't think there is a "best" method in clustering. Here are some ideas (all use k-means in the end though):

  1. Read this Netflix price paper and try to use matrix decomposition to assign each student a vector of small dimension, then cluster these vectors using k-means.

  2. Choose a random matrix of dimensions d x 30, with row vectors standardized to length one, and d small. Multiply with your dataset. Try to cluster the resulting 2000 points of dimension d using k-means.

  3. Or just use k-means because dimension 30 is not that large :).


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.