最近需要用到层次聚类,发现在Matlab上很容易实现,下面是代码加详细注释

clear all

clc

close all

mdist=input('输入坐标文件名字\n');

disp('读取数据坐标')

%获取坐标

%文件为二维的坐标,第一列为x轴坐标,第二列为y轴坐标

xx=load(mdist);

%获取数据的个数存至number

[number, row]=size(xx);

%获取距离矩阵,第二参数指定距离计算方法

%可选参数有'euclidean':欧氏距离(默认);'seuclidean':标准化欧氏距离;

%'mahalanobis':马氏距离;'cityblock':布洛克距离;'minkowski':明可夫斯基距离;

%'cosine':余弦距离 'correlation':相关性 'hamming':汉明距离 'jaccard':Jaccard相似度

%'chebychev':Chebychev距离。

yy=pdist(xx,'euclidean');

%获取聚类,第二参数指定层次聚类方式

%'single':单连通,最短距离法(默认);'complete':全连通,最长距离法;'average':未加权平均距离法;

%'weighted': 加权平均法;'centroid': 质心距离法;'median':加权质心距离法;'ward':内平方距离法(最小方差算法)

zz=linkage(yy,'single');

%指定获取簇类个数

Ncluster=input('输入类个数\n');

%获取指定Ncluster个数的聚类结果

c = cluster( zz,'maxclust', Ncluster );

%获取绘图所需颜色

%需要用到linspecer.m文件

%下载地址

%http://www.mathworks.com/matlabcentral/fileexchange/42673-beautiful-and-distinguishable-line-colors-+-colormap

if(Ncluster>12)

Color = linspecer( Ncluster );

else

Color = linspecer( Ncluster, 'qualitative' );

end

for i=1:Ncluster

for j = 1:number

if(c(j) == i)

hold on

plot(xx(j,1),xx(j,2),'o','MarkerFaceColor',Color(i,:),'MarkerEdgeColor',Color(i,:))

end

end

end

参考资料:



matlab 层次聚类算法,层次聚类的Matlab实现代码相关推荐

  1. 聚类算法——层次聚类算法

    每篇一句: You must strive to find your own voice. Because the longer you wait to begin, the less likely ...

  2. 单链聚类算法_聚类算法总结

    1      什么是聚类算法? 聚类算法就是根据特定的规则,将数据进行分类.分类的输入项是数据的特征,输出项是分类标签,它是无监督的. 常见的聚类规则包括:1)基于原型的,例如有通过质心或中心点聚类, ...

  3. 【RF分类】基于matlab随机森林算法数据分类【含Matlab源码 2048期】

    ⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[RF分类]基于matlab随机森林算法数据分类[含Matlab源码 2048期] 获取代码方式2: 付费专栏Matlab智能算法神经网络 ...

  4. 聚类算法--近邻聚类算法(C++实现)

    聚类算法–近邻聚类算法(C++实现) 写在前面: ​ 最近邻聚类算法,应该不是KNN,也不是K-means,就是一个特别基础的算法,但是在CSDN没有找到C++实现的这个算法,只有一个python写的 ...

  5. 基于 K-means 聚类算法实现图像区域分割matlab代码

    1 简介 对图像进行颜色区域分割.将图像转换到CIE L*a*b颜色空间,用K均值聚类分析算法对描述颜色的a*和b*通道进行聚类分析;通过提取各个颜色区域独立成为单色的新图像,对图像进行分割处理.实验 ...

  6. matlab中的聚类算法,kmeans聚类算法matlab matlab 聚类算法silhouette

    怎样用matlab实现多维K-means聚类算法小编觉得一个好的周末应该是这样的:睡到中午醒来,在床上躺着玩两个小时手机,起床随便吃点东西,下午去超市买一大堆零食,五六点的时候去约小伙伴们吃火锅烧烤, ...

  7. 【Python机器学习实战】聚类算法——层次聚类(HAC)和DBSCAN

    层次聚类和DBSCAN 1.层次聚类 下面这样的结构应该比较常见,这就是一种层次聚类的树结构,层次聚类是通过计算不同类别点的相似度创建一颗有层次的树结构,在这颗树中,树的底层是原始数据点,顶层是一个聚 ...

  8. 【图像分割】基于 K-means 聚类算法实现图像区域分割matlab代码

    1 简介 对图像进行颜色区域分割.将图像转换到CIE L*a*b颜色空间,用K均值聚类分析算法对描述颜色的a*和b*通道进行聚类分析;通过提取各个颜色区域独立成为单色的新图像,对图像进行分割处理.实验 ...

  9. 聚类算法-层次(系统)聚类 Kmeans聚类 两步聚类

    一.距离定义 1.1 点-点 距离 距离用来衡量观测变量的属性,第iii个特征的观测值Xi=(xi1,xi2,...,xip)X_{i}=(x_{i1},x_{i2},...,x_{ip})Xi​=( ...

  10. 【图像分割】基于模糊聚类FCM和改进的模糊聚类算法实现CT图像分割matlab代码

    1 简介 医学影像分割的基本目标是将图像分割成不同的解剖组织,从而可以从背景中提取出感兴趣区域.因为图像的低分辨率和弱对比度,实现医学影像分割是一件具有挑战的任务.而且,这个任务由于噪声和伪阴影变得更 ...

最新文章

  1. Redis源码解析——字典基本操作
  2. Maven全局配置文件settings.xml 全解
  3. cmd 将文件夹下文件剪切到另外一个文件_总结java中文件拷贝剪切的5种方式-JAVA IO基础总结第五篇...
  4. boost::allocate_shared相关的测试程序
  5. 介绍ASP.NET控件ID
  6. 【ORACLE 高可用】ORACLE STREAM 基于用户的流复制配置 案例
  7. python数据处理模块pandas_13. Python|模块总结:Pandas(数据处理)|【老W笔记】...
  8. 分布式和集群的概念和区别
  9. centos7硬盘分区
  10. 查看我的mysql_我的MYSQL学习心得(七) 查询
  11. POJ-英语数字转化器
  12. dg修改归档目录 oracle_OracleDG主库丢失归档增量同步
  13. 用于小儿肺炎检测的无代码AI
  14. 项目管理工具——Jira使用和配置
  15. Binder机制原理简述
  16. 神经网络模拟的优缺点是,神经网络模型的优缺点
  17. 百度搜索框搜索时显示或者隐藏历史搜索记录
  18. AliOS-Things--EMW3060--linkkitapp
  19. 学会计学java,Java 属于以下哪种语言?_学小易找答案
  20. android 微信好友,朋友圈分享

热门文章

  1. Js弹出框代码,头像选择工具
  2. 软件测试之数据库面试题
  3. python中的double 型数据_Python的基本数据类型
  4. android js shell,使用adb shell+node.js实现抖音自动抢红包
  5. (翻译)NLog配置文件
  6. php 实现格式化数字功能
  7. Python logging详细说明
  8. 请求天气 API 和风天气 API 免费
  9. 变种、入.侵专网,勒索病毒你不得不关注的攻.击趋势
  10. Mininet命令详解(1)