matlab实现kmeans算法
2015-05-13 15:32
1541 查看
matlab实现kmeans算法
kmeans是一种聚类算法(无监督学习)。算法分为两步:
1.随机选取k个聚类中心。
2.计算每个样本点离哪个聚类中心最近(距离计算)就将该样本分为这个类。
3.重新计算这k个类的聚类中心。一种简单的计算方法为:计算每个类的平均值即为新的聚类中心。重复执行步骤2,直到聚类中心的变化小于给定阈值,或者达到迭代次数,即停止聚类。
这里只是简单理解,并未深入去考虑k的选择,初始聚类中心的选择对算法的影响。
下面给出一个利用matlab自带kmeans函数实现聚类的实例
close all;
[code]clc; x=[randn(100,2)*1e2;randn(100,2)*2e2;randn(100,2)*3e2;... randn(100,2)*4e2;randn(100,2)*5e2;randn(100,2)*6e2]; figure,plot(x(:,1),x(:,2),'.'); [idx,ctrs]=kmeans(x,6); figure,plot(x(idx==1,1),x(idx==1,2),'.r'); hold on plot(x(idx==2,1),x(idx==2,2),'.b'); hold on plot(x(idx==3,1),x(idx==3,2),'.m'); hold on plot(x(idx==4,1),x(idx==4,2),'.g'); hold on plot(x(idx==5,1),x(idx==5,2),'.k'); hold on plot(x(idx==6,1),x(idx==6,2),'.c'); title('kmeans 聚类算法') plot(ctrs(:,1),ctrs(:,2),'xb'); plot(ctrs(:,1),ctrs(:,2),'ob');
实验结果:
相关文章推荐
- Kmeans算法详解及MATLAB实现
- Kmeans算法详解及MATLAB、Python实现
- matlab实现RCNN(一)
- 图像的等距变换,相似变换,仿射变换,射影变换及其matlab实现
- matlab实现一次性实现多个文件夹图片转化为.mat文件
- 图像拼接(八):拼接多幅图像+Matlab实现+Stanford Open Course
- 【转】为什么要进行傅立叶变换?傅立叶变换究竟有何意义?如何用Matlab实现快速傅立叶变换?
- MATLAB GUI ,2,使用MATLAB的函数来实现MATLAB GUI,part 5,imshow绘图方式以及主辅图像缓存
- matlab和C混合编程实现脉冲压缩
- matlab实现的手写体字符截取字符区域的方法
- 线性回归问题简单实现matlab
- 为什么要进行傅立叶变换?傅立叶变换究竟有何意义?如何用Matlab实现快速傅立叶变换
- matlab 实现车牌的倾斜校正
- 为什么要进行傅立叶变换,究竟有何意义?如何用MATLAB实现快速傅立叶变换?
- matlab实现SMOTE
- 基于Matlab的FIR滤波器设计与实现
- matlab实现人脸识别
- MATLAB实现PLA算法
- 神经网络 手写识别例子 matlab实现
- 实现python调用Matlab的.m文件