一种数据属性的分组方法、装置、设备及存储介质转让专利

申请号 : CN202180003883.X

文献号 : CN114270341B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 何玉林欧桂良

申请人 : 深圳大学

摘要 :

本申请实施例公开了一种数据属性的分组方法、装置、设备及存储介质。其中,该方法包括:根据待分类数据的聚类簇的中心点、属性与属性组的当前第一关系矩阵,以及聚类簇与属性组的当前第二关系矩阵,更新聚类簇与属性的当前第三关系矩阵(110);判断当前迭代次数是否大于0,若是,则根据当前第一关系矩阵和当前第三关系矩阵,更新聚类簇与属性组的当前第四关系矩阵(120);根据当前第二关系矩阵、当前第三关系矩阵和当前第四关系矩阵,更新属性与属性组的当前第一关系矩阵(130);根据预设的迭代结束条件,判断属性分组是否迭代完成,若完成,则根据更新后的当前第一关系矩阵,确定待分类数据的属性分组结果(140)。实现由高维数据向低维数据的属性分组。

权利要求 :

1.一种数据属性的分组方法,包括:

根据待分类数据所在聚类簇的当前中心点、待分类数据的属性与属性组的当前第一关系矩阵,以及聚类簇与属性组的当前第二关系矩阵,更新所述聚类簇与属性的当前第三关系矩阵;

判断当前迭代次数是否大于0,若是,则根据所述当前第一关系矩阵和当前第三关系矩阵,更新所述聚类簇与属性组的当前第四关系矩阵;

根据所述当前第二关系矩阵、当前第三关系矩阵和当前第四关系矩阵,更新所述属性与属性组的当前第一关系矩阵;

根据预设的迭代结束条件,判断属性分组是否迭代完成,若完成,则根据更新后的当前第一关系矩阵,确定所述待分类数据的属性分组结果;

其中,根据所述待分类数据所在聚类簇的当前中心点、待分类数据的属性与属性组的当前第一关系矩阵,以及聚类簇与属性组的当前第二关系矩阵,更新所述聚类簇与属性的当前第三关系矩阵,包括:根据如下公式确定所述聚类簇与属性的当前第三关系矩阵:;

其中, 为当前第三关系矩阵, 表示任一聚类簇与任一属性之间的当前第三关系,k为聚类簇的数量,m为待分类数据的属性数量,和 为预设参数,E和 为中间参数,T为属性组的数量,n为待分类数据的数量,x为待分类数据向量,z为聚类簇的当前中心点,u表示待分类数据与聚类簇的关系,g表示待分类数据的属性与属性组的当前第一关系,表示聚类簇与属性组的当前第二关系,表示聚类簇与属性组的当前第四关系;

其中,根据所述当前第一关系矩阵和当前第三关系矩阵,更新所述聚类簇与属性组的当前第四关系矩阵,包括:根据如下公式确定所述聚类簇与属性组的当前第四关系矩阵:;

其中,为当前第四关系矩阵。

2.根据权利要求1所述的方法,在根据待分类数据所在聚类簇的当前中心点、待分类数据的属性与属性组的当前第一关系矩阵,以及聚类簇与属性组的当前第二关系矩阵,更新所述聚类簇与属性的当前第三关系矩阵之前,还包括:根据预设的聚类算法,对待分类数据进行聚类,生成至少一个聚类簇;

根据待分类数据的向量,以及所述待分类数据与聚类簇的关系,确定所述聚类簇的当前中心点;其中,所述待分类数据与聚类簇的关系包括待分类数据在聚类簇内和待分类数据不在聚类簇内。

3.根据权利要求1所述的方法,在根据待分类数据所在聚类簇的当前中心点、待分类数据的属性与属性组的当前第一关系矩阵,以及聚类簇与属性组的当前第二关系矩阵,更新所述聚类簇与属性的当前第三关系矩阵之前,还包括:初始化属性与属性组的当前第一关系矩阵、聚类簇与属性组的当前第二关系矩阵、聚类簇与属性的当前第三关系矩阵,以及聚类簇与属性组的当前第四关系矩阵;其中,初始的当前第一关系矩阵中的一列的值全为1,初始的当前第二关系矩阵、当前第三关系矩阵和当前第四关系矩阵为1。

4.根据权利要求1所述的方法,其中,判断当前迭代次数是否大于0,若是,则根据所述当前第一关系矩阵和当前第三关系矩阵,更新所述聚类簇与属性组的当前第四关系矩阵,还包括:若当前迭代次数等于0,则从当前第三关系矩阵选择至少一列作为当前第四关系矩阵。

5.根据权利要求1所述的方法,其中,根据所述当前第二关系矩阵、当前第三关系矩阵和当前第四关系矩阵,更新所述属性与属性组的当前第一关系矩阵,包括:根据如下公式更新当前第一关系矩阵:

若 ,则 ,否则 ; , , ;

其中,G为当前第一关系矩阵,F为中间参数。

6.根据权利要求1所述的方法,在根据所述当前第二关系矩阵、当前第三关系矩阵和当前第四关系矩阵,更新所述属性与属性组的当前第一关系矩阵之后,还包括:根据所述当前第三关系矩阵、当前第四关系矩阵和更新后的当前第一关系矩阵,更新所述聚类簇与属性组的当前第二关系矩阵;

根据如下公式确定所述聚类簇与属性组的当前第二关系矩阵:;

, ;

其中,为当前第二关系矩阵,H为中间参数, 为预设参数。

7.根据权利要求1所述的方法,其中,根据预设的迭代结束条件,判断属性分组是否迭代完成,包括:若当前迭代次数大于或等于预设的最大迭代次数,则确定属性分组迭代完成。

8.根据权利要求6所述的方法,其中,根据预设的迭代结束条件,判断属性分组是否迭代完成,包括:根据更新后的当前第一关系矩阵、当前第二关系矩阵、当前第三关系矩阵和当前第四关系矩阵,确定当前目标函数值;

若所述当前目标函数值与前次目标函数值的差值满足预设差值条件,则确定属性分组迭代完成。

9.根据权利要求6所述的方法,在根据预设的迭代结束条件,判断属性分组是否迭代完成之后,还包括:若属性分组没有完成迭代,则根据待分类数据所在聚类簇的当前中心点,以及更新后的当前第一关系矩阵和当前第二关系矩阵,更新当前第三关系矩阵。

10.根据权利要求1所述的方法,在根据更新后的当前第一关系矩阵,确定所述待分类数据的属性分组结果之后,还包括:根据预设的权重确定算法,确定待分类数据的权重;

根据所述待分类数据的权重和属性分组结果,对任一分组的待分类数据进行线性融合,得到目标数据集。

11.一种数据属性的分组装置,包括:

第三矩阵更新模块,用于根据待分类数据所在聚类簇的当前中心点、待分类数据的属性与属性组的当前第一关系矩阵,以及聚类簇与属性组的当前第二关系矩阵,更新所述聚类簇与属性的当前第三关系矩阵;

第四矩阵更新模块,用于判断当前迭代次数是否大于0,若是,则根据所述当前第一关系矩阵和当前第三关系矩阵,更新所述聚类簇与属性组的当前第四关系矩阵;

第一矩阵更新模块,用于根据所述当前第二关系矩阵、当前第三关系矩阵和当前第四关系矩阵,更新所述属性与属性组的当前第一关系矩阵;

属性分组确定模块,用于根据预设的迭代结束条件,判断属性分组是否迭代完成,若完成,则根据更新后的当前第一关系矩阵,确定所述待分类数据的属性分组结果;

其中,所述第三矩阵更新模块,具体用于:

根据如下公式确定所述聚类簇与属性的当前第三关系矩阵:;

其中,为当前第三关系矩阵, 表示任一聚类簇与任一属性之间的当前第三关系,k为聚类簇的数量,m为待分类数据的属性数量,和 为预设参数,E和 为中间参数,T为属性组的数量,n为待分类数据的数量,x为待分类数据向量,z为聚类簇的当前中心点,u表示待分类数据与聚类簇的关系,g表示待分类数据的属性与属性组的当前第一关系,表示聚类簇与属性组的当前第二关系,表示聚类簇与属性组的当前第四关系;

其中,所述第四矩阵更新模块,具体用于:

根据如下公式确定所述聚类簇与属性组的当前第四关系矩阵:;

其中,为当前第四关系矩阵。

12.一种数据属性的分组设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如权利要求1‑10中任一所述的数据属性的分组方法。

13.一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1‑10中任一所述的数据属性的分组方法。

说明书 :

一种数据属性的分组方法、装置、设备及存储介质

技术领域

[0001] 本申请实施例涉及数据处理技术,尤其涉及一种数据属性的分组方法、装置、设备及存储介质。

背景技术

[0002] 在数据挖掘领域,对数据属性进行分类,使高维数据集变为低维数据集,是一项比较重要研究任务。一些常见的贝叶斯分类器,其泛化能力较为低下,不具备应付高维数据集的能力。
[0003] 目前在提高贝叶斯分类器的泛化能力上,有隐朴素贝叶斯分类器算法、半朴素贝叶斯算法和贝叶斯网算法等,但这些算法对数据属性的分组准确率较低,在泛化性能上提升较为困难,影响对高维数据的处理能力。

发明内容

[0004] 本申请实施例提供一种数据属性的分组方法、装置、设备及存储介质,以提高对高维数据的属性分组效率和精度。
[0005] 第一方面,本申请实施例提供了一种数据属性的分组方法,该方法包括:
[0006] 根据待分类数据所在聚类簇的当前中心点、待分类数据的属性与属性组的当前第一关系矩阵,以及聚类簇与属性组的当前第二关系矩阵,更新所述聚类簇与属性的当前第三关系矩阵;
[0007] 判断当前迭代次数是否大于0,若是,则根据所述当前第一关系矩阵和当前第三关系矩阵,更新所述聚类簇与属性组的当前第四关系矩阵;
[0008] 根据所述当前第二关系矩阵、当前第三关系矩阵和当前第四关系矩阵,更新所述属性与属性组的当前第一关系矩阵;
[0009] 根据预设的迭代结束条件,判断属性分组是否迭代完成,若完成,则根据更新后的当前第一关系矩阵,确定所述待分类数据的属性分组结果。
[0010] 第二方面,本申请实施例还提供了一种数据属性的分组装置,该装置包括:
[0011] 第三矩阵更新模块,用于根据待分类数据所在聚类簇的当前中心点、待分类数据的属性与属性组的当前第一关系矩阵,以及聚类簇与属性组的当前第二关系矩阵,更新所述聚类簇与属性的当前第三关系矩阵;
[0012] 第四矩阵更新模块,用于判断当前迭代次数是否大于0,若是,则根据所述当前第一关系矩阵和当前第三关系矩阵,更新所述聚类簇与属性组的当前第四关系矩阵;
[0013] 第一矩阵更新模块,用于根据所述当前第二关系矩阵、当前第三关系矩阵和当前第四关系矩阵,更新所述属性与属性组的当前第一关系矩阵;
[0014] 属性分组确定模块,用于根据预设的迭代结束条件,判断属性分组是否迭代完成,若完成,则根据更新后的当前第一关系矩阵,确定所述待分类数据的属性分组结果。
[0015] 第三方面,本申请实施例还提供了一种数据属性的分组设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如本申请任意实施例所述的数据属性的分组方法。
[0016] 第四方面,本申请实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如本申请任意实施例所述的数据属性的分组方法。
[0017] 本申请实施例通过对待分类数据进行聚类,并对各属性进行分组,确定各聚类簇与数据属性之间的权值关系,权值越大,属性与聚类簇的相关性就越强。再根据属性与聚类簇的相关性确定属性和属性组之间的关系,进而确定待分类数据的属性分组结果。通过不断迭代,更新属性与属性组的关系,实现对高维数据集中数据属性的分类,解决了相关技术中属性分类的准确率较低的问题,提高数据处理的精度和效率。

附图说明

[0018] 图1是本申请实施例一中的一种数据属性的分组方法的流程示意图;
[0019] 图2是本申请实施例二中的一种数据属性的分组方法的流程示意图;
[0020] 图3是本申请实施例三中的一种数据属性的分组装置的结构框图;
[0021] 图4是本申请实施例四中的一种数据属性的分组设备的结构示意图。

具体实施方式

[0022] 实施例一
[0023] 图1为本申请实施例一所提供的一种数据属性的分组方法的流程示意图,本实施例可适用于将高维数据降为低维数据的情况,该方法可以由一种数据属性的分组装置来执行。如图1所示,该方法具体包括如下步骤:
[0024] 步骤110、根据待分类数据所在聚类簇的当前中心点、待分类数据的属性与属性组的当前第一关系矩阵,以及聚类簇与属性组的当前第二关系矩阵,更新聚类簇与属性的当前第三关系矩阵。
[0025] 其中,通过多次迭代对高维数据集进行属性分组,降为低维数据集,在迭代之前,对多个待分类数据进行聚类,每一个聚类簇中存在至少一个待分类数据,每个待分类数据拥有自己的数据属性。例如,将学生信息作为待分类数据,数据属性可以包括姓名、性别、成绩和年龄等。在对待分类数据进行聚类后,确定每个聚类簇的中心点,作为当前中心点。
[0026] 每次迭代前确定当前迭代次数下,待分类数据的属性与属性组的关系,将属性与属性组的关系作为第一关系,当前迭代次数的第一关系为当前第一关系。属性与属性组的第一关系包括属性在属性组内和属性不在属性组内。由当前第一关系可以生成当前第一关系矩阵,当前第一关系矩阵中的元素用于表示各属性是否在各个属性组内。若某属性在某属性组内,则第一关系由1表示;若某属性不在某属性组内,则第一关系由0表示。当前第一关系矩阵的行表示属性,列表示属性组。每一次迭代时采用的当前第一关系矩阵和当前第二关系矩阵,可以是上次迭代后产生的第一关系矩阵和第二关系矩阵,若当前迭代次数为第一次,则可以是采用预设的初始化的第一关系矩阵和第二关系矩阵。
[0027] 第二关系用于表示聚类簇与属性组之间的权值关系,由第二关系生成第二关系矩阵,当前第二关系矩阵为当前迭代次数所采用的第二关系矩阵。第二关系表示的权值越大,说明聚类簇和属性组的相关性越大。第二关系矩阵的行表示聚类簇,列表示属性组。根据聚类簇的当前中心点、当前第一关系矩阵和当前第二关系矩阵,可以确定当前迭代次下聚类簇与属性的当前第三关系矩阵,实现对本次迭代的第三关系矩阵的更新。第三关系用于表示聚类簇与属性之间的权值关系,由第三关系生成第三关系矩阵,每次迭代生成的第三关系矩阵为当前第三关系矩阵。第三关系表示的权值越大,说明属性与聚类簇的相关性就会越强。第三关系矩阵的行表示聚类簇,列表示属性。
[0028] 本实施例中,可选的,在根据待分类数据所在聚类簇的当前中心点、待分类数据的属性与属性组的当前第一关系矩阵,以及聚类簇与属性组的当前第二关系矩阵,更新聚类簇与属性的当前第三关系矩阵之前,还包括:根据预设的聚类算法,对待分类数据进行聚类,生成至少一个聚类簇;根据待分类数据的向量,以及待分类数据与聚类簇的关系,确定聚类簇的当前中心点;其中,待分类数据与聚类簇的关系包括待分类数据在聚类簇内和待分类数据不在聚类簇内。
[0029] 具体的,预先确定待分类数据的初始数据集,初始数据集中存在多种数据属性,为高维数据集。预先设置一个聚类算法,例如,可以是K‑means聚类算法。根据预设的聚类算法,对待分类数据进行聚类,使待分类数据划分到聚类簇中。可以生成至少一个聚类簇,每个聚类簇中存在至少一个待分类数据。聚类后将待分类数据划分到多个聚类簇中。设置一个聚类后的数据表,行表示聚类簇,每个聚类簇的数据为一行,设有X={x1,x2,...,xn},表示为n个行的向量,列表示为数据的属性。例如,有m个属性,则聚类后的数据表为n行m列。表1为聚类后的数据集。
[0030] 表1 聚类后待分类数据的数据集
[0031]  A1 A2 A3 A4 A5 A6 A7 A8 A9
C1 x11 x12 x13 x14 x15 x16 x17 x18 x19
C2 x21 x22 x23 x24 x25 x26 x27 x28 x29
[0032] 表1中,聚类后有两个聚类簇,分别为C1和C2,数据的属性有9个,分别为A1、A2、A3、A4、A5、A6、A7、A8和A9,x为待分类数据。确定待分类数据与各个聚类簇之间的关系,待分类数据与各个聚类簇之间的关系可以包括待分类数据在聚类簇内和待分类数据不在聚类簇内。u表示待分类数据与聚类簇之间的关系,u=1表示待分类数据在聚类簇内,u=0表示待分类数据不在聚类簇内。根据待分类数据向量,以及待分类数据与聚类簇的关系,可以确定各个聚类簇的当前中心点。可以根据如下公式确定聚类簇的当前中心点:
[0033] Z=(zlj)k×m;
[0034]
[0035] 其中,Z表示中心点矩阵,zlj表示聚类簇l的当前中心点,共有k个聚类簇,uil表示第i行待分类数据与聚类簇l的关系,uil等于0或1,xij表示第i行待分类数据在属性j下的向量值,共有m个属性,n和k可以相等。这样设置的有益效果在于,根据聚类算法对待分类数据进行聚类,可以确定各个聚类簇的中心点,便于根据中心点确定聚类簇与属性之间的权值关系,进而提高属性的分组精度。
[0036] 本实施例中,可选的,在根据待分类数据所在聚类簇的当前中心点、待分类数据的属性与属性组的当前第一关系矩阵,以及聚类簇与属性组的当前第二关系矩阵,更新聚类簇与属性的当前第三关系矩阵之前,还包括:初始化属性与属性组的当前第一关系矩阵、聚类簇与属性组的当前第二关系矩阵、聚类簇与属性的当前第三关系矩阵,以及聚类簇与属性组的当前第四关系矩阵;其中,初始的当前第一关系矩阵中的一列的值全为1,初始的当前第二关系矩阵、当前第三关系矩阵和当前第四关系矩阵为1。
[0037] 具体的,在进行属性分组的第一次迭代之前,先对当前第一关系矩阵、当前第二关系矩阵、当前第三关系矩阵和当前第四关系矩阵进行初始化,由初始化后的四个矩阵作为已知条件,开始第一次迭代。例如,将当前第二关系矩阵、当前第三关系矩阵和当前第四关系矩阵初始化为1,将属性与属性组的当前第一关系矩阵初始化为其中一列的值全为1,剩余列的值全为0,即分配所有的属性进入一个属性组。这样设置的有益效果在于,通过初始化可以开始第一次循环,在循环过程中,逐次更新四个矩阵,提高属性分组精度。
[0038] 本实施例中,可选的,根据待分类数据所在聚类簇的当前中心点、待分类数据的属性与属性组的当前第一关系矩阵,以及聚类簇与属性组的当前第二关系矩阵,更新聚类簇与属性的当前第三关系矩阵,包括:根据如下公式确定聚类簇与属性的当前第三关系矩阵:
[0039] W=(wlj)k×m;
[0040]
[0041]
[0042]
[0043] 其中,W为当前第三关系矩阵,wlj表示任一聚类簇与任一属性之间的当前第三关系,k为聚类簇的数量,m为待分类数据的属性数量,β和ε1为预设参数,E和λ为中间参数,T为属性组的数量,n为待分类数据的数量,x为待分类数据向量,z为聚类簇的当前中心点,u表示待分类数据与聚类簇的关系,g表示待分类数据的属性与属性组的当前第一关系,γ表示聚类簇与属性组的当前第二关系,v表示聚类簇与属性组的当前第四关系。
[0044] 具体的,在计算当前第三关系时,先计算Elh,再将Elh代入到λl的计算公式中,β和ε1都是预设参数。λl求出之后,作为固定值代入到wlj中,而Elj会随wlj的下标的变化而变化。W是k×m的正实数矩阵,能够满足 第三关系矩阵表示聚类簇与属性之间的权值关系,权值越大,属性与聚类簇的相关性就会越强。在第一次迭代时,计算当前第三关系矩阵所使用的g、γ和ν是初始化的值,在第一次之后的迭代时,所使用的g、γ和ν是前次迭代时生成的值。这样设置的有益效果在于,通过计算聚类簇与属性的当前第三关系矩阵,确定属性与聚类簇的相关性,进一步提高属性分组精度。
[0045] 步骤120、判断当前迭代次数是否大于0,若是,则根据当前第一关系矩阵和当前第三关系矩阵,更新聚类簇与属性组的当前第四关系矩阵。
[0046] 其中,数据的属性分组是一个迭代循环的过程,每结束一次循环,迭代次数加一。在生成当前第三关系矩阵后,判断当前迭代次数是否大于0。若当前迭代次数大于0,则根据当前第一关系矩阵和当前第三关系矩阵,确定聚类簇与属性组的当前第四关系矩阵。即根据属性与属性组之间的关系,以及聚类簇与属性之间的权值关系,确定聚类簇与属性组之间的关系。第四关系是指聚类簇与属性组之间的关系,可以用于属性组聚类分组,第四关系矩阵中的元素值相当于中心点的作用,可以表示属性组中聚类簇的中心点。例如,表1中A1、A2和A3是一个属性组,在该属性组中存在两个聚类簇,x11、x12和x13为一个聚类簇,x21、x22和x23为一个聚类簇。
[0047] 本实施例中,可选的,根据当前第一关系矩阵和当前第三关系矩阵,更新聚类簇与属性组的当前第四关系矩阵,包括:根据如下公式确定聚类簇与属性组的当前第四关系矩阵:
[0048] V=(vlt)k×T;
[0049]
[0050] 其中,V为当前第四关系矩阵。
[0051] 具体的,当前第四关系矩阵为k×T矩阵,即当前第四关系矩阵的行表示聚类簇,列表示属性组。第一次迭代时,迭代次数为0,第二次迭代时,迭代次数为1。在迭代次数为0时,计算νlt所使用的g和w为初始化的值,在第二次及之后的迭代时,所使用的g和w为前一次迭代所产生的值。这样设置的有益效果在于,通过确定聚类簇与属性组之间的关系,可以确定属性与属性组之间的关系,以及聚类簇与属性组之间的权值关系,实现对属性的分组,达到高维数据集划分为低维数据集的目的。
[0052] 本实施例中,可选的,判断当前迭代次数是否大于0,若是,则根据当前第一关系矩阵和当前第三关系矩阵,更新聚类簇与属性组的当前第四关系矩阵,还包括:若当前迭代次数等于0,则从当前第三关系矩阵选择至少一列作为当前第四关系矩阵。
[0053] 具体的,在第一次迭代时,迭代次数为0,若迭代次数为0,则不需要根据当前第一关系矩阵和当前第三关系矩阵,确定当前第四关系矩阵。可以从当前第三关系矩阵中选择T列,作为当前第四关系矩阵。当前第三关系矩阵为k×m矩阵,列的数量为属性的数量。当前第四关系矩阵为k×T矩阵,列的数量为属性组的数量。属性组的数量小于或等于属性的数量,因此,可以从当前第三关系矩阵中随机选择T列,作为第一次迭代的当前第四关系矩阵。这样设置的有益效果在于,根据当前第三关系矩阵得到第一次迭代的当前第四关系矩阵,确定属性组聚类簇的中心点,有效提高属性分组的效率和精度。
[0054] 步骤130、根据当前第二关系矩阵、当前第三关系矩阵和当前第四关系矩阵,更新属性与属性组的当前第一关系矩阵。
[0055] 其中,根据当前第二关系矩阵、当前第三关系矩阵和当前第四关系矩阵,计算得到当前第一关系矩阵,当前第一关系矩阵表示属性与属性组之间的关系。在根据当前第一关系矩阵生成当前第三关系矩阵时,采用的当前第一关系矩阵为初始的第一关系矩阵或前一次迭代产生的第一关系矩阵。在得到此次迭代所产生的当前第三关系矩阵和当前第四关系矩阵后,可以根据当前第二关系矩阵,以及此次迭代更新的当前第三关系矩阵和当前第四关系矩阵,生成此次迭代的当前第一关系矩阵。所采用的当前第二关系矩阵为初始的第二关系矩阵或前一次迭代产生的第二关系矩阵。
[0056] 本实施例中,可选的,根据当前第二关系矩阵、当前第三关系矩阵和当前第四关系矩阵,更新属性与属性组的当前第一关系矩阵,包括:根据如下公式更新当前第一关系矩阵:
[0057] G=(gjt)m×T;
[0058] 若Fjt≤Fjs,则gjt=1,否则gjt=0;t=1,2,...,T,s=1,2,...,T,s≠t;
[0059]
[0060] 其中,G为当前第一关系矩阵,F为中间参数。
[0061] 具体的,G为m×T的矩阵,行为数据的属性,列为属性组。通过G表示属性与属性组之间的关系,G中的元素只存在0和1,若属性位于属性组中,则由1表示,若属性不在属性组中,则由0表示。F是确定G的中间参数,也可以用F表示属性与属性组之间的聚类程度,即聚类距离。例如,用Fjt表示属性j与属性组t之间的聚类程度,Fjt越小,说明属性j归属于属性组t的程度就越大,聚类距离越小,即属性j与属性组t就越相关。根据当前第二关系矩阵、当前第三关系矩阵和当前第四关系矩阵,计算属性与属性组之间的聚类程度。将同一属性在不同属性组中的聚类程度值进行两两比较,例如,将属性j在属性组t中的Fjt值与属性j在属性组s中的Fjs值进行比较,若Fjt≤Fjs,则gjt=1,gjs=0;否则gjt=0,gjs=1。这样设置的有益效果在于,在迭代过程中,不断更新属性与属性组的关系,使同一组的属性之间强相关,不同组的属性之间弱相关,达到高维数据集划分为低维数据集的目的,提高属性划分的精度。
[0062] 本实施例中,可选的,在根据所述当前第二关系矩阵、当前第三关系矩阵和当前第四关系矩阵,更新所述属性与属性组的当前第一关系矩阵之后,还包括:根据当前第三关系矩阵、当前第四关系矩阵和更新后的当前第一关系矩阵,更新聚类簇与属性组的当前第二关系矩阵;根据如下公式确定聚类簇与属性组的当前第二关系矩阵:
[0063] Γ=(γlt)k×T;
[0064]
[0065]
[0066] 其中,Γ为当前第二关系矩阵,H为中间参数,ε2为预设参数。
[0067] 具体的,在得到此次迭代所产生的当前第三关系矩阵、当前第四关系矩阵和当前第一关系矩阵后,确定此次迭代的当前第二关系矩阵,所生成的当前第二关系矩阵可以在下次迭代进行使用。Γ=(γlt)k×T是关于聚类簇和属性组之间的权值关系,可以满足当前第二关系矩阵中的权值越大就表示聚类簇和属性组的相关性越大,反之则相关性越小。根据g、w和ν,可以计算得到一个属性组中每一个聚类簇的中间参数Hft,根据每一个聚类簇的中间参数Hft和该属性组中目标聚类簇l的Hlt,确定目标聚类簇与属性组的当前第二关系。根据当前第二关系,得到当前第二关系矩阵。这样设置的有益效果在于,确定聚类簇和属性组之间的权值关系,在迭代过程中逐渐提高聚类簇和属性组的相关性,进而提高属性划分的精度。
[0068] 步骤140、根据预设的迭代结束条件,判断属性分组是否迭代完成,若完成,则根据更新后的当前第一关系矩阵,确定待分类数据的属性分组结果。
[0069] 其中,在完成一次迭代后,判断循环迭代的过程是否全部结束。可以预设迭代结束条件,若当前迭代结果满足预设迭代结束条件,则停止迭代,根据本次迭代产生的当前第一关系矩阵,确定待分类数据的属性分组结果。当前迭代结果可以是指当前迭代次数,例如,当前迭代次数到达最大迭代次数,则确定当前迭代结果满足迭代结束条件。
[0070] 本实施例中,可选的,根据预设的迭代结束条件,判断属性分组是否迭代完成,包括:若当前迭代次数大于或等于预设的最大迭代次数,则确定属性分组迭代完成。
[0071] 具体的,预先设置最大迭代次数,在每次迭代结束后,将当前迭代次数与最大迭代次数进行比较。若当前迭代次数大于或等于最大迭代次数,则确定属性分组迭代完成,不再进行循环迭代。
[0072] 本实施例中,可选的,根据预设的迭代结束条件,判断属性分组是否迭代完成,还包括:根据更新后的当前第一关系矩阵、当前第二关系矩阵、当前第三关系矩阵和当前第四关系矩阵,确定当前目标函数值;若当前目标函数值与前次目标函数值的差值满足预设差值条件,则确定属性分组迭代完成。
[0073] 具体的,也可以根据每次迭代后生成的当前第一关系矩阵、当前第二关系矩阵、当前第三关系矩阵和当前第四关系矩阵,确定是否继续进行迭代。根据当前第一关系矩阵、当前第二关系矩阵、当前第三关系矩阵和当前第四关系矩阵,可以确定目标函数值。可以根据如下公式确定目标函数值:
[0074]
[0075] 其中,Q为目标函数,U为(uil)n×k矩阵,表示待分类数据与聚类簇的关系,Z为中心点矩阵,表示各聚类簇的当前中心点。W为当前第三关系矩阵,G为当前第一关系矩阵,V为当前第四关系矩阵,Γ为当前第二关系矩阵。预先设置一个差值条件,获取本次迭代的当前目标函数值和前一次迭代的前次目标函数值。若所述当前目标函数值与前次目标函数值的差值满足预设差值条件,则确定属性分组迭代全部完成。例如,预设差值条件是当前目标函数值与前次目标函数值的差值小于0.0001,若当前目标函数值与前次目标函数值的差值小于0.0001,则确定迭代结束。这样设置的有益效果在于,可以在迭代次数小于最大迭代次数时就结束迭代过程,减少迭代时间,提高属性分组的效率。
[0076] 若确定循环迭代的过程结束,则根据当前第一关系矩阵,确定属性的分组结果。当前第一关系矩阵可以表明各个属性与属性组的关系。若当前第一关系矩阵中的元素为1,则说明该元素所在行的属性存在与该元素所在列的属性组中,从而确定各属性的分组结果。
[0077] 本实施例的技术方案,通过对待分类数据进行聚类,并对各属性进行分组,确定各聚类簇与数据属性之间的权值关系,权值越大,属性与聚类簇的相关性就越强。再根据属性与聚类簇的相关性确定属性和属性组之间的关系,进而确定待分类数据的属性分组结果。通过不断迭代,更新属性与属性组的关系,实现对高维数据集中数据属性的分类,解决了相关技术中属性分类的准确率较低的问题,提高数据处理的精度和效率。
[0078] 实施例二
[0079] 图2为本申请实施例二所提供的一种数据属性的分组方法的流程示意图,本实施例以上述实施例为基础进行进一步的优化,该方法可以由一种数据属性的分组装置来执行。如图2所示,该方法具体包括如下步骤:
[0080] 步骤210、根据待分类数据所在聚类簇的当前中心点、待分类数据的属性与属性组的当前第一关系矩阵,以及聚类簇与属性组的当前第二关系矩阵,更新聚类簇与属性的当前第三关系矩阵。
[0081] 步骤220、判断当前迭代次数是否大于0,若是,则根据当前第一关系矩阵和当前第三关系矩阵,更新聚类簇与属性组的当前第四关系矩阵。
[0082] 步骤230、根据当前第二关系矩阵、当前第三关系矩阵和当前第四关系矩阵,更新属性与属性组的当前第一关系矩阵。
[0083] 步骤240、根据当前第三关系矩阵、当前第四关系矩阵和更新后的当前第一关系矩阵,更新聚类簇与属性组的当前第二关系矩阵。
[0084] 步骤250、根据预设的迭代结束条件,判断属性分组是否迭代完成,若完成,则根据更新后的当前第一关系矩阵,确定待分类数据的属性分组结果。
[0085] 其中,根据预设的迭代结束条件,判断属性分组是否完成迭代,例如,预设的迭代结束条件是当前迭代次数到达最大迭代次数。若当前迭代次数没有到达最大迭代次数,则确定属性分组没有完成迭代。或者,预设的迭代结束条件是当前目标函数值与前次目标函数值的差值满足预设差值条件,例如,当前目标函数值与前次目标函数值的差值小于0.0001,若当前目标函数值与前次目标函数值的差值大于或等于0.0001,则确定属性分组没有完成迭代,要继续进行计算。
[0086] 本实施例中,可选的,在根据预设的迭代结束条件,判断属性分组是否迭代完成之后,还包括:若属性分组没有完成迭代,则根据待分类数据所在聚类簇的当前中心点,以及更新后的当前第一关系矩阵和当前第二关系矩阵,更新当前第三关系矩阵。
[0087] 具体的,若确定属性分组没有完成迭代,则从步骤210开始新一轮次的迭代过程,根据本轮次更新的当前第一关系矩阵和当前第二关系矩阵,以及各聚类簇的当前中心点,更新下一轮次的当前第三关系矩阵。根据下一轮次的当前第三关系矩阵和本轮次的当前第一关系矩阵,更新下一轮次的当前第四关系矩阵。根据下一轮次的当前第三关系矩阵和当前第四关系矩阵,以及本轮次的当前第二关系矩阵,确定下一轮次的当前第一关系矩阵,从而确定属性的分组结果。这样设置的有益效果在于,不断循环进行属性分组,直至满足迭代结束条件,实现对属性组的自动划分,达到高维数据集划分为低维数据集的目的。
[0088] 步骤260、根据预设的权重确定算法,确定待分类数据的权重;根据待分类数据的权重和属性分组结果,对任一分组的待分类数据进行线性融合,得到目标数据集。
[0089] 其中,在根据当前第一关系矩阵,确定各属性所在的属性组之后,可以对各个属性组内的属性进行线性融合,得到低维的目标数据集。属性分组被确定后,由于同组属性之间的相关性较强,一个属性组中的属性具备着融合成一个属性的较强能力。因此,可以采用预设的权重确定算法,对同一组之间的属性进行线性权重赋比,将同一组中的属性融合成一个属性,同组中不同聚类簇的属性也需要不同的权重进行赋比。预设的权重确定算法可以是随机确定属性的权重。
[0090] 也就是说,为了能够使同组属性进行融合,需要有权重来衡量其融合的效果,其中,同组中的每个属性可以有不同的权重,不同组的属性之间也可以有不同的权重,同组不同簇的权重也会不同。因此,需要权重的数量为w权重=k×m,k为聚类簇的数量,m为属性的数量。为了达到线性融合情况,可以令w1+w2+...+wk×m=1。表1中设定有9个属性和2个聚类簇,为此,w权重=2×9=18,有18个权重数量,且w1+w2+...+w18=1。可以随机确定权重,将得到的随机权重进行乘积,可以得到表2。表2为权重与待分类数据的乘积结果数据表。
[0091] 表2 权重与待分类数据的乘积结果数据表
[0092]   A1 A2 A3 A4 A5 A6 A7 A8 A9C1 x11·w1 x12·w2 x13·w3 x14·w4 x15·w5 x16·w6 x17·w7 x18·w8 x19·w9
C2 x21·w10 x22·w11 x23·w12 x24·w13 x25·w14 x26·w15 x27·w16 x28·w17 x29·w18[0093] 其中,在得到各个待分类数据与权重的乘积结果后,可以根据当前第一关系矩阵,将同一属性组中同一聚类簇的属性进行线性融合,得到低维的目标数据集。例如,对于表2中的9个属性,属性分类后,划分有3个属性组。A1、A4、A7和A9为第一个属性组,A2、A3和A5为第二个属性组,A6和A8为第三个属性组。表3为待分类数据的线性融合数据表。
[0094] 表3 待分类数据的线性融合数据表
[0095]
[0096]
[0097] 属性组融合后重新组成的属性具备着以前属性的特性,在不更改样本行的情况下,目标数据集的聚类簇与原始数据集的聚类簇相互对应,由于这个目标数据集的属性数量变少,达到了数据集由高维变低维的目的。可以在属性数量小于50时,设定属性组数量为3。在更高维的属性数据集中,可以设定更大的属性组值来进行更加精细的分组。因此高维属性需要较大的属性组的数量值,较低维的属性往往需要3个属性组就可以达到优化效果。
[0098] 可以通过特定算法确定各个属性的权重,由于属性权重有随机的效果,因此,可以采用粒子群优化算法确定最优权重。可以从较多的随机权重中找到最优解,确定最优融合权重并且构造相应的朴素贝叶斯分类器,从而获得更高的分类准确度和很好的高维数据集的适应性。
[0099] 本申请实施例通过对待分类数据进行聚类,并对各属性进行分组,确定各聚类簇与数据属性之间的权值关系,权值越大,属性与聚类簇的相关性就越强。再根据属性与聚类簇的相关性确定属性和属性组之间的关系,进而确定待分类数据的属性分组结果。通过不断迭代,更新属性与属性组的关系,实现对高维数据集中数据属性的分类。在属性分类后,对属性组进行线性融合,确定低维的目标数据集。解决了相关技术中属性分类的准确率较低的问题,实现了通过分类将高维数据降为低维数据,提高数据处理的精度和效率。
[0100] 实施例三
[0101] 图3为本申请实施例三所提供的一种数据属性的分组装置的结构示意图,可执行本申请任意实施例所提供的一种数据属性的分组方法,具备执行方法相应的功能模块和有益效果。如图3所示,该装置具体包括:
[0102] 第三矩阵更新模块301,用于根据待分类数据所在聚类簇的当前中心点、待分类数据的属性与属性组的当前第一关系矩阵,以及聚类簇与属性组的当前第二关系矩阵,更新所述聚类簇与属性的当前第三关系矩阵;
[0103] 第四矩阵更新模块302,用于判断当前迭代次数是否大于0,若是,则根据所述当前第一关系矩阵和当前第三关系矩阵,更新所述聚类簇与属性组的当前第四关系矩阵;
[0104] 第一矩阵更新模块303,用于根据所述当前第二关系矩阵、当前第三关系矩阵和当前第四关系矩阵,更新所述属性与属性组的当前第一关系矩阵;
[0105] 属性分组确定模块304,用于根据预设的迭代结束条件,判断属性分组是否迭代完成,若完成,则根据更新后的当前第一关系矩阵,确定所述待分类数据的属性分组结果。
[0106] 可选的,该装置还包括:
[0107] 聚类簇生成模块,用于在根据待分类数据所在聚类簇的当前中心点、待分类数据的属性与属性组的当前第一关系矩阵,以及聚类簇与属性组的当前第二关系矩阵,更新所述聚类簇与属性的当前第三关系矩阵之前,根据预设的聚类算法,对待分类数据进行聚类,生成至少一个聚类簇;
[0108] 中心点确定模块,用于根据待分类数据的向量,以及所述待分类数据与聚类簇的关系,确定所述聚类簇的当前中心点;其中,所述待分类数据与聚类簇的关系包括待分类数据在聚类簇内和待分类数据不在聚类簇内。
[0109] 可选的,该装置还包括:
[0110] 矩阵初始化模块,用于在根据待分类数据所在聚类簇的当前中心点、待分类数据的属性与属性组的当前第一关系矩阵,以及聚类簇与属性组的当前第二关系矩阵,更新所述聚类簇与属性的当前第三关系矩阵之前,初始化属性与属性组的当前第一关系矩阵、聚类簇与属性组的当前第二关系矩阵、聚类簇与属性的当前第三关系矩阵,以及聚类簇与属性组的当前第四关系矩阵;其中,初始的当前第一关系矩阵中的一列的值全为1,初始的当前第二关系矩阵、当前第三关系矩阵和当前第四关系矩阵为1。
[0111] 可选的,第三矩阵更新模块301,具体用于:
[0112] 根据如下公式确定所述聚类簇与属性的当前第三关系矩阵:
[0113] W=(wlj)k×m;
[0114]
[0115]
[0116]
[0117] 其中,W为当前第三关系矩阵,wlj表示任一聚类簇与任一属性之间的当前第三关系,k为聚类簇的数量,m为待分类数据的属性数量,β和ε1为预设参数,E和λ为中间参数,T为属性组的数量,n为待分类数据的数量,x为待分类数据向量,z为聚类簇的当前中心点,u表示待分类数据与聚类簇的关系,g表示待分类数据的属性与属性组的当前第一关系,γ表示聚类簇与属性组的当前第二关系,v表示聚类簇与属性组的当前第四关系。
[0118] 可选的,第四矩阵更新模块302,具体用于:
[0119] 根据如下公式确定所述聚类簇与属性组的当前第四关系矩阵:
[0120] V=(vlt)k×T;
[0121]
[0122] 其中,V为当前第四关系矩阵。
[0123] 可选的,第四矩阵更新模块302,还具体用于:
[0124] 若当前迭代次数等于0,则从当前第三关系矩阵选择至少一列作为当前第四关系矩阵。
[0125] 可选的,第一矩阵更新模块303,具体用于:
[0126] 根据如下公式更新当前第一关系矩阵:
[0127] G=(gjt)m×T;
[0128] 若Fjt≤Fjs,则gjt=1,否则gjt=0;t=1,2,...,T,s=1,2,...,T,s≠t;
[0129]
[0130] 其中,G为当前第一关系矩阵,F为中间参数。
[0131] 可选的,该装置还包括:
[0132] 第二矩阵更新模块,用于在根据所述当前第二关系矩阵、当前第三关系矩阵和当前第四关系矩阵,更新所述属性与属性组的当前第一关系矩阵之后,根据所述当前第三关系矩阵、当前第四关系矩阵和更新后的当前第一关系矩阵,更新所述聚类簇与属性组的当前第二关系矩阵;根据如下公式确定所述聚类簇与属性组的当前第二关系矩阵:
[0133] Γ=(γlt)k×T;
[0134]
[0135]
[0136] 其中,Γ为当前第二关系矩阵,H为中间参数,ε2为预设参数。
[0137] 可选的,属性分组确定模块304,包括:
[0138] 迭代次数比较单元,用于若当前迭代次数大于或等于预设的最大迭代次数,则确定属性分组迭代完成。
[0139] 可选的,属性分组确定模块304,还包括:
[0140] 目标函数确定单元,用于根据更新后的当前第一关系矩阵、当前第二关系矩阵、当前第三关系矩阵和当前第四关系矩阵,确定当前目标函数值;
[0141] 目标函数比较单元,用于若所述当前目标函数值与前次目标函数值的差值满足预设差值条件,则确定属性分组迭代完成。
[0142] 可选的,该装置还包括:
[0143] 第三矩阵二次更新模块,用于在根据预设的迭代结束条件,判断属性分组是否迭代完成之后,若属性分组没有完成迭代,则根据待分类数据所在聚类簇的当前中心点,以及更新后的当前第一关系矩阵和当前第二关系矩阵,更新当前第三关系矩阵。
[0144] 可选的,该装置还包括:
[0145] 权重确定模块,用于根据预设的权重确定算法,确定待分类数据的权重;
[0146] 属性融合模块,用于根据所述待分类数据的权重和属性分组结果,对任一分组的待分类数据进行线性融合,得到目标数据集。
[0147] 本申请实施例通过对待分类数据进行聚类,并对各属性进行分组,确定各聚类簇与数据属性之间的权值关系,权值越大,属性与聚类簇的相关性就越强。再根据属性与聚类簇的相关性确定属性和属性组之间的关系,进而确定待分类数据的属性分组结果。通过不断迭代,更新属性与属性组的关系,实现对高维数据集中数据属性的分类,解决了相关技术中属性分类的准确率较低的问题,提高数据处理的精度和效率。
[0148] 实施例四
[0149] 图4是本申请实施例四提供的一种数据属性的分组设备的结构示意图。数据属性的分组设备可以是一种计算机设备,图4示出了适于用来实现本申请实施方式的示例性计算机设备400的框图。图4显示的计算机设备400仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
[0150] 如图4所示,计算机设备400以通用计算设备的形式表现。计算机设备400的组件可以包括但不限于:一个或者多个处理器或者处理单元401,系统存储器402,连接不同系统组件(包括系统存储器402和处理单元401)的总线403。
[0151] 总线403表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
[0152] 计算机设备400典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备400访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
[0153] 系统存储器402可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)404和/或高速缓存存储器405。计算机设备400可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统406可以用于读写不可移动的、非易失性磁介质(图4未显示,通常称为“硬盘驱动器”)。尽管图4中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD‑ROM,DVD‑ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线403相连。存储器402可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本申请各实施例的功能。
[0154] 具有一组(至少一个)程序模块407的程序/实用工具408,可以存储在例如存储器402中,这样的程序模块407包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块407通常执行本申请所描述的实施例中的功能和/或方法。
[0155] 计算机设备400也可以与一个或多个外部设备409(例如键盘、指向设备、显示器410等)通信,还可与一个或者多个使得用户能与该计算机设备400交互的设备通信,和/或与使得该计算机设备400能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口411进行。并且,计算机设备
400还可以通过网络适配器412与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图4所示,网络适配器412通过总线403与计算机设备400的其它模块通信。应当明白,尽管图4中未示出,可以结合计算机设备400使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
[0156] 处理单元401通过运行存储在系统存储器402中的程序,从而执行各种功能应用以及数据处理,例如实现本申请实施例所提供的一种数据属性的分组方法,包括:
[0157] 根据待分类数据所在聚类簇的当前中心点、待分类数据的属性与属性组的当前第一关系矩阵,以及聚类簇与属性组的当前第二关系矩阵,更新所述聚类簇与属性的当前第三关系矩阵;
[0158] 判断当前迭代次数是否大于0,若是,则根据所述当前第一关系矩阵和当前第三关系矩阵,更新所述聚类簇与属性组的当前第四关系矩阵;
[0159] 根据所述当前第二关系矩阵、当前第三关系矩阵和当前第四关系矩阵,更新所述属性与属性组的当前第一关系矩阵;
[0160] 根据预设的迭代结束条件,判断属性分组是否迭代完成,若完成,则根据更新后的当前第一关系矩阵,确定所述待分类数据的属性分组结果。
[0161] 实施例五
[0162] 本申请实施例五还提供一种包含计算机可执行指令的存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请实施例所提供的一种数据属性的分组方法,包括:
[0163] 根据待分类数据所在聚类簇的当前中心点、待分类数据的属性与属性组的当前第一关系矩阵,以及聚类簇与属性组的当前第二关系矩阵,更新所述聚类簇与属性的当前第三关系矩阵;
[0164] 判断当前迭代次数是否大于0,若是,则根据所述当前第一关系矩阵和当前第三关系矩阵,更新所述聚类簇与属性组的当前第四关系矩阵;
[0165] 根据所述当前第二关系矩阵、当前第三关系矩阵和当前第四关系矩阵,更新所述属性与属性组的当前第一关系矩阵;
[0166] 根据预设的迭代结束条件,判断属性分组是否迭代完成,若完成,则根据更新后的当前第一关系矩阵,确定所述待分类数据的属性分组结果。
[0167] 本申请实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是,但不限于:电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD‑ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0168] 计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0169] 计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
[0170] 可以以一种或多种程序设计语言或其组合来编写用于执行本申请操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。