基于盒式图的数据过滤与回归分析算法

出处:hiberhe 发布于:2010-08-03 14:13:26

     软件度量是对软件开发项目、过程及其产品进行数据定义、收集以及分析的持续性定量化过程,目的在于对此加以理解、预测、*估、控制和改善,从而保证软件开发中的高效率、低成本、高质量[1]。但是,得到正确的度量只是测量程序的一部分。软件质量是与所收集和分析的数据质量密切相关的,数据清洗过程的目的就是要解决“脏数据”的问题。数据清洗是指去除或修补源数据中的不完整、不一致、含噪声的数据。在源数据中,可能由于疏忽、懒惰,甚至为了保密使系统设计人员无法得到某些数据项的数据[2]。根据决策系统中“garbage in garbage out”(如果输入的分析数据是垃圾则输出的分析结果也将是垃圾)原理,必须处理这些噪声数据。去掉噪声平滑数据的技术主要有分箱(binning)、聚类(clustering)、回归(regression)等[3]。本文在回归分析的基础上,加入了盒形图进行数据过滤,从而得出一条线性回归直线,使模式或者关系变得更加明显,从而用这些模式和关系对测量的属性作出判断。

1 盒形图和回归分析简介

1.1 盒形图

  该方法可以描述数据集取值范围的情况,展示数据主要*的区域,发现离群数据可能的位置,以便于对离群数据进行处理。盒形图显示一个变量的信息,如对相同CMM等级的不同项目完成每个FP的工作量分析,根据中位数m、上四分位数u、下四分位数l、盒长d、和尾(tail)来分析。

  中位数是在数据集中排列居中的项。也就是说,如果中位数取值为m,则数据集中有一半的值大于m,一半的值小于m。将所有数值按大小顺序排列并分成四等份,处于三个分割点位置的得分就是四分位数。的四分位数称为下四分位数l,所有数值中,有四分之一小于下四分位数,四分之三大于下四分位数。中点位置的四分位数就是中位数。的四分位数称为上四分位数u,所有数值中,有四分之三小于上四分位数,四分之一大于上四分位数。也有叫第25百分位数、第75百分位数的。将上四分位数和下四分位数的距离定义为盒长d,因此,d=u-l。接下来定义分布的尾(tail)。理论上,上尾值点为u+1.5d,下尾值为u-1.5d,这些值必须进行舍位处理,以接近真实数据,位于上尾和下尾之外的值称为离群值。

1.2 回归分析方法

  回归分析方法是研究要素之间具体数量关系的强有力的工具,运用这种方法能够建立反映要素之间具体的数量关系的数学模型,即回归模型。线性回归技术的基础就是散点图。将每个属性对表示为一个数据点(x,y),然后用回归技术计算出能够地拟合这些点的直线。目标是将属性y(因变量)根据属性x(自变量)表示为等式:y=a+bx。

  线性回归的理论是从每个点垂直向上或向下画一条线段到趋势直线,表示从数据点到趋势直线的垂直距离。在某种意义上,这些线段的长度表示数据和直线的差异,且这种差异应尽可能地小。因此,“拟合”的直线式是指使该距离的直线。

  在数学上要计算“拟合”直线的斜率b和截距a是很简单的。每个点的差异称为残差,生成线性回归直线的公式是残差的平方和达到。可以将每个数据点的残差表示为:


2 算法实现

  在进行数据清洗时,由于数据是无序输入的,所以先对其排序,再用盒形图法行数据清洗。以下是伪代码:

  void BubbleSort(double m,double q,int n) //先对输入

  //的数据进行冒泡排序,并相应修改

  //第二组数据的顺序,以保证它们之间的对应关系

  { for(int i=0;i

  for(int j=n-1;j>i;j--)

  {

  输入数据的排序

  修改第二组数据

  }

  }

  void box(double *m,double *q,int &n) //盒形法筛选

  //掉离群项目工作量数据,n为输入数据个数,m、q为指针

  {

  double a,b,c,top,bottom,l; //上分位a,中位数b,//下分位c

  if(n%2==0) //计算出3个四分位数

  {

  b=(*(m+n/2)+*(m+n/2-1))/2; //数据个数为

  //偶数时,中位数取中间两数的平均值

  a=*(m+n/4);

  c=*(m+3*n/4); }

  }

  else

  { b=*(m+n/2);

  a=*(m+n/4);

  c=*(m+3*n/4); }

  l=c-a; top=c+1.5*l;bottom=c-1.5*l; //计算出盒

  //长,上尾数,下尾数

  if(bottom<0) bottom=m; //并进行必要的舍位处理

  int j=n;

  for(int i=0;i

  {

  if(*(m+i)>top‖*(m+i)

  如有,将其从数组中剔去

  }

  }


  

版权与免责声明

凡本网注明“出处:维库电子市场网”的所有作品,版权均属于维库电子市场网,转载请必须注明维库电子市场网,https://www.dzsc.com,违反者本网将追究相关法律责任。

本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。

如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

广告
上传BOM文件: BOM文件
*公司名:
*联系人:
*手机号码:
QQ:
应用领域:

有效期:
OEM清单文件: OEM清单文件
*公司名:
*联系人:
*手机号码:
QQ:
有效期:

扫码下载APP,
一键连接广大的电子世界。

在线人工客服

买家服务:
卖家服务:

0571-85317607

客服在线时间周一至周五
9:00-17:30

关注官方微信号,
第一时间获取资讯。

建议反馈

联系人:

联系方式:

按住滑块,拖拽到最右边
>>
感谢您向阿库提出的宝贵意见,您的参与是维库提升服务的动力!意见一经采纳,将有感恩红包奉上哦!