层次聚类之后如何得到新的中心点图。

11 ビュー (過去 30 日間)
果搏东方在线注册【微8785092】
各位大神,怎么做能将图中上面两个类各自只显示中心点。也就是红色的累两个点合成为一个点
clear,clc,close all
%导入数据
data = [1 0;2 0;3 5;4 8;5 15;6 0;7 0];
plot(data(:,1),data(:,2),'linestyle','none','marker','x')
%
close all
dis=pdist(data,'euclidean'); %用pdist函数计算变量之间的距离
SF =squareform(dis);
datalink = linkage(dis,'average'); %用 linkage函数定义变量之间的连接
%
% 绘制树状图
dendrogram(datalink);
%
T = cluster(datalink,'maxclust',3); %用cluster函数创建聚类
figure;
%绘制经过聚类的原始数据
gscatter(data(:,1),data(:,2),T)

採用された回答

果博厅注册网址【微8785092】
可能需要做一些对应计算
更多的可参考
[attach]332027[/attach]
clc; clear all; close all
%导入数据
data = [1 0;2 0;3 5;4 8;5 15;6 0;7 0];
figure;
plot(data(:,1),data(:,2),'linestyle','none','marker','x')
dis=pdist(data,'euclidean');  %用pdist函数计算变量之间的距离
SF =squareform(dis);
datalink = linkage(dis,'average');   %用 linkage函数定义变量之间的连接
figure;
% 绘制树状图
dendrogram(datalink);
T = cluster(datalink,'maxclust',3);   %用cluster函数创建聚类
figure;
%绘制经过聚类的原始数据
gscatter(data(:,1),data(:,2),T)
xm = get(gca, 'XLim');
ym = get(gca, 'YLim');
T2 = [];
for i = 1 : length(T)
    if isempty(find(T2==T(i)))
    T2(end+1) = T(i);
    end
end
data2 = [];
for i = 1 : length(T2)
    id = find(T==T2(i));
    m = mean(data(id,:), 1);
    data2(end+1, :) = m;
end
figure;
gscatter(data2(:,1),data2(:,2),T2)
set(gca, 'XLim', xm, 'YLim', ym);

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeStatistics and Machine Learning Toolbox についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!