树荫营销网站,十大国外室内设计网站,上海市工程建设信息网官方网站,wordpress首页设置描述在什么位置一、概述
K-means聚类采用类内距离和最小的方式对数据分类#xff0c;MATLAB中自带K-means算法#xff0c;最简单的调用如下#xff1a;
idxkmeans(x,k)
将n-by-p数据矩阵x中的数据划分为k个类簇。x的行对应数据条数#xff0c;x的列对应数据的维度。注意#xff1a;当…一、概述
K-means聚类采用类内距离和最小的方式对数据分类MATLAB中自带K-means算法最简单的调用如下
idxkmeans(x,k)
将n-by-p数据矩阵x中的数据划分为k个类簇。x的行对应数据条数x的列对应数据的维度。注意当x是向量时kmeans将其视为n乘1数据矩阵而不管其方向如何。kmeans返回一个n乘1向量idx其中包含每个点的簇索引。默认情况下kmeans使用平方欧氏距离。
二、K-means参数
典型的带参数的K-means调用如下
[ ... ] kmeans(..., PARAM1,val1, PARAM2,val2, ...)
由param和val构成参数键值对进行控制常用的参数有
1 Distance - 距离度量, 在P维空间中K-means应该最小化的距离度量
sqeuclidean - 平方欧氏距离默认值cityblock - 绝对差之和即L1距离cosine - 1减去点之间夹角的余弦correlation - 1减去点之间的样本相关性 hamming - 不同位的百分比
2 Start - 选择初始簇质心位置的方法
plus - 默认值。根据k-means算法从X中选择K个观测值。第一个聚类中心从X中随机地选择然后从剩余的数据点随机地选择每个后续的聚类中心其概率与距离最近的现有聚类中心的距离成比例。sample - 随机从X中选择K个观测值.uniform - 从X的分布范围内随机均匀地选择K个点。对于hamming距离无效。cluster - 对X的随机10%子样本执行初步聚类阶段。此初步阶段本身使用“sample”初始化matrix - 用一个K行P列的矩阵作为初始聚类中心
3 Replicates - 重复聚类的次数每个聚类都有一组新的初始质心默认为1。
4 EmptyAction- 在聚类过程中一个类别丢失了它所有的成员时需要采用的措施 singleton - 创建一个新类簇该簇由距离其质心最远的一个观测组成默认值error - 空类别作为错误处理.drop - 删除所有变为空的类簇并将C和D中的相应值设置为NaN.
5 Options - 用于最小化拟合准则的迭代算法的选项, 用statset构建statset传入的参数包括
Display - 显示输出的层级。可选 off, iter, final. 其中默认是选择offMaxIter - 最大的迭代次数. 默认100次.UseParallel - 选择为‘true’或者‘default’进行并行计算。前提是需要打开并行计算工具箱的parpool否则设置为默认值‘default’表示串行计算。 UseSubstreams - 设置为true以可重复的方式并行计算。默认值为false。要重复计算设置为允许子流的类型“mlfg6331_64”或“mrg32k3A”. Streams - 如果“useParallel”为true“useSubstreams”为false则“streams”的长度必须等于KMeans使用的工作线程数。如果并行池已打开则此将是并行池的大小.
三、带参调用示例
一个例子来描述Kmeans如何带参调用。例如以下代码
最大迭代100000次采用1-相关性系数作为距离对数据进行聚类分析。
K6;
opts statset(Display,final,MaxIter,100000);
[Idx,C,sumD,D1]kmeans(dataStandardlized,K,dist,correlation,Options,opts);
dataStandardlized :N*P的输入数据矩阵K: 表示将dataStandardlized划分为几类为整数Idx :N*1的向量存储的是每个点的聚类标号C: K*P的矩阵存储的是K个聚类质心位置sumD: 1*K的和向量存储的是类间所有点与该类质心点距离之和D1: N*K的矩阵存储的是每个点与所有质心的距离
其他
官方资料https://ww2.mathworks.cn/help/stats/kmeans.html
------分享知识让人愉悦原创博文支持请点赞。