MATLAB2009A实现Kmeans实例
来源:互联网 发布:mac电脑如何强制关机 编辑:程序博客网 时间:2024/06/06 02:54
本人刚学习数据挖掘没有多久,数据挖掘中要用不少聚类算法。Kmeans作为其中常用的一种算法,聚类效果还行。
下面是我做了几个简单的MATLAB实现Kmeans的小实例
100*2列矩阵聚类成3类
Matlab代码如下:
data=rand(100,2);
>> opts=statset('Display','final');
>>[idx,ctrs]=kmeans(data,3,'Distance','city','Replicates',5, 'Options',opts);
title('Kmeans实例');
>>plot(data(idx==1,1),data(idx==1,2),'r.',...
data(idx==2,1),data(idx==2,2),'b.',data(idx==3,1),data(idx==3,2),'g.',ctrs(:,1),ctrs(:,2),'kx');
效果图如下
:
图1. 100*2矩阵聚成3类图形
100*2列矩阵分四类实例
Matlab代码如下:
data=rand(100,2);
opts=statset('Display','final');
[idx,ctrs]=kmeans(data,4,'Distance','city','Replicates',5,'Options',opts);
title('Kmeans实例');
>>plot(data(idx==1,1),data(idx==1,2),'r.',...
data(idx==2,1),data(idx==2,2),'b.',data(idx==3,1),data(idx==3,2),'g.',...
data(idx==4,1),data(idx==4,2),'y.',ctrs(:,1),ctrs(:,2),'kx');
效果图如下:
图2. 100*2聚成4类图形
100*3矩阵聚成4类
Matlab代码如下:
data=rand(100,3);
>> opts=statset('Display','final');
>>[idx,ctrs]=kmeans(data,4,'Distance','city','Replicates',5, 'Options',opts);
plot3(data(idx==1,1),data(idx==1,2),data(idx==1,3),'r.',data(idx==2,1),...
data(idx==2,2),data(idx==2,3),'b.',data(idx==3,1),data(idx==3,2),data(idx==3,3),'g.',...
data(idx==4,1),data(idx==4,2),data(idx==4,3),'y.',ctrs(:,1),ctrs(:,2),ctrs(:,3),'kx')
>> grid on
效果图如下:
图3. 100*3聚类成4类效果图
问题:matlab可以画出的图形是二维和三维的,多维的图形不适合画也不好看。个人认为二维的图像聚类效果看起来最明显。但是现实处理时我们遇到的矩阵不是都是n*2的矩阵,怎样处理n*m维矩阵并显示到图像中是目前遇到的问题。
一个解决方案:
使用降阶reshape()函数,但这只是相当于将矩阵进行重排,这样做虽然会达到使矩阵维数下降,但会使各标签与关注的人对应关系被打乱。
另一个解决方案:
初始矩阵的维度控制在2-3维。虽然在matlab中是可以计算出多维矩阵的相应置心值,但却无法在图像上显示完整。
注:data(idx==1,1),data(idx==1,2),data(idx==1,3)中每个都是一列,代表坐标中的x,y,z。而维数由初始矩阵的列数决定。有几列就写几个。Idx代表聚类标号,plot3代表三维坐标,plot代表二维坐标,grid on代表加上网格线。Kmeans算法参数介绍见其他文档。
MATLAB实现Kmeans等聚类算法需要先去下一些MATLAB工具包,我是在新浪爱问知识上下到的。希望对大家有所帮助,有错的地方请纠正。
- MATLAB2009A实现Kmeans实例
- spark利用MLlib实现kmeans算法实例
- kmeans函数使用实例
- matlab 实现kmeans
- kmeans的实现
- C++实现KMeans算法
- kmeans算法java实现
- WPF实现KMEANS算法
- RHadoop实现kmeans聚类
- Spark上实现Kmeans
- matlab实现kmeans算法
- kmeans python实现
- hadoop实现kmeans二
- Java实现Kmeans算法
- kMeans算法JAVA实现
- Kmeans原理及实现
- python 实现 Kmeans
- Kmeans算法实现
- window.onload和jQuery中的ready的区别
- 常用flash包
- Silverlight、SVG、WPF转换工具
- ssh框架下·网站运行第一天正常,第二天来看就报错
- linux与windows获得项目的路径及创建下级目录
- MATLAB2009A实现Kmeans实例
- 跨域情况下iframe页面与父页面的交互
- 浅谈:request,session,application
- ASP.NET MVC2程序开发入门到精通系列课程
- C# 将数据导出到Excel汇总
- web项目的上传(导入)、下载(导出)
- UVa483 - Word Scramble
- Ext表单(一)
- 将数字转换为大写的两个Java程序