大数据智能算法及测评技术

 

摘抄自《大数据测评》,蔡立志等,上海译文出版社

1、概述

数据的聚类和分类是大数据应用中的两个最重要的基础算法,也是发展较为成熟的算法。随着数据的爆炸式增长,基于分布式框架的数据聚类和分类已经成为重要发展方向。另外,个性化推荐系统是面向终端用户的典型应用,在各个领域均有着广泛的应用。无论是聚类算法和分类算法,还是个性化推荐均存在测试ORACLE问题和算法质量评估问题,给测试带来了新的挑战。

2、聚类算法

2.1 概述

根据其采用的不同策略,聚类算法可分为两大类。一类是层次聚类算法,这类算法一开始将每个点都看成一个簇,算法通过合并两个小簇而形成一个大簇,直到簇聚类满足某些条件从而结束聚类过程。另一类是基于点分配的算法,即按照某一顺序依次遍历所有点,将点分配到最合适的簇中,经典的K-均值算法(即K-means算法)就属于这类算法。

    

2)K-均值聚类算法
K-均值是最经典也是应用最广的聚类算法。该算法假定在欧氏空间下,聚类数K已知,算法接受一个未标记的数据集,然后将数据聚类成K个不同的簇。K-均值聚类是一个迭代的过程,其方法如下:
(1)首先选择K个点,称为聚类质心(通常随机选择)。
(2)遍历数据集中的每一个点,按照距离K个质心的距离,将其与距离最近的质心关联起来,与同一个质心相关联的所有点聚成一类。
(3)计算每一类中所有点位置的均值(新的质心),将该类的质心移动到新质心位置。
(4)重复步骤(2)~步骤(3),直到满足收敛要求(如质心不再变化)。

2.2 聚类算法的测试

方法论:(1)分析智能算法解决问题的领域;(2)分析智能算法的定义及代码;(3)分析智能算法运行时的选项

基于蜕变关系的聚类算法测试:

1、蜕变测试介绍

最早由澳大利亚斯温伯尔尼理工大学的陈宗岳(ChenTsong Yueh)教授在1998年提出。他提出的蜕变测试主要基于软件测试领域的两个观察。第一,测试成功的测试用例没有被进一步有效利用与挖掘,而这些测试用例很可能蕴含着有价值的信息。第二,软件测试存在“测试ORACLE问题”。测试准则,即是确认程序输出正确性
的机制。所谓测试准则问题就是不存在测试准则,或者没有可靠的测试准则,或者即使有测试准则但应用代价非常高。蜕变测试就是利用这些成功的测试用例,并根据蜕变关系创建衍生(follow-up)测试用例,然后分析这两类测试用例测试后的结果是否满足蜕变关系,从而判断程序是否存在缺陷。因此,蜕变测试是一种可有效解决智能算法测试的软件测试方法,它能在一定程度上解决由于这类软件没有可靠“测试准则”问题带来的挑战。

采用蜕变测试技术对聚类算法进行测评,原始测试用例一般就是聚类算法的测试数据集,聚类测试的核心就是如何构造有效的蜕变关系。有效蜕变关系应该具有较强测试功能的蜕变关系,需要覆盖算法核心功能的执行及对各个其他功能的有效验证,它还应当对程序中的缺陷具有很高的敏感度。设计构造聚类测试中有效的蜕变关系最好有领域专家的参与。

2、举例:K-均值聚类算法测试

1、根据算法的特点构造如下四类蜕变关系

MR 1.1:属性全局仿射变换的一致性。如果对原始测试用例中的每个属性值x(i)做仿射变换:
f(x(i))=ax(i)+b(a≠0)
得到衍生测试用例,则聚类结果不变。


得到衍生测试用例,则聚类结果不变。
MR 2.1:数据样本行置换。如果对原始测试用例中的任意两行数据样本做行置换得到衍生测试用例,则聚类结果不变。

MR 2.2:数据样本列置换。如果对原始测试用例中的任意两列属性做列置换得到衍生测试用例,则聚类结果不变。
MR 3:增加不提供信息属性。在原始测试用例的基础上,增加一列属性,增加的属性值全部相同,即这列属性值与原始测试用例中属性信息无关,得到衍生测试用例,则聚类结果不变。
MR 4:复制单个数据样本。在原始测试用例基础上,增加一个数据样本,增加的样本与原始测试用例中某一个样本相同,得到衍生测试用例,则聚类结果不变。

2、在原始测试用例基础上,按照上述MR构造数据,然后输入得到结果。

3、分析测试结果,判断算法有效性。

例如:

4、聚类质量评估

一般而言,聚类质量评估,通常与处理的数据集的特征、使用的聚类算法、算法的参数值等因素有关。如果聚类算法对数据集内在结构的假设不符合数据集的真实情况,那么聚类结果就不能正确反映数据集的内在结构。此外,即使聚类算法假设合理,也可能因为选择了不合理的参数而难以得到满意的聚类结果。
从广义上讲,聚类有效性评估包括:聚类质量的度量、聚类算法匹配数据集的程度以及最优的聚类数目等。聚类结果的评估通常采用三种有效性指标:外部指标(External
Indices)、内部指标(Internal Indices)和相对指标(Relative Indices)。

  1. 外部指标,即计算聚类结果与已有的标准分类结果的吻合程度。常见的有F-Measure指标、信息熵(Entropy )指标、Rand指数和Jaccard指数等聚类质量度量指标。
  2. 内部指标:  不依赖于外部信息,如分类的先验知识。很多情况下,事先并不清楚数据集的结构,聚类结果的评估就只能依赖数据集自身的特征。因此,内部指标的评估是直接从原始数据集中检查聚类的效果。本节将主要介绍簇内误差和Cophenetic相关系数。
  • 簇内误差 簇内误差,即任意点与其质心的距离的平方和。好的聚类算法应该保证簇内误差最小化。
  • Cophenetic相关系数 ,CPCC的值越接近1,说明两个矩阵相关性越好,层次聚类的效果越好
  • 相对指标:基本思想是,在同一个数据集上,用同一种聚类算法取不同的输入参数从而得到的相应的聚类结果,对这些不同的聚类结果,再应用已定义的有效性函数作比较来判断最优划分。

猜你喜欢

转载自blog.csdn.net/hgstclyh/article/details/111870752