0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于盒形图和回归分析实现数据过滤算法的研究分析

电子设计 来源:微型机与应用 作者:杜庆峰,李岩 2020-10-11 11:45 次阅读

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

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 算法实现

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

voidBubbleSort(doublem,doubleq,intn)//先对输入

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

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

{for(inti=0;i<n;i++)

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

{

输入数据的排序

修改第二组数据

}

}

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

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

{

doublea,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;//并进行必要的舍位处理

intj=n;

for(inti=0;i<j;i++)//判断是否为离群值,

{

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

如有,将其从数组中剔去

}

}

接下来要对筛选出来的数据进行回归分析,从而得到一个数据模型。

voidregress(double*m,double*q,intn)//对数组

//m和数据q的数据用线性回归法进行拟合

//并用一条直线表示出它们之间的对应关系

{doubleaverage_m,average_q,total_m,total_q,L_mq,L_mm;

doublea,b;//拟合直线y=a+bx的2个待定系数

for(inti=0;i<n;i++)。

{

//计算两组数据的和total_m和total_q

}

average_m=total_m/n;//求的第一组数据的平均值

average_q=total_q/n;//求的第二组数据的平均值

for(intj=0;j<n;j++)

{

利用公式(1)计算两组数据m,q它们所有数据偏离程度的对应相乘之和L_mq

}

for(intk=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)。

综上所述,对于软件度量过程中出现的数据冗余和失真的情况,可以通过数据过滤和回归分析进行处理,除去那些离群的数据,并得出相应的拟合直线,这样就可以分析出数据的规律,保证软件的质量,提高效率。

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 数据
    +关注

    关注

    8

    文章

    6986

    浏览量

    88931
  • 软件
    +关注

    关注

    69

    文章

    4903

    浏览量

    87361
  • 回归分析
    +关注

    关注

    0

    文章

    7

    浏览量

    5898
收藏 人收藏

    评论

    相关推荐

    《Visual C# 2008程序设计经典案例设计与实现》---饼图表分析

    《Visual C# 2008程序设计经典案例设计与实现》---饼图表分析[hide][/hide]
    发表于 05-02 13:33

    简单线性回归代码实现细节分析

    机器学习100天-简单线性回归 [代码实现细节分析]
    发表于 05-22 10:16

    python数据分析基础之使用statasmodels进行线性回归

    python 数据分析基础 day16-使用statasmodels进行线性回归
    发表于 06-19 11:22

    回归算法有哪些,常用回归算法(3种)详解

    回归是数学建模、分类和预测中最古老但功能非常强大的工具之一。回归在工程、物理学、生物学、金融、社会科学等各个领域都有应用,是数据科学家常用的基本工具。回归通常是机器学习中使用的第一个
    发表于 07-28 14:36

    请问如何实现协同过滤算法

    协同过滤算法的原理及实现基于物品的协同过滤算法详解协同过滤
    发表于 11-05 06:51

    步进电机驱动算法——S加减速算法原理 精选资料下载

    目录步进电机S加减速简介七段S加减速算法原理分析五段S加减速算法
    发表于 07-08 09:18

    数学建模与数学实验-回归分析

    数学建模与数学实验-回归分析1、直观了解回归分析基本内容。2、掌握用数学软件求解回归分析问题。1
    发表于 12-03 10:05 0次下载

    过程间指针分析算法的改进

    指针分析对于使用C语言编制程序的数据分析有着重要的意义。该文介绍指针问题的复杂度、指针分析算法的分类以及指针
    发表于 04-02 09:05 9次下载

    信息过滤系统中字符串匹配算法研究

    模式匹配是基于攻击特征的信息过滤系统中的网络数据分析技术,匹配算法的性能直接影响到整个系统的效率,是当前信息过滤监测系统的一个主要瓶颈,因
    发表于 08-15 11:36 19次下载

    AES算法的S分析及改进探讨

    AES算法的S分析
    发表于 01-09 15:21 12次下载

    RFID中间件数据过滤方法的研究分析

    RFID中间件数据过滤方法的研究分析    RFID 是“radio fequency identification,无线射频识别”的缩写,是一种非接触自动识
    发表于 01-12 10:32 744次阅读
    RFID中间件<b class='flag-5'>数据</b>的<b class='flag-5'>过滤</b>方法的<b class='flag-5'>研究</b>和<b class='flag-5'>分析</b>

    基于高强度密码S安全性分析

    。密码S是对称密码算法的核心部件,其安全强度与算法的安全性息息相关。比如经典的差分密码分析、线性密码分析、相关密码
    发表于 11-28 11:12 0次下载
    基于高强度密码S<b class='flag-5'>盒</b>安全性<b class='flag-5'>分析</b>

    基于Modbus功能码细粒度过滤算法研究

    针对防火墙粗粒度过滤Modbus/TCP导致工控系统存在安全威胁的问题,研究基于Modbus功能码的细粒度过滤算法。基于Modbus TCP功能码的特征,对其功能码字段进行解析,
    发表于 01-16 15:32 0次下载
    基于Modbus功能码细粒度<b class='flag-5'>过滤</b><b class='flag-5'>算法</b>的<b class='flag-5'>研究</b>

    如何使用IFS分算法进行树木形态的分析实现

    研究树形态仿真问题,为解决大自然中树木不同形态的逼真模拟,针对开关不规则的传统方法难以描述,用迭代函数系统构造树木自然景象的基本原理和构图过程。根据传统随机迭代算法生成灰度分树木色彩单一的不足
    发表于 11-29 10:46 8次下载
    如何使用IFS分<b class='flag-5'>形</b><b class='flag-5'>算法</b>进行树木形态的<b class='flag-5'>分析</b>和<b class='flag-5'>实现</b>

    matlab经典算法数字实验教程之回归分析

    本文档的主要内容详细介绍的是matlab经典算法数字实验教程之回归分析主要内容包括了:1.一元线性与非线性回归分析,2.简介一元非线性
    发表于 01-03 11:46 16次下载
    matlab经典<b class='flag-5'>算法</b>数字实验教程之<b class='flag-5'>回归</b><b class='flag-5'>分析</b>