6

I have to write a classifier (Gaussian Mixture model) to use for human action recognition. I have 4 dataset of video, each of them contains 12 action that I want to recognize. I choose 3 of them as training set and 1 of them as testing set. For each frame I extract 907 features that are my observations. Before I apply the GM model on the training set I run PCA on it. So I consider only 50 components.

I construct the GM model with one cluster of each action.

gm = gmdistribution.fit(data, cluster_num, 'Options', options, 'CovType','diagonal','Regularize', 1e-10, 'SharedCov', true);

Now I want to have a visual feedback to understand if the clustering worked well or the data are misclassified.

Is it possible have something like this? enter image description here

gevang
  • 4,994
  • 25
  • 33
Mario Lepore
  • 307
  • 2
  • 8
  • 18

1 Answers1

11

I am not near the code I wrote to make these, but I remember which functions are worth looking at.

Start here with plot_gaussian_ellipsiod. You can further add gmdistribution and ezcontour to end up with something like this:

enter image description here

Or, for 3d data, you could use plot3 and plot_gaussian_ellipsiod :

enter image description here

AGS
  • 14,288
  • 5
  • 52
  • 67