CN110851505A - 一种数据处理框架、方法及系统 - Google Patents
一种数据处理框架、方法及系统 Download PDFInfo
- Publication number
- CN110851505A CN110851505A CN201911145908.0A CN201911145908A CN110851505A CN 110851505 A CN110851505 A CN 110851505A CN 201911145908 A CN201911145908 A CN 201911145908A CN 110851505 A CN110851505 A CN 110851505A
- Authority
- CN
- China
- Prior art keywords
- processing
- data
- functions
- data processing
- matrix
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000012545 processing Methods 0.000 title claims abstract description 154
- 238000000034 method Methods 0.000 title abstract description 18
- 230000006870 function Effects 0.000 claims abstract description 119
- 239000011159 matrix material Substances 0.000 claims abstract description 55
- 230000009466 transformation Effects 0.000 claims abstract description 16
- 230000002159 abnormal effect Effects 0.000 claims abstract description 11
- 238000001514 detection method Methods 0.000 claims abstract description 7
- 238000003672 processing method Methods 0.000 claims description 4
- 238000013450 outlier detection Methods 0.000 claims 1
- 208000025174 PANDAS Diseases 0.000 description 10
- 208000021155 Paediatric autoimmune neuropsychiatric disorders associated with streptococcal infection Diseases 0.000 description 10
- 240000004718 Panda Species 0.000 description 10
- 235000016496 Panda oleosa Nutrition 0.000 description 10
- 230000008569 process Effects 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 4
- 230000003203 everyday effect Effects 0.000 description 3
- 238000012935 Averaging Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000002354 daily effect Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000007620 mathematical function Methods 0.000 description 1
- 238000001556 precipitation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2474—Sequence data queries, e.g. querying versioned data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2272—Management thereof
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Probability & Statistics with Applications (AREA)
- Fuzzy Systems (AREA)
- Quality & Reliability (AREA)
- Complex Calculations (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明公开了一种数据处理框架、方法及系统,所述框架包括上层函数库;所述上层函数库包括:形状变换及索引函数、统计性及简单科学函数、沿时间序列处理函数、技术指标函数、按组处理函数;所述统计性及简单科学函数用于对二维数据框的数据矩阵进行迭代处理和异常值检测及处理;所述沿时间序列处理函数用于对数据矩阵沿时间序列进行处理;所述技术指标函数用于对数据矩阵进行以指数式递减加权的移动平均处理;所述按组处理类函数用于将数据矩阵分组,并将分组作为一个与数据矩阵相同形状的二维对象进行处理。本发明的数据处理框架在二维数据上融合数据处理和技术指标两个框架,以二维数据为单位进行数据处理,大幅提高金融数据处理效率。
Description
技术领域
本发明涉及数据处理领域,尤其涉及的是一种数据处理框架、方法及系统。
背景技术
海量金融数据涉及拼接裁剪、按时间或按个体索引、序列化与反序列化、描述性统计、沿时间轴函数、按组处理函数等处理操作。目前已经产生了一些较为成熟的数据分析软件包,如Matlab,R,python等程序语言都能完成许多数据操作,但针对金融数据时间序列依赖、有缺失异常值(nan,inf)等特性(nan与inf在数学计算中会传染,导致最终均值方差等统计性计算结果也为nan或inf),这些已有的数据分析包往往表现不佳。
现有技术中,在目前金融工程领域,广为流行的时间序列金融数据处理包是python程序语言的pandas包,这一软件包最初由AQR资本管理公司(Applied QuantitativeResearch Capital Management)于2008年4月开发,并于2009年底开源,这一软件包底层依赖于python的NumPy包,受限制于Python的全局解释锁与脚本语言性能低的特性,在许多场景下运行效率较低,也无法使用近些年流行的GPU计算进行加速。在诸如MACD等技术指标的计算时,金融工程领域的研究者通常使用Ta-Lib(Technical Analysis Library)这一软件包对python的pandas数据框中的一列(series)进行处理,这一软件包底层基于C语言实现,能够在CPU上提供较好的性能,但其只能处理一维时间序列数据,不能同批处理含有许多个体的二维时间序列数据,且对异常值的处理并不鲁棒,举例如简单的移动平均函数MA,在ta-lib的实现中,只要原始数据某一时间点含有NAN,之后的计算得到的所有MA函数值都将是NAN。
因此,现有技术还有待于改进和发展。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种数据处理框架、方法及系统,旨在解决现有技术中时间序列数据处理包不能同批处理含有许多个体的二维时间序列数据的问题。
本发明解决技术问题所采用的技术方案如下:
一种数据处理框架,用于处理时间序列的二维数据框,其中,包括上层函数库;所述上层函数库包括:形状变换及索引函数、统计性及简单科学函数、沿时间序列处理函数、技术指标函数、按组处理函数;
所述形状变换及索引函数用于基于二维数据框的行索引、列索引及对应的哈希表计算所需要的偏移值,而完成形状变换及索引;
所述统计性及简单科学函数用于对二维数据框的数据矩阵进行迭代处理和异常值检测及处理;
所述沿时间序列处理函数用于对数据矩阵沿时间序列进行处理;
所述技术指标函数用于对数据矩阵进行以指数式递减加权的移动平均处理;
所述按组处理类函数用于将数据矩阵分组,并将分组作为一个与数据矩阵相同形状的二维对象进行处理。
所述的数据处理框架,其中,所述数据处理框架还包括:与所述上层函数库连接的底层函数库、与所述底层函数库连接的底层矩阵库;
所述底层矩阵库用于根据底层矩阵库的类别和处理器的类别,写不同的头文件,并编译成对应动态链接库;
所述底层函数库用于使各动态链接库中相应函数的接口保持一致。
所述的数据处理框架,其中,所述底层矩阵库包括eigen、cuda、cublas以及xtensor;所述处理器包括CPU和GPU。
所述的数据处理框架,其中,所述处理器采用单线程。
所述的数据处理框架,其中,所述沿时间序列处理函数采用线段树方法进行优化,并运用指针和内联汇编语言进行优化。
所述的数据处理框架,其中,所述按组处理类函数采用哈希表存储分类进行索引,并在分组后使用矩阵点乘和矩阵加法进行优化。
所述的数据处理框架,其中,所述异常值检测及处理中通过函数接口的keep_nan=False/True参数以控制是否处理异常值。
所述的数据处理框架,其中,所述数据处理框架还包括:与所述上层函数库连接的C++接口和Python接口。
一种数据处理方法,其中,包括步骤:
对时间序列数据进行二维化处理得到二维数据框;
采用如上述任意一项所述数据处理框架对二维数据框进行数据处理并输出处理结果。
一种数据处理系统,其中,包括:处理器,以及与所述处理器连接的存储器,
所述存储器存储有数据处理程序,所述数据处理程序被所述处理器执行时实现以下步骤:
对时间序列数据进行二维化处理得到二维数据框;
采用如上述任意一项所述数据处理框架对二维数据框进行数据处理并输出处理结果。
有益效果:本发明的数据处理框架在二维数据上融合数据处理和技术指标两个框架,以二维数据为单位进行数据处理,大幅提高金融数据处理效率。
附图说明
图1是本发明中数据处理框架的示意图。
图2是本发明中数据处理框架的使用演示图。
图3是现有技术中Python pandas的使用演示图。
图4是本发明中数据处理系统的功能原理图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
请同时参阅图1-图3,本发明提供了一种数据处理框架的一些实施例。
本发明的数据处理框架可处理任何时间序列数据,例如股票日线数据,横轴是最高价、最低价、开盘价、成交量、市盈率等,纵轴是每一天的日期;又如气象数据,横轴是降水量、风速、等,纵轴是每个采样时间。即使只有一天,数据也可以表示成一个(1*特征数)的矩阵。以下以股票日线数据为例进行说明。
如图1所示,本发明的一种数据处理框架,用于处理时间序列的二维数据框,包括上层函数库;所述上层函数库包括:形状变换及索引函数、统计性及简单科学函数、沿时间序列处理函数、技术指标函数、按组处理函数;
所述形状变换及索引函数用于基于二维数据框的行索引、列索引及对应的哈希表计算所需要的偏移值,而完成形状变换及索引;
所述统计性及简单科学函数用于对二维数据框的数据矩阵进行迭代处理和异常值检测及处理;
所述沿时间序列处理函数用于对数据矩阵沿时间序列进行处理;
所述技术指标函数用于对数据矩阵进行以指数式递减加权的移动平均处理;
所述按组处理函数用于将数据矩阵分组,并将分组作为一个与数据矩阵相同形状的二维对象进行处理。
通过设置二维数据框(dataframe)类,一个C++类,类的主要成员是行索引、列索引、数据矩阵、形状;因此实现了一系列类的成员函数:形状变换及索引函数、统计性及简单科学函数、沿时间序列处理函数、技术指标函数、按组处理函数。
形状变换及索引函数基于行索引和列索引及其对应的哈希表,我们能够高效的从内存空间中计算所需要的偏移值,从而能快速完成形状变换及索引。
统计性及简单科学函数采用c标准库的数学函数,基于指针对类的数据矩阵成员快速迭代处理,对于可以连续处理的数据块,我们采用AVX512指令集进行加速,avx指令基于SIMD(Single Instruction Multiple Data)技术,支持simd技术的cpu具有比一般浮点寄存器更宽的向量寄存器(从128位到512位的寄存器),在单个核心的一个cpu时钟周期内能够一次处理多个操作数,例如avx512指令一次可以进行16个32位浮点数的加减乘等操作,提高了计算的效率。针对可能被异常值影响的统计行函数,我们基于std::isnan,std::isinf函数的异常值检测及处理选项。
沿时间序列处理函数是金融研究中的重中之重。通常,对于处理长度为T,总时间长度为n,总处理个数为m的情形,其时间复杂度为O(m*n*T),我们采用线段树等方法对算法进行优化,并在实现中大量运用指针及内联汇编语言优化性能,可以在O(m*log(n))的时间复杂度下完成绝大多数的运算。
按组处理类函数。在金融数据中,经常会出现分组处理的问题,如按金融行业板块分别取平均以填补缺失值等。我们将分组也作为一个与被分组操作的对象(数据矩阵)相同形状的二维对象,采用哈希表存储分类进行索引(存储每个数据点归属的分组,对每个数据点位置和索引之间用哈希表存储映射关系),并在分组后大量使用矩阵点乘和矩阵加法进行性能优化(我们将分组后的数据仍视为一个二维数据框(只是有很多缺失值,其他分类的都变成了缺失值),然后由于我们的其他函数能高效处理缺失值,所以调用内置函数就可以)。
值得说明的是,本发明的数据处理框架在二维数据上融合数据处理和技术指标两个框架,以二维数据为单位进行数据处理,大幅提高金融数据处理效率,如图2-图3所示,本框架在IO性能上比Pandas快2~4倍,在不同沿时间序列处理函数上比pandas快2~40倍,在海量小数据框拼接时比Pandas快约二百倍。
以一个简单的二维数据框为例,横轴是不同的证券(如000001是平安银行的交易代码),纵轴是时间(日期),表格中的每个值都为当天该证券的换手率:
000001 | 000002 | 000004 | …… | 603997 | 603998 | 603999 | |
20060104 | 0.011 | 0.0146 | 0.0096 | …… | Nan | Nan | Nan |
20060105 | 0.0109 | 0.0153 | 0.0282 | …… | Nan | Nan | Nan |
20060106 | 0.0169 | 0.0164 | 0.0653 | …… | Nan | Nan | Nan |
…… | …… | …… | …… | …… | …… | …… | …… |
20190627 | 0.0054 | 0.0028 | 0.0105 | …… | 0.0032 | 0.0387 | 0.0091 |
20190628 | 0.0029 | 0.002 | 0.0308 | …… | 0.0035 | 0.0309 | 0.0076 |
我们举几个函数作为例子:
平均(沿横轴每天计算平均,得到每行数据的均值):df.mean(axis=1)
平均(沿纵轴每只证券计算平均,得到每列数据的均值):df.mean(axis=0)
000001 | 000002 | 000004 | …… | 603997 | 603998 | 603999 | |
Mean | 0.01103 | 0.012 | 0.02529 | …… | 0.05262 | 0.03619 | 0.05048 |
沿时间序列处理函数,与过去6日最大值的差值:
df.MAX_DIFF_TWISE(t_window=6)。
000001 | 000002 | 000004 | …… | 603997 | 603998 | 603999 | |
20060104 | 0 | 0 | 0 | …… | Nan | Nan | Nan |
20060105 | -0.0001 | 0 | 0 | …… | Nan | Nan | Nan |
20060106 | 0 | 0 | 0 | …… | Nan | Nan | Nan |
…… | …… | …… | …… | …… | …… | …… | …… |
20190627 | -0.0035 | -0.0031 | -0.0359 | …… | -0.0026 | -0.0572 | -0.0017 |
20190628 | -0.0057 | -0.0031 | -0.0156 | …… | -0.0018 | -0.065 | -0.0022 |
技术指标函数,EMA(EMA(Exponential Moving Average)是指数移动平均值。也叫EXPMA指标,它也是一种趋向类指标,指数移动平均值是以指数式递减加权的移动平均),举例:df.EMA(t_window=10)。
000001 | 000002 | 000004 | …… | 603997 | 603998 | 603999 | |
20060104 | 0.011 | 0.0146 | 0.0096 | …… | Nan | Nan | Nan |
20060105 | 0.01098 | 0.01473 | 0.01298 | …… | Nan | Nan | Nan |
20060106 | 0.01206 | 0.01503 | 0.02249 | …… | Nan | Nan | Nan |
…… | …… | …… | …… | …… | …… | …… | …… |
20190627 | 0.005304 | 0.003179 | 0.01479 | …… | 0.003949 | 0.04673 | 0.007767 |
20190628 | 0.00408 | 0.002965 | 0.0177 | …… | 0.003868 | 0.04386 | 0.007736 |
按组处理函数,首先我们准备一个行业数据框df2,不同的数字编号代表不同的行业分类(随着股票主营业务变化其分类可能会随时间变化)。
再按照行业对每天每个数据点计算每天每个股票在行业内的z-score,得到结果:df.ZSCORE_GWISE(df2,keep_nan=True)。
000001 | 000002 | 000004 | …… | 603997 | 603998 | 603999 | |
20060104 | -1.115 | 0.1636 | -0.4941 | …… | Nan | Nan | Nan |
20060105 | -1.306 | -0.2049 | 0.465 | …… | Nan | Nan | Nan |
20060106 | -1.234 | -0.2855 | 1.404 | …… | Nan | Nan | Nan |
…… | …… | …… | …… | …… | …… | …… | …… |
20190627 | -0.3175 | -0.4764 | -0.2784 | …… | -0.5883 | 1.017 | -0.3522 |
20190628 | -0.4457 | -0.5066 | 0.5243 | …… | -0.5012 | 0.5281 | -0.4303 |
在本发明的一个较佳实施例中,如图1所示,所述数据处理框架还包括:与所述上层函数库连接的底层函数库、与所述底层函数库连接的底层矩阵库;
所述底层矩阵库用于根据底层矩阵库的类别和处理器的类别,写不同的头文件,并编译成对应动态链接库;
所述底层函数库用于使各动态链接库中相应函数的接口保持一致。
所述底层矩阵库包括eigen、cuda、cublas以及xtensor;所述处理器包括CPU和GPU。在金融数据处理领域首次引入GPU异构计算。
所述处理器采用单线程。严格采用单线程设计,在算法中没有线程锁影响性能。使用者能够通过多进程同时运行不同的计算任务以获取最佳的处理器利用率。
具体地,在上述函数的实现中,涉及数据矩阵运算的部分均可以调用cuda进行GPU加速。
在我们的实现中,性能提升的主要原因是,大量采用SIMD指令并行处理多个浮点操作数,大量使用内联函数,避免动态内存分配,使用指针代替循环,以及算法复杂度的优化等。
当使用中央处理器(CPU)计算时基于eigen作为底层矩阵运算库,Eigen是一个高层次的C++库,能够有效支持线性代数,矩阵和矢量运算,数值分析及其相关的算法。
当使用图形处理器(GPU)计算时基于cuda/cublas作为底层矩阵运算库,这些底层矩阵运算库由英伟达提供以支撑各种科学计算应用,能够支持由英伟达生产的大部分图形处理器。
针对不同的矩阵计算库和不同的处理器后端,写不同的头文件,最终编译成不同的模块(动态链接库,例如,在linux上是.so文件,在windows上是.dll文件),在应用层可以选择加载不同的后端模块。
不同动态链接库文件内会对不同的底层矩阵库进行包装,例如一个简单的矩阵按行或按列取平均值函数,我们将在不同的链接库文件分别提供基于eigen的中央处理器的实现和基于cuda的图形处理器的实现,在两个链接库文件中该函数的接口保持一致,使得更上层函数无需关心底层实现细节,可以直接调用诸如平均值、求和、标准差等基本函数。
在本发明的一个较佳实施例中,所述沿时间序列处理函数采用线段树方法进行优化,并运用指针和内联汇编语言进行优化。所述按组处理类函数采用哈希表存储分类进行索引,并在分组后使用矩阵点乘和矩阵加法进行优化。所述异常值检测及处理中通过函数接口的keep_nan=False/True参数以控制是否处理异常值。提供相比pandas更完善的金融函数库,添加了许多Pandas没有的函数,并且提供了更鲁棒的异常值处理方式。
在本发明的一个较佳实施例中,如图1所示,所述数据处理框架还包括:与所述上层函数库连接的C++接口和Python接口。
具体地,本框架采用C++程序语言书写,能够提供原生C++接口,用户只需要引用指定的头文件在自己的文件中便可使用这一类库。此外,基于开源库pybind11,将C++的函数转写成能够被Python调用的函数,将C++的类重定义为Python的类,提供Python接口,可以通过pip安装使用。用户使用时有和python pandas库基本一致的函数接口,熟悉pandas的用户只需要将Import语句改变即可。也就是说,提供了C++/Python跨平台的类库,且Python接口与C++接口性能基本一致。
基于上述数据处理框架,本发明还提供了一种数据处理方法的较佳实施例:
本发明实施例所述一种数据处理方法,包括以下步骤:
步骤S100、对时间序列数据进行二维化处理得到二维数据框,具体如上所述。
步骤S200、采用上述任意一实施例所述数据处理框架对二维数据框进行数据处理并输出处理结果,具体如上所述。
基于上述数据处理框架,本发明还提供了一种数据处理系统的较佳实施例:
如图4所示,本发明实施例所述一种数据处理系统,包括:处理器,以及与所述处理器连接的存储器,
所述存储器存储有数据处理程序,所述数据处理程序被所述处理器执行时实现以下步骤:
步骤S100、对时间序列数据进行二维化处理得到二维数据框,具体如上所述。
步骤S200、采用如上述任意一实施例所述数据处理框架对二维数据框进行数据处理并输出处理结果,具体如上所述。
综上所述,本发明所提供的一种数据处理框架、方法及系统,所述框架包括上层函数库;所述上层函数库包括:形状变换及索引函数、统计性及简单科学函数、沿时间序列处理函数、技术指标函数、按组处理函数;所述形状变换及索引函数用于基于二维数据框的行索引、列索引及对应的哈希表计算所需要的偏移值,而完成形状变换及索引;所述统计性及简单科学函数用于对二维数据框的数据矩阵进行迭代处理和异常值检测及处理;所述沿时间序列处理函数用于对数据矩阵沿时间序列进行处理;所述技术指标函数用于对数据矩阵进行以指数式递减加权的移动平均处理;所述按组处理类函数用于将数据矩阵分组,并将分组作为一个与数据矩阵相同形状的二维对象进行处理。本发明的数据处理框架在二维数据上融合数据处理和技术指标两个框架,以二维数据为单位进行数据处理,大幅提高金融数据处理效率。
应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。
Claims (10)
1.一种数据处理框架,用于处理时间序列的二维数据框,其特征在于,包括上层函数库;所述上层函数库包括:形状变换及索引函数、统计性及简单科学函数、沿时间序列处理函数、技术指标函数、按组处理函数;
所述形状变换及索引函数用于基于二维数据框的行索引、列索引及对应的哈希表计算所需要的偏移值,而完成形状变换及索引;
所述统计性及简单科学函数用于对二维数据框的数据矩阵进行迭代处理和异常值检测及处理;
所述沿时间序列处理函数用于对数据矩阵沿时间序列进行处理;
所述技术指标函数用于对数据矩阵进行以指数式递减加权的移动平均处理;
所述按组处理类函数用于将数据矩阵分组,并将分组作为一个与数据矩阵相同形状的二维对象进行处理。
2.根据权利要求1所述的数据处理框架,其特征在于,所述数据处理框架还包括:与所述上层函数库连接的底层函数库、与所述底层函数库连接的底层矩阵库;
所述底层矩阵库用于根据底层矩阵库的类别和处理器的类别,写不同的头文件,并编译成对应动态链接库;
所述底层函数库用于使各动态链接库中相应函数的接口保持一致。
3.根据权利要求2所述的数据处理框架,其特征在于,所述底层矩阵库包括eigen、cuda、cublas以及xtensor;所述处理器包括CPU和GPU。
4.根据权利要求2所述的数据处理框架,其特征在于,所述处理器采用单线程。
5.根据权利要求1所述的数据处理框架,其特征在于,所述沿时间序列处理函数采用线段树方法进行优化,并运用指针和内联汇编语言进行优化。
6.根据权利要求1所述的数据处理框架,其特征在于,所述按组处理类函数采用哈希表存储分类进行索引,并在分组后使用矩阵点乘和矩阵加法进行优化。
7.根据权利要求1所述的数据处理框架,其特征在于,所述异常值检测及处理中通过函数接口的keep_nan=False/True参数以控制是否处理异常值。
8.根据权利要求1所述的数据处理框架,其特征在于,所述数据处理框架还包括:与所述上层函数库连接的C++接口和Python接口。
9.一种数据处理方法,其特征在于,包括步骤:
对时间序列数据进行二维化处理得到二维数据框;
采用如权利要求1-8任意一项所述数据处理框架对二维数据框进行数据处理并输出处理结果。
10.一种数据处理系统,其特征在于,包括:处理器,以及与所述处理器连接的存储器,
所述存储器存储有数据处理程序,所述数据处理程序被所述处理器执行时实现以下步骤:
对时间序列数据进行二维化处理得到二维数据框;
采用如权利要求1-8任意一项所述数据处理框架对二维数据框进行数据处理并输出处理结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911145908.0A CN110851505B (zh) | 2019-11-20 | 2019-11-20 | 一种数据处理框架、方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911145908.0A CN110851505B (zh) | 2019-11-20 | 2019-11-20 | 一种数据处理框架、方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110851505A true CN110851505A (zh) | 2020-02-28 |
CN110851505B CN110851505B (zh) | 2023-12-22 |
Family
ID=69603112
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911145908.0A Active CN110851505B (zh) | 2019-11-20 | 2019-11-20 | 一种数据处理框架、方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110851505B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200741479A (en) * | 2005-12-02 | 2007-11-01 | Kumar Metlapalli | Methods and systems for computing platform |
CN107230150A (zh) * | 2017-07-19 | 2017-10-03 | 西南大学 | 一种基于非负矩阵分解的股票市场中的异常检测方法 |
CN107392979A (zh) * | 2017-06-29 | 2017-11-24 | 天津大学 | 时间序列的二维可视状态构图及定量分析指标方法 |
CN108615096A (zh) * | 2018-05-10 | 2018-10-02 | 平安科技(深圳)有限公司 | 服务器、金融时序数据的处理方法及存储介质 |
CN109598606A (zh) * | 2018-12-04 | 2019-04-09 | 泰康保险集团股份有限公司 | 数据处理方法、装置、介质及电子设备 |
CN110032670A (zh) * | 2019-04-17 | 2019-07-19 | 腾讯科技(深圳)有限公司 | 时序数据的异常检测方法、装置、设备及存储介质 |
CN110334083A (zh) * | 2019-04-17 | 2019-10-15 | 厦门网宿有限公司 | 一种时间序列异常值检测方法及装置 |
-
2019
- 2019-11-20 CN CN201911145908.0A patent/CN110851505B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200741479A (en) * | 2005-12-02 | 2007-11-01 | Kumar Metlapalli | Methods and systems for computing platform |
CN107392979A (zh) * | 2017-06-29 | 2017-11-24 | 天津大学 | 时间序列的二维可视状态构图及定量分析指标方法 |
CN107230150A (zh) * | 2017-07-19 | 2017-10-03 | 西南大学 | 一种基于非负矩阵分解的股票市场中的异常检测方法 |
CN108615096A (zh) * | 2018-05-10 | 2018-10-02 | 平安科技(深圳)有限公司 | 服务器、金融时序数据的处理方法及存储介质 |
CN109598606A (zh) * | 2018-12-04 | 2019-04-09 | 泰康保险集团股份有限公司 | 数据处理方法、装置、介质及电子设备 |
CN110032670A (zh) * | 2019-04-17 | 2019-07-19 | 腾讯科技(深圳)有限公司 | 时序数据的异常检测方法、装置、设备及存储介质 |
CN110334083A (zh) * | 2019-04-17 | 2019-10-15 | 厦门网宿有限公司 | 一种时间序列异常值检测方法及装置 |
Non-Patent Citations (4)
Title |
---|
冯诗淳;曹斌;晁德文;林博;尹建伟;: "结合HBase的散列概要森林索引方案" * |
周勇: "基于并行计算的数据流处理方法研究" * |
李建平;王兴伟;马连博;黄敏;: "基于区间的时间序列分类算法的研究" * |
郑晓薇;侯立斐;于梦玲;: "GPU并行计算在LSSVM股票预测上的研究与应用" * |
Also Published As
Publication number | Publication date |
---|---|
CN110851505B (zh) | 2023-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Vázquez et al. | A new approach for sparse matrix vector product on NVIDIA GPUs | |
US20170061279A1 (en) | Updating an artificial neural network using flexible fixed point representation | |
Cano et al. | High performance evaluation of evolutionary-mined association rules on GPUs | |
Mitov et al. | Fast likelihood calculation for multivariate Gaussian phylogenetic models with shifts | |
WO2007076630A1 (en) | A computer-implemented method and system for improved data flow analysis and optimization | |
Nolet et al. | Bringing UMAP closer to the speed of light with GPU acceleration | |
Song et al. | Novel graph processor architecture, prototype system, and results | |
WO2021080873A1 (en) | Structured pruning for machine learning model | |
Martínez-del-Amor et al. | Population Dynamics P systems on CUDA | |
Sokolinskaya et al. | Revised pursuit algorithm for solving non-stationary linear programming problems on modern computing clusters with manycore accelerators | |
US20200387364A1 (en) | Systems and methods for generating distributed software packages using non-distributed source code | |
US20160275909A1 (en) | Concurrent principal component analysis computation | |
CN110851505B (zh) | 一种数据处理框架、方法及系统 | |
Cuomo et al. | On GPU–CUDA as preprocessing of fuzzy-rough data reduction by means of singular value decomposition | |
Dai et al. | Parallel option pricing with BSDE method on GPU | |
Zheng et al. | GPU-based multifrontal optimizing method in sparse Cholesky factorization | |
Jing et al. | Efficient parallel algorithm for computing rough set approximation on GPU | |
Zou et al. | Supernodal sparse Cholesky factorization on graphics processing units | |
Giesser et al. | Implementing efficient and scalable in-database linear regression in SQL | |
Sun et al. | Sparse cholesky factorization on fpga using parameterized model | |
Savvas et al. | High performance clustering techniques: A survey | |
Raguvir et al. | Analysis of explicit parallelism of image preprocessing algorithms—a case study | |
CN117407177B (zh) | 任务执行方法、装置、电子设备及可读存储介质 | |
Langr et al. | On memory footprints of partitioned sparse matrices | |
Hoefler | Benchmarking data science: 12 ways to lie with statistics and performance on parallel computers |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |