我正在解决一个混乱的问题。
我有一套 100 observatons
。每个观察由 3 个特征描述。我必须将这些观察分为两组(每个观察都有一个标签)。
在对观察结果进行聚类之前,我首先计算观察结果之间的pdist
值,然后使用 MATLAB 中的 mdscale 函数返回到 3 维。如果与使用原始观测值相比,我使用transformed_observation
kmean 聚类算法作为输入,以获得更好的聚类结果(即聚类与标签匹配)。谁能解释我为什么???我刚试过...
在这里你可以找到我的步骤...
% select the dimensions of my features
dimensions = 3;
% generate an example data set
observations = rand(100,dimensions);
% if yes use the combination of pdist + mdscale
use_dissimilarity = 'yes';
if strcmp(use_dissimilarity,'yes')
%compute pdist between features
dissimilarity = pdist(observations,@kullback_leibler_divergence);
%re-transform features in 3 dimensions
transformed_observations = mdscale(dissimilarity,dimensions);
else
transformed_observations = observations;
end
%cluster observations
numbercluster = 2;
[IDX, clustercentroids] = kmeans(transformed_observations, numbercluster,...
'emptyaction','singleton',...
'replicates',11,'display','off');