Я работаю над проблемой clutering.Понимание использования pdist в сочетании с mdscale
У меня есть набор из 100 observatons
. Каждое наблюдение описывается тремя функциями. Я должен сгруппировать эти наблюдения в 2 группы (у меня есть метка для каждого наблюдения).
Перед кластеризацией наблюдений я сначала вычислил pdist
между наблюдениями, а затем использовал функцию mdscale в MATLAB, чтобы вернуться к 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');
возможно изменить расстояние от MATLAB kmean, чтобы сравнить результаты? если да, то как? – gabboshow
Позвольте мне повторить следующее: K-означает, что работает только с квадратичными евклидовыми расстояниями. –
:) ОК спасибо. любой метод кластеризации, который обрабатывает KL-расходимость как метрику расстояния? – gabboshow