基于MATLAB的模糊聚类分析及应用
孙宇锋
(韶关学院 数学系,广东 韶关 512005)
摘要:将MATLAB应用于模糊聚类分析, 给出求解模糊相似矩阵和传递闭包的算法.
关键词:模糊数学;聚类分析;MATLAB
中图分类号: O242 文献标识码: A 文章编号: 1007- 5348( 2006)09- 0001- 04
MATLAB是目前国际上流行的科学计算软件,它具有强大的矩阵计算和数据可视化能力,可实现数值计
算、图形处理、自动控制、信息处理等多种功能.本文讨论在模糊聚类分析中,使用MATLAB编程求解模糊相
似矩阵和传递闭包的简单
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
[ 1] .
1 模糊聚类分析
采用模糊数学语言对事物按一定的要求进行描述和分类的数学方法称之为模糊聚类分析.聚类分析主
要经过标定和聚类两个步骤,其中,繁琐的工作是求模糊相似矩阵和计算传递闭包.
1. 1 标定(建立模糊相似矩阵)
设样本集合X= {x1 , x2 , . . . . . . , xn }, n为样本数目,设每一个样本x i 由一组特征数据(x i1 , x i2 , . . . . . . ,
x im ) 表示.
建立模糊相似矩阵 R,主要是确定其相似系数 r ij , 即: x i 与xj 的相似程度.求相似系数 r ij 的方法很多,在
此,使用绝对值减数法[ 2] :
r ij = 1- c E
m
k= 1
| x ik - xjk | ,
其中 0 [ c [ 1, 适当选取 c值,使得 r ij在[ 0, 1] 中分散开来.
1. 2 聚类(对样本集合进行分类)
首先,定义矩阵的模糊乘法/ o0运算规则如下:
设:A = ( a ij ) 是 n @m阶矩阵, B = ( bjk ) 是 m @1阶矩阵,则 C = A o B = ( cik ) 是 n @1阶矩阵, cik
= Dmj= 1( a ij C bjk) .其中: D 为两数取大运算(逻辑加) , C 为两数取小运算(逻辑乘) .
其次,使用传递闭包法聚类:对标定的模糊相似矩阵 R ,依次用平方法计算, R2 , R4 , , , R2t , , , 当第一
次出现 Rk o Rk = Rk 时, 则称 Rk = ( tij ) 为传递闭包,记为 t (R) .
在传递闭包 t (R) = ( tij ) 中, 0 [ tij [ 1 ( i , j = 1, 2, . . . , n ) ,令 K为tij 中某一值(从高到低取值) .记:
RK = ( Kij ) ,
其中: Kij = 1 当 t ij \ K
0 当 t ij < K( i , j = 1, 2, . . . , n ) ,
收稿日期: 2006- 02- 19
作者简介:孙宇锋( 1963- ) ,男,河北邢台人,韶关学院数学系副教授, 主要从事信息与计算科学研究.
2006年 9月 韶关学院学报# 自然科学 Sep. 2006
第 27卷 第 9期 Journal of Shaoguan University # Natural Science Vol. 27 No. 9
称 RK为 t (R)的 K截矩阵. RK的列向量对应样本集合X= {x1 , x2 , . . . . . . , xn}中的元素. X 中某些样本为同
一类,必须且仅须 RK中对应的列向量相等[ 2] .
所以,欲将样本集合 X = {x1 , x2 , . . . . . . , xn}分成若干类(根据实际要求) , 只要选取合适的 K,求出 RK
即可.
2 MATLAB在模糊聚类中的应用
以图书期刊的模糊分类作为一个案例,讨论MATLAB在聚类分析中具体求解模糊相似矩阵和传递闭包
的算法.
取 8种数学专业核心期刊作为样本集合:X = { x1 , x2 , , , , x8 } ,其中: xi = (x i1 , x i2) , i = 1, 2, . . . ,
8; xi1为学术级别, xi2为相对平均被引用率[ 3] .并且计划将这8种数学专业核心期刊分成四大类. 样本集合数
据如下:
x1 = {0. 4000 0. 0001 } 5数学研究6
x2 = {0. 4000 0. 1304 } 5纯粹与应用数学6
x3 = {0. 8000 1. 1531 } 5数学学报6
x4 = {1. 0000 1. 0854 } 5科学通报6
x5 = {0. 8000 0. 6000 } 5应用数学学报6
x6 = {0. 8000 0. 5625 } 5数学进展6
x7 = {0. 6000 0. 4545 } 5数学杂志6
x8 = {0. 6000 0. 0476 } 5模糊系统与数学6
2. 1 求模糊相似矩阵
取 c = 0. 5,按绝对值减数法进行标定, 得到模糊相似矩阵 R :
R =
1. 00 0. 93 0. 22 0. 16 0. 50 0. 52 0. 67 0. 88
0. 93 1. 00 0. 29 0. 22 0. 57 0. 58 0. 74 0. 86
0. 22 0. 29 1. 00 0. 87 0. 72 0. 70 0. 55 0. 35
0. 16 0. 22 0. 87 1. 00 0. 66 0. 64 0. 48 0. 28
0. 50 0. 57 0. 72 0. 66 1. 00 0. 98 0. 83 0. 62
0. 52 0. 58 0. 70 0. 64 0. 98 1. 00 0. 85 0. 64
0. 67 0. 74 0. 55 0. 48 0. 83 0. 85 1. 00 0. 80
0. 88 0. 86 0. 35 0. 28 0. 62 0. 64 0. 80 1. 00 .
程序算法如下:
X= [ 0. 4, 0; 0. 4, 0. 1304; 0. 8, 1. 1531; 1, 1. 0854; 0. 8, 0. 6; 0. 8, 0. 5625;
0. 6, 0. 4545; 0. 6, 0. 0476] ; % 输入样本矩阵
I = ones( 8, 8) ; % I是元素全为 1矩阵
for i= 1: 8
for j= 1: 8
Y( i , j ) = ( abs(X( i , 1) - X( j , 1) ) + abs(X ( i , 2) - X ( j , 2) ) ) ; % 绝对值减数标定算法
end
end
R= round( ( I- 0. 5* Y) * 100)P100 % 得到模糊相似矩阵 R
# 2 # 韶关学院学报# 自然科学 2006年
2. 2 计算 R的传递闭包
经过计算得到传递闭包 t ( R) :
t ( R) =
1. 00 0. 94 0. 72 0. 72 0. 86 0. 86 0. 86 0. 89
0. 94 1. 00 0. 72 0. 72 0. 86 0. 86 0. 86 0. 89
0. 72 0. 72 1. 00 0. 87 0. 72 0. 72 0. 72 0. 72
0. 72 0. 72 0. 87 1. 00 0. 72 0. 72 0. 72 0. 72
0. 86 0. 86 0. 72 0. 72 1. 00 0. 98 0. 90 0. 86
0. 86 0. 86 0. 72 0. 72 0. 98 1. 00 0. 90 0. 86
0. 86 0. 86 0. 72 0. 72 0. 90 0. 90 1. 00 0. 86
0. 89 0. 89 0. 72 0. 72 0. 86 0. 86 0. 86 1. 00 .
程序算法如下:
flag= 0; % 设置标志
C= R ;
while flag= = 0
for i= 1: 8
for j= 1: 8
for k= 1: 8
B( i , j ) = max(min( C( i , k) , C( k, j ) ) , B( i , j ) ) ;
% 计算传递闭包
end
end
end
if B= = C
flag= 1;
else
C= B ;
end
end
B
t ( R) = B % 求出传递闭包
2. 3 计算 K截矩阵
在 t ij ( i , j = 1, 2, . . . , n ) 中取: K= 1, 0. 99, 0. 98, 0. 97, 0. 95, 0. 94, 0. 90, 0. 89, 0. 87, 0. 86, 0. 72,分别得
到相应的 K截矩阵.
程序算法如下:
L = [ 1, 0. 99, 0. 98, 0. 97, 0. 95, 0. 94, 0. 90, 0. 89, 0. 87, 0. 86, 0. 72] ; % 取t ( R) 中互不相同的元素
for k = L
for i = 1: 8
for j = 1: 8
if B( i , j ) > = k
第9期 孙宇锋:基于MATLAB的模糊聚类分析及应用 # 3 #
RK( i , j ) = 1;
else
RK( i , j ) = 0;
end
end
end
RK % RK为任一个K截矩阵
当 K= 0. 89时,得 R0. 89 :
R0. 89 =
1 1 0 0 0 0 0 1
1 1 0 0 0 0 0 1
0 0 1 0 0 0 0 0
0 0 0 1 0 0 0 0
0 0 0 0 1 1 1 0
0 0 0 0 1 1 1 0
0 0 0 0 1 1 1 0
1 1 0 0 0 0 0 1
.
{ { { { { { { {
对应的元素为: x1 , x2 , x3 , x4 , x5 , x6 , x7 , x8 .
可见: K= 0. 89时,将X 分成四类(按要求) : {x4}、{x3}、{x5 , x6 , x7}、{x1 , x2 , x8}. 即: {5科学通报6} ;
{5数学学报6} ; {5应用数学学报6、5数学进展6、5数学杂志6} ; {5数学研究6、5纯粹与应用数学6、5模糊系统
与数学6}.
3 结束语
模糊聚类分析(传递闭包法)可在图书、情报及期刊的等级分类中广泛使用, 尽管各个行业的分级指标
不同,但使用的聚类方法却具有普遍意义.同时,可以看到, 当样本集合的数目很大时, 用MATLAB算法处理
高阶矩阵,比其他计算机语言更具优越性.
参考文献:
[ 1]苏金明, 王永利. MATLAB 7. 0 实用指南[M] . 北京: 电子工业出版社, 2004: 66- 68.
[2]罗承忠. 模糊集引论[M] . 北京:北京师范大学出版社, 2005: 105- 111.
[3]王筠. 专业期刊质量的模糊分级法[ J] . 情报杂志, 1998(1) : 35- 36.
Based on MATLAB. s fuzzy clustering analysis and application
SUN Yu2feng
(Department ofMathematics, Shaoguan University, Shaoguan 512005, Guangdong, China)
Abstract: ApplyMATLAB in fuzzy clustering analysis, gives to the computer algorithm that begs to untie fuzzy similar
matrix and transmissive to closed bale.
Key words: fuzzy mathematics; clustering analysis;MATLAB
(责任编辑:王桂珍)
# 4 # 韶关学院学报# 自然科学 2006年