I need to choose a model for unsupervised machine learning problem. There are 4 clusters in 3D space. These are my requirements:
- I will run the same model multiple times with different training data (it is for real-time application).
- Size of training data is expected to be around 400 points.
- I can assume that points for each of the clusters are drawn from a Gaussian distribution. This is not necessary requirement to be present in the model.
- I need to get 4 points that represent "centers" of clusters.
- In prediction time, for each new point I need some kind of number for each cluster that will represent probablity of belonging to the cluster.
- I will have a lot of outliers, assume around 30%.
I have tried Gaussian mixture model, and it works very good when I don't have outliers. Unfortunately, this model is very sensitive to outliers.
Any suggestions how to handle the outliers with Gaussian mixture model? Or should I go with completely different model?