C语言编程实现ISODATA算法
2016-12-21刘明晓王旭光
电气传动自动化 2016年5期
关键词:分类
刘明晓,王旭光
(1.西安铁路职业技术学院,陕西西安710014;2.西安航天自动化股份有限公司,陕西西安710014)
C语言编程实现ISODATA算法
刘明晓1,王旭光2
(1.西安铁路职业技术学院,陕西西安710014;2.西安航天自动化股份有限公司,陕西西安710014)
ISODATA算法是聚类分析算法中较常使用的算法,是非监督状态下基于统计模式识别的一种动态的聚类算法,在模式识别算法中具有较强的实用性。介绍了ISODATA算法的计算过程和具体实现方法,结合C语言编程工具对具体的样本进行了聚类分析,得到了较为理想的聚类分析结果,研究了参数的选取对分类结果所产生的影响。
ISODATA算法;聚类;C语言编程;模式识别
1 引言
ISODATA算法又称为动态聚类算法或迭代自组织数据分析算法,是一种对样本进行聚类划分的算法[1]。ISODATA算法是以均值迭代来确定聚类中心,其与K均值算法的不同是加入了人机对话环节,这使得参数可以随时进行调整,该算法同时还引入了分裂与合并的功能[2]。分裂是指当某样本的标准差大于设定的阈值或该样本的数目超过某一特定的阈值时将该样本分为两个样本,或在该样本数目少于某一阈值时对样本进行分裂;合并是指当某两个样本的样本中心间距小于某一阈值时将两个样本合并为一个样本,同时当某一样本的样本数目少于设定的阈值时即将该样本取消,归入其他样本中去[3、4]。因此,ISODATA 算法较其他算法相比更加灵活,实用性更强。
ISODATA算法是一种无监督的分类方法,首先……
登录APP查看全文
