分析性能数据时,你还在用“均值”吗?

通常而言,性能数据往往是一个波动的数值。所以当我们需要处理性能数据时,通常需要借助于统计的手段来辅助我们分析。而这其中,最常用的就是“多次测试取平均值”。那么这个方法有没有什么问题呢?

均值在描述性能数据时的问题

我们可以通过一个例子来说明问题:

在日常工作中,xiaosong 的任务之一就是需要在实验室环境下对比某网站在某浏览器上的页面加载耗时,并以此为依据判断业务性能有没有回退。当然,xiaosong 首先想到的就是业界最常用的“多次测试求均值”的方法,通过这个方法拿到了以下数据:

编号1#2#3#4#5#6#7#8#9#10#
第 1 次测试4035 ms9371 ms4864 ms4318 ms4519 ms4574 ms4471 ms4469 ms4364 ms4130 ms
第 2 次测试4165 ms4450 ms4463 ms4334 ms4364 ms4602 ms4471 ms4463 ms4551 ms4871 ms

那么根据上述结果,我们可以算出:第 1 次测试的均值为 4911.5 ms,第 2 次测试的均值为 4473.4 ms。由于第 2 次的测试中页面加载耗时的均值比第 1 次更短,因此我们会大致断定第 2 次测试时的性能更好。

作为老司机的你,也许立马就会提出以下的质疑:

  1. 测试结果没有剔除异常数据。

在第 1 次测试中的 2# 明显算是一个异常数据,会严重影响均值,应该剔除。

但是,除了这个以外还有没有其他的异常数据呢?有的情况下,我们会采用“人工”智能的方式来剔除异常数据,但总感觉不是很靠谱。所以,这里缺失了一个可靠的检测异常数据的标准

  1. 对测试数据的描述不够完善。

除了均值以外,至少还需要加上它的好基友“方差”或者“标准差”来衡量数据的波动情况啊。

但是,这些信息就够了吗?总感觉缺少了写什么!所以,这里缺少了一个全面描述数据集特征的体系

  1. 对部分数据的描述感觉不准确。

作为老司机的你,也许还遇到过这样的情况:80% 的数据集中在 2000 ms 附近,而剩下 20% 的数据随机分布在 3000~9000 ms之间,这样算出来的均值为 3500 ms。那么,对于部分数据集而言,均值可能并没有实际意义

由此看来,大家仅用均值来描述性能数据还是存在不小的风险的。

针对均值缺陷的根因分析

为了解决上面遇到的这些困扰,我们必须得明确问题处在了哪儿。

其中问题 1 (缺失检测异常数据的标准)和 问题 2(缺少全面描述数据集特征的体系)并不难理解,关键是问题 3(均值可能无法反映实际情况)。

为了彻底弄清这个问题,我们需要从统计学对均值的基础定义来进行分析。

均值的定义很简单:所有数据之和除以数据个数,以此表示数据集的平均大小。

毫无疑问,作为统计届几乎是最常用的指标之一,均值必然是很牛逼且有效的。但是,你知不知道,均值的使用是有限制的:

几乎统计学指标都有其适用范围,均值也不例外,它适用的数据集必须满足“中部单峰”的条件:

  • 所谓单峰,指的是数据集只存在一个峰值。
  • 所谓中部单峰,指的是数据集唯一的峰值还必须大致处于数据集的中部。

换句话说,凡是不满足“中部单峰”条件的数据集,在使用“均值”时都有极大可能会存在“无法描述数据特征,反而具有误导性”的问题。遗憾的是,在现实生活中,很多数据的分布并不满足“中部单峰”的条件,所以“均值”在很多情形下情况都不适用。

那么,我们要试图解决均值的问题,应该就要从两方面入手:

  1. 引入一套指标体系,全方面的描述数据集的特征;
  2. 要避免或者降低对数据集特征的依赖;

对症下药,引入箱形图工具

根据上面的分析,在已有的统计工具中我们不难发现箱形图基本满足上述条件:

  1. 箱形图有五个指标组成共同描述一个数据集的特征;
  2. 箱形图的对数据集的要求为只有一个——单峰。

要弄明白箱形图就首先要搞清楚四分位数的定义:

四分位数(Quartile),即统计学中,把所有数值由小到大排列并分成四等份,处于三个分割点位置的数值就是四分位数,它们分别是:

  • 第一四分位数 (Q1),又称“下四分位数”,等于该样本中所有数值由小到大排列后第25%的数字。

  • 第二四分位数 (Q2),又称“中位数”,等于该样本中所有数值由小到大排列后第50%的数字。

  • 第三四分位数 (Q3),又称“上四分位数”,等于该样本中所有数值由小到大排列后第75%的数字。

另外,上四分位数与下四分位数的差距又称四分位距(InterQuartile Range,IQR),也是四分位数中一个重要的概念。

而箱型图(Box-plot)即是基于四分位数设计的,它由美国著名统计学家 John Tukey 于 1977 年发明。箱形图因型状如箱子而得名,它能显示数据集的上边缘(Max)、下边缘(Min)、上四分位数(Q3)、下四分位数(Q1)及中位数(Median),是一种用作显示一组数据分散情况资料的统计图。

前面说到箱形图是基于四分位数设计的,我们具体来看箱型图中的五个指标分别的具体定义:

  • 中位数 (Median):即四分位数中的 Q2
  • 上四分位数(Q3):即第三四分位数
  • 下四分位数(Q1):即第一四分位数
  • 上边缘(Max):Max = Q3 + 1.5 * IQR,其中 IQR 即四分位距
  • 下边缘(Min):Min = Q1 - 1.5 * IQR,其中 IQR 即四分位距

大家也可以在下图中直观的感受箱形图的定义:

这里写图片描述

具体而言,箱形图的优势体现在以下三个方面:

  • 可以识别数据异常值

    箱形图为我们提供了识别异常值的一个标准:异常值被定义为小于Q1-1.5IQR或大于Q3+1.5IQR的值。阈值的来源于经验判断,经验表明它在处理需要特别注意的数据方面表现不错。

  • 快速对比不同数据集的基本特征

    同一数轴上,几批数据的箱形图并行排列,几批数据的中位数、尾长、异常值、分布区间等形状信息便一目了然。在一批数据中,哪几个数据点出类拔萃,哪些数据点表现不及一般,这些数据点放在同类其它群体中处于什么位置,可以通过比较各箱形图的异常值看出。各批数据的四分位距大小,正常值的分布是集中还是分散,观察各方盒和线段的长短便可明了。每批数据分布的偏态如何,分析中位线和异常值的位置也可估计出来。

  • 对不严格服从正态分布的数据集耐抗性强

    箱形图依靠实际数据,不需要事先假定数据服从特定的分布形式,没有对数据作任何限制性要求,它只是真实直观地表现数据形状的本来面貌;另一方面,箱形图判断异常值的标准以四分位数和四分位距为基础,四分位数具有一定的耐抗性,多达25%的数据可以变得任意远而不会很大地扰动四分位数,所以异常值不能对这个标准施加影响,箱形图识别异常值的结果比较客观。

那么,回到我们最开始的问题:

编号1#2#3#4#5#6#7#8#9#10#
第 1 次测试4035 ms9371 ms4864 ms4318 ms4519 ms4574 ms4471 ms4469 ms4364 ms4130 ms
第 2 次测试4165 ms4450 ms4463 ms4334 ms4364 ms4602 ms4471 ms4463 ms4551 ms4871 ms

对于以上数据我们可以整理出其箱形图的基本情况如下:

编号minQ1medianQ3max
第 1 次测试3481.5 ms4224 ms4470 ms4719 ms5416.5 ms
第 2 次测试4007.75 ms4349 ms4463 ms4576.5 ms4917.75 ms

根据以上数据绘制出的箱形图如下所示:

这里写图片描述

通过对比,我们可以得到与均值截然不同的结论:

  • 均值
    • 第 1 次测试明显落后于第 2 次测试(均值分别为 4911.5 ms 与 4473.4 ms)。
  • 箱形图
    • 第 1 次测试与第 2 次测试数据基本持平(中位数分别为 4470 ms 与 4463 ms);
    • 第 1 次测试的数据波动大于第 2 次测试(四分位距分别为 495 ms 与 227.5 ms);
    • 第 1 次测试中存在一个异常值(2# 9371 ms)

想必通过这个例子,箱形图的优势显然已经可以得到充分的体现了。

虽然箱形图不可能完美的解决所有的问题,但是当你下次遇到“需要剔除异常数据”或者“全面描述数据集特征”的时候,不妨可以考虑用箱形图来试试。

  • 8
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【摘要】 目前,对于聚类问题的研究普遍存在于社会生活中的各个领域,如模式识别、图像处理、机器学习和统计学等。关于对生活中各种各样的数据的聚类分类问题已经成为众多学者的研究热题之一。聚类和分类的区别在于,聚类没有任何先验知识可循,要通过数据自身的特点,将数据自动的划分到不同的类别中。聚类的基本形式定义为“在已给的数据集合中寻找数据点集的同类集合。每一个集合叫做一个类,并确定了一个区域,在区域中对象的密度高于其他区域中的密度。”聚类方法有很多种,其中最简单的形式便是划分式聚类,划分式聚类试图将给定的数据集合分割成不相交的子集,使具体的聚类准则是最优的。实际中应用最广泛的准则是聚类误差平方和准则,即对于每一个点都计算它到相应的聚类中心点的平方距离,并对数据集合上的所有点的距离进行求和。一种最流行的基于最小聚类误差平法和的聚类方法是K-均值算法。然而,K-均值算法是一个局部搜索的算法,它存在一些严重的不足,比如K值需要预先确定、聚类结果的好坏依赖于初始点的选取。为了解决这些问题,这个领域的研究者开发了很多其他的一些技术,试图基于全局最优化的方法来解决聚类问题(比如模拟退火算法、遗传算法等)。然而这些技术并没有得到广泛的认可,在许多实际应用中应用最多的还是反复利用K-均值算法。K-均值算法是一种基于划分的聚类算法,它通过不断的迭代来进行聚类,当算法收敛到一个结束条件就终止迭代过程,输出聚类结果。由于其算法思想简便,又容易实现对大规模数据的聚类,因此K-均值算法已成为一种最常用的聚类算法之一K-均值算法能找到关于聚类误差的局部的最优解,是一个能应用在许多聚类问题上的快速迭代算法。它是一种以点为基础的聚类算法,以随机选取的初始点为聚类中心,迭代地改变聚类中心来使聚类误差最小化。这种方法最主要的不足就是对于初始聚类中心点位置的选取敏感。因此,为了得到近似最优解,初始聚类中心的位置必须安排的有差异。本文就K-均值聚类算法的聚类结果依赖于初始中心,而且经常收敛于局部最优解,而非全局最优解,以及聚类类别数K需要事先给定这两大缺憾展开研究。提出了分别解决这两个问题的算法各一个首先,本文将Hae-Sang等人的快速K-中心点算法确定初始中心点的思想应用于Aristidis Likas的全局K-均值聚类算法中下一个簇的初始中心选择上,提出一种改进的全局K-均值聚类算法,试图寻找一个周围样本点分布比较密集,且距离现有簇的中心都较远的样本点,将其作为下一个簇的最佳初始中心。通过对UCI机器学习数据数据及人工随机模拟数据的测试,证明本文算法与Aristidis Likas的全局K-均值聚类算法和快速全局K-均值聚类算法比,在不影响聚类误差平方和的前提下,聚类间更短,具有更好的性能。同,本文介绍了自组织特征映射网络(Self-Organizing Feature Map, SOFM)的相关内容,SOFM网络是将多维数据映射到低维规则网格中,可以有效的进行大规模的数据挖掘,其特点是速度快,但是分类的精度不高。而K-均值聚类算法,是一种通过不断迭代调整聚类质心的算法,其特点是精度高,主要用于中小数据集的分类,但是聚类速度比较慢。因此,本文在分析了基于自组织特征映射网络聚类的学习过程,权系数自组织过程中邻域函数,以及学习步长的一般取值问题后,给出了基于自组织特征映射网络聚类实现的具体算法,将自组织特征网络与K-均值聚类算法相结合,提出了一种基于自组织映射网络的聚类方法,来实现对输入模式进行聚类,实现K-均值聚类算法的聚类类别数的自动确定。同通过实验进行仿真实现,证明该算法的有效性。 还原 【Abstract】 Clustering is a fundamental problem that frequently arises in a great variety of fields such as pattern recognition, image processing, machine learning and statistics. In general, clustering is defined as the problem of finding homogeneous groups of samples in a given data set. Each of these groups is called a cluster and can be defined as a region in which the density of exemplars is locally higher than in other regions.The simplest form of clustering is partition clustering w

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值