一种大数据量的趋势曲线绘制方法

文档序号:6369155阅读:179来源:国知局
专利名称:一种大数据量的趋势曲线绘制方法
技术领域
本发明属于计算机数据统计分析领域,具体是针对大数据量的趋势曲线的绘制方法。
背景技术
趋势图是按一定的时间间隔统计数据,利用曲线的连续变化来反映事物动态变化的图形。趋势图借助于连续曲线的升降变化,来反映事物的动态变化过程。随着信息技术的高速发展,行业数据量急剧增长。对数据进行统计分析可以帮助制定行业决策。例如,对于以交易型数据为主的行业,例如金融、零售业等,对数据进行分 析,快速提炼出具有商业价值的信息将是此类用户面临的需求。而对于医药、气象等需要存储大量的监测信息的行业来说,同样面临的对大数据进行快速分析的挑战。这些数据具有如下特点数据量大并且具有时间相关性。在绘制趋势曲线时,有两种方式,一种是将所有数据一次性读出,逐点绘制,这种方式在将所有数据通过查询语句一次性查询至内存不仅需要较长的时间,而且对内存的大小有一定的要求,随后的逐点绘制优点是可以很好的绘制出趋势曲线,但是绘制速度慢,占用较多的系统资源。另ー种方式是取样绘制曲线,取样绘制可以提高速度,缺点是取样方法会影响到数据的反映。取样方法分为两种,一种是均匀取样,均匀取样通过自变量或參数每次増加(或減少)ー个固定的量来计算下一点的坐标值,然后,将相邻的点用直线段相连完成对曲线的逼近。均匀取样易于使用,计算量小,但是逼近程度较差;另ー种是非均匀取样,非均匀取样是根据某一点性质区别取样。非均匀取样的逼近程度较好,但是实现复杂,不易于理解且计算量较大。在2011年3月2日公开的公开号为101982820的中国专利申请“ー种大数据量的曲线显示查询方法”,提供的技术方案中是在均匀取点的基础上,同时对每个间隔段中的最大值和最小值进行取样,这样每个间隔段均匀取点,并加取最大值和最小值,点与点的连接采用直线。但是,该方法存在如下问题所取的最大值和最小值不一定就是特征值,且在每个间隔段均匀取点,不能很好地覆盖到所有的特征值,影响趋势曲线绘制的逼近度。特征值指的是一段曲线中可以反映曲线大致轮廓的点,一段曲线中最大值和最小值也是特征值,当曲线中只有ー个起伏时,最大值最小值能很好地反映曲线走势,然很多情况下,一段复杂曲线有多个起伏,这样,特征值就不仅仅局限在最大值和最小值上了。如图I所示,曲线I中,A、B为端点值,C点为最大值点,D为最小值点,但是在曲线I中,最大值点和最小值点与其余点相差不大,不会显著影响到趋势曲线的绘制,在采样时,可以忽略。曲线2中,A’、B’为端点,<为最大值点,D’为最小值点,但是在这一段曲线中还有ー个很重要的点,就是匕,它不是最大值点,也不是最小值点,但是它是ー个特征值点,会影响到曲线的走势,是不可以忽略的。

发明内容
本发明所要解决的技术问题是针对大数据量,采用均匀取样逼近程度较差,采用非均匀取样计算量较大,在实现的曲线显示查询中没有考虑ー个间隔段中多个特征值的情况使得曲线表述的准确性有限;针对这些问题,本发明提出ー种大数据量的趋势曲线绘制方法。本发明ー种大数据量的趋势曲线绘制方法,包括如下步骤步骤I :获取用户指定的曲线绘制时间区间T ,将T等分成N个时间段[TiJiJ,i=0…N-I ;步骤2 :构造查询SQL语句,从数据库中获取第一个时间段的首个采样值Dtl以及每个时间段[Ti, Ti+1]的最后ー个采样值Di+1,i =O-N-I ;步骤3 :构造查询SQL语句,从数据库中获取时间段[TdIV1]中所有采样值的数据,将数据读入内存后,转入步骤4执行;初始i = O ;步骤4 :对读入内存的数据作预处理,具体是针对每ー个采样值,确定该采样值减去其前ー个采样值的差值,以及该采样值减去其后ー个采样值的差值,判断两个差值是否同为正数或者负数,若是,则保留该采样值,否则舍弃该采样值;步骤5 :在当前获取的时间段[Ti, Ti+1]中选取三个质心K1, K2和K3 ;步骤6 :对时间段[Ti, Ti+1]中保留的每个采样值,计算采样值到每个质心的距离,将每个采样值归类到离它最近的质心所代表的聚类中;步骤7 :聚类完成后,在以K2和K3为质心的两个聚类中,标记弟Iv米样值及最后ー个采样值为特征值;步骤8 :对以K2和K3为质心的两个聚类中的数据进一歩筛选,具体是针对每个聚类中的每个非特征值的采样值,判断该采样值も与其前ー个采样值もべ作差的绝对值
Sj-Sj^1 I,或者采样值A与其后ー个样本值sj+1作差的绝对值ISj-SjJ,是否大于或等于阀值A,若是,则取该采样值A为特征值,否则,舍弃该采样值A ;步骤9 :记录当前时间段[TiJw]在步骤7和步骤8中所取得的特征值,并统计特征值的总个数Ci ;步骤10 :根据时间段[TiJiJ中的第一个样本值Di、最后ー个样本值Di+1以及Ci个特征值,共Q+2个样本值,构造Ci+Ι次贝塞尔曲线B (t),曲线绘制后,清除内存中时间段[Ti, Ti+1]的数据,然后i递增加1,判断i是否等于N,若否,转步骤3执行,若是,结束本方法。所述步骤5中的三个质心为K1=(DJDw)/^; K2= ((Di+Di+1) + ((Dw-Di)2+ (Tw-Ti)2)1/2) /2 ;K3= ((D^Dw) - ((Dw-Di)2+ (Tw-Ti)2)1/2) /2 ;Di为时间段[Ti, Ti+1]的第一个米样值,Di+1为时间段[Ti, Ti+1]的最后ー个米样值。所述步骤10中的所述的贝塞尔曲线B (t),具体为B(t)=》’(ヤA Pjtjfl - t)ci+1—i其中,Pj是Ci+2个样本值中的第j个样本值;參数t e

本发明方法的优点与积极效果在于(I)本发明方法在均匀取点的基础上,特征点的取样与其它部分的取样区别对待,结合了均匀取点和非均匀取点的优点,具有均匀取点易于使用,计算量小的优点,又有非均匀取点逼近程度较好的优点;(2)用最少的取样点,最大程度地反映数据所要表达的信息;(3)借鉴数据挖掘中数据聚类的方法,更准确地判断出特征点;
(4)针对每个时间段,根据采样点,构造贝塞尔曲线,不仅保证了曲线的平滑效果,而且由于时间段内采样点数有限,构造贝塞尔曲线计算量相对较小,可以大大提高曲线绘制的效率;( 5 )对数据是分段处理的,不仅不用一次查询所有的数据,而且不用一次将所有数据都读入内存,可以大大的节省系统开销。


图I是曲线特征值点的示例图;图2是本发明的趋势曲线绘制方法的整体步骤流程图;图3是数据聚类的示意图;图4是本发明实施例采用本发明方法所得到的曲线示意图。
具体实施例方式下面将结合附图和实施例对本发明作进ー步的详细说明。如图2所示,本发明提出的ー种大数据量的趋势曲线绘制方法,具体包括如下步骤。步骤一获取用户指定的曲线绘制时间区间T,将T等分成N段,每个时间段为[Ti, Ti+1] (i=0…N-1),N默认为50,可被重新设置。时间段[1\,1\+1]中对应的采样值的个数为Qi,每个采样值可看作曲线上的ー个点。步骤ニ 构造查询SQL语句,从数据库中获取N+1个数据;所述的N+1个数据包括第一个时间段[TwT1]的第一个采样值Dtl以及每个时间段[1\,1\+1] (i=0…N-1)的最后ー个采样值Di+1,共N+1个值。端点值的保留保证了曲线的流畅性。步骤三构造查询SQL语句,从数据库中获取时间段[TiJiJ中所有采样值,读入内存,然后转入步骤四执行;初始执行本步骤时i = 0,也就是获取在第一个时间段[Tc^T1]中的数据。本步骤中将每个时间段[Ti,Ti+1] (i = 0-N-1)的曲线中包含的所有采样值读入内存,是为了进行数据聚类,筛选出峰值点,也就是反映曲线轮廓的特征值点。步骤四对读入内存的数据作预处理以筛选特征值。每ー个采样值减去其前ー个采样值与其减去后ー个采样值同正负时,保留该采样值,否则舍弃。例如,计算采样值Sk与前后采样值的差,采样值Sk与前ー个采样值Slri的差(Sk-Slri),采样值Sk与后ー个采样值sk+1的差(sk-sk+1),当两个差值同为正数或者负数时,保留采样值Sk。第一个时间段[しT1]的首个采样值保留,从第二个时间段开始的首个采样值在本发明实施例中默认删除。步骤五在当前获取的时间段[Ti, Ti+1]中选取三个质心,计算该时间段的三个质心值,第一个质心为两个端点值(DpDw)的平均值,K1 = (Di+Di+1)/2,第二个质心为ち=((Di+Di+1) + ((Dw-Di)2+ (Tw-Ti)2)1/2) /2,第三个质心为 K3 = ((Di+Di+1) - ((Dw-Di)2+ (Tw-Ti)2)1/2)/2,转入步骤五办为时间段[Ti, Ti+1]的第一个采样值,Di+1为时间段[Ti, Ti+1]的最后ー个米样值。步骤六对时间段[H+J中保留的采样值,计算其到每个质心的距离,将每个采样值归类到离它最近的那个质心所代表的聚类中。具体计算采样值到每个质心的距离,就是将采样值与质心的值相减,然后取绝对值得到。步骤七聚类后,针对以K2、K3为质心的两个聚类,将每个聚类中的第一个值及最后ー个值取作特征值。以K1为质心的聚类中的采样值被舍弃。步骤八对以Κ2、Κ3为质心的两个聚类中的数据进行进ー步筛选,进ー步获得特征值。
针对每个聚类中的每个非特征值的采样值A,若该采样值A与其前ー个采样值值Sj^1作差的绝对值I A-S^11或值A与其后ー个采样值Sw作差的绝对值I SfSw I,大于或等于指定阀值Α,则将该值A取作特征值。阀值A由用户设定或者根据试验设定。步骤五 八是采用数据聚类方法将得到的特征值进行分类,以对采样值进ー步的筛选,如图3所示,数据聚类后,曲线I中的数据点均会汇聚到以K1为质心的聚类中,这样就排除了对最大值和最小值进行采样。曲线2中,特征点C;和C2会汇聚到以K2为质心的聚类中,而特征点D’则会汇聚到以K3为质心的聚类中,避免了因C1不是最大值而导致被忽略的情况出现。步骤九针对当前时间段[Ti, Ti+1],记录下步骤七和步骤八中所保留的特征值,并计算特征值的总个数Ci;步骤十根据时间段[U+J中的首末两个端点值(Di;Di+1)以及Ci个特征值,共q+2个样本值,构造Ci+Ι次贝塞尔曲线B (t)
权利要求
1.ー种大数据量的趋势曲线绘制方法,其特征在于,具体包括如下步骤 步骤I :获取用户指定的曲线绘制时间区间T,将T等分成N个时间段[TiJw], i=(l···N-I ; 步骤2 :构造查询SQL语句,从数据库中获取第一个时间段的首个采样值Dtl以及每个时间段[Ti, Ti+1]的最后ー个采样值Di+1,I=O-N-I ; 步骤3 :构造查询SQL语句,从数据库中获取时间段[TiJiJ中所有采样值的数据,将数据读入内存后,转入步骤4执行;初始i = O ; 步骤4 :对读入内存的数据作预处理,具体是针对每ー个采样值,确定该采样值减去其前ー个采样值的差值,以及该采样值减去其后ー个采样值的差值,判断两个差值是否同为正数或者负数,若是,则保留该采样值,否则舍弃该采样值; 步骤5 :在当前获取的时间段[Ti, Ti+1]中选取三个质心K” K2和K3
2.根据权利要求I所述的ー种大数据量的趋势曲线绘制方法,其特征在于,所述的步骤I中的N为50。
3.根据权利要求I所述的ー种大数据量的趋势曲线绘制方法,其特征在于,步骤6中所述的计算采样值到每个质心的距离,是将采样值与质心的值相减,然后取绝对值得到。
4.根据权利要求I所述的ー种大数据量的趋势曲线绘制方法,其特征在于,步骤10中所述的贝塞尔曲线B (t),具体为β ⑴=yCl+1(c,+1、pjtj(i — t)c*+1-i 其中,Pji Ci+2个样本值中的第j个样本值;參数t e [O, I]。
全文摘要
本发明提出了一种大数据量的趋势曲线绘制方法,用于计算机数据统计分析。该方法首先确定取样间隔,将时间段等分,然后确定特征值,首先对时间段的采样值进行预处理,忽略一些值,然后在时间段中选取三个质心K1、K2和K3,对保留下的值进行聚类,将每个值归类到离它最近的那个质点所代表的聚类中,聚类完成后,将K2和K3的聚类中的第一个值及最后一个值取作特征值,并对K2和K3的聚类中剩余值进行筛选,得到特征值;最后,确定特征值个数,利用贝塞尔曲线逼近算法,绘制曲线。本发明采样最少采样值绘制了最为逼近的曲线,不用一次查询所有的数据,不用一次将所有数据读入内存,大大节省系统开销,实现了大数据量的快速绘制。
文档编号G06F19/00GK102693361SQ201210138939
公开日2012年9月26日 申请日期2012年5月7日 优先权日2012年5月7日
发明者吕江花, 李睿, 马世龙 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1