안녕하세요. 그림 화면에서 데이터를 클러스터하면 거기에 스크롤 할 때 데이터 포인트가 속하는 행을 표시하는 방법이 있습니까? 내가 선택하는 경우하는 방법을 수 또는 내가가 소유하는 행 말할 수있는 포인트를 통해 스크롤 것이 좋겠습니다 위의 그림에서 클러스터 된 kmeans 데이터에 행 표시
. 정규화 원래부터 지배하는 행과 최종 열의 appedicies 거기 원래 형식으로 조직 재%% dimensionality reduction
columns = 6
[U,S,V]=svds(fulldata,columns);
%% randomly select dataset
rows = 1000;
columns = 6;
%# pick random rows
indX = randperm(size(fulldata,1));
indX = indX(1:rows);
%# pick random columns
indY = randperm(size(fulldata,2));
indY = indY(1:columns);
%# filter data
data = U(indX,indY);
%% apply normalization method to every cell
data = data./repmat(sqrt(sum(data.^2)),size(data,1),1);
%% generate sample data
K = 6;
numObservarations = 1000;
dimensions = 6;
%% cluster
opts = statset('MaxIter', 100, 'Display', 'iter');
[clustIDX, clusters, interClustSum, Dist] = kmeans(data, K, 'options',opts, ...
'distance','sqEuclidean', 'EmptyAction','singleton', 'replicates',3);
%% plot data+clusters
figure, hold on
scatter3(data(:,1),data(:,2),data(:,3), 5, clustIDX, 'filled')
scatter3(clusters(:,1),clusters(:,2),clusters(:,3), 100, (1:K)', 'filled')
hold off, xlabel('x'), ylabel('y'), zlabel('z')
%% plot clusters quality
figure
[silh,h] = silhouette(data, clustIDX);
avrgScore = mean(silh);
%% Assign data to clusters
% calculate distance (squared) of all instances to each cluster centroid
D = zeros(numObservarations, K); % init distances
for k=1:K
%d = sum((x-y).^2).^0.5
D(:,k) = sum(((data - repmat(clusters(k,:),numObservarations,1)).^2), 2);
end
% find for all instances the cluster closet to it
[minDists, clusterIndices] = min(D, [], 2);
% compare it with what you expect it to be
sum(clusterIndices == clustIDX)
또는 가능 클러스터 데이터를 출력하는 방법 : 여기
는 코드 "fulldata".
오른쪽 상단의 클러스터 센터? 그리고 두 개의 진한 파란색 클러스터는 나에게 합리적인 것처럼 보이지 않습니다. –
나에게는 3 개의 뚜렷한 클러스터가있다. 프로그램이 클러스터의 올바른 양을 현명하게 선택할 수있는 방법을 찾아 왔기 때문에 시행 착오를 피할 수있다. 그러나 실제로이 점들이 어떤 행의 데이터를 왜 또는 왜 가져올 지 신속하게 파악할 수있는 방법이 필요합니다. –
클러스터 수를 선택하기위한 실루엣을 확인하십시오. http://www.mathworks.com/help/toolbox/stats/bq_679x-18.html – Dan