Page 183 - 《软件学报》2020年第11期
P. 183

徐鲲鹏  等:类属型数据核子空间聚类算法                                                            3499


                                                        N +  P −  1   K
                                                V  ()K =       +  ln(δ 2 ˆ  ) −  .
                                                 KC     N −  P −  1   N
                           K                                                N +  P − 1
                    实际上,     −  ln(δ 2 ˆ  ) 在此聚类有效性指标中度量的是模型的拟合度;而                 作为模型复杂性的惩罚,随
                           N                                                N −  P − 1
                 着参数数量的增加变大.因此,最好的模型是使得 V KC 值最小的,也就是使得 V KC (K)最小的 K 值即为最佳簇数目.
                 4    实验分析

                    实验部分主要验证 KSCC 算法对类属型数据的聚类性能,在合成数据集与真实数据集上进行了实验,并与
                 若干当前主流的类属型聚类算法相比较.实验平台如下:Core(TM)i5-4590 3.30GhzCPU,4.00GB 内存,操作系统
                 为 Windows 7.
                 4.1   实验设置
                    如前所述,本文选择径向基核中的高斯核函数用于挖掘类属属性间非线性的关系,不仅因为其适应于各种
                 样本以及参数较少,而且在于这类核函数提供的映射空间是无穷维的,以至于原空间中线性不可分的数据可以
                                                                                                     2
                 被直接映射成线性可分的点.在实际应用中,高斯核函数也是应用最广的核函数.本文高斯核函数中的参数σ 定
                 义为数据集 DB 的全局方差: σ =       2  1   N   D 1∑   [( Ix =  ) o − ∑∑  f o  2
                                                                        ( )] ,由数据驱动学习得出.实验选择了
                                                           ∈
                                              ND  i=  1  d =  o O d  id  k
                 WKM [12] 、MWKM [20] 和 KKM(核 k-means) [11] 这 3 种算法进行对比.WKM [12] 在 k-modes [15] 的基础上引入了基于
                 距离的属性加权,MWKM        [20] 算法根据模的频度进行属性加权.这两种算法代表了目前类属性数据子空间聚类
                 的两种主流方法,然而这两种算法都是基于特征相互独立来计算样本间的相似性(相异性),选择这两种算法可
                 以和 KSCC 非线性相似性度量作对比.KKM            [11] 算法与 KSCC 一样经过了“核化”的过程,考虑了属性间的关系,
                 但未能区分特征的重要程度,因此选择 KKM              [11] 来验证 KSCC 在非线性空间中的子空间聚类效果.WKM             [12] 算法
                 的参数β根据作者的建议值设置为 2.MWKM             [20] 算法的参数根据作者的建议值设置,即β=2 和 T s =T v =1.
                    合成数据能够从簇的数目、大小等控制数据集的簇结构,便于分析算法的性能以及对各样数据集的适应
                 性.本文首先在多个合成数据集上进行测试,然后在若干真实数据集上实验.由于各数据集已知类别标签,本文
                 选择两个外部评价指标 Accuracy 和 F-Score       [21] 来评估新的算法的聚类性能.两个指标的值越大,表明聚类的效
                 果越好.其中,F-Score 定义如下.
                                       FScore = ∑ K n k  max ⎜  2 R (class k , ) Pπ ⎛  i  (class k  , )π ×  i  ⎞ ×  . ⎟
                                         -
                                                 k = 1      ( R class π  (class π +
                                                     1 i
                                                   N ≤≤  K  ⎝    k , ) P   k , )  ⎠
                                                                              i
                                                                   i
                 这里,class k 表示数据集中第 k 个真实的类,n k 表示 class k 包含的样本数目,P(class k ,π i )和 R(class k ,π i )分别表示数据
                 集中真实的类 class k 与聚类结果中的簇π i 相比较的准确率和召回率.
                 4.2   合成数据及结果分析
                    实验采用的合成数据由 MATLAB 生成.首先利用 mvnrnd(⋅)函数分别生成了 3 个多维数值型数据集,通过设
                 定属性的方差来控制属性的权重;通过调整协方差矩阵的参数来控制属性间的相关程度.然后对合成得到的数
                 值型数据进行等宽离散化处理           [22] ,转化为类属型数据.合成的数据集都包含着正确的类别标签.具体参数见表 1.
                    其中,
                    •   DataSet1 数据集中设定属性 1 与属性 2 的协方差为−2,使其属性相关;且设定属性 3、属性 4 的方差与
                        其余属性相比较小,使得这两个属性相对于其他属性更为重要.通过 DataSet1 对比 KSCC 算法和没有
                        进行特征选择的 KKM      [11] 算法.
                    •   DataSet2 与 DataSet3 数据集中分别抽取 10 个和 20 个属性设定彼此之间的协方差;并设定各属性上方
                        差相等.通过这两个数据集来验证 KSCC 与目前主流子空间聚类方法相比,在处理属性关系上的优势.
   178   179   180   181   182   183   184   185   186   187   188