How to show class label of each data point in 3D scatter plot from clustering evaluation result?

6 views (last 30 days)
How to show by plotting class label of each data point within each cluster obtained by any clustering?
Here is an illustration of kmeans clustering:
load fisheriris
eva = evalclusters(meas,'kmeans','gap','KList',[1:6])
scatter3(meas(:,1), meas(:,2), meas(:,3), 15, eva.OptimalY, 'filled')
So above example outputs 5 flusters which I can represent with colors. However, I will like to identify which data point fell into which cluster by putting label or coloring original data point (each data point represent an image).
Say, I pick cluster number 1. I can get the data indices within each cluster as follows:
find(eva.OptimalY == 1) % Here, we will get indices of all data points within
% cluster number 1
I will like to see (by plotting) which data points are within this cluster by class labels. So final output plot can have colored contours (circles) around each cluster, containing differently colored data points corresponding to their respective class labels.

Answers (1)

Image Analyst
Image Analyst on 31 Jul 2018
Use gscatter() instead of scatter3().
  4 Comments
hello_world
hello_world on 31 Jul 2018
Edited: hello_world on 31 Jul 2018
@Image Analyst: Yes, clustering part is done. Now, I need to identify each data point within it's cluster by class label so that I can show how good/bad clustering results are. So, for instance, given the indices of those data points within each cluster, I may trace back original data point and represent it on the gscatter plot by coloring it. By the way, it colors clusters not classes, that being said, we can not see if a colored cluster has data points from different classes (though we can know it by getting their indices as shown above in my example). In my example above, evalclusters found 5 optimal clusters and it colored them with 5 different colors. However, there are only 3 classes.

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!