I have a big dataset with a column "clientid" and a categorical column "choice". 
I want to find out what are the clients that have strange combinations of choices (less frequent ones) and being able in the future to identify them immediately. 

| clientid | choice |
| -------- | -------------- |
| cl1    | a            |
| cl2   | b           |
| cl2   | c           |
| cl3   | d           |
| cl4   | b           |
| cl4   | c           |


If I transpose the table by clientID I have a row for each client and different columns based on the choices, it will became a sparse dataset with categorical variables (choices). Some clients have only one choice and some have multiple ones and I want to find outlier records (clientid)


Which type of algorithm could help me in this type of problem?
It is unsupervised, so I dont know what are the normal combinations and it is sparse data on categorical variables.