我是靠谱客的博主 威武耳机,最近开发中收集的这篇文章主要介绍matlab质心原理图,matlab:绘制质心,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

质心不与图像中的坐标对应,而是与特征空间中的坐标对应。有两种方法可以测试kmeans的表现。对于这两种方法,您首先要将点与其最近的簇关联起来。您可以从kmeans的第一个输出中获得此信息。

(1)通过将6维空间缩小为2维或3维空间,然后以不同颜色绘制不同分类的坐标,可以可视化聚类结果。

假设特征向量收集在一个名为

featureArray

以及你要求的

nClusters

集群,您可以使用

mdscale

要将数据转换为三维空间,例如:

%# kmeans clustering

[idx,centroids6D] = kmeans(featureArray,nClusters);

%# find the dissimilarity between features in the array for mdscale.

%# Add the cluster centroids to the points, so that they get transformed by mdscale as well.

%# I assume that you use Euclidean distance.

dissimilarities = pdist([featureArray;centroids6D]);

%# transform onto 3D space

transformedCoords = mdscale(dissimilarities,3);

%# create colormap with nClusters colors

cmap = hsv(nClusters);

%# loop to plot

figure

hold on,

for c = 1:nClusters

%# plot the coordinates

currentIdx = find(idx==c);

plot3(transformedCoords(currentIdx,1),transformedCoords(currentIdx,2),...

transformedCoords(currentIdx,3),'.','Color',cmap(c,:));

%# plot the cluster centroid with a black-edged square

plot3(transformedCoords(1:end-nClusters+c,1),transformedCoords(1:end-nClusters+c,2),...

transformedCoords(1:end-nClusters+c,3),'s','MarkerFaceColor',cmap(c,:),...

MarkerEdgeColor','k');

end

(2)您也可以创建一个伪彩色图像,显示图像的哪个部分属于哪个簇。

假设你有

nRows

通过

nCols

块,你写

%# kmeans clustering

[idx,centroids6D] = kmeans(featureArray,nClusters);

%# create image

img = reshape(idx,nRows,nCols);

%# create colormap

cmap = hsv(nClusters);

%# show the image and color according to clusters

figure

imshow(img,[])

colormap(cmap)

最后

以上就是威武耳机为你收集整理的matlab质心原理图,matlab:绘制质心的全部内容,希望文章能够帮你解决matlab质心原理图,matlab:绘制质心所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部