CN117493920A - 一种数据分类方法及装置 - Google Patents
一种数据分类方法及装置 Download PDFInfo
- Publication number
- CN117493920A CN117493920A CN202311553727.8A CN202311553727A CN117493920A CN 117493920 A CN117493920 A CN 117493920A CN 202311553727 A CN202311553727 A CN 202311553727A CN 117493920 A CN117493920 A CN 117493920A
- Authority
- CN
- China
- Prior art keywords
- cluster
- clustering
- feature
- nodes
- split
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 89
- 230000008569 process Effects 0.000 claims abstract description 33
- 238000003860 storage Methods 0.000 claims abstract description 31
- 238000012545 processing Methods 0.000 claims description 51
- 230000002776 aggregation Effects 0.000 claims description 7
- 238000004220 aggregation Methods 0.000 claims description 7
- 238000011282 treatment Methods 0.000 claims description 7
- 238000013461 design Methods 0.000 description 32
- 238000010276 construction Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 9
- 238000004590 computer program Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000008859 change Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000006386 memory function Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/243—Classification techniques relating to the number of classes
- G06F18/24323—Tree-organised classifiers
Landscapes
- Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种数据分类方法及装置,用以避免数据分类过程中内存溢出,或者内存未充分利用的问题。方法包括:获取待分类数据;待分类数据包括具有多维度属性值的多个数据点;对于每个数据点,依次选取下一层节点中与数据点距离最近的节点,直至选取到与数据点距离最近的第一叶节点;基于第一聚类原则确定数据点在第一叶节点中对应的第一聚类特征,并基于数据点更新第一聚类特征所在路径上各节点的聚类特征;其中,第一聚类原则为在数据点加入聚类特征对应的簇后,簇的半径小于等于半径阈值;半径阈值的取值由聚类特征树中已生成的聚类特征的个数、存储空间中可容纳的聚类特征的最大个数、聚类特征树中已分类的数据点的个数以及需分类的数据点的总数确定。
Description
技术领域
本申请涉及数据分析处理技术领域,尤其涉及一种数据分类方法及装置。
背景技术
在大数据时代,经常会有对海量数据进行分类的场景,比如在供应链的运营活动中,需要将海量的客户划分为有特征区别的细分群体,从而可以在运营活动中为这些细分群体采取精细化、个性化的运营和服务,最终提升运营的效率和商业效果。
目前,当需要分类的数据量较多时,可以通过构建聚类特征树来实现对大规模数据的聚类。但由于聚类特征树的聚类特征存储在内存中,且每个聚类特征的大小是固定的。也就是说,内存中存储的聚类特征个数是固定的。因此,现有的构建聚类特征树来进行分类的方法容易导致内存问题,内存问题包括内存溢出,或者内存未充分利用的问题。
因此,目前亟需一种方案,用以避免数据分类过程中内存溢出,或者内存未充分利用的问题。
发明内容
本申请提供一种数据分类方法及装置,用以避免数据分类过程中内存溢出,或者内存未充分利用的问题。
第一方面,本申请提供一种数据分类方法,该方法包括:获取待分类数据;所述待分类数据包括具有多维度属性值的多个数据点;对于每个数据点,从聚类特征树的根节点开始,依次选取下一层节点中与所述数据点距离最近的节点,直至选取到与所述数据点距离最近的第一叶节点;基于第一聚类原则确定所述数据点在所述第一叶节点中对应的第一聚类特征,并基于所述数据点更新所述第一聚类特征所在路径上各节点的聚类特征;其中,所述聚类特征树中每个节点具有至少一个聚类特征;任一聚类特征为所属簇内成员的代表特征;所述第一聚类原则为在数据点加入聚类特征对应的簇后,簇的半径小于等于半径阈值;所述半径阈值的取值由所述聚类特征树中已生成的聚类特征的个数、存储空间中可容纳的聚类特征的最大个数、所述聚类特征树中已分类的数据点的个数以及需分类的数据点的总数确定。
上述技术方案中,在将数据点加入聚类特征树时,根据数据点加入聚类特征对应的簇后簇的半径是否小于等于半径阈值,来判断数据点具体加入到那个聚类特征中,其中,半径阈值的取值根据聚类特征树中已生成的聚类特征的个数、存储空间中可容纳的聚类特征的最大个数、所述聚类特征树中已分类的数据点的个数以及需分类的数据点的总数动态调整,可以避免分类过程中内存溢出,或者内存未充分利用的问题,从而在固定内存资源的情况下,提升对数据的分类效率。
在一种可能的设计中,所述半径阈值的取值由所述聚类特征树中已生成的聚类特征的个数、存储空间中可容纳的聚类特征的最大个数、所述聚类特征树中已分类的数据点的个数以及需分类的数据点的总数确定,包括:基于所述聚类特征树中已生成的聚类特征的个数和存储空间中可容纳的聚类特征的最大个数,确定第一关系;基于所述聚类特征树中已分类的数据点的个数以及需分类的数据点的总数,确定第二关系;根据预设的最小半径阈值、预设的最大半径阈值、所述第一关系和所述第二关系,确定所述半径阈值的取值。
上述技术方案中,第一关系表征聚类特征树的构建进度,第二关系表征已处理的数据点的进度。本申请不设置唯一的半径阈值,而是预先设置最大半径阈值和最小半径阈值,在分类过程中,根据聚类特征树的构建进度和已处理的数据点的进度的关系,动态调整实际使用的半径阈值,可以避免分类过程中内存溢出,或者内存未充分利用的问题,从而在固定内存资源的情况下,提升对数据的分类效率。
在一种可能的设计中,所述方法还包括:若确定所述第一叶节点中不存在满足所述第一聚类原则的第一聚类特征,则在所述第一叶节点中创建第二聚类特征,将所述数据点加入到所述第二聚类特征中。
上述技术方案中,在将数据点加入聚类特征树时,若数据点加入各聚类特征对应的簇后簇的半径均大于半径阈值,则表明该数据点与已有的聚类特征均不相似,需要创建新的聚类特征,并将该数据点加入新的聚类特征中。其中,半径阈值的取值根据聚类特征树中已生成的聚类特征的个数、存储空间中可容纳的聚类特征的最大个数、所述聚类特征树中已分类的数据点的个数以及需分类的数据点的总数动态调整,可以避免分类过程中内存溢出,或者内存未充分利用的问题,从而在固定内存资源的情况下,提升对数据的分类效率。
在一种可能的设计中,所述将所述数据点加入到所述第二聚类特征中之后,还包括:判断所述第一叶节点中聚类特征的个数是否小于等于第一设定阈值;所述第一设定阈值为所述聚类特征树的叶节点中可以容纳的聚类特征的最大个数;若是,则更新所述第二聚类特征所在路径上的聚类特征;否则,对所述第一叶节点进行分裂处理。
上述技术方案中,预先设定聚类特征树的叶节点可以容纳的聚类特征的最大个数,对于聚类特征个数大于第一设定阈值的叶节点进行分裂,以平衡聚类特征树的结构。
在一种可能的设计中,所述对所述第一叶节点进行分裂处理之后,还包括:判断所述第一叶节点的上层节点中聚类特征个数是否小于等于第二设定阈值;所述第二设定阈值为所述聚类特征树的枝节点及根节点中可以容纳的聚类特征的最大个数;若是,则更新所述第二聚类特征所在路径上的聚类特征;否则,对所述上层节点进行分裂处理,直至所述聚类特征树的根节点分裂。
上述技术方案中,除预先设定聚类特征树的叶节点可以容纳的聚类特征的最大个数外,还预先设定有聚类特征树的枝节点及根节点中可以容纳的聚类特征的最大个数,若分裂后的节点的上层节点中聚类特征个数也大于第二设定阈值,则依次对于聚类特征个数大于第二设定阈值的上层节点进行分裂,以平衡聚类特征树的结构。
在一种可能的设计中,所述进行分裂处理,包括:在第一次重新聚类时,将待分裂节点中距离最远的两个聚类特征的质心分别作为所述待分裂节点分裂后的两个节点的第一聚类中心;根据待分裂节点中各聚类特征的质心与所述分裂后的两个节点的第一聚类中心的距离,将所述各聚类特征归集到距离最近的分裂后的节点中;在第N次重新聚类时,将第N-1次重新聚类的两个分裂后的节点的质心分别作为分裂后的两个节点的第二聚类中心,根据待分裂节点中各聚类特征的质心与分裂后的两个节点的第二聚类中心的距离,将各聚类特征归集到距离最近的分裂后的节点中;直至第N次重新聚类的两个分裂后的节点的质心与第N-1次重新聚类的两个分裂后的节点的质心一致,则分裂处理结束。
上述技术方案中,在对节点进行分裂处理时,相比于直接选取聚类最远的两个聚类特征进行分类,多次聚类的方法性能更好,分裂的结果更加精确,使用多次聚类方法可以更准确地把各聚类特征归集到分裂后的两个节点中。
在一种可能的设计中,在第一次重新聚类之前,还包括:判断所述待分裂节点中聚类特征的个数是否大于第三设定阈值;所述方法还包括:若所述待分裂节点中聚类特征的个数小于等于第三设定阈值,则选取所述待分裂节点中距离最远的两个聚类特征;将所述两个聚类特征的质心分别作为所述待分裂节点分裂后的两个节点的质心;根据待分裂节点中各聚类特征的质心与所述分裂后的两个节点的质心的距离,将所述各聚类特征归集到距离最近的分裂后的节点中。
上述技术方案中,如果待分类节点中的聚类特征个数小于等于第三设定阈值,说明该节点中聚类特征个数较少,使用一次聚类方法便可以准确地把各聚类特征归集到分裂后的两个节点中;如果待分类节点中的聚类特征个数大于第三设定阈值,说明该节点中聚类特征个数较多,使用多次聚类方法可以更准确地把各聚类特征归集到分裂后的两个节点中。
在一种可能的设计中,所述进行分裂处理之后,还包括:若确定与分裂后的节点处于同层的节点中,存在满足第二聚类原则的节点,则将所述分裂后的节点与所述满足所述第二聚类原则的节点合并,更新存在变化的聚类特征;所述第二聚类原则为将所述分裂后的节点与处于同层的节点合并后,簇的半径小于等于所述半径阈值。
上述技术方案中,在对节点进行分裂处理后,若分裂后的节点与同层的其它节点合并后的簇的半径小于等于半径阈值,则将这两个节点进行合并,可以使聚类特征树的结构更紧凑,增加数据分类的准确性。
在一种可能的设计中,所述待分类数据为设定数量的数据点;所述方法还包括:将所述待分类数据的各数据点分类后,将所述聚类特征树的叶节点中数据点数量小于第四设定阈值的聚类特征确定为所述聚类特征树的离群点;删除所述离群点;所述设定数量的数据点根据设定的离群点处理总次数以及所述需分类的数据点的总数确定;所述第四设定阈值根据设定的离群点边界数量、当前的离群点处理次数以及所述设定的离群点处理总次数确定。
上述技术方案中,在聚类特征树生成的过程中,每将设定数量的数据点进行分类后,便对聚类特征树进行一次离群点删除操作,即将聚类特征树中数据点小于第四阈值的聚类特征作为离群点删除,且第四聚类特征是根据聚类特征树的构建进度动态调整的,相比与聚类特征树构建完成后再删除离群点,在聚类特征树的构建过程中逐次删除离群点,可以将离群点提前排除,减少离群点在后续过程的无效计算,避免了计算资源的浪费,提升了数据分类效率。
在一种可能的设计中,所述根据预设的最小半径阈值、预设的最大半径阈值、所述第一关系和所述第二关系,确定所述半径阈值的取值,包括:若所述第一关系的值大于等于所述第二关系的值,则所述半径阈值取所述预设的最大半径阈值;若所述第一关系的值小于所述第二关系的值,则所述半径阈值取所述预设的最小半径阈值。
上述技术方案中,第一关系表征聚类特征树的构建进度,第二关系表征已处理的数据点的进度。若第一关系的值大于等于第二关系的值,表示已处理的数据点的进度小于聚类特征树的构建进度,说明存在内存溢出的风险,此时需要将半径阈值调大,即半径阈值取预设的最大半径阈值;若第一关系的值小于第二关系的值,表示已处理的数据点的进度大于聚类特征树的构建进度,说明可能存在内存未充分利用的问题,此时需要将半径阈值调小,即半径阈值取预设的最小半径阈值。进而避免分类过程中内存溢出,或者内存未充分利用的问题。
在一种可能的设计中,所述根据预设的最小半径阈值、预设的最大半径阈值、所述第一关系和所述第二关系,确定所述半径阈值的取值,包括:所述半径阈值通过如下公式计算:
其中,Tmax为所述预设的最大半径阈值;Tmin为所述预设的最小半径阈值;为所述第一关系,Cnow为所述聚类特征树中已生成的聚类特征的个数;Ctotal为所述存储空间中可容纳的聚类特征的最大个数;/>为所述第二关系,Nnow为所述聚类特征树中已分类的数据点的个数;Ntotal为所述需分类的数据点的总数。
上述技术方案中,半径阈值的取值根据聚类特征树的构建进度以及已处理的数据点的进度的差值,更精确地在预设的最小半径阈值和最大半径阈值内动态调整,可以避免分类过程中内存溢出,或者内存未充分利用的问题。
第二方面,本申请实施例提供一种数据分类装置,该装置包括:
获取模块,用于获取待分类数据;所述待分类数据包括具有多维度属性值的多个数据点;
处理模块,用于对于每个数据点,从聚类特征树的根节点开始,依次选取下一层节点中与所述数据点距离最近的节点,直至选取到与所述数据点距离最近的第一叶节点;基于第一聚类原则确定所述数据点在所述第一叶节点中对应的第一聚类特征,并基于所述数据点更新所述第一聚类特征所在路径上各节点的聚类特征;
其中,所述聚类特征树中每个节点具有至少一个聚类特征;任一聚类特征为所属簇内成员的代表特征;所述第一聚类原则为在数据点加入聚类特征对应的簇后,簇的半径小于等于半径阈值;所述半径阈值的取值由所述聚类特征树中已生成的聚类特征的个数、存储空间中可容纳的聚类特征的最大个数、所述聚类特征树中已分类的数据点的个数以及需分类的数据点的总数确定。
在一种可能的设计中,所述处理模块,还用于基于所述聚类特征树中已生成的聚类特征的个数和存储空间中可容纳的聚类特征的最大个数,确定第一关系;基于所述聚类特征树中已分类的数据点的个数以及需分类的数据点的总数,确定第二关系;根据预设的最小半径阈值、预设的最大半径阈值、所述第一关系和所述第二关系,确定所述半径阈值的取值。
在一种可能的设计中,所述处理模块,还用于若确定所述第一叶节点中不存在满足所述第一聚类原则的第一聚类特征,则在所述第一叶节点中创建第二聚类特征,将所述数据点加入到所述第二聚类特征中。
在一种可能的设计中,在将所述数据点加入到所述第二聚类特征中之后,所述处理模块,还用于判断所述第一叶节点中聚类特征的个数是否小于等于第一设定阈值;所述第一设定阈值为所述聚类特征树的叶节点中可以容纳的聚类特征的最大个数;若是,则更新所述第二聚类特征所在路径上的聚类特征;否则,对所述第一叶节点进行分裂处理。
在一种可能的设计中,在对所述第一叶节点进行分裂处理之后,所述处理模块,还用于判断所述第一叶节点的上层节点中聚类特征个数是否小于等于第二设定阈值;所述第二设定阈值为所述聚类特征树的枝节点及根节点中可以容纳的聚类特征的最大个数;若是,则更新所述第二聚类特征所在路径上的聚类特征;否则,对所述上层节点进行分裂处理,直至所述聚类特征树的根节点分裂。
在一种可能的设计中,在进行分裂处理时,所述处理模块,具体用于在第一次重新聚类时,将待分裂节点中距离最远的两个聚类特征的质心分别作为所述待分裂节点分裂后的两个节点的第一聚类中心;根据待分裂节点中各聚类特征的质心与所述分裂后的两个节点的第一聚类中心的距离,将所述各聚类特征归集到距离最近的分裂后的节点中;在第N次重新聚类时,将第N-1次重新聚类的两个分裂后的节点的质心分别作为分裂后的两个节点的第二聚类中心,根据待分裂节点中各聚类特征的质心与分裂后的两个节点的第二聚类中心的距离,将各聚类特征归集到距离最近的分裂后的节点中;直至第N次重新聚类的两个分裂后的节点的质心与第N-1次重新聚类的两个分裂后的节点的质心一致,则分裂处理结束。
在一种可能的设计中,在第一次重新聚类之前,所述处理模块,还用于判断所述待分裂节点中聚类特征的个数是否大于第三设定阈值;若所述待分裂节点中聚类特征的个数小于等于第三设定阈值,则选取所述待分裂节点中距离最远的两个聚类特征;将所述两个聚类特征的质心分别作为所述待分裂节点分裂后的两个节点的质心;根据待分裂节点中各聚类特征的质心与所述分裂后的两个节点的质心的距离,将所述各聚类特征归集到距离最近的分裂后的节点中。
在一种可能的设计中,在进行分裂处理之后,所述处理模块,还用于若确定与分裂后的节点处于同层的节点中,存在满足第二聚类原则的节点,则将所述分裂后的节点与所述满足所述第二聚类原则的节点合并,更新存在变化的聚类特征;所述第二聚类原则为将所述分裂后的节点与处于同层的节点合并后,簇的半径小于等于所述半径阈值。
在一种可能的设计中,所述待分类数据为设定数量的数据点;所述处理模块,还用于将所述待分类数据的各数据点分类后,将所述聚类特征树的叶节点中数据点数量小于第四设定阈值的聚类特征确定为所述聚类特征树的离群点;删除所述离群点;所述设定数量的数据点根据设定的离群点处理总次数以及所述需分类的数据点的总数确定;所述第四设定阈值根据设定的离群点边界数量、当前的离群点处理次数以及所述设定的离群点处理总次数确定。
在一种可能的设计中,在根据预设的最小半径阈值、预设的最大半径阈值、所述第一关系和所述第二关系,确定所述半径阈值的取值时,所述处理模块,具体用于若所述第一关系的值大于等于所述第二关系的值,则所述半径阈值取所述预设的最大半径阈值;若所述第一关系的值小于所述第二关系的值,则所述半径阈值取所述预设的最小半径阈值。
在一种可能的设计中,在根据预设的最小半径阈值、预设的最大半径阈值、所述第一关系和所述第二关系,确定所述半径阈值的取值时,所述处理模块,具体用于通过如下公式计算所述半径阈值:
其中,Tmax为所述预设的最大半径阈值;Tmin为所述预设的最小半径阈值;为所述第一关系,Cnow为所述聚类特征树中已生成的聚类特征的个数;Ctotal为所述存储空间中可容纳的聚类特征的最大个数;/>为所述第二关系,Nnow为所述聚类特征树中已分类的数据点的个数;Ntotal为所述需分类的数据点的总数。
第三方面,本申请实施例还提供一种计算设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行如第一方面的任一种可能的设计中所述的方法。
第四方面,本申请实施例还提供一种计算机可读存储介质,其中存储有计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得上述第一方面的任一种可能的设计中所述的方法实现。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种数据分类方法的流程示意图;
图2为本申请实施例提供的一种将数据点加入聚类特征树的流程示意图;
图3为本申请实施例提供的一种数据分类装置的结构示意图;
图4为本申请实施例提供的一种计算设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在本申请的实施例中,多个是指两个或两个以上。“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
下面介绍一下一种使用聚类特征树(CF树)对数据进行分类的具体流程:
第一部分,定义相关参数:
定义数据点,可以根据客户的年龄、年收入、贷款额度这三个维度的数据属性进行定义。即数据点(x,y,z)中,x为客户的年龄、y为客户的收入、z为客户的贷款额度。
定义内部节点最大的CF数B。
定义叶子节点最大的CF数L。
定义CF的最大半径(方差)T。
定义离群点的边界个数D。
第二部分,创建CF树具体包括以下步骤:
步骤a、对于每一个数据点,从根节点开始,选取最近的节点,直到叶节点为止。
当是初始的数据点时,数据点默认选取根节点。
最近的节点的判断:使用叶节点对应的CF的LS计算出的质心同数据点进行距离计算,可以使用欧式距离计算公式
步骤b、在叶节点中,查找T范围内的CF。
判断是否是T范围内的CF的方法为,假设该数据点加入到CF,计算加入后的CF的半径,如半径小于等于T,则在T范围内。
当是初始数据点时,不查找,直接使用初始数据点创建新的CF。
步骤c、判断是否找到了T范围内的CF。
如有,则将数据点加入该CF,加入后,从叶节点开始,自下而上更新该路径上所有的CF。如没有,则使用该数据点新建CF。
步骤d、如该叶节点的CF数小于等于L,则自下而上更新该路径上的所有CF。
步骤e、如该叶节点的CF数大于L,则需要对该叶节点做节点分裂。
具体的,使用节点中距离最远的两个CF作为种子,其他的CF加入到最近的种子CF所在的节点,从而将一个节点分裂为两个节点。
步骤f、对于分裂后的节点所在的同层的各个节点,找到最近的两个节点,尝试合并CF,如合并后的半径小于等于T,则合并成功。
步骤g、如果节点分裂后,上层的节点对应的CF数(即下层节点的个数)大于B,则对该节点重进行分裂,直至根节点分裂(如根节点的CF数大于B)。节点分裂完成后,也需自下而上更新该路径上所有的CF。
步骤h、对于已经建好的CF树,删除离群点。
删除离群点的具体方法为,扫描所有的CF叶子节点,如果CF的N小于D,则判断该CF为离群点,删除该CF。由于CF树会存储于内存中,且一个CF所占内存的大小固定,若CF树中CF的数量越多,则CF所占内存也越大。因此,如果CF树继续增长可能会产生内存溢出的问题。此外,若CF树中CF的数量较少,则会出现内存利用不完全的问题,基于此,本申请提供了一种数据分类方法。
图1为本申请实施例提供的一种数据分类方法的流程示意图,如图1所示,该方法包括如下步骤:
步骤101、获取待分类数据。
本申请实施例中,待分类数据包括具有多维度属性值的多个数据点。待分类数据可以是任何待分类的对象,例如,待分类数据可以是客户数据、文本数据、图像、路径信息等。将待分类对象的各维度属性的属性值作为数据点各维度的坐标(属性1,属性2,…属性i)。
以对客户数据进行分类为例,客户数据中包括客户的年龄、收入以及贷款额度三个维度的数据,那么可以将客户定义为一个由这三个维度的属性值构成的数据点,表示为(x,y,z),代表(年龄,收入,贷款额度)。当希望得到这些维度上比较相近的客户,从而根据相似客户集合的特点进行相应的营销时,则可以将待分类的客户数据,转化为对应的数据点,对这些数据点做聚类操作,得到相似的客户集合。
以对文本数据进行分类为例,可以将文本数据的数据类型、数据大小、语义、词频特征这四个维度的属性值作为数据点的坐标,表示为(x,y,z,t),代表(数据类型、数据大小、语义、词频特征)。以对图像进行分类为例,可以将图像的类型、大小、颜色特征、纹理特征、形状特征和空间关系特征这六个维度的属性值作为数据点的坐标,表示为(a1,a2,a3,a4、a5、a6),代表(类型、大小、颜色特征、纹理特征、形状特征和空间关系)。
步骤102、对于每个数据点,从聚类特征树的根节点开始,依次选取下一层节点中与数据点距离最近的节点,直至选取到与数据点距离最近的第一叶节点。
其中,聚类特征树中每个节点具有至少一个聚类特征,任一聚类特征为所属簇内成员的代表特征。
聚类特征可以用三元组(N,LS,SS)表示。其中,N代表聚类特征拥有的数据点的数量,LS代表聚类特征拥有的数据点的各特征维度的线性和,SS代表聚类特征拥有的数据点的各特征维度的平方和。通过LS可以计算聚类特征所属簇的质心,具体地,可以通过公式一计算簇的质心。
其中,X0为簇的质心;Xi为簇中数据点的坐标;n为簇中数据点的数量。
通过LS和SS可以计算聚类特征所属簇的半径,具体地,可以通过公式二计算簇的半径。
其中,R为簇的半径;Xi为簇中数据点的坐标;X0为簇的质心;n为簇中数据点的数量。
以客户数据为例,LS即为聚类特征所属簇中所有客户的数据点的线性和,簇的质心表征当前聚类特征所属簇中的各数据点在不同客户属性下的平均客户属性(即客户属性的平均值),簇的质心表征当前聚类特征所属簇中所有客户属性距离平均值的离散程度。
聚类特征的三元组(N,LS,SS)满足线性关系,即N、LS和SS可以进行累加,所以当有新的数据点加入聚类特征时,或者不同的聚类特征进行合并时,可以对聚类特征的三元组进行累加。即,
CF1+CF2=(N1+N2,LS1+LS2,SS1+SS2)。假设簇C1中有三个数据点:(2,3),(4,5),(5,6),则聚类特征CF1={3,(2+4+5,3+5+6),(22+42+52,32+52+62)}={3,(11,14),(45,70)};假设簇C2的聚类特征CF2={4,(40,42),(100,101)},那么,由簇C1和簇C2合并而来的簇C3的聚类特征CF3计算如下:CF3={3+4,(11+40,14+42),(45+100,70+101)}={7,(51,56),(145,171)}。
本申请实施例中,在分类时每次从待分类数据中随机选取一个待分类的数据点,对于每个待分类的数据点,从聚类特征树的根节点开始,依次选取下一层节点中与数据点距离最近的节点,直至选取到与数据点距离最近的第一叶节点。如果是初始数据点,则默认选取根节点。其中,在选取距离最近的节点时,可以根据数据点与各节点的质心的距离确定距离最近的节点,示例性地,距离可以使用欧式距离公式计算。
步骤103、基于第一聚类原则确定数据点在第一叶节点中对应的第一聚类特征,并基于数据点更新第一聚类特征所在路径上各节点的聚类特征。
其中,第一聚类原则为在数据点加入聚类特征对应的簇后,簇的半径小于等于半径阈值。
在找到与待分类的数据点距离最近的第一叶节点后,判断第一叶节点中是否存在满足第一聚类原则的第一聚类特征,具体的,可以假设将待分类数据点加入到某一聚类特征,计算将待分类的数据点加入该聚类特征对应的簇后,形成的新簇的半径,然后比较新簇的半径与半径阈值的大小关系;如果将待分类的数据点加入该聚类特征对应的簇后,形成的新簇的半径小于等于半径阈值,则认为该聚类特征满足第一聚类原则,也就是说该聚类特征中的各个数据点与待分类的数据点的特征比较相似,那么将待分类的数据点加入到该聚类特征中。
半径阈值的取值由聚类特征树中已生成的聚类特征的个数、存储空间中可容纳的聚类特征的最大个数、聚类特征树中已分类的数据点的个数以及需分类的数据点的总数确定。
示例性地,半径阈值的取值由聚类特征树中已生成的聚类特征的个数、存储空间中可容纳的聚类特征的最大个数、聚类特征树中已分类的数据点的个数以及需分类的数据点的总数确定,包括:
基于聚类特征树中已生成的聚类特征的个数和存储空间中可容纳的聚类特征的最大个数,确定第一关系;基于聚类特征树中已分类的数据点的个数以及需分类的数据点的总数,确定第二关系。根据预设的最小半径阈值、预设的最大半径阈值、第一关系和第二关系,确定半径阈值的取值。
第一关系可以表示为Cnow为聚类特征树中已生成的聚类特征的个数;Ctotal为存储空间中可容纳的聚类特征的最大个数;第二关系可以表示为/>Nnow为聚类特征树中已分类的数据点的个数;Ntotal为需分类的数据点的总数。预设的最小半径阈值Tmin为预估的聚类特征的最小半径取值,预设的最大半径阈值Tmax为预估的聚类特征的最大半径取值,预设的最小半径阈值小于预设的最大半径阈值,预设的最小半径阈值和预设的最大半径阈值的实际取值可以根据数据点的具体属性值进行设定。
其中,Ctotal可以根据实际使用的机器内存大小进行计算,需略小于内存中可以存放的聚类特征个数的最大值。例如,分配用来存储聚类特征的内存大小为512M,一个聚类特征的存储单元大小为1K,那么C-total则设置为512M/1K=524288。
上述技术方案中,第一关系表征聚类特征树的构建进度,第二关系表征已处理的数据点的进度。由于聚类特征树是在内存中进行建立的,数据点的信息以数据点所属的聚类特征的关联关系可以不存储内存中,而一个聚类特征所占的内存空间又是固定的,所以聚类特征对应的簇的半径约大,生成的聚类特征树越紧凑,分支节点越少,所占内存空间越少;聚类特征对应的簇的半径约小,生成的聚类特征树越庞大,分支节点越多,所占内存空间越多。本申请不设置唯一的半径阈值,而是预先设置最大半径阈值和最小半径阈值,在分类过程中,根据聚类特征树的构建进度和已处理的数据点的进度的关系,动态调整实际使用的半径阈值,可以避免分类过程中内存溢出,或者内存未充分利用的问题,从而在固定内存资源的情况下,提升对数据的分类效率。
在第一个示例中,根据预设的最小半径阈值、预设的最大半径阈值、第一关系和第二关系,确定半径阈值的取值,包括:
若第一关系的值大于等于第二关系的值,即则半径阈值取预设的最大半径阈值Tmax;若第一关系的值小于第二关系的值,即/> 则半径阈值取预设的最小半径阈值Tmin。
上述技术方案中,第一关系表征聚类特征树的构建进度,第二关系表征已处理的数据点的进度。若第一关系的值大于等于第二关系的值,表示已处理的数据点的进度小于聚类特征树的构建进度,说明存在内存溢出的风险,此时需要将半径阈值调大,即半径阈值取预设的最大半径阈值;若第一关系的值小于第二关系的值,表示已处理的数据点的进度大于聚类特征树的构建进度,说明可能存在内存未充分利用的问题,此时需要将半径阈值调小,即半径阈值取预设的最小半径阈值。进而避免分类过程中内存溢出,或者内存未充分利用的问题。
在第二个示例中,根据预设的最小半径阈值、预设的最大半径阈值、第一关系和第二关系,确定半径阈值的取值,包括:
半径阈值通过如下公式计算:
其中,Tmax为预设的最大半径阈值;Tmin为预设的最小半径阈值;为第一关系,Cnow为聚类特征树中已生成的聚类特征的个数;Ctotal为存储空间中可容纳的聚类特征的最大个数;/>为第二关系,Nnow为聚类特征树中已分类的数据点的个数;Ntotal为需分类的数据点的总数。
由于Ctotal和Ntotal为固定值,Cnow与Nnow的值在聚类特征树的构建过程中是不断变化的,所以p值也是不断变化的,进而通过该公式来计算半径阈值T可以根据聚类特征树的实际构建情况,在最小半径阈值和最大半径阈值的区间内动态调整半径阈值。
上述技术方案中,半径阈值的取值根据聚类特征树的构建进度以及已处理的数据点的进度的差值,更精确地在预设的最小半径阈值和最大半径阈值内动态调整,可以避免分类过程中内存溢出,或者内存未充分利用的问题。
图2为本申请实施例提供的一种将数据点加入聚类特征树的流程示意图,如图2所示,该方法包括如下步骤:
步骤201、判断第一叶节点中是否存在满足第一聚类原则的第一聚类特征;若是,则执行步骤202;否则执行步骤203。
步骤202、若确定数据点在第一叶节点中存在满足第一聚类原则的第一聚类特征,则将数据点加入到第一聚类特征中,并基于数据点更新第一聚类特征所在路径上各节点的聚类特征。
步骤203、若确定第一叶节点中不存在满足第一聚类原则的第一聚类特征,则在第一叶节点中创建第二聚类特征,将数据点加入到第二聚类特征中。
步骤204、将数据点加入到第二聚类特征中之后,判断第一叶节点中聚类特征的个数是否小于等于第一设定阈值。
若是,则执行步骤205;否则执行步骤206。
其中,第一设定阈值为聚类特征树的叶节点中可以容纳的聚类特征的最大个数。
步骤205、更新第二聚类特征所在路径上的聚类特征。
步骤206、对第一叶节点进行分裂处理。
步骤207、对第一叶节点进行分裂处理之后,判断第一叶节点的上层节点中聚类特征个数是否小于等于第二设定阈值。
其中,第二设定阈值为聚类特征树的枝节点及根节点中可以容纳的聚类特征的最大个数。
若是,则执行步骤208;否则执行步骤209。
步骤208、更新第二聚类特征所在路径上的聚类特征。
步骤209、对上层节点进行分裂处理,直至聚类特征树的根节点分裂。
在节点分裂处理结束后,更新第二聚类特征所在路径上的聚类特征。
在第一个示例中,可以通过如下方式对节点进行分裂处理(包括对叶节点、枝节点及根节点的分裂处理):
在第一次重新聚类时,将待分裂节点中距离最远的两个聚类特征的质心分别作为待分裂节点分裂后的两个节点的第一聚类中心。根据待分裂节点中各聚类特征的质心与分裂后的两个节点的第一聚类中心的距离,将各聚类特征归集到距离最近的分裂后的节点中。
在第N次重新聚类时,将第N-1次重新聚类的两个分裂后的节点的质心分别作为分裂后的两个节点的第二聚类中心,根据待分裂节点中各聚类特征的质心与分裂后的两个节点的第二聚类中心的距离,将各聚类特征归集到距离最近的分裂后的节点中。
直至第N次重新聚类的两个分裂后的节点的质心与第N-1次重新聚类的两个分裂后的节点的质心一致,则分裂处理结束。
上述技术方案中,在对节点进行分裂处理时,使用多次聚类方法可以更准确地把各聚类特征归集到分裂后的两个节点中。
在第二个示例中,还可以通过如下方式对节点进行分裂处理:
在第一次重新聚类之前,判断待分裂节点中聚类特征的个数是否大于第三设定阈值。
若待分裂节点中聚类特征的个数小于等于第三设定阈值,则选取待分裂节点中距离最远的两个聚类特征,将两个聚类特征的质心分别作为待分裂节点分裂后的两个节点的质心,根据待分裂节点中各聚类特征的质心与分裂后的两个节点的质心的距离,将各聚类特征归集到距离最近的分裂后的节点中。
若待分裂节点中聚类特征的个数大于第三设定阈值,则执行第一个示例中所示的节点分裂方法。
上述技术方案中,如果待分类节点中的聚类特征个数小于等于第三设定阈值,说明该节点中聚类特征个数较少,使用一次聚类方法便可以准确地把各聚类特征归集到分裂后的两个节点中;如果待分类节点中的聚类特征个数大于第三设定阈值,说明该节点中聚类特征个数较多,使用多次聚类方法可以更准确地把各聚类特征归集到分裂后的两个节点中。
进一步地,在对节点进行分裂处理后,判断与分裂后的节点处于同层的节点中,是否存在可以合并的节点。
具体地,若确定与分裂后的节点处于同层的节点中,存在满足第二聚类原则的节点,则将分裂后的节点与满足第二聚类原则的节点合并,更新存在变化的聚类特征。其中,第二聚类原则为将分裂后的节点与处于同层的节点合并后,簇的半径小于等于半径阈值。
此外,若确定与分裂后的节点处于同层的节点中,距离最近的两个节点满足第二聚类原则的节点,则将距离最近的两个节点合并,更新存在变化的聚类特征。
上述技术方案中,在对节点进行分裂处理后,将相似的节点再进行合并,可以使聚类特征树的结构更紧凑,增加数据分类的准确性。
在一种可能的实施方式中,待分类数据为设定数量的数据点;
将待分类数据的各数据点分类后,将聚类特征树的叶节点中数据点数量小于第四设定阈值的聚类特征确定为聚类特征树的离群点,然后删除离群点。
其中,设定数量的数据点根据设定的离群点处理总次数以及需分类的数据点的总数确定;第四设定阈值根据设定的离群点边界数量、当前的离群点处理次数以及设定的离群点处理总次数确定。
在第一个示例中,离群点处理总次数为C次,需分类的数据点为Ntotal,那么每将Ntotal/C个待分类的数据点进行分类后,也就是说Nnow/Ntotal每达到1/C的整数m倍,如1/C、2/C…m/C时,则进行一次离群点处理。第四设定阈值设置为D*(Nnow/Ntotal),D为设定的离群点边界数量,Nnow为当前的离群点处理次数。如果聚类特征树的叶节点中数据点数量小于D*(Nnow/Ntotal),也就是说聚类特征树的叶节点中数据点数量小于D*m/C,则判定该叶节点为离群点,删除此叶节点,并自下而上更新存在变化的特征节点。
在第二个示例中,可以将第四设定阈值设置为D*m2/C,聚类特征树的叶节点中数据点数量小于D*m2/C,则判定该叶节点为离群点。
上述技术方案中,在分阶段判断离群点时,越靠前的阶段,由于数据点加载的不完整,所以离群点的判断越不准确。将第四设定阈值设置为D*m2/C,进而越靠前的阶段,第四设定阈值越小,离群点的判断越宽松;越靠后的阶段,第四设定阈值越大,离群点的判断越严格。进而增加离群点判断的准确性。
在第三个示例中,可以将第四设定阈值设置为D*mk/Ck-1,聚类特征树的叶节点中数据点数量小于D*mk/Ck-1,则判定该叶节点为离群点。
上述技术方案中,可以根据实际的数据及场景需要,再进一步调整曲率,调整删除离群点的判断函数,定义离群点删除判断函数曲率函数k,将第四设定阈值设置为D*mk/Ck -1,当k越大,曲率越大,也就是说越靠前的阶段,离群点的判断阈值越宽松;越靠后的阶段,离群点的判断越严格。进一步增加离群点判断的准确性。
根据以上步骤得到的聚类特征树中的各个簇,即为对海量客户数据进行分类得到的相似的客户群体,相似的客户群体则有着较为相近的属性关系。可以基于此,进一步对相似的客户群体进行其他的业务操作。如从营销的角度,可以选取其中较大的簇,作为较为典型的客户群体,进行针对性的营销资源投入。再比如,从各个簇中,统计逾期的客户比例,得到逾期率比较高的簇,也即逾期率比较高的客户群体,进而在后续的新客户中,判断新客户是否属于该客户群体,从而对新客户多增加一个风险判断的参考。
为了更好的理解本申请实施例,下面介绍一下本申请实施例提供的一种数据分类方法的具体流程。
第一部分,定义相关参数及统计:
定义数据点:可以根据客户的年龄、年收入、贷款额度这三个维度的数据属性进行定义。即数据点(x,y,z)中,x为客户的年龄、y为客户的收入、z为客户的贷款额度。
定义聚类特征树的枝节点及根节点中可以容纳的聚类特征的最大个数,例如,可以根据专家经验定义为20。
定义聚类特征树的叶节点中可以容纳的聚类特征的最大个数,例如,可以根据专家经验定义为30。
定义离群点的边界个数,例如,在海量的供应链客户数据中,可以认为10个以下的客户群体较小,定义离群点的边界个数为10。
定义聚类特征树中已生成的聚类特征的个数Cnow,初始时值为0。
根据使用的机器内存大小,计算出存储空间中可容纳的聚类特征的最大个数Ctotal,Ctotal需略小于内存中可以存放的聚类特征的个数的最大值。如在海量的供应链客户数据场景中,可以根据当前能够使用的机器内存进行计算,如使用的计算机器,分配用来存储聚类特征的内存大小为512M,而一个聚类特征的存储单元大小为1K,那么这里的Ctotal则为512M/1K=524288。
定义聚类特征树中已分类的数据点的个数Nnow,初始时值为0。
统计需分类的数据点的总数Ntotal,例如,Ntatal等于海量供应链需分类的客户数。
定义预设的最小半径阈值Tmin、预设的最大半径阈值Tmax。其中,Tmin<Tmax,Tmin为预估的可接受的最小半径阈值,Tmax为预估的可接受的最大半径阈值,可以根据数据点的具体的属性值进行评估,例如,根据年龄、收入、贷款额度这些属性的数值进行专家评估,根据专家经验设置Tmin为40,Tmax为60。
定义离群点处理总次数C次;例如,定义为10。
第二部分,具体包括以下步骤:
步骤301、获取待分类数据。
步骤302、从待分类数据中,随机选取数据点,对于每个数据点,从聚类特征树的根节点开始,依次选取下一层节点中与数据点距离最近的节点,直至选取到与数据点距离最近的第一叶节点。
具体地,每选取一个数据点N-now的值加1。在选取距离最近的节点时,可以根据数据点与各节点的质心的距离确定距离最近的节点,示例性地,距离可以使用欧式距离公式计算。
步骤303、判断第一叶节点中,是否存在满足第一聚类原则的第一聚类特征,第一聚类原则为在数据点加入聚类特征对应的簇后,簇的半径小于等于半径阈值T。
若存在,则执行步骤304;否则执行步骤305。
具体地,将待分类数据点加入到某一聚类特征,计算将待分类的数据点加入该聚类特征对应的簇后,形成的新簇的半径,然后比较新簇的半径与半径阈值的大小关系;如果将待分类的数据点加入该聚类特征对应的簇后,形成的新簇的半径小于等于半径阈值T,则认为该聚类特征满足第一聚类原则。
其中,半径阈值可以通过如下两种方式确定:
第一种,当大于等于/>时,T取Tmax;否则,T取Tmin。
第二种,定义则/>
步骤304、若确定数据点在第一叶节点中存在满足第一聚类原则的第一聚类特征,则将数据点加入到第一聚类特征中,并基于数据点更新第一聚类特征所在路径上各节点的聚类特征。
若存在,则执行步骤305;否则,执行步骤306。
步骤305、若确定第一叶节点中不存在满足第一聚类原则的第一聚类特征,则在第一叶节点中创建第二聚类特征,将数据点加入到第二聚类特征中。
步骤306、将数据点加入到第二聚类特征中之后,判断第一叶节点中聚类特征的个数是否小于等于第一设定阈值。
若是,则执行步骤307;否则,执行步骤308。
其中,第一设定阈值为聚类特征树的叶节点中可以容纳的聚类特征的最大个数。
步骤307、更新第二聚类特征所在路径上的聚类特征。
步骤308、对第一叶节点进行分裂处理。
对第一叶节点进行分裂处理后,若确定与分裂后的节点处于同层的节点中,存在满足第二聚类原则的节点,则将分裂后的节点与满足第二聚类原则的节点合并,更新存在变化的聚类特征。其中,第二聚类原则为将分裂后的节点与处于同层的节点合并后,簇的半径小于等于半径阈值。
步骤309、对第一叶节点进行分裂处理之后,判断第一叶节点的上层节点中聚类特征个数是否小于等于第二设定阈值。
其中,第二设定阈值为聚类特征树的枝节点及根节点中可以容纳的聚类特征的最大个数。
步骤310、更新第二聚类特征所在路径上的聚类特征。
步骤311、对上层节点进行分裂处理,直至聚类特征树的根节点分裂。
在节点分裂处理结束后,更新第二聚类特征所在路径上的聚类特征。
同样的,对上层节点进行分裂处理后,若确定与分裂后的节点处于同层的节点中,存在满足第二聚类原则的节点,则将分裂后的节点与满足第二聚类原则的节点合并,更新存在变化的聚类特征。其中,第二聚类原则为将分裂后的节点与处于同层的节点合并后,簇的半径小于等于半径阈值。
在聚类特征树的构建过程中,每将设定数量的数据点进行分类后,将聚类特征树的叶节点中数据点数量小于第四设定阈值的聚类特征确定为聚类特征树的离群点,然后删除离群点。
其中,设定数量的数据点根据设定的离群点处理总次数以及需分类的数据点的总数确定;第四设定阈值根据设定的离群点边界数量、当前的离群点处理次数以及设定的离群点处理总次数确定。基于相同的技术构思,图3例性地示出了本申请实施例提供的一种数据分类装置的结构示意图,如图3所示,该装置300包括:
获取模块301,用于获取待分类数据;所述待分类数据包括具有多维度属性值的多个数据点;
处理模块302,用于对于每个数据点,从聚类特征树的根节点开始,依次选取下一层节点中与所述数据点距离最近的节点,直至选取到与所述数据点距离最近的第一叶节点;基于第一聚类原则确定所述数据点在所述第一叶节点中对应的第一聚类特征,并基于所述数据点更新所述第一聚类特征所在路径上各节点的聚类特征;
其中,所述聚类特征树中每个节点具有至少一个聚类特征;任一聚类特征为所属簇内成员的代表特征;所述第一聚类原则为在数据点加入聚类特征对应的簇后,簇的半径小于等于半径阈值;所述半径阈值的取值由所述聚类特征树中已生成的聚类特征的个数、存储空间中可容纳的聚类特征的最大个数、所述聚类特征树中已分类的数据点的个数以及需分类的数据点的总数确定。
在一种可能的设计中,所述处理模块302,还用于基于所述聚类特征树中已生成的聚类特征的个数和存储空间中可容纳的聚类特征的最大个数,确定第一关系;基于所述聚类特征树中已分类的数据点的个数以及需分类的数据点的总数,确定第二关系;根据预设的最小半径阈值、预设的最大半径阈值、所述第一关系和所述第二关系,确定所述半径阈值的取值。
在一种可能的设计中,所述处理模块302,还用于若确定所述第一叶节点中不存在满足所述第一聚类原则的第一聚类特征,则在所述第一叶节点中创建第二聚类特征,将所述数据点加入到所述第二聚类特征中。
在一种可能的设计中,在将所述数据点加入到所述第二聚类特征中之后,所述处理模块302,还用于判断所述第一叶节点中聚类特征的个数是否小于等于第一设定阈值;所述第一设定阈值为所述聚类特征树的叶节点中可以容纳的聚类特征的最大个数;若是,则更新所述第二聚类特征所在路径上的聚类特征;否则,对所述第一叶节点进行分裂处理。
在一种可能的设计中,在对所述第一叶节点进行分裂处理之后,所述处理模块302,还用于判断所述第一叶节点的上层节点中聚类特征个数是否小于等于第二设定阈值;所述第二设定阈值为所述聚类特征树的枝节点及根节点中可以容纳的聚类特征的最大个数;若是,则更新所述第二聚类特征所在路径上的聚类特征;否则,对所述上层节点进行分裂处理,直至所述聚类特征树的根节点分裂。
在一种可能的设计中,在进行分裂处理时,所述处理模块302,具体用于在第一次重新聚类时,将待分裂节点中距离最远的两个聚类特征的质心分别作为所述待分裂节点分裂后的两个节点的第一聚类中心;根据待分裂节点中各聚类特征的质心与所述分裂后的两个节点的第一聚类中心的距离,将所述各聚类特征归集到距离最近的分裂后的节点中;在第N次重新聚类时,将第N-1次重新聚类的两个分裂后的节点的质心分别作为分裂后的两个节点的第二聚类中心,根据待分裂节点中各聚类特征的质心与分裂后的两个节点的第二聚类中心的距离,将各聚类特征归集到距离最近的分裂后的节点中;直至第N次重新聚类的两个分裂后的节点的质心与第N-1次重新聚类的两个分裂后的节点的质心一致,则分裂处理结束。
在一种可能的设计中,在第一次重新聚类之前,所述处理模块302,还用于判断所述待分裂节点中聚类特征的个数是否大于第三设定阈值;若所述待分裂节点中聚类特征的个数小于等于第三设定阈值,则选取所述待分裂节点中距离最远的两个聚类特征;将所述两个聚类特征的质心分别作为所述待分裂节点分裂后的两个节点的质心;根据待分裂节点中各聚类特征的质心与所述分裂后的两个节点的质心的距离,将所述各聚类特征归集到距离最近的分裂后的节点中。
在一种可能的设计中,在进行分裂处理之后,所述处理模块302,还用于若确定与分裂后的节点处于同层的节点中,存在满足第二聚类原则的节点,则将所述分裂后的节点与所述满足所述第二聚类原则的节点合并,更新存在变化的聚类特征;所述第二聚类原则为将所述分裂后的节点与处于同层的节点合并后,簇的半径小于等于所述半径阈值。
在一种可能的设计中,所述待分类数据为设定数量的数据点;所述处理模块302,还用于将所述待分类数据的各数据点分类后,将所述聚类特征树的叶节点中数据点数量小于第四设定阈值的聚类特征确定为所述聚类特征树的离群点;删除所述离群点;所述设定数量的数据点根据设定的离群点处理总次数以及所述需分类的数据点的总数确定;所述第四设定阈值根据设定的离群点边界数量、当前的离群点处理次数以及所述设定的离群点处理总次数确定。
在一种可能的设计中,在根据预设的最小半径阈值、预设的最大半径阈值、所述第一关系和所述第二关系,确定所述半径阈值的取值时,所述处理模块302,具体用于若所述第一关系的值大于等于所述第二关系的值,则所述半径阈值取所述预设的最大半径阈值;若所述第一关系的值小于所述第二关系的值,则所述半径阈值取所述预设的最小半径阈值。
在一种可能的设计中,在根据预设的最小半径阈值、预设的最大半径阈值、所述第一关系和所述第二关系,确定所述半径阈值的取值时,所述处理模块302,具体用于通过如下公式计算所述半径阈值:
其中,Tmax为所述预设的最大半径阈值;Tmin为所述预设的最小半径阈值;为所述第一关系,Cnow为所述聚类特征树中已生成的聚类特征的个数;Ctotal为所述存储空间中可容纳的聚类特征的最大个数;/>为所述第二关系,Nnow为所述聚类特征树中已分类的数据点的个数;Ntotal为所述需分类的数据点的总数。
基于相同的技术构思,本申请实施例提供了一种计算设备,如图4所示,包括至少一个处理器401,以及与至少一个处理器连接的存储器402,本申请实施例中不限定处理器401与存储器402之间的具体连接介质,图3中处理器401和存储器402之间通过总线连接为例。总线可以分为地址总线、数据总线、控制总线等。
在本申请实施例中,存储器402存储有可被至少一个处理器401执行的指令,至少一个处理器401通过执行存储器402存储的指令,可以执行上述数据分类方法。
其中,处理器401是计算设备的控制中心,可以利用各种接口和线路连接计算机设备的各个部分,通过运行或执行存储在存储器402内的指令以及调用存储在存储器402内的数据,从而进行资源设置。
可选地,处理器401可包括一个或多个处理单元,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。在一些实施例中,处理器401和存储器402可以在同一芯片上实现,在一些实施例中,它们也可以在独立的芯片上分别实现。
处理器401可以是通用处理器,例如中央处理器(CPU)、数字信号处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器402作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器402可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random AccessMemory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器402是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器402还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
基于相同的技术构思,本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质存储有计算机可执行程序,计算机可执行程序用于使计算机执行上述任一方式所列的数据分类方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (12)
1.一种数据分类方法,其特征在于,所述方法包括:
获取待分类数据;所述待分类数据包括具有多维度属性值的多个数据点;
对于每个数据点,从聚类特征树的根节点开始,依次选取下一层节点中与所述数据点距离最近的节点,直至选取到与所述数据点距离最近的第一叶节点;基于第一聚类原则确定所述数据点在所述第一叶节点中对应的第一聚类特征,并基于所述数据点更新所述第一聚类特征所在路径上各节点的聚类特征;
其中,所述聚类特征树中每个节点具有至少一个聚类特征;任一聚类特征为所属簇内成员的代表特征;所述第一聚类原则为在数据点加入聚类特征对应的簇后,簇的半径小于等于半径阈值;所述半径阈值的取值由所述聚类特征树中已生成的聚类特征的个数、存储空间中可容纳的聚类特征的最大个数、所述聚类特征树中已分类的数据点的个数以及需分类的数据点的总数确定。
2.根据权利要求1所述的方法,其特征在于,所述半径阈值的取值由所述聚类特征树中已生成的聚类特征的个数、存储空间中可容纳的聚类特征的最大个数、所述聚类特征树中已分类的数据点的个数以及需分类的数据点的总数确定,包括:
基于所述聚类特征树中已生成的聚类特征的个数和存储空间中可容纳的聚类特征的最大个数,确定第一关系;
基于所述聚类特征树中已分类的数据点的个数以及需分类的数据点的总数,确定第二关系;
根据预设的最小半径阈值、预设的最大半径阈值、所述第一关系和所述第二关系,确定所述半径阈值的取值。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若确定所述第一叶节点中不存在满足所述第一聚类原则的第一聚类特征,则在所述第一叶节点中创建第二聚类特征,将所述数据点加入到所述第二聚类特征中。
4.根据权利要求3所述的方法,其特征在于,所述将所述数据点加入到所述第二聚类特征中之后,还包括:
判断所述第一叶节点中聚类特征的个数是否小于等于第一设定阈值;所述第一设定阈值为所述聚类特征树的叶节点中可以容纳的聚类特征的最大个数;
若是,则更新所述第二聚类特征所在路径上的聚类特征;
否则,对所述第一叶节点进行分裂处理。
5.根据权利要求4所述的方法,其特征在于,所述对所述第一叶节点进行分裂处理之后,还包括:
判断所述第一叶节点的上层节点中聚类特征个数是否小于等于第二设定阈值;
所述第二设定阈值为所述聚类特征树的枝节点及根节点中可以容纳的聚类特征的最大个数;
若是,则更新所述第二聚类特征所在路径上的聚类特征;
否则,对所述上层节点进行分裂处理,直至所述聚类特征树的根节点分裂。
6.根据权利要求4或5所述的方法,其特征在于,所述进行分裂处理,包括:
在第一次重新聚类时,将待分裂节点中距离最远的两个聚类特征的质心分别作为所述待分裂节点分裂后的两个节点的第一聚类中心;
根据待分裂节点中各聚类特征的质心与所述分裂后的两个节点的第一聚类中心的距离,将所述各聚类特征归集到距离最近的分裂后的节点中;
在第N次重新聚类时,将第N-1次重新聚类的两个分裂后的节点的质心分别作为分裂后的两个节点的第二聚类中心,根据待分裂节点中各聚类特征的质心与分裂后的两个节点的第二聚类中心的距离,将各聚类特征归集到距离最近的分裂后的节点中;
直至第N次重新聚类的两个分裂后的节点的质心与第N-1次重新聚类的两个分裂后的节点的质心一致,则分裂处理结束。
7.根据权利要求6所述的方法,其特征在于,在第一次重新聚类之前,还包括:
判断所述待分裂节点中聚类特征的个数是否大于第三设定阈值;
所述方法还包括:
若所述待分裂节点中聚类特征的个数小于等于第三设定阈值,则选取所述待分裂节点中距离最远的两个聚类特征;将所述两个聚类特征的质心分别作为所述待分裂节点分裂后的两个节点的质心;
根据待分裂节点中各聚类特征的质心与所述分裂后的两个节点的质心的距离,将所述各聚类特征归集到距离最近的分裂后的节点中。
8.根据权利要求4或5所述的方法,其特征在于,所述进行分裂处理之后,还包括:
若确定与分裂后的节点处于同层的节点中,存在满足第二聚类原则的节点,则将所述分裂后的节点与所述满足所述第二聚类原则的节点合并,更新存在变化的聚类特征;
所述第二聚类原则为将所述分裂后的节点与处于同层的节点合并后,簇的半径小于等于所述半径阈值。
9.根据权利要求1所述的方法,其特征在于,所述待分类数据为设定数量的数据点;
所述方法还包括:
将所述待分类数据的各数据点分类后,将所述聚类特征树的叶节点中数据点数量小于第四设定阈值的聚类特征确定为所述聚类特征树的离群点;
删除所述离群点;
所述设定数量的数据点根据设定的离群点处理总次数以及所述需分类的数据点的总数确定;所述第四设定阈值根据设定的离群点边界数量、当前的离群点处理次数以及所述设定的离群点处理总次数确定。
10.根据权利要求2所述的方法,其特征在于,所述根据预设的最小半径阈值、预设的最大半径阈值、所述第一关系和所述第二关系,确定所述半径阈值的取值,包括:
若所述第一关系的值大于等于所述第二关系的值,则所述半径阈值取所述预设的最大半径阈值;
若所述第一关系的值小于所述第二关系的值,则所述半径阈值取所述预设的最小半径阈值。
11.根据权利要求2所述的方法,其特征在于,所述根据预设的最小半径阈值、预设的最大半径阈值、所述第一关系和所述第二关系,确定所述半径阈值的取值,包括:
所述半径阈值通过如下公式计算:
其中,Tmax为所述预设的最大半径阈值;Tmin为所述预设的最小半径阈值;为所述第一关系,Cnow为所述聚类特征树中已生成的聚类特征的个数;Ctotal为所述存储空间中可容纳的聚类特征的最大个数;/>为所述第二关系,Nnow为所述聚类特征树中已分类的数据点的个数;Ntotal为所述需分类的数据点的总数。
12.一种数据分类装置,其特征在于,包括:
获取模块,用于获取待分类数据;所述待分类数据包括具有多维度属性值的多个数据点;
处理模块,用于对于每个数据点,从聚类特征树的根节点开始,依次选取下一层节点中与所述数据点距离最近的节点,直至选取到与所述数据点距离最近的第一叶节点;基于第一聚类原则确定所述数据点在所述第一叶节点中对应的第一聚类特征,并基于所述数据点更新所述第一聚类特征所在路径上各节点的聚类特征;
其中,所述聚类特征树中每个节点具有至少一个聚类特征;任一聚类特征为所属簇内成员的代表特征;所述第一聚类原则为在数据点加入聚类特征对应的簇后,簇的半径小于等于半径阈值;所述半径阈值的取值由所述聚类特征树中已生成的聚类特征的个数、存储空间中可容纳的聚类特征的最大个数、所述聚类特征树中已分类的数据点的个数以及需分类的数据点的总数确定。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311553727.8A CN117493920A (zh) | 2023-11-20 | 2023-11-20 | 一种数据分类方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311553727.8A CN117493920A (zh) | 2023-11-20 | 2023-11-20 | 一种数据分类方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117493920A true CN117493920A (zh) | 2024-02-02 |
Family
ID=89668920
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311553727.8A Pending CN117493920A (zh) | 2023-11-20 | 2023-11-20 | 一种数据分类方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117493920A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117807550A (zh) * | 2024-02-29 | 2024-04-02 | 山东宙雨消防科技股份有限公司 | 一种建筑消防设施智能化定量检测方法及系统 |
-
2023
- 2023-11-20 CN CN202311553727.8A patent/CN117493920A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117807550A (zh) * | 2024-02-29 | 2024-04-02 | 山东宙雨消防科技股份有限公司 | 一种建筑消防设施智能化定量检测方法及系统 |
CN117807550B (zh) * | 2024-02-29 | 2024-05-17 | 山东宙雨消防科技股份有限公司 | 一种建筑消防设施智能化定量检测方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Rai et al. | A survey of clustering techniques | |
CN107305637B (zh) | 基于K-Means算法的数据聚类方法和装置 | |
US9058540B2 (en) | Data clustering method and device, data processing apparatus and image processing apparatus | |
CN117493920A (zh) | 一种数据分类方法及装置 | |
US20160328445A1 (en) | Data Query Method and Apparatus | |
JP2019191895A (ja) | データ分析システム及びデータ分析方法 | |
US10133811B2 (en) | Non-transitory computer-readable recording medium, data arrangement method, and data arrangement apparatus | |
CN110737805A (zh) | 图模型数据的处理方法、装置和终端设备 | |
CN112148942B (zh) | 基于数据聚类的业务指标数据分类方法及装置 | |
US8661040B2 (en) | Grid-based data clustering method | |
Chowdhury et al. | Feature weighting in DBSCAN using reverse nearest neighbours | |
CN108764307A (zh) | 自然最近邻优化的密度峰值聚类方法 | |
CN114417095A (zh) | 一种数据集划分方法及装置 | |
CN111967616A (zh) | 自动时间序列回归方法和装置 | |
JP6991960B2 (ja) | 画像認識装置、画像認識方法及びプログラム | |
CN110209895B (zh) | 向量检索方法、装置和设备 | |
CN112162986A (zh) | 一种并行top-k范围skyline查询方法和系统 | |
CN111125158A (zh) | 数据表处理方法、装置、介质及电子设备 | |
US8666986B2 (en) | Grid-based data clustering method | |
CN112308122B (zh) | 基于双树的高维向量空间样本快速搜索方法及装置 | |
KR20230122872A (ko) | 심층 신경망을 위한 전이 학습 시스템 및 방법 | |
CN114091559A (zh) | 数据填充方法及装置、设备、存储介质 | |
CN114637466B (zh) | 一种数据读写行为推测方法、装置、存储介质及电子设备 | |
CN110750661B (zh) | 检索图像的方法、装置、计算机设备和存储介质 | |
CN114707039B (zh) | 一种基于海量数据快速数据治理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |