一种基于属性选择的相似性度量方法与流程

文档序号:15932523发布日期:2018-11-14 01:52阅读:187来源:国知局

本发明涉及信息处理的技术领域,更具体地,涉及一种基于属性选择的相似性度量方法。

背景技术

近年来,随着信息技术的飞速发展,高维数据已经大幅度的产生。能够使用数据挖掘技术处理高维数据来提取隐藏的有价值的信息是必需的。目前,电力行业的业务应用系统产生的海量业务数据已被企业管理层定义为数据资产的高度,并将数据资产工作的管理划定到了专门的管理部门。从目前的管理效果和使用情况来看,目前电力行业的数据质量情况不甚乐观。分析原因,主要是管理方式太过于技术化,或者说管理的规则太偏于技术,不能与业务情况适时的相结合,导致投入了大量的人力、物力治理的数据质量,在应用层面效果仍不是很明显。例如不同的应用系统存在对同一个实体对象的命名的不同情况,台账和监控中对同一台设备可能命名不同,两个不同地市的通信监控系统可能对对方网元的命名也不相同,如何通过算法判断为同一对象是数据治理中面临的问题。借助属性选择减少计算成本,实现对相似性的度量具有现实的研究意义。对于许多聚类、分类和异常检测等数据挖掘算法,相似度量是其中不可分割的一部分,它将两个数据的相似度进行比较,为算法的处理提供更好的选择,因此相似度量具有很大的研究价值。传统的相似度量方法以距离为基础,以距离为主要评价指标。它们忽略了数据之间的联系,这可能导致数据挖掘性能不佳。因此,需要开发现有的相似性度量方法来处理高维数据,并考虑数据之间的关系,以便在数据挖掘任务上获得更好的性能。

基于距离的相似性度量方法有着广泛的应用,基于数据的相似性度量在70年初就有了心理学基础,它表明两个对象之间的相似性不仅基于几何距离,而且基于对象的语境。数据相关的相似性度量方法的主要思想是用一个覆盖每个维度两个实例的区域的概率质量来评价两个实例之间的相异性。然而,这种方法需要遍历每个维度中的所有实例而导致的计算成本。为了演化数据相关性相似性度量,提出了一种基于质量的相似性度量方法叫‘我’的方法,用iforest来定义区域和计算区域中的质量概率以获得相似性结果。该方法计算成本较低,鲁棒性强,效率高,能够检测局部异常。即使“我”的方法在处理低维数据任务方面表现良好,例如离群点检测,但是由于iforest采用随机属性选择策略的特征,因此它不是用来处理高维数据。因此,在高维数据挖掘任务中需要改进现有的数据相关相似性方法。

专利cn104077365a提供一种增强相似度关联的相似性度量方法,能够通过增强相似性关联来扩大比较对象之间的关联范围,但该方案需要遍历每个维度中的所有实例,计算成本较高;专利cn104731887a采用一种考虑社会属性的相似性度量方法,充分考虑用户社会属性信息的相似度度量方法,以突破相似度度量性能的瓶颈,为用户提供精度更高、体验更好的个性化服务,但该方案计算过程复杂,需多次聚类,复杂度较高,代价较大;专利cn104063445b提供一种相似性度量的方法,将行为数据和特征数据进行综合利用,但是需要遍历每个维度中的所有实例,导致较高的计算成本。

本发明的主要思路是建立多个决策树分区形成分区森林,对需比较相似性的两个实例集利用分区森林进行分区,采用实例个数最少的分区作为相似性计算的基础,而建立决策树时采用本发明提出的属性选择策略形成决策树的分支。



技术实现要素:

本发明为克服上述现有技术所述的至少一种缺陷,提供一种基于属性选择的相似性度量方法,在建立分区森林时考虑属性的重要性,克服了在处理高维数据时算法复杂度较高、计算过程复杂的问题,在离群点检测时比其他算法具有更好的性能,能够有效地处理高维数据。

为解决上述技术问题,本发明的技术方案如下:

本发明将数据准备阶段处理后的所有数据集合称之为数据集,数据集中的每个对象称之为实例,由实例组成的集合称之为实例集。

一种基于属性选择的相似性度量方法,包括:

数据准备阶段:对初始数据进行预处理并对连续的数据集进行离散化处理;

随机森林建立阶段:包括属性选择和实例划分,选择属性集内具有最大显著率的属性对数据集的实例划分分区,然后重复属性选择和实例划分迭代建立m个决策树。

相似性计算阶段:根据分区森林的m个决策树计算任意x和y实例集之间相似性的大小。

优选地,所述数据准备阶段的离散化处理为:

将每个连续型数据集u的取值范围划分为等宽度的t个区间,其中u={x1,x2,…,xn}为实例集,所以离散化后的数据集具有t种取值,其每种取值的实例数量之和等于数据集的总实例数,如下公式表示:

对于数据集xi具有n个实例(xi1,xi2,…,xin),{xi1,xi2,…,xin}表示实例总数,(qit,t)表示属于取值t的实例数量。

优选地,所述的属性选择用于确定属性集c内具有最大显著率的属性方法包括:

将属性集c中的各属性的重要程度进行量化,其中c={c1,c2,…,cn}为属性集,使用sig表示每个属性的重要程度,sig的定义如下:

设存在两个属性子集b和c-b,已被选择的属性包含于子集b中,未被选择的属性包含于子集c-b中。对于已选定的属性子集b∈b,由属性集b确定的分区表示为:u/b={x1,x2,x3,…,xb};未选定属性c∈c-b,其确定的分区表示为:u/c={y1,y2,y3,…,yc},计算未被选择的属性子集中每一个属性的sig,sig的定义公式如下:

sig(c)表示属性c的重要性,其中eij等于xi∩yj,f(eij)的计算公式定义如下:

公式(3)中,当时,f(eij)=0,否则,f(eij)=s(xi∩yj),其中s(xi∩yj)为集合xi∩yj中的元素个数。

比较属性子集c-b中每个属性的显著率,属性c的显著率stree(c)定义如下:

公式(4)中,f(ei)=s(xi),s(xi)为数据集xi中元素的个数,计算属性子集c-b中每个属性的显著率,找到具有最大显著率的属性。

优选地,在随机森林建立阶段,所选属性集的初始集合b为空集,未选属性集的初始集合c-b为全集;计算未选属性集c-b中每一个属性的显著率,选择显著率最大的属性作为分区依据;在每次分区之后,将所选属性c放入所选属性集合b中,在属性集合c中删除属性c,更新后的所选属性集合b和未选属性集合c-b用于下一次分区计算。

优选地,所述实例划分的分区方式为:

从数据集u中随机选取usub个实例来训练决策树,根据各实例中属性c的取值将实例集分为两部分,一部分属于新建立的分区r,一部分属于剩余实例子集;

判断剩余实例子集是否可分区,若可以则返回对剩余实例子集进行属性选择,否则,实例划分结束,一个决策树建立完成;

然后重复属性选择和实例划分迭代建立m个决策树。

优选地,所述的相似性计算阶段包括:

对于任意两个数据实例集x,y,让其经过m个决策树,每个决策树对实例集分别进行分区并根据式(5)计算两个数据实例集x,y间相似性rsf(x,y):

其中,stree,i表示第i个决策树使用的属性选择策略,r(x,y|stree,i)表示当使用第i个决策树进行实例集分区时,包含x、y中最少实例数的分区r,|r(x,y|stree,i)|表示实例集x与实例集y在区域r中实例的数量,表示实例集x,y中的实例出现在区域r中的概率质量,m个决策树概率质量的平均值即为x,y之间的相似性大小rsf(x,y)。

优选地,根据所述的rsf(x,y)的取值,可判断两个数据集x,y间相似性的大小,rsf(x,y)取值越大,说明两个数据集越相似,反之,越不相似。

优选地,所述的基于属性选择的相似性度量方法的rsf(x,y)算法伪代码如下:

优选地,所述的基于属性选择的相似性度量方法具体包括以下步骤:

步骤1:对初始数据进行数据清洗、数据合并与集成、缺失值插补及统一数据格式预处理;

步骤2:在步骤1预处理之后的连续数据集进行离散化处理,将每个连续型数据的取值范围分为等宽度的t个区间,离散化后的数据集具有t种取值,;

步骤3:选取步骤2中数据集的实例训练决策树,开始建立第i=1个决策树;建立所选属性集的初始集合b为空集,未选属性集的初始集合c-b为全集;

步骤4:计算步骤3中属性集c-b中每个候选属性的重要程度sig;

步骤5:计算步骤4中每个候选属性的显著率stree(c);

步骤6:选择步骤5中显著率最大的属性作为数据分区的依据,;

步骤7:若步骤6中具有显著率最大的属性,根据步骤6中选择的显著率最大的属性取值将剩余实例集分为两部分:属于新分区的实例集和剩余实例集,同时将选择的显著率最大属性在属性集合c-b中删除并放入所选属性集合b中,然后更新所选属性集合b和未选属性集合c-b并返回步骤4继续执行;若步骤6中多个属性的显著率最大且相等,说明剩余实例集不可分,令i=i+1,执行步骤8;

步骤8:判断i与m的大小,若i小于或者等于m,则回到步骤4开始建立第i个决策树;若i大于m,则完成所有m个决策树的建立,执行步骤9;

步骤9:将实施例x和y作为输入实例集,利用上述步骤建立的m个决策树对输入实例集分别进行分区;

步骤10:比较每个决策树的每个分区中实例数的个数,找到实例数最小的分区,m个决策树可找到m个最小分区。

步骤11:计算实例出现在m个最小分区的概率质量并计算平均值,平均值即为实例集间的相似性大小。

与现有技术相比,有益效果是:

(1)本发明算法提出了属性重要性的定义,即在进行数据分区时,选择最为重要的属性作为分区依据,并定义了属性显著率的计算公式,显著率最高的属性认为是最为重要的属性;

(2)本发明算法利用显著率最高的属性作为分区依据建立m个分类决策树,形成分区森林,对于需要比较相似性的两个实例集x、y,依次经过m个决策树进行分区,每经过一个决策树找到包含x、y实例数最小的分区,以x、y中的实例出现在m个最小分区的平均概率质量作为计算两个实例集间相似性的依据,定义了相似性计算的公式;

(3)本发明算法在建立分区森林时考虑属性的重要性,在离群点检测时比其他算法具有更好的性能,能够有效地处理高维数据。

附图说明

图1是本发明整体流程图。

图2是rsf算法的auc(k=100)随t变化示意图。

图3是rsf-knn,m-knn和knn算法的auc(t=8)随k变化示意图。

图4是rsf-knn,m-knn和knn算法的时间复杂度(t=8,k=100)示意图。

具体实施方式

附图仅用于示例性说明,不能理解为对本专利的限制;为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。附图中描述位置关系仅用于示例性说明,不能理解为对本专利的限制。

定义1:将信息系统s表示为:s=(u,c,v,f),其中u={x1,x2,…,xn}为实例集,c={c1,c2,…,cn}为属性集,v是c的值集,f:u×c→v为映射函数。

定义2:c中的任何子集b决定了u上的不可分辨关系ind(b)。ind(b)定义如下:当且仅当对于任意一个b∈b,b(xi)=b(xj)时,实例xi与实例xj为不可分辨关系,定义为(xi.xj)∈ind(b),其中b(x)表示实例x中属性b的值。ind(b)也称为等价关系,并且由b确定的分区表示为u/ind(b),缩写为u/b。

本发明将数据准备阶段处理后的所有数据集合称之为数据集,数据集中的每个对象称之为实例,由实例组成的集合称之为实例集。

如图1所示,一种基于属性选择的相似性度量方法,具体包括

一种基于属性选择的相似性度量方法,包括:

数据准备阶段:对初始数据进行预处理并对连续的数据集进行离散化处理;

随机森林建立阶段:包括属性选择和实例划分,选择属性集内具有最大显著率的属性对数据集的实例划分分区,然后重复属性选择和实例划分迭代建立m个决策树。

相似性计算阶段:根据分区森林的m个决策树计算任意x和y实例集之间相似性的大小。

所述数据准备阶段的离散化处理为:

将每个连续型数据集u的取值范围划分为等宽度的t个区间,其中u={x1,x2,…,xn}为实例集,所以离散化后的数据集具有t种取值,其每种取值的实例数量之和等于数据集的总实例数,如下公式表示:

对于数据集xi具有n个实例(xi1,xi2,…,xin),{xi1,xi2,…,xin}表示实例总数,(qit,t)表示属于取值t的实例数量。

所述的属性选择用于确定属性集c内具有最大显著率的属性方法包括:将属性集c中的各属性的重要程度进行量化,其中c={c1,c2,…,cn}为属性集,使用sig表示每个属性的重要程度,sig的定义如下:

设存在两个属性子集b和c-b,已被选择的属性包含于子集b中,未被选择的属性包含于子集c-b中。对于已选定的属性子集b∈b,由属性集b确定的分区表示为:u/b={x1,x2,x3,…,xb};未选定属性c∈c-b,其确定的分区表示为:u/c={y1,y2,y3,…,yc},计算未被选择的属性子集中每一个属性的sig,sig的定义公式如下:

sig(c)表示属性c的重要性,其中eij等于xi∩yj,f(eij)的计算公式定义如下:

公式(3)中,当时,f(eij)=0,否则,f(eij)=s(xi∩yj),其中s(xi∩yj)为集合xi∩yj中的元素个数。

比较属性子集c-b中每个属性的显著率,属性c的显著率stree(c)定义如下:

公式(4)中,f(ei)=s(xi),s(xi)为数据集xi中元素的个数,计算属性子集c-b中每个属性的显著率,找到具有最大显著率的属性。

在随机森林建立阶段,所选属性集的初始集合b为空集,未选属性集的初始集合c-b为全集;计算未选属性集c-b中每一个属性的显著率,选择显著率最大的属性作为分区依据;在每次分区之后,将所选属性c放入所选属性集合b中,在属性集合c中删除属性c,更新后的所选属性集合b和未选属性集合c-b用于下一次分区计算。

所述实例划分的分区方式为:从数据集u中随机选取usub个实例来训练决策树,根据各实例中属性c的取值将实例集分为两部分,一部分属于新建立的分区r,一部分属于剩余实例子集;判断剩余实例子集是否可分区,若可以则返回对剩余实例子集进行属性选择,否则,实例划分结束,一个决策树建立完成;然后重复属性选择和实例划分迭代建立m个决策树。

所述的相似性计算阶段包括:对于任意两个数据实例集x,y,让其经过m个决策树,每个决策树对实例集分别进行分区并根据式(5)计算两个数据实例集x,y间相似性rsf(x,y):

其中,stree,i表示第i个决策树使用的属性选择策略,r(x,y|stree,i)表示当使用第i个决策树进行实例集分区时,包含x、y中最少实例数的分区r,|r(x,y|stree,i)|表示实例集x与实例集y在区域r中实例的数量,表示实例集x,y中的实例出现在区域r中的概率质量,m个决策树概率质量的平均值即为x,y之间的相似性大小rsf(x,y)。

根据所述的rsf(x,y)的取值,可判断两个数据集x,y间相似性的大小,rsf(x,y)取值越大,说明两个数据集越相似,反之,越不相似。

所述的基于属性选择的相似性度量方法的rsf(x,y)算法伪代码如下:

所述的基于属性选择的相似性度量方法具体包括以下步骤:

步骤1:对初始数据进行数据清洗、数据合并与集成、缺失值插补及统一数据格式预处理;

步骤2:在步骤1预处理之后的连续数据集进行离散化处理,将每个连续型数据集u={x1,x2,…,xn}的取值范围分为等宽度的t个区间,离散化后的数据集有t种取值,其每种取值的实例数量之和等于数据集的总实例数,如下公式表示:

对于数据集xi具有n个实例(xi1,xi2,…,xin),{xi1,xi2,…,xin}表示实例总数,(qit,t)表示属于取值t的实例数量;

步骤3:选取步骤2中数据集的实例训练决策树,开始建立第i=1个决策树;利用属性集c建立两个子集:所选属性集及未选属性集,所选属性集的初始集合b为空集,未选属性集的初始集合c-b为全集;

步骤4:计算步骤3中属性集c-b中每个候选属性的重要程度sig;对于已选定的属性子集b∈b,由属性集b确定的分区表示为:u/b={x1,x2,x3,…,xb};未选定属性c∈c-b,其确定的分区表示为:u/c={y1,y2,y3,…,yc},计算未被选择的属性子集中每一个属性的sig,sig的定义公式如下:

sig(c)表示属性c的重要性,其中eij等于xi∩yj,f(eij)的计算公式定义如下:

公式(3)中,当时,f(eij)=0,否则,f(eij)=s(xi∩yj),其中s(xi∩yj)为集合xi∩yj中的元素个数;

步骤5:计算步骤4中每个候选属性的显著率stree(c);利用步骤4中计算比较属性子集c-b中每个属性的显著率,属性c的显著率stree(c)定义如下:

公式(4)中,f(ei)=s(xi),s(xi)为数据集xi中元素的个数,计算属性子集c-b中每个属性的显著率,找到具有最大显著率的属性;

步骤6:选择步骤5中显著率最大的属性作为数据分区的依据;

步骤7:若步骤6中具有显著率最大的属性,根据步骤6中选择的显著率最大的属性取值将剩余实例集分为两部分:属于新分区的实例集和剩余实例集,同时将选择的显著率最大属性在属性集合c-b中删除并放入所选属性集合b中,然后更新所选属性集合b和未选属性集合c-b并返回步骤4继续执行;若步骤6中多个属性的显著率最大且相等,说明剩余实例集不可分,令i=i+1,执行步骤8;

步骤8:判断i与m的大小,若i小于或者等于m,则回到步骤4开始建立第i个决策树;若i大于m,则完成所有m个决策树的建立,执行步骤9;

步骤9:将实施例x和y作为输入实例集,利用上述步骤建立的m个决策树对输入实例集分别进行分区;

步骤10:比较每个决策树的每个分区中实例数的个数,找到实例数最小的分区,m个决策树可找到m个最小分区。

步骤11:计算实例出现在m个最小分区的概率质量并计算平均值,平均值即为实例集间的相似性大小;根据式(5)计算两个数据实例集x,y间相似性rsf(x,y):

其中,stree,i表示第i个决策树使用的属性选择策略,r(x,y|stree,i)表示当使用第i个决策树进行实例集分区时,包含x、y中最少实例数的分区r,|r(x,y|stree,i)|表示实例集x与实例集y在区域r中实例的数量,表示实例集x,y中的实例出现在区域r中的概率质量,m个决策树概率质量的平均值即为x,y之间的相似性大小rsf(x,y)。

k最近邻分类算法(knn)以其简单性和有效性,在模式识别、机器学习、数据挖掘等领域有着广泛的研究和应用。传统的knn离群点检测算法都是基于距离相似性度量的,这种方法简单但计算成本高,且忽略了数据之间的联系。在下面的实验中,将比较rsf-knn算法、m-knn算法和knn算法的性能。rsf-knn算法使用本发明提出的rsf算法来替代knn算法中的距离相似性度量,m-knn算法使用传统的基于数据相似性度量简单地取代了基于距离的相似性度量。

本发明使用macossierra@64bit,intelcorei5@2.60ghz,8gbram@1600mhz,250gbssdharddisk配置的笔记本完成rsf-knn,m-knn和knn算法的所有实验。本发明采用具有50000个实例,每个实例具有500个属性的数据集作为本实验的测试数据集,以测试rsf-knn,m-knn和knn算法检测离群点的能力。

在比较以上三种算法的性能时,采用auc作为评价指标,auc表示roc曲线下的面积。roc曲线是反映算法敏感性和特异性的综合评价指标,以检测率为纵坐标,误检率为横坐标绘制曲线,曲线下面积越大说明算法的准确性越高,因此可采用auc作为算法的评价指标,auc的值在0和1之间,当分数接近1时,性能更好。

在进行算法前,需提前设定两个参数k与t。参数k表示三种knn算法在对某实例进行数据分区时对比的最近或者最相似实例的数目;参数t表示连续型数据离散化后的区间数量。实验的过程主要分为三部分:一是当参数k固定,t取值不同时,观察rsf-knn算法的性能变化;二是当参数t固定,当参数k不同时,三种算法的性能比较;三是当参数k和参数t都固定,实例数增加时,观察三种算法时间复杂度的变化。

(1)实验一:参数k设定为100

如图2所示,当k=100时,rsf-knn算法性能随着t越来越好,但时间复杂度也越来越高。而当t大于8时,auc几乎相同,为了平衡算法的性能和计算成本,本发明为其余的实验设置参数t=8。

(2)实验二:参数t设定为8

如图3所示,当k<200时,knn算法性能优于m-knn算法,当k>200时,m-knn算法的性能优于knn算法,而rsf-knn算法的性能始终优于knn算法和m-knn算法,因此本发明提出的一种基于属性选择的相似性度量方法是有效的。

(3)实验三:参数k设定为100,参数t设定为8

如图4所示,rsf-knn算法的时间复杂度略高于knn和m-knn算法,但随着实例数的增加,三者时间复杂度的差异逐渐变小。

综上,虽然在实例数较少时,rsf-knn算法的时间复杂度较高,但当实例数大幅增加时,三种算法的时间复杂度差异不再明显,而rsf-knn的准确率始终高于knn和m-knn算法,因此,rsf-knn算法在数据量较大时具有较好的性能。

rsf相似性度量方法的时间复杂度由三部分组成,属性选择、分区构建和概率质量计算。一个分区的属性选择的时间复杂度为参数t越大,复杂度和精度越高,否则复杂度越低,准确度越低。添加属性选择的分区构建的时间复杂度是质量计算的时间复杂度是因此,当n为大时,rsf的时间复杂度几乎是o(n2)。

显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

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