Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2009-09-28, 23:33   #1
笨笨鱼
初级会员
 
注册日期: 2009-09-24
帖子: 3
声望力: 0
笨笨鱼 正向着好的方向发展
默认 回复: 求聚类分析程序

哪位好心人帮帮忙啊。多谢了
笨笨鱼 当前离线   回复时引用此帖
旧 2009-09-29, 08:15   #2
slgu
高级会员
 
注册日期: 2007-06-24
年龄: 70
帖子: 188
声望力: 21
slgu 正向着好的方向发展
默认 回复: 求聚类分析程序

若将n个数据点(x)分成g组,主要有两种聚类方法。
一是系统聚类,先将每一点视为一类,按某种规则计算类间距离(第一步时即为点间距离),然后将最相近的两类合并成一新类,重新(按规则)计算类间距离(只需计算新类与其它类的类间距离,其它类间距离没有发生变化,不必计算),再将最相近的两类合并。如此反复,直至所有点成为一类。这里,计算类间距离的规则有6种,亦即形成了6种基本的系统聚类方法:最近距离法、最远距离法、中间距离法、重心法、类平均法、最小组内平方和法。在matlab中,这可以通过以下几个命令实现:
y=pdist(x,' '),% ' '中为计算空间距离的选项
z=linkage(y,' '),% ' '中为类间距离的选项,对应有,single, complete, median, centroid, average, ward 等。
最后画出聚类树:dendrogram(z), or dendrogram(z,0)
另一类是动态聚类,它在给定初始聚类的基础上,反复修改分类,使分类趋于某种事先设定的标准(目标函数),最终得到一个优化的目标函数,对应于一个优化的分类。在matlab中,仅有组中心距离最短(现改为组中心距离和最小)这一目标函数的kmeans法,这可通过:
kmeans(x,g)
实现。
但这种方法的能力有限,不一定能实现全距最优分类。
若将数据(最好是数据点原始数据,亦即x数据)置上,可以代为聚类,实现各类不同方法优化的动态聚类。
slgu 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 21:47


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.