Number of elements of clusters from dbscan

2 views (last 30 days)
How to get the elements of clusters from a dbscan clustering.Like,
Clust1=[1,2,0.3,0.1....]
Clust2=[4,.....]
etc. How can I do that? Please help me.
Thank you.

Accepted Answer

Ameer Hamza
Ameer Hamza on 8 Mar 2020
This example code read data from the excel file. Change column two from text to numeric and then apply dbscan clustering.
data=readtable('Liverxl.xlsx', 'ReadVariableNames', false);
data.Var2 = findgroups(data.Var2); % convert column
data.Var10(isnan(data.Var10)) = 0; % place 0 in empty cells
minpts=3;
epsilon=30;
data = table2array(data);
[idx, corepts] = dbscan(data,epsilon,minpts);
number_of_clusters = sum(unique(idx)>0);
% remove ouliers
core_data = data(corepts, :);
core_idx = idx(corepts);
% Clusters are saved in a cell array
clusters = splitapply(@(x) {x}, core_data, core_idx);
Tune the value of parameters, minpts and epsilon to change the size and number of elements in clusters.
  3 Comments
Ameer Hamza
Ameer Hamza on 9 Mar 2020
clusters is a cell array. You can get elements of a cluster using following syntax:
clusters{1} % it will show all the element of first cluster
clusters{2} % 2nd cluster
...
...
clusters{end} % last cluster

Sign in to comment.

More Answers (0)

Categories

Find more on Statistics and Machine Learning Toolbox in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!