Matlab K-均值聚类图

Matlab K-均值聚类图,matlab,cluster-analysis,k-means,Matlab,Cluster Analysis,K Means,我有一个510x6的数据矩阵,我想对它进行K-均值聚类分析。我无法在二维中绘制所有不同的簇。不可能在二维中绘制6个不同的簇吗?让我们先看一些150x4的数据,然后尝试将其拆分为6个不同的簇。fisheriris数据集有四列(您的有6列),分别对应于萼片长度、萼片宽度、花瓣长度和花瓣宽度,可以这样加载到MATLAB中: load fisheriris 然后,我们可以使用以下方法将数据分解为六个集群: clusters = kmeans(meas, 6); cluster1 = meas(clu

我有一个510x6的数据矩阵,我想对它进行K-均值聚类分析。我无法在二维中绘制所有不同的簇。不可能在二维中绘制6个不同的簇吗?

让我们先看一些150x4的数据,然后尝试将其拆分为6个不同的簇。fisheriris数据集有四列(您的有6列),分别对应于萼片长度、萼片宽度、花瓣长度和花瓣宽度,可以这样加载到MATLAB中:

load fisheriris
然后,我们可以使用以下方法将数据分解为六个集群:

clusters = kmeans(meas, 6);

cluster1 = meas(clusters == 1, :);
cluster2 = meas(clusters == 2, :);
cluster3 = meas(clusters == 3, :);
cluster4 = meas(clusters == 4, :);
cluster5 = meas(clusters == 5, :);
cluster6 = meas(clusters == 6, :);
考虑到每个数据点有四条信息,为了可视化每个集群,我们需要选择要查看的内容。例如,我可能想看看萼片长度和萼片宽度的聚类。这是前两列,我可以看到它们:

figure
axes

plot(cluster1(:, [1, 2]), '*'); hold all
plot(cluster2(:, [1, 2]), '*')
plot(cluster3(:, [1, 2]), '*')
plot(cluster4(:, [1, 2]), '*')
plot(cluster5(:, [1, 2]), '*')
plot(cluster6(:, [1, 2]), '*')

xlabel('Sepal Length')
ylabel('Sepal Width')

如果我想立即查看列,我们需要向上一个维度:

figure
axes
hold all

plot3(cluster1(:, 1), cluster1(:, 2), cluster1(:, 3),'*')
plot3(cluster2(:, 1), cluster2(:, 2), cluster2(:, 3),'*')
plot3(cluster3(:, 1), cluster3(:, 2), cluster3(:, 3),'*')
plot3(cluster4(:, 1), cluster4(:, 2), cluster4(:, 3),'*')
plot3(cluster5(:, 1), cluster5(:, 2), cluster5(:, 3),'*')
plot3(cluster6(:, 1), cluster6(:, 2), cluster6(:, 3),'*')

grid on
box on

您的数据有六个维度,所以更难直观地了解集群。您可以尝试执行类似于
plotmatrix
功能的操作:

plotmatrix(meas)

让我们从查看一些150x4的数据开始,并尝试将其拆分为6个不同的集群。fisheriris数据集有四列(您的有6列),分别对应于萼片长度、萼片宽度、花瓣长度和花瓣宽度,可以这样加载到MATLAB中:

load fisheriris
然后,我们可以使用以下方法将数据分解为六个集群:

clusters = kmeans(meas, 6);

cluster1 = meas(clusters == 1, :);
cluster2 = meas(clusters == 2, :);
cluster3 = meas(clusters == 3, :);
cluster4 = meas(clusters == 4, :);
cluster5 = meas(clusters == 5, :);
cluster6 = meas(clusters == 6, :);
考虑到每个数据点有四条信息,为了可视化每个集群,我们需要选择要查看的内容。例如,我可能想看看萼片长度和萼片宽度的聚类。这是前两列,我可以看到它们:

figure
axes

plot(cluster1(:, [1, 2]), '*'); hold all
plot(cluster2(:, [1, 2]), '*')
plot(cluster3(:, [1, 2]), '*')
plot(cluster4(:, [1, 2]), '*')
plot(cluster5(:, [1, 2]), '*')
plot(cluster6(:, [1, 2]), '*')

xlabel('Sepal Length')
ylabel('Sepal Width')

如果我想立即查看列,我们需要向上一个维度:

figure
axes
hold all

plot3(cluster1(:, 1), cluster1(:, 2), cluster1(:, 3),'*')
plot3(cluster2(:, 1), cluster2(:, 2), cluster2(:, 3),'*')
plot3(cluster3(:, 1), cluster3(:, 2), cluster3(:, 3),'*')
plot3(cluster4(:, 1), cluster4(:, 2), cluster4(:, 3),'*')
plot3(cluster5(:, 1), cluster5(:, 2), cluster5(:, 3),'*')
plot3(cluster6(:, 1), cluster6(:, 2), cluster6(:, 3),'*')

grid on
box on

您的数据有六个维度,所以更难直观地了解集群。您可以尝试执行类似于
plotmatrix
功能的操作:

plotmatrix(meas)