当前位置:首页 > 模拟 > 模拟
[导读]讨论了软件度量的数据过滤和回归分析问题,提出了一种用盒式图进行数据过滤,再用回归分析得出线性回归直线的算法。

软件度量是对软件开发项目、过程及其产品进行数据定义、收集以及分析的持续性定量化过程,目的在于对此加以理解、预测、评估、控制和改善,从而保证软件开发中的高效率、低成本、高质量[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<n;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<j;i++)  //判断是否为离群值,
      {
           if(*(m+i)>top‖*(m+i)<bottom)        
           如有,将其从数组中剔去
      }
    }
    接下来要对筛选出来的数据进行回归分析,从而得到一个数据模型。
    void regress(double* m,double* q,int n)   //对数组
//m和数据q的数据用线性回归法进行拟合
//并用一条直线表示出它们之间的对应关系
    {  double average_m,average_q,total_m,total_q,L_mq,L_mm;
          double a,b; //拟合直线y=a+bx的2个待定系数
          for(int i=0;i<n;i++)                .
          {
             //计算两组数据的和total_m和total_q
          }
          average_m=total_m/n; //求的第一组数据的平均值
          average_q=total_q/n; //求的第二组数据的平均值
       for(int j=0;j<n;j++)                   
          {
         利用公式(1)计算两组数据m,q它们所有数据偏离程度的对应相乘之和L_mq
          }
       for(int k=0;k<n;k++)                   
        {
         计算第一组数据m,它的所有数据偏离
         程度的平方和L_mm
        }
        b=L_mq/L_mm;  //计算出拟合直线的待定系数
//b的拟合值
        a=average_q-b*average_m;  //利用公式(2)算出参
//数a
    }
    从而得到一条线性直线,算法结束。
3 算法在实验数据上的实现
    从SSMBSS(上海软件度量基准体系)中选取了一组数据(见表1),首先将其用散点图列出来(见图1),然后用盒形图进行数据清洗(见图2),最后用回归分析得出拟合直线(见图3)。

    综上所述,对于软件度量过程中出现的数据冗余和失真的情况,可以通过数据过滤和回归分析进行处理,除去那些离群的数据,并得出相应的拟合直线,这样就可以分析出数据的规律,保证软件的质量,提高效率。
参考文献
[1] FENTONenton N E, PFLEEGER S L. Softwaremetrics: a rigorous&practical apporach[M](第2版). 北京: 清华大学出版社, 2003.
[2] 郭志懋,周傲英.数据质量和数据清洗研究综述.软件学报[J],2002(11).
[3] 王石,李玉忱,刘乃丽,等.在属性级别上处理噪声数据的数据清洗算法.计算机工程[J],2005(5).
[4] 徐建华.现代地理学中的数学方法.北京:高等教育出版社,2002.

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

美国纽约州阿蒙克2022年10月20日 /美通社/ -- IBM(NYSE: IBM)发布 2022 年第三季度业绩报告。 IBM 董事长兼首席执行官 Arvind Kri...

关键字: IBM 软件 BSP 云平台

成都2022年10月19日 /美通社/ -- 近期,平安养老险积极筹备个人养老金的产品设计和系统开发工作,发展多样化的养老金融产品,推动商业养老保险、个人养老金、专属商业养老保险等产品供给。 搭养老政策东风 ...

关键字: 温度 BSP 东风 大众

广东佛山2022年10月19日 /美通社/ -- 空间是人居生活的基础单元,承载着生存与活动的最基本功能。而对于理想空间的解构意义却在物理性容器之外,体现出人们对于空间和生活深层关系的思考,同时也塑造着人与空间的新型连接...

关键字: 温度 BSP 智能化 进程

上海2022年10月19日 /美通社/ -- 10月17日晚间,安集科技披露业绩预告。今年前三季度,公司预计实现营业收入7.54亿元至8.33亿元,同比增长60.24%至77.03%;归母净利润预计为1.73亿...

关键字: 电子 安集科技 BSP EPS

北京2022年10月19日 /美通社/ -- 10月18日,北京市经济和信息化局发布2022年度第一批北京市市级企业技术中心创建名单的通知,诺诚健华正式获得"北京市企业技术中心"认定。 北京市企业技...

关键字: BSP ARMA COM 代码

北京2022年10月18日 /美通社/ -- 10月14日,国际数据公司(IDC)发布《2022Q2中国软件定义存储及超融合市场研究报告》,报告显示:2022年上半年浪潮超融合销售额同比增长59.4%,近5倍于...

关键字: IDC BSP 数字化 数据中心

上海2022年10月18日 /美通社/ -- 2022年9月5日,是首都银行集团成立60周年的纪念日。趁着首都银行集团成立60周年与首都银行(中国)在华深耕经营12年的“大日子”,围绕作为外资金融机构对在华战略的构想和业...

关键字: 数字化 BSP 供应链 控制

东京2022年10月18日  /美通社/ -- NIPPON EXPRESS HOLDINGS株式会社(NIPPON EXPRESS HOLDINGS, INC.)旗下集团公司上海通运国际物流有限公司(Nipp...

关键字: 温控 精密仪器 半导体制造 BSP

广州2022年10月18日 /美通社/ -- 10月15日,第 132 届中国进出口商品交易会("广交会")于"云端"开幕。本届广交会上高新技术企业云集,展出的智能产品超过140,...

关键字: 中国智造 BSP 手机 CAN

要问机器人公司哪家强,波士顿动力绝对是其中的佼佼者。近来年该公司在机器人研发方面获得的一些成果令人印象深刻,比如其开发的机器人会后空翻,自主爬楼梯等。这不,波士顿动力又发布了其机器人组团跳男团舞的新视频,表演的机器人包括...

关键字: 机器人 BSP 工业机器人 现代汽车

模拟

31144 篇文章

关注

发布文章

编辑精选

技术子站

关闭