%ISODATA算法的Matlab程序 Design by shuijian ([email protected])%相关函数说明见函数定义%x=样本特征空间%clusterNumber=预期聚类中心数目%leastNumber=最小聚类中的样本数,少于此数将不能作为独立的样本%stdvar=样本距离分布的标准差,随着迭代中结果逐渐优化,标准差应该越来越小才合理。%minmumDistance=两聚类中心的最小距离,小于此数将两个聚类合并%maximumCluster=一次运算中可以合并的聚类中心的最大对数%opCount=迭代运算次数%n=,x中元素个数%number=x中元素特征数目%s=聚类结果%clusterCenter=聚类中心%clusterCount =聚类中心元素数目
function [s,clusterCenter,clusterCount]=isodata1(x,n,number,clusterNumber,leastNumber,stdvar,minmumDistance,maximumCluster,opCount)
K= clusterNumber; % K=10; 预期聚类中心数目
qn= leastNumber; % qn=5; 每个聚类中至少有一个样本;否则不构成一个聚类
qs= stdvar; % qs=1; 与对应聚类中最大标准差分量maxQs(i)对比;如果maxQs(i)>qs,则进行分裂处理
qc= minmumDistance; % qc=10000; 小于这个最小距离即进行聚类中心的合并
L= maximumCluster; % L=1; 一次运算中可以合并的最大对数
I= opCount; % I=