一种数据聚类方法及装置与流程

文档序号:11432782阅读:291来源:国知局
一种数据聚类方法及装置与流程
本申请涉及数据分析
技术领域
,尤其涉及一种数据聚类方法及装置。
背景技术
:数据分析是指用适当的统计方法对数据集合进行分析,从而提取有用信息和形成结论的过程。在大数据时代,如何从海量的信息数据中更有效地提取出有用信息已经成为一个重点研究课题。数据分析的一种实际应用需求是:根据数据的特征,从大量数据对应的实体中筛选出一些异常的实体,而这些异常实体往往会存在一定的意义,例如:通过对不同终端对服务器的访问行为数据进行筛选,可以从大量终端中识别出具有网络攻击行为的终端;通过对不同商户的交易行为数据进行筛选,可以从大量商户中识别出一些优质商户;等等。在数据筛选的初始阶段,筛选的标准往往是不确定的,有时甚至连筛选的目的都不明确,在这种需求背景下,聚类成为数据筛选的重要手段,在具体筛选标准不明确的情况下,聚类结果往往能够直接满足筛选需求,或者为数据分析人员提供重要的指导意义。目前,聚类算法有很多种,例如kmeans、dbscan、谱聚类、som等等,但是这些聚类算法均要求数据样本之间的距离是可度量的,而在实际的数据分析过程中,一条信息数据可能包含多种类型的特征属性,例如数值类、布尔类、文本类、时间类等等。应用现有的聚类算法,需要对各类特征属性取值的距离进行统一定义,如果定义不合适则需要反复调整,特征的数量、种类越多,调整的工作量就越大。对于数据分析人员而言,调整定义特征属性的取值距离往往需要消耗大量的时间和精力成本,这也对整体的数据筛选处理效率造成了较大的影响。技术实现要素:针对上述技术问题,本申请提供一种数据聚类方法及装置,技术方案如下:根据本申请的第一方面,提供一种数据聚类方法,该方法包括:对待处理数据样本集的连续变量特征取值进行离散化处理;根据离散化处理结果,利用预设的相似度算法计算任意两个数据样本i和j之间的相似度sij(i≠j),其中i、j的取值包括不大于n的所有自然数,n为所述数据样本集中的数据样本总数;根据任意两个数据样本i和j之间的相似度sij,利用预设的聚类算法对所述n个数据样本进行聚类。根据本申请的第二方面,提供一种数据聚类装置,该装置包括:离散化处理模块,用于对待处理数据样本集的连续变量特征取值进行离散化处理;相似度计算模块,用于根据离散化处理结果,利用预设的相似度算法计算任意两个数据样本i和j之间的相似度sij(i≠j),其中i、j的取值包括不大于n的所有自然数,n为所述数据样本集中的数据样本总数;聚类模块,用于根据任意两个数据样本i和j之间的相似度sij,利用预设的聚类算法对所述n个数据样本进行聚类。应用本申请所提供的技术方案,在对数据集进行聚类时,仅考虑特征的取值的离散性,无需考虑数据各个特征的具体类型,对于连续变量特征,通过对其特征取值进行离散化处理,使其与离散变量特征能够采用统一的标准进行度量,因此本申请方案对于任意的信息数据集,无论有多少个特征,特征的具体类型如何,均能够自动计算出数据样本的距离并进行聚类,从而有效地降低数据筛选过程中的聚类调试成本消耗,提高数据筛选的处理效率。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。图1是本申请的数据聚类方法的流程示意图;图2是本申请的数据聚类装置的结构示意图。具体实施方式为了使本领域技术人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行详细地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本申请保护的范围。图1所示,为本申请提供的数据聚类方法的流程图,该方法可以包括以下步骤:s101,对待处理数据样本集的连续变量特征取值进行离散化处理;对于一个待处理的数据样本集,可能包含多种类型的特征,例如数值类、布尔类、文本类、时间类等等,根据现有技术方案,为了对数据样本进行聚类,需要对各类特征属性取值的距离进行统一定义,而如何选取合适的定义标准则是一个需要消耗大量尝试成本的步骤。针对该问题,本申请提供的方案是:不考虑特征的具体类型,仅考虑特征的取值的离散性。由于相对于连续变量特征而言,离散变量特征的取值数量是有限的,更便于在同一特征的维度上度量两个样本之间的相似性。因此对于数据样本中取值为连续变量的特征,对其取值进行离散化处理,使其与离散变量特征能够采用统一的标准进行度量。假设数据样本集中的数据样本总数为n、且数据样本共有l个特征,其中连续变量特征的数量为l1、离散特征的数量为l2,即l=l1+l2。则对于l1个连续变量特征中的任一个特征,都具有n个取值。离散化的过程就是根据一定的算法,将这个n个取值划分k(k<n)个离散区间,并为每个离散区间指定一个对应的离散取值。对特征取值的离散化处理,可以采用现有的离散化算法,例如kmeans、dbscan、som等聚类算法,都可以用于离散化处理。在具体应用中,还可以通过最优参数算法来自动计算聚类算法中所需要的参数值,例如kmeans算法中的k值等,从而进一步降低数据处理人员的调试成本s102,根据离散化处理结果,计算任意两个数据样本i和j之间的相似度;对连续变量特征进行离散化处理后,原本大量的连续取值变为少量的离散取值,也使得数据样本集的l个特征都统一为离散变量特征,从而便于进一步计算数据样本之间的相似度。对于离散取值的样本的相似度计算,可以采用现有的相似度计算方法。为便于实现,在本申请的一种实施方式中,对于任意两个数据样本i和j(i=1,2,3…n;j=1,2,3…n),可以先计算i和j之间的样本距离dij,然后将dij转换为i和j之间的样本相似度sij。其中,样本距离可以采用汉明距离、欧式距离等多种方式进行计算,而将距离转换为相似度也可以通过不同的方法实现,例如直接对距离值取倒数得到相似度(即sij=1/dij),或对距离值的对数取倒数得到相似度(即sij=1/logdij),等等,本申请对这些具体的算法的选择均不需要进行限定。s103,根据任意两个数据样本i和j之间的相似度sij,利用预设的聚类算法对n个数据样本进行聚类。其中,聚类结果中的一个或多个类簇可以用于形成对所述数据样本集的数据筛选结果。得到任意两个数据样本i和j的样本相似度sij后,可以生成相应的相似度图,该相似度图具有n个顶点,分别对应n个数据样本,任意两个顶点i和j之间存在一条以sij为权重值的边。利用基于图分割的聚类算法对上述生成的相似度图进行聚类,这里可以采用谱聚类、标签传播聚类、fastunfolding等聚类算法。其中标准谱聚类方式在理论上较为严谨,当数据样本的数量n较大时,可以选用时间复杂度稍低的近似谱聚类算法poweriterationclustering进行聚类。当然,本申请方案并不限定必须使用基于图分割的距离算法,例如,在分布式计算环境下,可以采用svd矩阵分解得到数据样本相似度矩阵的特征向量,并对特征向量进行kmeans聚类得到每个样本所属的类别。得到聚类结果后,可以根据聚类数量、聚类的相对大小等具体情况进行数据筛选。例如,在筛选异常数据时,可以优先关注聚类结果中较小的类簇,当然,根据不同的应用需求,聚类结果中的每一个类簇都可能成为对原数据样本集的数据筛选结果,具体的筛选原则与本申请方案无关,这里不做详细介绍。下面将结合一个具体的实例,对本申请方案进行说明假设待处理的数据样本集如表1所示:agecitydepositmarriage110上海1000.00225南京2000.01311上海3000.00436北京4000.01524北京5000.02626北京6000.01表1该数据样本集包含的样本数n=6,特征数l=4,分别为age、city、deposit、marriage,其中age和deposit是连续变量特征,根据s101,首先对连续变量的取值进行离散化处理。在本实施例中,选用常见的kmeans算法对连续变量特征的取值进行离散化处理。kmeans本身也是一种聚类算法,其接收输入参数k,然后将n个数据对象划分为k个聚类以便使得所获得的聚类满足:同一聚类中的对象相似度较高;而不同聚类中的对象相似度较小。假设数据样本集中的数据样本总数为n,则对于数据样本集中的任意连续化特征,可以将离散化问题转换为对n个数据样本的该特征取值进行聚类。为了实现自适应离散化处理,kmeans算法中的k值可以利用最佳聚类数算法确定。目前用于检验聚类有效性的指标主要有calinski-harabasz(ch)指标、davies-bouldin(db)指标、krzanowski-lai(kl)指标等等。本实施例中利用ch指标自动计算最优的k值,ch的表达式如下:其中n为数据样本的总数,l表示第l个连续变量特征,用于衡量第l个连续变量特征,在被分割为k个类后,k个类的类间距离和;用于衡量第l个连续变量特征,在被分割为k个类后,k个类的类内距离和,其中距离的具体衡量算法可以是距离加和、欧式距离等,本申请不做限定。对于第l个连续变量特征,选取能够令值最大的k值作为最优解。利用上述方法,可得到特征age和deposit的离散化结果如下:特征age的最佳k值为3,对应的离散区间为(9,20]、(20,24]、(24,36],分别为其指定对应的离散取值0、1、2;特征deposit的最佳k值为2,对应的离散区间为(1000.0,3000.0]、(3000.0,6000.0],分别为其指定对应的离散取值0、1;离散化处理之后,可以将表1所示的数据样本集转换成如表2所示的全离散值的数据样本集:agecitydepositmarriage10上海0022南京0130上海0042北京1151北京1262北京11表2根据s102,对于数据样本集d1,分别计算任意两个数据样本i和j之间的相似度sij。在本实施例中,采用修正的汉明距离算法计算任意两个样本点之间的距离dij,然后利用高斯核函数将dij转换为样本间相似度sij,其中,对于任意两个数据样本i和j(i=1,2,...n、j=1,2,...n),其样本间相似度的具体计算过程如下:首先分别计算i的第l个特征值和j的第l个特征值的距离dl(i,j),经过离散化处理后,这里可以采用汉明距离的计算思想:如果两个特征值相等,则距离为0,如果两个特征值不相等,则距离为1。例如,对于表2中的第1条数据和第2条数据,age特征的距离为1、city特征的距离为1、deposit特征的距离为0、marriage特征的距离为1。遍历所有的l(从1到l),得到所有的dl(i,j)后,对l个dl(i,j)进行求和,得到i和j的距离dij:在有些情况下,不同的特征对应的离散区间数量相差较大,为了平衡这种差别,可以通过加权的方式对各个特征的距离进行修正。加权的基本思想是:某个特征对应的离散区间数量大,该特征内两个不同的取值所体系出的距离应该越小。实际应用中,每项dl(i,j)可以以1/kl作为权值,当然也可以使用kl的指数幂的倒数或对数的倒数等作为权值,本申请对此并不需要进行限定。在本申请的一种实施方式中,对每个dl(i,j)增加修正参数1/kl,其中kl为数据样本第l个特征所对应的离散区间数量,得到修正的样本间距离计算公式如下:针对表2所示的数据样本集,利用上述修正距离计算公式,可以得到样本间距离矩阵如表3所示:表3表3所示矩阵中,第i行第j列的数值即为i和j的距离dij,可以看出该矩阵为对称矩阵,即dij=dji。进一步,利用高斯核函数,将任意两个样本i和j的之间距离dij转换为任意两个样本i和j之间的相似度sij,高斯核函数也称径向基函数,表达式如下:其中ε为高斯半径,是可以自定义的参数,将距离转换为相似度的目的,在于将距离较为稠密的样本点稀疏化,使得在一个样本点x周围,如果其他样本点y与x的距离超过了ε,则x与y的相似度能够明显衰减。为了实现自适应处理,这里ε可以取值为所有数据样本对之间距离的标准差,当然这并不应理解为对本申请方案的限定,本领域技术人员可以根据实际情况(例如采用多次尝试法)选取具体的ε值。针对表3所示的样本间距离矩阵,利用高斯核函数进行转化后,可以得到如表4所示的样本间相似度矩阵:表4表4所示矩阵中,第i行第j列的数值即为i和j的相似度sij,可以看出该矩阵为对称矩阵,即sij=sji。最后,根据s103,对数据样本集进行聚类。首先根据sij构成的样本点相似度图,该相似度图具有6个顶点,分别对应6个数据样本,任意两个顶点i和j之间存在一条以sij为权重值的边,利用标准谱聚类算法得到最终聚类结果如表5所示:agecitydepositmarriagecluster110上海1000.001225南京2000.012311上海3000.002436北京4000.012524北京5000.022626北京6000.012表5可见,数据样本2、3、4、5、6属于一个类簇,数据样本1则属于另外一个类簇,从数据分析的角度,可以认为样本1存在异常,并将样本1筛选出来以作后续的分析处理。可见,应用上述技术方案,无论给定数据样本集包括多少个特征、特征的具体类型如何,均能够自动计算出数据样本的距离并进行聚类,从而有效地降低数据筛选过程中的聚类调试成本消耗。在本申请方案改进的实施方式中,通过自适应确定参数等手段,还可以进一步减少数据分析人员的参数调试工作,使聚类过程不需要任何人工参与,只要输入数据样本集就可以自动得出最优的聚类结果,从而有效提高数据筛选的整体处理效率。相应于上述方法实施例,本申请还提供一种数据聚类装置,参见图2所示,该装置可以包括:离散化处理模块110,用于对待处理数据样本集的连续变量特征取值进行离散化处理;相似度计算模块120,用于根据离散化处理结果,利用预设的相似度算法计算任意两个数据样本i和j之间的相似度sij(i≠j),其中i、j的取值包括不大于n的所有自然数,n为数据样本集中的数据样本总数;聚类模块130,用于根据任意两个数据样本i和j之间的相似度sij,利用预设的聚类算法对n个数据样本进行聚类。在本申请的一种具体实施方式中,离散化处理模块110可以具体用于:对于任一连续变量特征,利用kmeans算法对n个数据样本的该特征取值进行聚类,并为每个类簇指定相应的离散取值。其中,kmeans算法的k值可以利用最佳聚类数算法自动确定。在本申请的一种具体实施方式中,相似度计算模块120可以具体用于:对于任意两个数据样本i和j:分别计算i的第l个特征值和j的第l个特征值的距离dl(i,j),其中l的取值包括不大于l的所有自然数,l为数据样本的特征总数;对l个dl(i,j)进行求和得到i和j的距离dij;利用高斯核函数计算sij,ε为预设的高斯半径参数。在本申请的一种具体实施方式中,相似度计算模块120可以利用对l个dl(i,j)进行加权求和的方式得到i和j的距离dij;其中加权求和的权值为1/kl,kl为数据样本第l个特征所对应的离散区间数量。在本申请的一种具体实施方式中,ε的取值可以是所有数据样本对之间距离的标准差。通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本申请方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。以上所述仅是本申请的具体实施方式,应当指出,对于本
技术领域
的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1