matlab 聚类分析kmeans和cluster的区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab 聚类分析kmeans和cluster的区别相关的知识,希望对你有一定的参考价值。
kmeans是K均值聚类cluster是层次聚类
从总体思想上k均值是由上到下的,他是在你给定所分的类数后,保证这K类之间获得最大的划分。而层次聚类是由下到上的,它把每一个个元素视为一类,然后距离最短的两类合为一类,逐渐合并合所有元素并成一个大类。
K均值聚类保证了你所确定的K有着最好的划分效果,但是可能不符合数据自身分类特征,层次聚类的树状图能看到数据分类过程和分类距离,但是未必满足你所需要的K 参考技术A 2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
%随机获取150个点
X = [randn(50,2)+ones(50,2);randn(50,2)-ones(50,2);randn(50,2)+[ones(50,1),-ones(50,1)]];
opts = statset('Display','final');
%调用Kmeans函数
%X N*P的数据矩阵
%Idx N*1的向量,存储的是每个点的聚类标号
%Ctrs K*P的矩阵,存储的是K个聚类质心位置
%SumD 1*K的和向量,存储的是类间所有点与该类质心点距离之和
%D N*K的矩阵,存储的是每个点与所有质心的距离;
[Idx,Ctrs,SumD,D] = kmeans(X,3,'Replicates',3,'Options',opts);
%画出聚类为1的点。X(Idx==1,1),为第一类的样本的第一个坐标;X(Idx==1,2)为第二类的样本的第二个坐标
plot(X(Idx==1,1),X(Idx==1,2 www.hbbz08.com ),'r.','MarkerSize',14)
hold on
plot(X(Idx==2,1),X(Idx==2,2),'b.','MarkerSize',14)
hold on
plot(X(Idx==3,1),X(Idx==3,2),'g.','MarkerSize',14)
%绘出聚类中心点,kx表示是圆形
plot(Ctrs(:,1),Ctrs(:,2),'kx','MarkerSize',14,'LineWidth',4)
plot(Ctrs(:,1),Ctrs(:,2),'kx','MarkerSize',14,'LineWidth',4)
plot(Ctrs(:,1),Ctrs(:,2),'kx','MarkerSize',14,'LineWidth',4)
legend('Cluster 1','Cluster 2','Cluster 3','Centroids','Location','NW')
Ctrs
matlab如何求kmean聚类中心点的坐标和各个中心包含的样本点数,要用到那些命令
[idx,c]=kmeans(X,k)
其中k是聚类中心个数
X是你存储需要处理的坐标的矩阵
c是一个存储了聚类中心点坐标的矩阵
MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
MATLAB是matrix&laboratory两个词的组合,意为矩阵工厂(矩阵实验室)。是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。
MATLAB和Mathematica、Maple并称为三大数学软件。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。
在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。
参考技术A [idx,c]=kmeans(X,k)其中k是聚类中心个数
X是你存储需要处理的坐标的矩阵
c是一个存储了聚类中心点坐标的矩阵
以上是关于matlab 聚类分析kmeans和cluster的区别的主要内容,如果未能解决你的问题,请参考以下文章
matlab如何求kmean聚类中心点的坐标和各个中心包含的样本点数,要用到那些命令
cluster_centers_ 的排序/索引在 KMeans 聚类 SKlearn 中代表啥
聚类--K均值算法:自主实现与sklearn.cluster.KMeans调用