用于快速获取一组大数据集中趋势的方法、系统及终端技术方案

技术编号:38997094 阅读:10 留言:0更新日期:2023-10-07 10:27
本发明专利技术属于数据处理技术领域,公开了一种用于快速获取一组大数据集中趋势的方法、系统及终端,计算待处理数据集合Dataset的个数n并求和;平均分组同时计算Dataset中每个数a

【技术实现步骤摘要】
用于快速获取一组大数据集中趋势的方法、系统及终端


[0001]本专利技术属于数据处理
,尤其涉及一种用于快速获取一组大数据集中趋势的方法、系统及终端。

技术介绍

[0002]目前,获取一组数据集中趋势的常用方法是利用中位数来描述。中位数是把一组数据按照大小排序后,位于中间位置的数值。在金融、军事等多个领域,中位数被广泛应用于描述数据的集中趋势。传统的计算中位数方法首先需要对数据进行排序,对于包含n个元素的数据集,排序的时间复杂度为O(nlogn)。然后,在排序的基础上找到中位数。然而,这种方法存在明显的缺点和问题。
[0003]首先,由于排序算法的时间复杂度为O(nlogn),意味着随着数据量的增大,所需的计算时间将显著增加。在处理大数据时,将会导致计算成本的不可控。
[0004]其次,这种方法需要对所有的数据进行排序,而我们只需要获取数据的中位数,因此会导致许多不必要的计算开销。
[0005]传统计算中位数方法主要存在以下技术缺陷和问题:
[0006]1)时间复杂度较高:
[0007]传统计算中位数方法需要对数据集进行完全排序,对于包含n个元素的数据集,排序的时间复杂度为O(nlogn)。随着数据量的增大,所需的计算时间将显著增加。在处理大数据时,这会导致计算成本的不可控,降低处理效率。
[0008]2)计算资源浪费:
[0009]在传统方法中,需要对所有数据进行排序,而实际上我们只关心数据的中位数。这导致了许多不必要的计算开销,浪费了大量计算资源。r/>[0010]3)空间复杂度较高:
[0011]对于一些基于比较的排序算法(如归并排序),在排序过程中可能需要额外的空间来存储数据。这会导致空间复杂度增加,对内存资源造成压力。
[0012]4)不适应动态数据:
[0013]传统的计算中位数方法需要对整个数据集进行排序,当数据集发生变化时,需要重新进行排序。这种方法不适应动态数据,无法实时更新中位数。

技术实现思路

[0014]针对现有技术存在的问题,本专利技术提供了一种用于快速获取一组大数据集中趋势的方法、系统及终端。
[0015]本专利技术是一种用于快速获取一组大数据集中趋势的方法,其详细步骤包括:假设这组待处理大数据集合为Dataset,首先计算出Dataset的基数(数据个数)n,紧接着在m(m≤n,后同)台设备上将n个数据进行平均分组,并同时计算出m组数据中每个数a
i
与其它n

1个数的差的绝对值之和DValue
i
,以得到所有n个数据相对其它数据的差的绝对值之和的集
合DValue;判断Dataset数据集的数据个数n的奇偶性,若n为奇数,则计算DValue的最小值的索引Median
index0
,并获得Dataset数据集合中Median
index0
索引对应的数据值Median0,即为Dataset数据集合的中位数;若n为偶数,则把DValue数据集合中索引为Median
index0
的值设置为正无穷大,得到更新后的数据集合DValue,计算新DValue的最小值的索引Media
in
n
de1x
,并获得Dataset数据集合中Median
index1
索引对应的数据Median1;最后,根据Median0和Median1的均值计算获得Dataset数据集合的中位数并输出。需要注意的是Dataset数据集合中的所有数据均为非负数;如果存在负数,则把Dataset数据集合中的每个数据加上一个相同的数以确保上述算法的输入为一个非负数据集合。
[0016]进一步,用于快速获取一组大数据集中趋势的方法包括以下步骤:
[0017]步骤一,计算Dataset数据集合基数n,平均分m组后在m台设备上或m个线程同时计算获得Datase数据集合每个数a
i
与其它数的差的绝对值的和DValue
i
,最终得到所有n个数据相对其它数据的差的绝对值之和的集合DValue;
[0018]步骤二,首先计算DValue的最小值的索引Media
i
n
nde0x
,然后计算获得Dataset中索引为Median
index0
的值Median0;
[0019]步骤三,如果n为奇数,数据集Dataset的中位数Median
Dataset
=Median0,跳转执行步骤四;如果n为偶数,把DValue数据集合中索引为Median
index0
的值置为正无穷大,即DValue(Median
index0
)=+∞,得到新的数据集合DValue,再计算新数据集合DValue的最小值的索引Median
index1
,然后计算获得Dataset中索引为Me
i
d
n1
的值Me1d,数据集Dat的中位数Median
Dataset
=(Median0+Median1)
÷
2;
[0020]步骤四,输出Median
Dataset
,Median
Dataset
为Dataset数据集合的中位数,即集中趋势,结束。
[0021]进一步,步骤一中,将Dataset数据集合记为{a
i
},i=0,1,2,...,n

1;Dataset数据集合中每个数a
i
与其它数的差的绝对值的和DValue
i
的计算公式为:
[0022][0023]其中,i=0,1,2,...,n

1。为了快速计算DValue
i
,把上述公式中的a
i
平均分配在m(m≤n)台设备上同时进行计算,即在每台设备上分别计算n
÷
m个a
i
与Dataset中其它数的差的绝对值之和。比如,m=2,则在2台设备上同时进行计算a
i
;第1台设备计算DValue
i
,其中,第2台设备计算DValue
i
,其中,
[0024]进一步,步骤二中的DValue的最小值的索引Median
index0
的计算公式为:
[0025]Median
index0
=MinIndex(DValue);
[0026]其中i=0,1,2,...,n

1。Dataset数据集中索引为Median
index0
的值Median0的计算公式为:
[0027]Median0=Dataset(Median
index0
);
[0028]其中i=本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种用于快速获取一组大数据集中趋势的方法,其特征在于,包括:计算待处理数据集合Dataset的个数n并平均分组同时计算Dataset数据集合中每个数a
i
与其它数的差的绝对值之和的集合DValue;通过比较计算获得DValue最小值索引;再根据计算所得的最小值索引在Dataset中获得对应的数据Median0;判断Dataset数据集合个数n的奇偶性,若n为奇数,输出Median0,即为Dataset数据集合的中位数;若n为偶数,则当前DValue中最小值索引对应的值置为正无穷大,从而更新集合DValue,再重新计算获得DValue最小值索引,并根据计算所得的新的最小值索引在Dataset中获得对应的数据Median1;最后,根据Median0和Median1计算Dataset的中位数并输出,所有数据均为非负数。2.如权利要求1所述用于快速获取一组大数据集中趋势的方法,其特征在于,用于快速获取一组大数据集中趋势的方法包括以下步骤:步骤一,计算Dataset数据集合个数n,平均分成m组同时计算Dataset数据集合每个数a
i
与其它数的差的绝对值的和DValue
i
,以获得所有n个数据相对其它数据的差的绝对值之和的集合DValue;步骤二,计算DValue的最小值的索引Median
index0
;步骤三,计算获得Dataset中对应索引Median
index0
的值Median0;步骤四,如果n为奇数,Median
Dataset
=Median0,并跳转执行步骤八;如果n为偶数,则把DValue数据集合中索引为Median
index0
的值置为正无穷大,得到新的数据集合DValue;步骤五,计算新DValue的最小值的索引Median
index1
;步骤六,计算获得Dataset中对应索引Median
index1
的值Median1;步骤七,计算Median
Dataset
=(Median0+Median1)
÷
2;步骤八,输出Median
Dataset
,Median
Dataset
为Dataset数据集合的中位数,即这组数据的集中趋势,结束。3.如权利要求2所述用于快速获取一组大数据集中趋势的方法,其特征在于,步骤一中,将Dataset数据集合记为{a
i
},i=0,1,2,

,n

1;Dataset数据集合中每个数a
i
与其它数的差的绝对值的和DValue
i
的计算公式为:其中,i=0,1,2,

,n

1,把上述公式中的a
i
平均分配在m(m≤n)台设备上同时进行计算,以快速计算获得DValue
i
,即在每台设备上分别计算n
÷
m个a
i
与Dataset中其它数的差的绝对值之和;m=2,则在2台设备上同时进行计算a
i
;第1台设备计算DValue
i
,其中,第2台设备计算DValue
i
,其中,4.如权利要求2所述用于快速获取一组大数据集中趋势的方法,其特征在于,步骤二中的DValue的最小...

【专利技术属性】
技术研发人员:王飞鹏杨美妮贲可荣
申请(专利权)人:中国人民解放军海军工程大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1