文档章节

【模式识别】学习笔记(1)>>>【聚类分析】

Parser7
 Parser7
发布于 2015/02/27 20:14
字数 1159
阅读 811
收藏 30

聚类分析

相似性测度:

欧氏距离(多用)、马氏距离、明氏距离、角度相似性。

聚类准则:

进而还需要一种基于数值的聚类准则,能将相似的模式样本分在同一类,这就是聚类准则:试探法、聚类准则函数法。

    试探法:

凭直观感觉或经验确定相似性阈值。

    聚类准则函数法:

将样本进行分类以使类别间可分离性为最大,反映类别间相似性或分离性的函数;使聚类分析转化为寻找准则函数极值的最优化问题。如图求解欧氏距离和极值即可得准则函数:

 试探法:

 简单试探法:在实际中,对于高维模式样本很难获得准确的先验知识,因此只能选用不同的阈值和起始点来试探,所以这种方法在很大程度上依赖于以下因素:    
第一个聚类中心的位置,不同首个聚类中心导致最终的聚类结果不同。
待分类模式样本的排列次序,x1和x2的中心与x1和x3的中心是不一样的
距离阈值T的大小
样本分布的几何性质
最大最小距离算法

较简单试探法改进的方法,详细步骤见:第二章(最大最小距离算法).doc

聚类准则函数法

系统聚类法: 类别由多到少,直到获得合适的分类要求为止。有最大、最小、均值等不同距离准则为辅助。

动态聚类算法:

    基本思想--

        1)首先选择若干个样本点作为聚类中心,再按某种聚类准则(通常采用最小距离准则)使样本点向各中心聚集,从而得到初始聚类;

        2)然后判断初始分类是否合理,若不合理,则修改分类;

        3)如此反复进行修改聚类的迭代算法,直至合理为止。

        此类算法有:K-Mean、ISODATA

K-均值算法:

原理:

预定K个x为K类的均值中心,遍历所有样本以距离为依据归到K类中,重新计算每类的均值中心直到都不变为止,改变的话以新的均值作为中心重新归类。

性能:

因此,性能受所选聚类的数目、聚类中心的初始分布(影响收敛速度)、模式样本的空间几何分布等性质、读入次序等因素影响。

实际运用:

1)在实际应用中,需要试探不同的K值和选择不同的聚类中心的起始值。
2)如果模式样本可以形成若干个相距较远的孤立的区域分布,一般都能得到较好的收敛效果。
3)K-均值算法比较适合于分类数目已知的情况。

ISODATA算法:

原理:

与K-均值算法相似,聚类中心都是通过样本均值的迭代运算来决定的。

不同的是,ISODATA算法加入了一些试探步骤,并且可以结合成人机交互的结构,使其能利用中间结果所取得的经验更好地进行分类。
步骤和思路:
(1) 选择某些初始值。可选不同的参数指标,也可在迭代过程中人为修改,以将N个模式样本按指标分配到各个聚类中心中去。
(2) 计算各类中诸样本的距离指标函数。
(3)~(5)按给定的要求,将前一次获得的聚类集进行分裂和合并处理((4)为分裂处理,(5)为合并处理),从而获得新的聚类中心。
(6) 重新进行迭代运算,计算各项指标,判断聚类结果是否符合要求。经过多次迭代后,若结果收敛,则运算结束。

【此处应有ISODATA流程图】
具体算法实现还远不止步骤这么轻描淡写!

© 著作权归作者所有

共有 人打赏支持
Parser7
粉丝 25
博文 16
码字总数 21280
作品 1
杭州
程序员
私信 提问
加载中

评论(2)

Parser7
Parser7

引用来自“搜索小虫”的评论

这是哪本书啊?

中科院的课件
搜索小虫
搜索小虫
这是哪本书啊?
【模式识别】学习笔记(2)>>>【判别函数】

判别函数在模式识别系统的主要作用就是判别各个模式所属的类别。 如下直线描述的判别函数即将模式分为两类。 获取判别函数: 1-先确定判别函数形式,线性还是非线性、直线曲线折线等; 2-确定...

Parser7
2015/03/02
0
0
【模式识别】学习笔记(3)>>>【Fisher线性判别】

问题预备: 如果考虑把d维空间的样本投影到一条直线上,形成一维空间,即把维数压缩到一维。 然而: 1、即使样本在d维空间里形成若干紧凑的互相分得开的集群,当把它们投影到一条直线上时,也...

Parser7
2015/03/08
213
0
OSChina 技术周刊第二十五期 —— 每周技术精粹

每周技术抢先看,总有你想要的! 移动开发 【翻译】AngularJS 应用访问 Android 手机的照片库 【软件】跨平台移动端开发 NativeScript 【博客】Android Studio建立jni开发环境 【博客】Xamar...

OSC编辑部
2015/03/15
2.6K
3
阿里开发者们的第17个感悟:无细节不设计,无设计不架构

摘要: 2018年12月20日,云栖社区3岁。阿里巴巴常说“晴天修屋顶”,所以我们特别制作了这个专辑——分享给开发者们20个阿里故事,50本书籍。 2015年12月20日,云栖社区上线。2018年12月20日...

阿里云云栖社区
01/14
0
0
Posix多线程编程学习笔记

Posix多线程编程学习笔记(一)—线程基础(1) http://blog.chinaunix.net/u/22935/showart_310711.html Posix多线程编程学习笔记(一)—线程基础(2) http://blog.chinaunix.net/u/2293...

晨曦之光
2012/04/13
225
0

没有更多内容

加载失败,请刷新页面

加载更多

pg_lightool基于basebackup的单表恢复和块恢复

开源软件pg_lightool,实现了基于wal日志的块恢复。详情参见博客:https://my.oschina.net/lcc1990/blog/1931485。由于wal日志中FPW的不确定性,它不能作为一个数据库恢复的解决方案。目前对...

movead
27分钟前
2
0
对比剖析Swarm Kubernetes Marathon编排引擎

Docker Native Orchestration 基本结构 Docker Engine 1.12 集成了原生的编排引擎,用以替换了之前独立的Docker Swarm项目。Docker原生集群(Swarm)同时包括了(Docker Engine \/ Daemons)...

Linux就该这么学
28分钟前
2
0
Mybatis的结果集处理

此时我们已经可以把整段的SQL语句取出,但还并没有在数据库中去执行,我们可以先来分析一下配置文件中SQL语句执行后的结果集是如何处理的。 Mybatis会将结果集按照映射配置文件中定义的映射规...

算法之名
40分钟前
21
0
Spring Boot(Spring的自动整合框架)

Spring Boot 是一套基于Spring框架的微服务框架,由于Spring是一个轻量级的企业开发框架,主要功能就是用于整合和管理其他框架,想法是将平时主流使用到的框架的整合配置预先写好,然后通过简...

花漾年华
43分钟前
2
0
Windows下条件变量的实现

条件变量是什么? 是一种同步对象。 条件变量有什么用? 用于复杂的、多线程的、多核的程序中,实现多个线程间同步任务。 条件变量与其它同步对象的区别? 与事件、互斥锁、segment等同步对象...

shzwork
45分钟前
1
1

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部