当前位置:文档之家› 2模糊ISODATA聚类分析方法的VC实现

2模糊ISODATA聚类分析方法的VC实现

k =1
∑( u
5
k =1
5
ik )
2
xkj
2
vij =
∑( u × 5 , uik =
1
| xk - vi | ( ) j = 1 , j ≠i | vk - vj |
4) 计算 ( uik ) 3 × 5 作归一性 ,划分性 ,非空性处理 ; 5) 迭代收敛性的判定 ,对于给一任意小的正数ε,当本次 迭代结果 ( uik ( 2) ) 与前一次迭代结果 ( uik (1) ) 的差值小于ε
CDialog : :OnInitDialog () ; SetIcon (m —hIcon , TRUE) ; SetIcon (m —hIcon , FALSE) ; m —bediting = FALSE ; m —strrow[ 0 ] = ″ 第一行″ ;m —strrow[ 1 ] = ″ 第二行″ ; m —strrow[ 2 ] = ″ 第三行″ ; m— prearray. SetCol (0) ;m —diffarray. SetCol (0) ; m— centarray. SetCol (0) ; for (int i = 0 ;i < 3 ;i + + ) { m— prearray. SetRow (i + 1) ; m— prearray. SetText (m —strrow[ i ]) ; m —diffarray. SetRow (i + 1) ; m —diffarray. SetText (m —strrow[ i ]) ; m— centarray. SetRow (i + 1) ; m— centarray. SetText (m —strrow[ i ]) ; } m— arrycol [ 0 ] = ″ 第一列″ ;m — arrycol [ 1 ] = ″ 第二列″ ; m— arrycol [ 2 ] = ″ 第三列″ ;m — arrycol [ 3 ] = ″ 第四列″ ; m— arrycol [ 4 ] = ″ 第五列″ ; m— prearray. SetRow (0) ; m —diffarray. SetRow(0) ; m— centarray. SetRow (0) ; for ( int j = 0 ;j < 5 ;j + + ) { m— prearray. SetCol (j + 1) ; m— prearray. SetText (m — arrycol [ j ]) ; m —diffarray. SetCol (j + 1) ; m —diffarray. SetText (m — arrycol [ j ]) ; } for ( j = 0 ;j < 4 ;j + + ) { m— centarray. SetCol (j + 1) ; m— centarray. SetText (m — arrycol [ j ]) ; } m— prearray. SetCol (0) ; m — prearray. SetRow(0) ; ); m— prearray. SetText (″ 初始阵″ m— centarray. SetRow (0) ;m — centarray. SetCol (0) ; ); m— centarray. SetText (″ 聚类中心阵″ m —diffarray. SetRow (0) ;m —diffarray. SetCol (0) ; ); m —diffarray. SetText (″ 划分阵″ return TRUE ; / / return TRUE unless you set the focus to a control } / / 以上对界面上三个矩阵零行零列进行初始化 : / / 即先选择一个单元 ,然后设置或恢复那个单元中存储的文本
表1 环境单元污染数据 要素 单元
x1 x2 x3 x4 x5
1 模糊 ISODATA 算法
1. 1 算法
设有 n 个样本的总体 ( 论域) X = { X1 , X2 , …, Xn } ,每一 个样本有有 s 个指标 Xj = ( xj1 , xj2 , …, xjs ) , ( j = 1 , 2 , …, n) 首先 ,取定分类数 c ,软分划矩阵 U = [ uij ] c ×n 的全体构成软 划分空间
第 21 卷第 8 期 2001 年 8 月
文章编号 :1001 - 9081 (2001) 08 - 0142 - 03
计算机应用
Computer Applications
Vol . 21 ,No. 8 Aug. ,2001
模糊 ISODATA 聚类分析方法的 VC 实现
朱永红 ,杨 敏 ( 南京航空航天大学 自动化学院 ,江苏 南京 210016) 摘 要 : 模糊聚类分析方法具有较强的实用性 ,基于模糊划分的 ISODATA 迭代方法具有很好的 优点 。文中结合具体算例进行了聚类分析 ,并利用 Microsoft FlexGrid 控件给出了VC + + 的实现 , 得到 了理想的分类结果 。 关键词 : 模糊聚类分析 ;VC + + ;Microsoft FlexGrid 控件 中图分类号 : TP311. 52 文献标识码 :A
ε( i = 1 , 2 , 3 , k = 1 , 2 , 3 , 4 , 5) 迭代终 时 , 则 | uik —uik | ≤ 止 ,其中 Uik 与 V ij 即为所求的结果 。
( 2)
( 1)
2 VC 实现
因为涉及到矩阵运算 , 采用 VC 自带的 Microsoft FlexGrid 控件作为矩阵的输入 ,输出显示 。本程序采用基于模式对话 框 ,网格控件初始时是空的 ,单击某个单元可显示编辑控件 , 这样可以输入或改变该单元的内容 。如果再次单击此单元 , 来自此编辑控件的值可移到该单元中 , 而把编辑控件隐藏起 来 。如图 1 所示为录入界面 ,图 2 所示为运算结果显示界面 。 源代码和说明如下 :
c n
J m ( U , V) =
i =1
∑∑u
j =1
ij
m
2 | | Xj - - - V i | | ( m ≥1)
s
其中 : | | Xj - - - Xi | | 2 =
k =1
∑( x
jk
- - - vik ) 表示第 j 个样本
与第 i 类中心之间欧氏距离的平方 ;J m (U ,V) 表示所有待聚类 样本与所属类的聚类中心之间距离的平方和 。 为了得到最佳分划矩阵 U 3 对应的聚类中心 V 3 , 从而 确定 最 佳 分 类 结 果 , 就 必 须 使 J m ( U , V ) 达 到 最 小 , 即
作者简介 : 朱永红 (1965 - ) ,男 ,博士研究生 ,主要研究方向 : 鲁棒控制 、 智能控制 、 非线性系统控制 、 自适应控制 ; 杨敏 (1969 - ) , 男 , 硕士研 究生 ,主要研究方向 : 智能控制 .
第8期
朱永红等 : 模糊 ISODATA 聚类分析方法的 VC 实现
在模式识别问题中 ,经常面临的一个问题是 ,从许多可能 的特征中选择可靠性 、 独立性好的少量特征 。一般而论 ,人们 希望如果特征是有用的话 , 则当它们被排除在外后分类器的 性能至少应下降 。而实际上去掉噪声大的或相关程度高的特 征反而能改善分类器的性能 。因此 ,特征选择可以看作是一 个 ( 从最差的开始) 不断删去无用的特征和组合有关联的特征 的过程 ,直至特征的数目减少至易于驾驭的程度 ,同时分类器 的性能仍然满足要求为止 。聚类的目标是将数据聚集成类 , 使得类间的相似量尽量小 ,而类内的相似性尽量大 。 采用模仿人类思维的模糊聚类分析在实际中有广泛的应 用 ,这是由于实际问题中 ,一组事物是否属于某一类 ? 常带有 模糊性 ,也就是问题的界限不是十分清晰的 。我们不能明确 地回答 “是” 或 “否” ,而是只能作出 “在某种程度上是” 的回答 , 这就是模糊聚类分析 。 传统的模糊聚类方法如传递闭包法 ( 平方法 ) ,直接聚类 法 ,最大树法都是基于模糊等价关系的聚类方法 ,这种聚类方 法的优点是聚类灵活 ,可以根据不同的阈值来聚类 。但在聚 类前必须作模糊相似矩阵 ; 在聚类过程中 ,没有充分利用人们 已有的分类经验 ; 分类后不知道每一类别的聚类中心的信息 。 为此人们希望能有一种可以充分利用人们已有的分类经验 , 且能知道聚类中心信息的软划分 。我们希望知道各类样本隶 属于某类的的隶属度 , 这样就知道有多大的把握将这些样本 划分在某类 。本文采用的模糊 ISODATA 方法就具有这样的 优点 。总之 ,基于模糊划分的迭代自组织数据分析技术 — — — 模糊 ISODATA 方法是解决若干样本聚类问题实用方法之一 。 式中 ,uij 表示第 j 个样本 Xj 隶属于第 i 类的隶属度 。 定义聚类中心 V = { V1 , V2 …, Vc } T 其中 : V i = ( vi1 , vi2 , …, vis ) , i = 1 , 2 , …, c 。 第 i 类的中心 V i 即人为假想的理想样本 ,它对应的 s 个 指标值是该类样本所对应的指标值的平均值 。构造目标函 数:
BOOL CFuzzygridDlg : :OnInitDialog() {
143
我们试用 ISODATA 法聚类求划分阵和聚类中心矩阵 。 从上表可知 ,有五个待分类样本 ,每个样本有四个特征 。 设论域 X = { x1 , x2 , x3 , x4 , x5 } ; xk = ( xk1 , xk2 , xk3 , xk4 ) ( 其中
c
空气 水分 土壤 作物
5 2 5 1 2 5 3 5 5 4 3 4 2 3 5 2 5 3 1 1
Mfc = { Uc ×n | uij ∈ [ 0 , 1 ] , Π i , j ;
相关主题