运用K-means算法进行图像分割, K-means算法是很典型的基于距离的聚类算法,采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大。该算法认为簇是由距离靠近的对象组成的,因此把得到紧凑且独立的簇作为最终目标。 k个初始类聚类中心点的选取对聚类结果具有较大的 公式 公式 影响,因为在该算法第一步中是随机的选取任意k个对象作为初始聚类的中心,初始地代表一个簇。该算法在每次迭代中对数据集中剩余的每个对象,根据其与各个簇中心的距离将每个对象重新赋给最近的簇。当考察完所有数据对象后,一次迭代运算完成,新的聚类中心被计算出来。如果在一次迭代前后,J的值没有发生变化,说明算法已经收敛。 算法过程如下: 1)从N个文档随机选取K个文档作为质心 2)对剩余的每个文档测量其到每个质心的距离,并把它归到最近的质心的类 3)重新计算已经得到的各个类的质心 4)迭代2~3步直至新的质心与原质心相等或小于指定阈值,算法结束 具体如下: 输入:k, data[n]; (1) 选择k个初始中心点,例如c[0]=data[0],…c[k-1]=data[k-1]; (2) 对于data[0]….data[n],分别与c[0]…c[k-1]比较,假定与c[i]差值最少,就标记为i; (3) 对于所有标记为i点,重新计算c[i]={ 所有标记为i的data[j]之和}/标记为i的个数; (4) 重复(2)(3),直到所有c[i]值的变化小于给定阈值。 折叠工作原理 K-MEANS算法的工作原理及流程 K-MEANS算法 输入:聚类个数k,以及包含 n个数据对象的数据库。 输出:满足方差最小标准的k个聚类。
2019-12-21 20:43:27 307B K-means 图像分割 聚类
1
k-means测试数据
2019-12-21 20:40:36 84KB k-means算法
1
34行MATLAB代码实现k均值聚类,包含展示聚类成功后的散点图。
2019-12-21 20:38:41 1KB MATLAB 聚类 K均值 kmeans
1
数据挖掘k-means k-medoids python代码实现 含测试数据
2019-12-21 20:37:45 11KB k-means k-medoids cluster datamining
1
文件中包含K-Means聚类算法C#版本,一个文件中包含7个函数,使用的时候直接将C#文件复制到项目中即可使用,调用的时候主函数会直接返回结果
2019-12-21 20:36:30 2KB 算法
1
这是一个基于matlab语言的K-means算法的改进程序,代码完整易懂,里面包含有实际的数据集,能有利于对K-means算法感兴趣的研究学者或者开发人员
2019-12-21 20:35:43 42KB 聚类、大数据
1
这个资源是一个拥有完整代码与测试数据的k-means算法文件,集原始算法与改进算法于一个程序,通过选择不同的标签号来使用算法,能完整运行,效果很好,希望对大家有帮助!
2019-12-21 20:35:43 1.14MB 人工智能
1
改进的K-means聚类算法初始聚类中心确定,采用matlab实现,2016a的matlab,直接打开文件、添加路径就可以使用了。
2019-12-21 20:35:23 3KB K-means聚类
1
实验描述: 对指定数据集进行聚类分析,选择适当的聚类算法,编写程序实现,提交程序和结果报告。 数据集: Iris Data Set(见附件一) ,根据花的属性进行聚类。 数据包括四个属性:sepal length花萼长度,sepal width花萼宽度,petal length花瓣长度,petal width花瓣宽度。其中第五个值表示该样本属于哪一个类。 样本点间的距离直接用向量的欧氏距离。
2019-12-21 20:35:05 15KB 聚类分析
1
function [idx, C, sumD, D] = kmeans(X, k, varargin) % varargin:实际输入参量 if nargin 1 % 大于1刚至少有一种距离 error(sprintf('Ambiguous ''distance'' parameter value: %s.', distance)); elseif isempty(i) % 如果是空的,则表明没有合适的距离 error(sprintf('Unknown ''distance'' parameter value: %s.', distance)); end % 针对不同的距离,处理不同 distance = distNames{i}; switch distance case 'cityblock' % sort 列元素按升序排列,Xord中存的是元素在原始矩阵中的列中对应的大小位置 [Xsort,Xord] = sort(X,1); case 'cosine' % 余弦 % 计算每一行的和的平方根 Xnorm = sqrt(sum(X.^2, 2)); if any(min(Xnorm) <= eps * max(Xnorm)) error(['Some points have small relative magnitudes, making them ', ... 'effectively zero.\nEither remove those points, or choose a ', ... 'distance other than ''cosine''.'], []); end % 标量化 Xnorm(:,ones(1,p))得到n*p的矩阵 X = X ./ Xnorm(:,ones(1,p)); case 'correlation' % 线性化 X = X - repmat(mean(X,2),1,p); % 计算每一行的和的平方根 Xnorm = sqrt(sum(X.^2, 2)); if any(min(Xnorm) <= eps * max(Xnorm)) error(['Some points have small relative standard deviations, ma
2019-12-21 20:34:17 23KB 聚类
1