Finding the cluster with a certian parameter (HCA)

6 次查看(过去 30 天)
Hey all!
I did a hierarchical cluster analysis, with a 15 x 800 matrix. The 800 represents all my parameters I clustered and created a dendrogram of. Now I have a certain parameter I want to know with which other parameter it clusters the most. So basically I want to find the cluster, on whatever level, that contains this specific parameter.
Since its so many, it is not directly visible and I was wondering if there is a more elegant way, than just scrolling over the clustergram / zooming (which is quite some pain and sometimes even impossible).
I appreciate all your help!
Thanks a bunch.
This is the type of cluster analysis I did:
cgo1 = clustergram(matrix, 'Standardize',1 ,'Colormap',map, ...
'RowPDist','euclidean', 'ColumnPDist','euclidean' ,'Linkage','ward',...
'DisplayRange',3, 'Symmetric', 0, 'Cluster',3);

采纳的回答

Shubh
Shubh 2023-12-26
编辑:Shubh 2023-12-26
Hi Anna,
I understand that you need an easier way to find a cluster having a specific parameter.
To find the cluster containing a specific parameter in your hierarchical cluster analysis in MATLAB, you can follow these steps:
  1. Perform Hierarchical Clustering: Use the "linkage" function to perform hierarchical clustering on your data.
  2. Create a Dendrogram: Use the "dendrogram" function to visualize the clustering, which will help in understanding the structure of the clusters.
  3. Identify the Cluster: Use the clustering information to find the cluster that contains your specific parameter.
Since you have a large dataset (15 x 800), the standard dendrogram might not be very informative due to the large number of parameters. However, the clustering information can still be used to find the cluster for your parameter.
Here's how you can do it:
  1. Perform hierarchical clustering using the "linkage" function.
  2. Determine the cluster indices for each parameter at a chosen level of clustering using the "cluster" function.
  3. Find the cluster index of your specific parameter.
  4. Identify other parameters that belong to the same cluster.
I'll provide you with the complete MATLAB code to perform these steps. Assume that your matrix is named "matrix" and the parameter of interest is at column index "parameter_index".
% Your matrix (15x800)
% matrix = ...; % Your data matrix
parameter_index = ...; % Index of your parameter of interest
% Perform hierarchical clustering
Y = pdist(matrix, 'euclidean'); % Pairwise distances
Z = linkage(Y, 'ward'); % Hierarchical clustering
% Optional: Create a dendrogram
figure;
[H, T, outperm] = dendrogram(Z, 0); % Display the full dendrogram
% Determine the cluster indices (choose a suitable number of clusters)
numClusters = 10; % Adjust this as needed
T = cluster(Z, 'maxclust', numClusters);
% Find the cluster for your specific parameter
parameter_cluster = T(parameter_index);
% Find other parameters in the same cluster
parameters_in_cluster = find(T == parameter_cluster);
% Display parameters in the same cluster
disp('Parameters in the same cluster:');
disp(parameters_in_cluster);
Replace "parameter_index" with the index of your specific parameter. Adjust "numClusters" to a suitable value depending on your dataset and the granularity of clustering you need.
This code will display the indices of parameters that are in the same cluster as your parameter of interest. Below are the links to the cluster, dendogram and linkage funtions :
https://www.mathworks.com/help/stats/linkage.html
  1 个评论
Anna Breuninger
Anna Breuninger 2023-12-28
编辑:Anna Breuninger 2023-12-28
Hey Shubh,
thanks a lot for your detailed answer and the provided code!
That definitely helped :)

请先登录,再进行评论。

更多回答(0 个)

标签

产品


版本

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by