数据处理方法及数据处理装置与流程

文档序号:12365685阅读:219来源:国知局
数据处理方法及数据处理装置与流程

本发明涉及数据处理领域,特别是涉及一种数据处理方法及数据处理装置。



背景技术:

随着互联网技术的飞速发展,数据处理的计算量越来越大。为了提高数据处理效率,会在数据处理之前对大量数据进行聚类处理,以提高数据处理效率。

但现有的数据处理过程需要多次迭代,如将所有聚类数据均加载到内存中,对处理内存的要求很高。同时进行迭代操作时,需要对每个数据分配一个变量进行标记,当数据量很大时,总体计算复杂度也将很高。此外现有的聚类计算均不支持计算中断后的恢复计算,这样导致对聚类计算的稳定性要求很高。



技术实现要素:

本发明实施例提供一种对内存要求比较低、总体计算复杂度较低且计算稳定性较高的数据处理方法及数据处理装置;以解决现有的数据处理方法及数据处理装置的对内存要求较高、总体计算复杂度较高以及计算稳定性较差的技术问题。

本发明实施例提供一种数据处理方法,其包括:

读取处理数据,并获取所述处理数据的多个预设聚类中心;

根据多个所述预设聚类中心,对所述处理数据进行分类,得到分类后处理数据;

根据所述分类后处理数据,建立多个可合并的计算任务;

使用多个计算线程对所述可合并的计算任务进行计算,并对计算结果进行合并操作;

根据合并后的计算结果对所述预设聚类中心进行修正以及保存;以及

根据所述预设聚类中心、修正后的预设聚类中心以及修正操作次数,确定数据聚类处理结果。

本发明实施例提供一种数据处理装置,其包括:

处理数据读取模块,用于读取处理数据,并获取所述处理数据的多个预设聚类中心;

分类模块,用于根据多个所述预设聚类中心,对所述处理数据进行分类,得到分类后处理数据;

计算任务建立模块,用于根据分类后处理数据,建立多个可合并的计算任务;

合并模块,用于使用多个计算线程对所述可合并的计算任务进行计算,并对计算结果进行合并操作;

修正保存模块,用于根据合并后的计算结果对所述预设聚类中心进行修正以及保存;以及

处理模块,用于根据所述预设聚类中心、修正后的预设聚类中心以及修正操作次数,确定数据聚类处理结果。

相较于现有技术的数据处理方法及数据处理装置,本发明的数据处理方法及数据处理装置建立多个可合并的计算任务,以及对预设聚类中心进行保存,降低了对内存的需求,降低了总体计算复杂度以及提高了计算的稳定性;解决了现有的数据处理方法及数据处理装置的对内存要求较高、总体计算复杂度较高以及计算稳定性较差的技术问题。

附图说明

图1a至图1f为现有的数据聚类处理的流程示意图;

图2为本发明的数据处理方法的优选实施例的流程图;

图3为本发明的数据处理方法的优选实施例的步骤S201的流程图;

图4为本发明的数据处理方法的优选实施例的步骤S202的流程图;

图5为本发明的数据处理方法的优选实施例的步骤S203的流程图;

图6为本发明的数据处理方法的优选实施例的步骤S204的流程图之一;

图7为本发明的数据处理方法的优选实施例的步骤S204中的数据分配示意图;

图8为本发明的数据处理方法的优选实施例的步骤S204中的数据位的数据状态的转换示意图;

图9为本发明的数据处理方法的优选实施例的步骤S204的流程图之二;

图10为本发明的数据处理方法的优选实施例的步骤S206的流程图;

图11为本发明的数据处理装置的优选实施例的结构示意图;

图12为本发明的数据处理装置的优选实施例的处理数据读取模块的结构示意图;

图13为本发明的数据处理装置的优选实施例的分类模块的结构示意图;

图14为本发明的数据处理装置的优选实施例的计算任务建立模块的结构示意图;

图15为本发明的数据处理装置的优选实施例的合并模块的结构示意图;

图16为本发明的数据处理装置的优选实施例的处理模块的结构示意图;

图17为本发明的数据处理装置所在的电子设备的工作环境结构示意图。

具体实施方式

请参照图式,其中相同的组件符号代表相同的组件,本发明的原理是以实施在一适当的运算环境中来举例说明。以下的说明是基于所例示的本发明具体实施例,其不应被视为限制本发明未在此详述的其它具体实施例。

在以下的说明中,本发明的具体实施例将参考由一部或多部计算机所执行之作业的步骤及符号来说明,除非另有述明。因此,其将可了解到这些步骤及操作,其中有数次提到为由计算机执行,包括了由代表了以一结构化型式中的 数据之电子信号的计算机处理单元所操纵。此操纵转换该数据或将其维持在该计算机之内存系统中的位置处,其可重新配置或另外以本领域技术人员所熟知的方式来改变该计算机之运作。该数据所维持的数据结构为该内存之实体位置,其具有由该数据格式所定义的特定特性。但是,本发明原理以上述文字来说明,其并不代表为一种限制,本领域技术人员将可了解到以下所述的多种步骤及操作亦可实施在硬件当中。

数据聚类处理方法可通过具有计算功能的电子设备实现,请参照图1a至图1f,图1a至图1f为现有的数据聚类处理的流程示意图。现有的数据聚类处理包括以下步骤:

一、加载用于聚类的数据R到内存。如图1a中全部的点。

二、随机选择R中的k个数据,作为初始聚类中心C(共k个中心,记为C1,C2,…,Ck),如图1a中面积较大的点(这里假设k=3)。

三、计算数据R中的每个数据与哪个初始聚类中心距离最近,并标记这个数据属于这一类(假设该数据与Ci距离最近,则标记属于第i类)。从而全部数据R被分为k类,如图1b。

四、计算对k类数据中每一类的全部数据的聚类中心,记为C’(共k个中心,记为C’1,C’2,…,C’k),如图1c中面积较大的点。

五、C’1,C’2,…,C’k为当前迭代的新的聚类中心C’。

六、如果迭代超过一定次数,则终止;或如果两次迭代得到的分类结果一致,则终止;否则,重复步骤三,如图1d、图1e以及图1f所示,通过重复迭代,每次选择当前分类情况下的新的聚类中心,直到分类情况稳定(即所有的点在两次迭代前后都属于同一个分类)。

七、迭代终止时的聚类中心C”(C”1,C”2,…,C”k)即为聚类的结果。

因此现有的数据聚类处理的过程对处理内存的要求很高,同时总体计算复杂度也很高,这样导致对聚类计算的稳定性要求很高。

本发明实施例提供一种数据处理方法,请参照图2,图2为本发明的数据处理方法的优选实施例的流程图。本优选实施例的数据处理方法包括:

步骤S201,读取处理数据,并获取处理数据的多个预设聚类中心;

步骤S202,根据多个预设聚类中心,对处理数据进行分类,得到分类后处理数据;

步骤S203,根据分类后处理数据,建立多个可合并的计算任务;

步骤S204,使用多个计算线程对可合并的计算任务进行计算,并对计算结果进行合并操作;

步骤S205,根据合并后的计算结果对预设聚类中心进行修正以及保存;

步骤S206,根据预设聚类中心、修正后的预设聚类中心以及修正操作次数,确定数据聚类处理结果。

下面详细说明本优选实施例的数据处理方法的各步骤的具体流程。

在步骤S201中,数据处理装置读取处理数据,并获取处理数据的多个预设聚类中心。其中预设聚类中心为处理数据中的部分数据的中心位置,具体获取预设聚类中心的流程请参照图3,图3为本发明的数据处理方法的优选实施例的步骤S201的流程图。该步骤S201包括:

步骤S2011,判断是否存在处理数据对应的已保存的预设聚类中心,如存在则转到步骤S2012,如不存在则转到步骤S2013。

步骤S2012,如存在,则判断之前已经进行过数据聚类处理,数据处理装置则直接获取该数据聚类中心,随后转到步骤S202;

步骤S2013,如不存在,则判断之前未进行过数据聚类处理,数据处理装置则随机选择处理数据中的数据作为初始的预设聚类中心。随后转到步骤S202。

在步骤S202,数据处理装置根据步骤S201获取的多个预设聚类中心,对处理数据进行分类,得到分类后处理数据;具体的分类过程请参照图4,图4为本发明的数据处理方法的优选实施例的步骤S202的流程图。该步骤S202包 括:

步骤S2021,计算处理数据中的每条数据的位置与所有的预设聚类中心的距离,将与某个数据最近的预设聚类中心作为该数据的分类点;

步骤S2022,根据步骤S2021中获取的每条数据的分类点对所有的处理数据进行分类,获取分类后处理数据。随后转到步骤S203。

在步骤S203中,数据处理装置根据步骤S202获取的分类后处理数据,建立多个可合并的计算任务。具体的建立过程请参照图5,图5为本发明的数据处理方法的优选实施例的步骤S203的流程图。该步骤S203包括:

步骤S2031,将步骤S202获取的分类后处理数据分为多个计算数据部分;

步骤S2032,按每个计算数据部分在处理数据中的类别以及计算规则,建立多个可合并的计算任务。

如根据马氏距离的计算规则建立多个可合并的计算任务,即所有数据的中心位置为所有数据的位置的算术平均值。如:

<mrow> <msub> <mi>C</mi> <mi>j</mi> </msub> <mo>=</mo> <mfrac> <mrow> <msubsup> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </msubsup> <msub> <mi>x</mi> <mrow> <mi>i</mi> <mo>,</mo> <mi>j</mi> </mrow> </msub> </mrow> <mi>n</mi> </mfrac> <mo>;</mo> </mrow>

其中n为数据的数量,j为数据的类别,i为数据的编号。

如将所有的数据无重复的划分为t个计算数据部分,每个计算数据部分包括m个数据,即m*t=n,那么每个计算数据部分的所有数据的位置的算术和为:

<mrow> <msub> <mi>H</mi> <mrow> <mi>j</mi> <mo>,</mo> <mi>s</mi> </mrow> </msub> <mo>=</mo> <msubsup> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>m</mi> </msubsup> <msub> <mi>x</mi> <mrow> <mi>f</mi> <mrow> <mo>(</mo> <mi>i</mi> <mo>,</mo> <mi>s</mi> <mo>)</mo> </mrow> <mo>,</mo> <mi>j</mi> </mrow> </msub> <mo>;</mo> </mrow>

<mrow> <msub> <mi>C</mi> <mi>j</mi> </msub> <mo>*</mo> <mi>n</mi> <mo>=</mo> <msubsup> <mi>&Sigma;</mi> <mrow> <mi>s</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>t</mi> </msubsup> <msub> <mi>H</mi> <mrow> <mi>j</mi> <mo>,</mo> <mi>s</mi> </mrow> </msub> <mo>;</mo> </mrow>

这样可以通过求和的方式获取所有数据的位置的算术和为:

<mrow> <msub> <mi>C</mi> <mi>j</mi> </msub> <mo>*</mo> <mi>n</mi> <mo>=</mo> <msubsup> <mi>&Sigma;</mi> <mrow> <mi>s</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>t</mi> </msubsup> <msubsup> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>m</mi> </msubsup> <msub> <mi>x</mi> <mrow> <mi>f</mi> <mrow> <mo>(</mo> <mi>i</mi> <mo>,</mo> <mi>s</mi> <mo>)</mo> </mrow> <mo>,</mo> <mi>j</mi> </mrow> </msub> <mo>;</mo> </mrow>

即建立了t个可合并的计算任务。

如根据欧式距离的计算规则建立多个可合并的计算任务,即所有数据的中心位置为所有数据的位置的平方平均值。如:

<mrow> <msub> <mi>C</mi> <mi>j</mi> </msub> <mo>=</mo> <msqrt> <mfrac> <mrow> <msubsup> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </msubsup> <mrow> <msub> <msup> <mi>x</mi> <mn>2</mn> </msup> <mrow> <mi>i</mi> <mo>,</mo> <mi>j</mi> </mrow> </msub> </mrow> </mrow> <mi>n</mi> </mfrac> </msqrt> <mo>;</mo> </mrow>

如将所有的数据无重复的划分为t个计算数据部分,每个计算数据部分包括m个数据,即m*t=n,那么每个计算数据部分的所有数据的位置的平方平均值为:

<mrow> <msub> <mi>H</mi> <mrow> <mi>j</mi> <mo>,</mo> <mi>s</mi> </mrow> </msub> <mo>=</mo> <msqrt> <mrow> <msubsup> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>-</mo> <mn>1</mn> </mrow> <mi>m</mi> </msubsup> <msub> <msup> <mi>x</mi> <mn>2</mn> </msup> <mrow> <mi>f</mi> <mrow> <mo>(</mo> <mi>i</mi> <mo>,</mo> <mi>s</mi> <mo>)</mo> </mrow> <mo>,</mo> <mi>j</mi> </mrow> </msub> </mrow> </msqrt> <mo>;</mo> </mrow>

<mrow> <msup> <mrow> <mo>(</mo> <msub> <mi>C</mi> <mi>j</mi> </msub> <mo>*</mo> <mi>n</mi> <mo>)</mo> </mrow> <mn>2</mn> </msup> <mo>=</mo> <msubsup> <mi>&Sigma;</mi> <mrow> <mi>s</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>t</mi> </msubsup> <msub> <msup> <mi>H</mi> <mn>2</mn> </msup> <mrow> <mi>j</mi> <mo>,</mo> <mi>s</mi> </mrow> </msub> <mo>;</mo> </mrow>

这样可以通过求和的方式获取所有数据的位置的平方和为:

<mrow> <msub> <mi>C</mi> <mi>j</mi> </msub> <mo>*</mo> <mi>n</mi> <mo>=</mo> <msqrt> <mrow> <msubsup> <mi>&Sigma;</mi> <mrow> <mi>s</mi> <mo>-</mo> <mn>1</mn> </mrow> <mi>t</mi> </msubsup> <mo>-</mo> <msubsup> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>-</mo> <mn>1</mn> </mrow> <mi>m</mi> </msubsup> <msub> <msup> <mi>x</mi> <mn>2</mn> </msup> <mrow> <mi>f</mi> <mrow> <mo>(</mo> <mi>i</mi> <mo>,</mo> <mi>s</mi> <mo>)</mo> </mrow> <mo>,</mo> <mi>j</mi> </mrow> </msub> </mrow> </msqrt> <mo>;</mo> </mrow>

即建立了t个可合并的计算任务。随后转到步骤S204。

在步骤S204中,数据处理装置使用多个计算线程对步骤S203中获得的多个可合并的计算任务进行计算,并对计算结果进行合并操作。具体的计算操作过程请参照图6,图6为本发明的数据处理方法的优选实施例的步骤S204的流程图之一;该步骤S204包括:

步骤S2041,按计算线程的数量以及可合并的计算任务的数据的存储位置,对每个可合并的计算任务的数据进行分组。为了保证计算线程的计算效率,可合并的计算任务的数据并不在开始时直接加载到内存中,而是采用了输入输出线程和计算线程分离的方式,输入输出线程按可合并的计算任务的数据在硬盘中的存储位置连续读取数据,这样以保证输入输出线程的读写效率。

输入输出线程读取到的数据,按计算线程的数量平均分配到每个计算线程,具体分配方式可如图7所示,将用于计算的内存空间划分为若干个数据位,每个计算线程可单独处理一个数据位中的数据。为了使读取到的数据可以尽快进行处理,数据按照先到先排列的方式设置到相应的数据位上,因此数据位上的数据的排列顺序和可合并的计算任务的数据在硬盘上的存储位置顺序是一致的。每个计算线程依次读取数据位上的数据进行计算,这样数据位上的可合并 的计算任务的数据按照数据位的编号进行分组,如计算线程为4个的情况下,数据位1、数据位5、数据位9以及数据位4n+1为一组,数据位2、数据位6、数据位10以及数据位4n+2为一组,数据位3、数据位7、数据位11以及数据位4n+3为一组,数据位4、数据位8、数据位12以及数据位4n为一组。由于计算线程对某个数据位中的数据进行计算处理的时间大致是相等的,因此这样计算线程能够按输入输出线程读取的数据的顺序尽快的对输入输出线程读取的数据进行计算处理,并且不需要随时监控每个计算线程的计算状态。

步骤S2042,使用计算线程对步骤S2041中确定的各组别的可合并的计算任务进行计算。随后对计算结果进行合并操作,其中数据位中的数据包括用于存储数据向量的数据字段以及用于存储数据状态的标记字段,其中数据状态包括初始状态、终止状态、已读取状态以及已处理状态。数据位未存储数据时的数据状态为初始状态;输入输出线程向数据位输入数据后,数据位的数据状态转换为已读取状态;计算线程对数据位中的数据进行计算处理后,数据位的数据状态转换为已处理状态;输入输出线程不需要向数据位输入数据进行处理时,输入输出线程将数据位中的数据输出,并相应的数据位的数据状态转换为终止状态。

如图8所示,每个数据位中的数据的初始的数据状态均为初始状态,如用0来表示;在输入输出线程向该数据位输入数据后,该数据位的数据状态转换为已读取状态,如用1来表示;计算线程对处于已读取状态的数据位中的数据进行计算操作,并将计算处理后的数据位中的数据的数据状态转换为已处理状态,如用2来表示;输入输出线程发现某个数据位中的数据的数据状态为已处理状态,则可将该数据输出,并输入新的数据,同时将该数据位的数据状态转换为已读取状态,实现了数据位的循环使用;其中新的数据是与输出的数据同一组别的数据。当输入输出线程已从硬盘读取了某个组别的所有数据后,输入输出线程将该组别对应的所有的已处理状态的数据位转换为终止状态,如用-1来表示。当所有的数据位均为终止状态时,即代表所有的数据均已处理完成。

因此具体合并操作方式可如图9所示,图9为本发明的数据处理方法的优选实施例的步骤S204的流程图之二。该步骤S204还包括:

步骤S2043,读取标记字段为已处理状态的数据;

步骤S2044,根据已处理状态的数据生成计算结果,并将已处理状态的数据的数据状态变更为已读取状态;

步骤S2045,对步骤S2044获取的计算结果进行合并操作。

通过计算操作和合并操作的设计,可在不将数据预读入内存的情况下,有效的对全部数据进行快速处理。实际运行中,当计算线程数为较少时,计算能力的瓶颈出现在每个计算线程的计算能力上限上;这时候将数据存放在磁盘或存放在内存中的计算效果是相同的,因而可将数据存放在磁盘上,从而降低了对内存的要求。随后转到步骤S205。

在步骤S205中,数据处理装置根据步骤S204获取的合并后的计算结果对预设聚类中心进行修正以及保存,这里只对预设聚类中心进行保存,并不记录相应的分类后处理数据的具体类别,因此总体计算复杂度和处理数据的数量无关,从而即使在处理数据的数量比较大时,数据处理装置的计算复杂度也不高。

同时这里可对预设聚类中心以及迭代次数,即修正操作次数进行保存,不需要记录每条数据的具体类别,保存的数据量较小。即使中断了数据聚类处理的操作,也可通过上述的预设聚类中心以及迭代次数继续上次的聚类处理过程,提高了数据处理的稳定性。随后转到步骤S206。

在步骤S206中,数据处理装置根据步骤S201获取的预设聚类中心、步骤S205获取的修正后的预设聚类中心以及步骤S205获取的修正操作次数,确定数据聚类处理结果。具体请参照图10,图10为本发明的数据处理方法的优选实施例的步骤S206的流程图。该步骤S206包括:

步骤S2061,判断预设聚类中心以及修正后的预设聚类中心的差异是否小于等于设定值;如预设聚类中心与修正后的预设聚类中心的差异小于等于设定值,则转到步骤S2062;如预设聚类中心与修正后的预设聚类中心的差异大于 设定值,则转到步骤S2063。

步骤S2062,预设聚类中心与修正后的预设聚类中心的差异小于等于设定值,则直接根据修正后的预设聚类中心,确定数据聚类处理结果。

步骤S2063,预设聚类中心与修正后的预设聚类中心的差异大于设定值,则判断修正操作次数,即迭代次数是否大于设定次数;如修正操作次数大于设定次数,则转到步骤S2062;如修正操作次数低于等于设定次数,则转到步骤S2064。

步骤S2064,由于预设聚类中心与修正后的预设聚类中心的差异较大,且设定次数即迭代次数较少,这时可返回步骤S201,执行获取处理数据的多个预设聚类中心,即步骤S206中的修正后的预设聚类中心,以对预设聚类中心进行下一次的修正。

这样即完成了本优选实施例的数据处理方法的数据聚类处理过程。

本优选实施例的数据处理方法建立多个可合并的计算任务,以及对预设聚类中心进行保存,降低了对内存的需求,降低了总体计算复杂度以及提高了计算的稳定性。

本发明还提供一种数据处理装置,请参照图11,图11为本发明的数据处理装置的优选实施例的结构示意图。本优选实施例的数据处理装置可使用上述的数据处理方法进行实施。该数据处理装置11包括处理数据读取模块1101、分类模块1102、计算任务建立模块1103、合并模块1104、修正保存模块1105以及处理模块1106。处理数据读取模块1101用于读取处理数据,并获取处理数据的多个预设聚类中心;分类模块1102用于根据多个预设聚类中心,对处理数据进行分类,得到分类后处理数据;计算任务建立模块1103用于根据分类后处理数据,建立多个可合并的计算任务;合并模块1104用于使用多个计算线程对可合并的计算任务进行计算,并对计算结果进行合并操作;修正保存模块1105用于根据合并后的计算结果对预设聚类中心进行修正以及保存;处理模块 1106用于根据预设聚类中心、修正后的预设聚类中心以及修正操作次数,确定数据聚类处理结果。

请参照图12,图12为本发明的数据处理装置的优选实施例的处理数据读取模块的结构示意图。该处理数据读取模块1101包括判断单元1201以及聚类中心获取单元1202。判断单元1201用于判断是否存在处理数据对应的已保存的预设聚类中心;聚类中心获取单元1202用于如判断单元1201判断存在处理数据对应的已保存的预设聚类中心,则直接获取预设聚类中心;如判断单元1201判断不存在已保存的预设聚类中心,则随机选择处理数据中的数据作为预设聚类中心。

请参照图13,图13为本发明的数据处理装置的优选实施例的分类模块的结构示意图。该分类模块1102包括分类点获取单元1301以及分类单元1302。分类点获取单元1301用于计算处理数据中的每条数据的位置与所有预设聚类中心的距离,将与数据最近的预设聚类中心作为数据的分类点;分类单元1302用于根据分类点对处理数据进行分类,获取分类后处理数据。

请参照图14,图14为本发明的数据处理装置的优选实施例的计算任务建立模块的结构示意图。该计算任务建立模块1103包括计算数据划分单元1401以及计算任务建立单元1402。计算数据划分单元1401用于将分类后处理数据分为多个计算数据部分;计算任务建立单元1402用于按每个计算数据部分在处理数据中的类别以及计算规则,建立多个可合并的计算任务。

请参照图15,图15为本发明的数据处理装置的优选实施例的合并模块的结构示意图。该合并模块1104包括分组单元1501、计算单元1502、数据读取单元1503、状态变更单元1504以及合并单元1505。分组单元1501用于按计算线程的数量以及可合并的计算任务的数据的存储位置,对每个可合并的计算任务的数据进行分组;计算单元1502用于使用计算线程对相应组别的可合并的计算任务进行计算;数据读取单元1503用于读取标记字段为已处理状态的数据;状态变更单元1504用于根据已处理状态的数据生成计算结果,并将已处理状态 的数据的数据状态变更为已读取状态;合并单元1505用于对计算结果进行合并操作。

请参照图16,图16为本发明的数据处理装置的优选实施例的处理模块的结构示意图。该处理模块1106包括处理单元1601以及返回单元1602。处理单元1601用于根据修正后的预设聚类中心,确定数据聚类结果;返回模块1602用于控制处理数据读取模块1101获取处理数据的多个预设聚类中心,对预设聚类中心进行下一次的修正。

下面详细说明本优选实施例的数据处理装置的工作原理。首先处理数据读取模块1101读取处理数据,并获取处理数据的多个预设聚类中心。其中预设聚类中心为处理数据中的部分数据的中心位置,具体为:

处理数据读取模块1101的判断单元1201判断是否存在处理数据对应的已保存的预设聚类中心,如存在,则判断之前已经进行过数据聚类处理,处理数据读取模块1101的聚类中心获取单元1202则直接获取该数据聚类中心,继续进行数据聚类处理;如不存在,则判断之前未进行过数据聚类处理,聚类中心获取单元1202则随机选择处理数据中的数据作为初始的预设聚类中心。

随后分类模块1102根据处理数据读取模块获取的多个预设聚类中心,对处理数据进行分类,得到分类后处理数据;具体为:

分类模块1102的分类点获取单元1301计算处理数据中的每条数据的位置与所有的预设聚类中心的距离,将与某个数据最近的预设聚类中心作为该数据的分类点;分类模块1102的分类单元1302根据分类点获取单元获取的每条数据的分类点对所有的处理数据进行分类,获取分类后处理数据。

然后计算任务建立模块1103根据分类模块1102获取的分类后处理数据,建立多个可合并的计算任务。具体为:

计算任务建立模块1103的计算数据划分单元1401将分类模块获取的分类后处理数据分为多个计算数据部分;计算任务建立模块1103的计算任务建立单元1402按每个计算数据部分在处理数据中的类别以及计算规则,建立多个可合 并的计算任务。

随后合并模块1104使用多个计算线程对计算任务建立模块获得的多个可合并的计算任务进行计算,得到计算结果。具体为:

合并模块1104的分组单元1501按计算线程的数量以及可合并的计算任务的数据的存储位置,对每个可合并的计算任务的数据进行分组。合并模块1104的计算单元1502使用计算线程对分组单元确定的各组别的可合并的计算任务进行计算。

随后合并模块1104对计算结果进行合并操作,其中数据位中的数据包括用于存储数据向量的数据字段以及用于存储数据状态的标记字段,其中数据状态包括初始状态、终止状态、已读取状态以及已处理状态。数据位未存储数据时的数据状态为初始状态;输入输出线程向数据位输入数据后,数据位的数据状态转换为已读取状态;计算线程对数据位中的数据进行计算处理后,数据位的数据状态转换为已处理状态;输入输出线程不需要向数据位输入数据进行处理时,输入输出线程将数据位中的数据输出,并相应的数据位的数据状态转换为终止状态。具体为:

合并模块1104的数据读取单元1503读取标记字段为已处理状态的数据;合并模块1104的状态变更单元1504根据已处理状态的数据生成计算结果,并将已处理状态的数据的数据状态变更为已读取状态;合并模块1104的合并单元1505对状态变更单元获取的计算结果进行合并操作。

通过计算操作和合并操作的设计,可在不将数据预读入内存的情况下,有效的对全部数据进行快速处理。实际运行中,当计算线程数为较少时,计算能力的瓶颈出现在计算线程的计算能力上限上;这时候将数据存放在磁盘或存放在内存中的计算效果是相同的,因而可将数据存放在磁盘上,从而降低了对内存的要求。

然后修正保存模块1105根据合并模块1104获取的合并后的计算结果对预设聚类中心进行修正以及保存,这里只对预设聚类中心进行保存,并不记录相 应的分类后处理数据的具体类别,因此总体计算复杂度和处理数据的数量无关,从而即使在处理数据的数量比较大时,数据处理装置11的计算复杂度也不高。

同时这里可对预设聚类中心以及迭代次数,即修正操作次数进行保存,不需要保存每条数据的具体类别,因此保存的数据量较小。即使中断了数据聚类处理的操作,也可通过上述的预设聚类中心以及迭代次数继续上次的聚类处理过程,提高了数据处理的稳定性。

最后处理模块1106根据处理数据读取模块1101获取的预设聚类中心、修正保存模块1105获取的修正后的预设聚类中心以及修正保存模块1105获取的修正操作次数,确定数据聚类处理结果。具体为:

处理模块1106判断预设聚类中心以及修正后的预设聚类中心的差异是否小于等于设定值;如预设聚类中心与修正后的预设聚类中心的差异小于等于设定值,则处理模块1106的处理单元1601直接根据修正后的预设聚类中心,确定数据聚类处理结果。

预设聚类中心与修正后的预设聚类中心的差异大于设定值,则处理模块1106判断修正操作次数,即迭代次数是否大于设定次数;如修正操作次数大于设定次数,则处理模块1106的处理单元1601直接根据修正后的预设聚类中心,确定数据聚类处理结果;如修正操作次数低于等于设定次数,由于预设聚类中心与修正后的预设聚类中心的差异较大,且设定次数即迭代次数较少,这时处理模块1106的返回单元1602控制处理数据读取模块1101获取处理数据的多个预设聚类中心,即修正保存模块1105获取的修正后的预设聚类中心,以对预设聚类中心进行下一次的修正。

这样即完成了本优选实施例的数据处理装置11的数据聚类处理过程。

本优选实施例的数据处理装置的具体工作原理与上述的数据处理方法的优选实施例中的描述相同或相似,具体请参见上述数据处理方法的优选实施例中的相关描述。

本发明的数据处理方法及数据处理装置建立多个可合并的计算任务,以及对预设聚类中心进行保存,降低了对内存的需求,降低了总体计算复杂度以及提高了计算的稳定性;解决了现有的数据处理方法及数据处理装置的对内存要求较高、总体计算复杂度较高以及计算稳定性较差的技术问题。

如本申请所使用的术语“组件”、“模块”、“系统”、“接口”、“进程”等等一般地旨在指计算机相关实体:硬件、硬件和软件的组合、软件或执行中的软件。例如,组件可以是但不限于是运行在处理器上的进程、处理器、对象、可执行应用、执行的线程、程序和/或计算机。通过图示,运行在控制器上的应用和该控制器二者都可以是组件。一个或多个组件可以有在于执行的进程和/或线程内,并且组件可以位于一个计算机上和/或分布在两个或更多计算机之间。

而且,要求保护的主题可以被实现为使用标准编程和/或工程技术产生软件、固件、硬件或其任意组合以控制计算机实现所公开的主题的方法、装置或制造品。本文所使用的术语“制造品”旨在包含可从任意计算机可读设备、载体或介质访问的计算机程序。当然,本领域技术人员将认识到可以对该配置进行许多修改,而不脱离要求保护的主题的范围或精神。

图17和随后的讨论提供了对实现本发明所述的数据处理装置所在的电子设备的工作环境的简短、概括的描述。图17的工作环境仅仅是适当的工作环境的一个实例并且不旨在建议关于工作环境的用途或功能的范围的任何限制。实例电子设备1712包括但不限于个人计算机、服务器计算机、手持式或膝上型设备、移动设备(比如移动电话、个人数字助理(PDA)、媒体播放器等等)、多处理器系统、消费型电子设备、小型计算机、大型计算机、包括上述任意系统或设备的分布式计算环境,等等。

尽管没有要求,但是在“计算机可读指令”被一个或多个电子设备执行的通用背景下描述实施例。计算机可读指令可以经由计算机可读介质来分布(下文讨论)。计算机可读指令可以实现为程序模块,比如执行特定任务或实现特定抽象数据类型的功能、对象、应用编程接口(API)、数据结构等等。典型地,该计 算机可读指令的功能可以在各种环境中随意组合或分布。

图17图示了包括本发明的数据处理装置的一个或多个实施例的电子设备1712的实例。在一种配置中,电子设备1712包括至少一个处理单元1716和存储器1718。根据电子设备的确切配置和类型,存储器1718可以是易失性的(比如RAM)、非易失性的(比如ROM、闪存等)或二者的某种组合。该配置在图17中由虚线1714图示。

在其他实施例中,电子设备1712可以包括附加特征和/或功能。例如,设备1712还可以包括附加的存储装置(例如可移除和/或不可移除的),其包括但不限于磁存储装置、光存储装置等等。这种附加存储装置在图17中由存储装置1720图示。在一个实施例中,用于实现本文所提供的一个或多个实施例的计算机可读指令可以在存储装置1720中。存储装置1720还可以存储用于实现操作系统、应用程序等的其他计算机可读指令。计算机可读指令可以载入存储器1718中由例如处理单元1716执行。

本文所使用的术语“计算机可读介质”包括计算机存储介质。计算机存储介质包括以用于存储诸如计算机可读指令或其他数据之类的信息的任何方法或技术实现的易失性和非易失性、可移除和不可移除介质。存储器1718和存储装置1720是计算机存储介质的实例。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字通用盘(DVD)或其他光存储装置、盒式磁带、磁带、磁盘存储装置或其他磁存储设备、或可以用于存储期望信息并可以被电子设备1712访问的任何其他介质。任意这样的计算机存储介质可以是电子设备1712的一部分。

电子设备1712还可以包括允许电子设备1712与其他设备通信的通信连接1726。通信连接1726可以包括但不限于调制解调器、网络接口卡(NIC)、集成网络接口、射频发射器/接收器、红外端口、USB连接或用于将电子设备1712连接到其他电子设备的其他接口。通信连接1726可以包括有线连接或无线连接。通信连接1726可以发射和/或接收通信媒体。

术语“计算机可读介质”可以包括通信介质。通信介质典型地包含计算机可读指令或诸如载波或其他传输机构之类的“己调制数据信号”中的其他数据,并且包括任何信息递送介质。术语“己调制数据信号”可以包括这样的信号:该信号特性中的一个或多个按照将信息编码到信号中的方式来设置或改变。

电子设备1712可以包括输入设备1724,比如键盘、鼠标、笔、语音输入设备、触摸输入设备、红外相机、视频输入设备和/或任何其他输入设备。设备1712中也可以包括输出设备1722,比如一个或多个显示器、扬声器、打印机和/或任意其他输出设备。输入设备1724和输出设备1722可以经由有线连接、无线连接或其任意组合连接到电子设备1712。在一个实施例中,来自另一个电子设备的输入设备或输出设备可以被用作电子设备1712的输入设备1724或输出设备1722。

电子设备1712的组件可以通过各种互连(比如总线)连接。这样的互连可以包括外围组件互连(PCI)(比如快速PCI)、通用串行总线(USB)、火线(IEEE1394)、光学总线结构等等。在另一个实施例中,电子设备1712的组件可以通过网络互连。例如,存储器1718可以由位于不同物理位置中的、通过网络互连的多个物理存储器单元构成。

本领域技术人员将认识到,用于存储计算机可读指令的存储设备可以跨越网络分布。例如,可经由网络1728访问的电子设备1730可以存储用于实现本发明所提供的一个或多个实施例的计算机可读指令。电子设备1712可以访问电子设备1730并且下载计算机可读指令的一部分或所有以供执行。可替代地,电子设备1712可以按需要下载多条计算机可读指令,或者一些指令可以在电子设备1712处执行并且一些指令可以在电子设备1730处执行。

本文提供了实施例的各种操作。在一个实施例中,所述的一个或多个操作可以构成一个或多个计算机可读介质上存储的计算机可读指令,其在被电子设备执行时将使得计算设备执行所述操作。描述一些或所有操作的顺序不应当被解释为暗示这些操作必需是顺序相关的。本领域技术人员将理解具有本说明书 的益处的可替代的排序。而且,应当理解,不是所有操作必需在本文所提供的每个实施例中存在。

而且,本文所使用的词语“优选的”意指用作实例、示例或例证。奉文描述为“优选的”任意方面或设计不必被解释为比其他方面或设计更有利。相反,词语“优选的”的使用旨在以具体方式提出概念。如本申请中所使用的术语“或”旨在意指包含的“或”而非排除的“或”。即,除非另外指定或从上下文中清楚,“X使用A或B”意指自然包括排列的任意一个。即,如果X使用A;X使用B;或X使用A和B二者,则“X使用A或B”在前述任一示例中得到满足。

而且,尽管已经相对于一个或多个实现方式示出并描述了本公开,但是本领域技术人员基于对本说明书和附图的阅读和理解将会想到等价变型和修改。本公开包括所有这样的修改和变型,并且仅由所附权利要求的范围限制。特别地关于由上述组件(例如元件、资源等)执行的各种功能,用于描述这样的组件的术语旨在对应于执行所述组件的指定功能(例如其在功能上是等价的)的任意组件(除非另外指示),即使在结构上与执行本文所示的本公开的示范性实现方式中的功能的公开结构不等同。此外,尽管本公开的特定特征已经相对于若干实现方式中的仅一个被公开,但是这种特征可以与如可以对给定或特定应用而言是期望和有利的其他实现方式的一个或多个其他特征组合。而且,就术语“包括”、“具有”、“含有”或其变形被用在具体实施方式或权利要求中而言,这样的术语旨在以与术语“包含”相似的方式包括。

本发明实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。上述提到的存储介质可以是只读存储器,磁盘或光盘等。上述的各装置或系统,可以执行相应方法实施例中的方法。

综上所述,虽然本发明已以优选实施例揭露如上,但上述优选实施例并非用以限制本发明,本领域的普通技术人员,在不脱离本发明的精神和范围内,均可作各种更动与润饰,因此本发明的保护范围以权利要求界定的范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1