一种基于RBF神经网络的重复记录检测方法和系统与流程

文档序号:12121534阅读:213来源:国知局
一种基于RBF神经网络的重复记录检测方法和系统与流程

本发明主要涉及数据挖掘领域,具体涉及一种基于RBF神经网络的重复记录检测方法和系统。



背景技术:

大数据时代,企事业单位能够通过挖掘大数据中有用价值来提高经决策能力。大数据往往要经过数据清洗才能达到理想的质量要求,重复记录检测是数据清洗的重要环节,所谓重复记录定义如下:同一个现实实体在数据集合中用多条不完全相同的记录来表示。常见的形成种类有:插入、删除、交换、替换等。例如表1:

表1:重复记录示例

常用的方法有:基本的字段匹配算法,递归的字段匹配算法,基于“排序”&“合并”方法,采用距离函数模型的方法,基于q-gram算法,基于聚类的算法等。此类算法不但计算复杂度高,并且准确率不高。



技术实现要素:

本发明所要解决的技术问题是提供一种基于RBF神经网络的重复记录检测方法和系统,对RBF神经网络模型进行优化处理,优化后的RBF神经网络模型经过训练后可识别重复记录,能够保持较好的稳定性、准确率和召回率。

本发明解决上述技术问题的技术方案如下:一种基于RBF神经网络的重复记录检测方法,包括如下步骤:

步骤S1:将多条记录进行聚类,从而将记录分为多个记录类;

步骤S2:根据字符串相似度算法计算每个记录类中对应字段之间的相似度,从而得到字段之间相似度的特征向量;具体的,所述字符串相似度算法为Jaro字符串相似度算法;

步骤S3:依照特征向量将聚类后的记录标注为重复记录的标签或非重复记录的标签,得到带标签的记录;

步骤S4:建立RBF神经网络模型,并根据减聚类算法对特征向量进行聚类,得到的聚类中心个数,将聚类中心个数作为RBF神经网络模型的隐层节点个数;

步骤S5:根据粒子群算法和聚类方法对所述隐层节点个数进行聚类来得到RBF神经网络模型的隐层节点,从而得到优化后的RBF神经网络模型;

步骤S6:将所述特征向量与带标签的记录配送给优化后的RBF神经网络进行训练,从而训练出可识别重复记录的重复记录检测模型,通过所述重复记录检测模型对带标签的记录进行重复记录检测。

本发明的有益效果是:通过减聚类算法得到RBF神经网络模型的隐层节点个数,并通过粒子群算法和聚类方法来得到RBF神经网络模型的隐层节点,从而实现RBF神经网络模型的优化,优化后的RBF神经网络模型对记录进行处理,能够保持较好的稳定性、准确率和召回率。

在上述技术方案的基础上,本发明还可以做如下改进。

进一步,步骤S4中,所述减聚类算法为SCM减聚类法,SCM减聚类法对特征向量进行聚类,得到RBF神经网络模型的隐层节点个数的具体方法为:

将所述特征向量作为SCM减聚类法的输入数据集,通过公式(1)计算特征向量的密度最大点,得到第一聚类中心,

其中,X为特征向量,γa∈R+a为Xi的邻域半径,选定最大的密度值,设为Dc1,所对应的样本Xc1作为第一聚类中心,

通过公式(2)更新样本Xc1密度值,

Di=Di-Dc1exp(-β||Xi-Xc1||2) (2)

求出更新后的聚类中心,直到Dci<εDc1,其中ε取值为0.5,得到聚类中心个数,将得到的聚类中心个数作为RBF神经网络模型的隐层节点个数,

其中,γb=ηγa,η为系数,η=R+b表示为一个密度指标函数显著减少的邻域。

采用上述进一步方案的有益效果是:影响RBF神经网络性能的最主要的因素是的隐含层中心的选取,通过减聚类法能够有效的确定聚类中心个数。

进一步,所述η=R+取η=1.5,即γb=1.5γa

采用上述进一步方案的有益效果是:能够避免出现相距很近的聚类中心的情况。

进一步,所述根据粒子群PSO算法和K-Means聚类方法对隐层节点个数进行聚类来得到RBF神经网络模型的隐层节点的方法为:所述根据粒子群算法为粒子群PSO算法,所述聚类方法为K-Means聚类方法;

将特征向量的数据集作为粒子群PSO算法的粒子,通过粒子群PSO算法输出最优适应值的粒子,并根据最优适应值的粒子来优化K-Means聚类方法,再将RBF神经网络模型隐层节点的个数作为优化后的K-Means聚类方法的聚类个数,通过优化后的K-Means聚类方法对隐层节点的个数进行聚类来得到聚类中心,将所述聚类中心作为RBF神经网络模型的隐层节点。

进一步,所述通过粒子群PSO算法输出最优适应值的粒子,并根据最优适应值的粒子来优化K-Means聚类方法,具体实现如下:

将特征向量的数据集作为粒子群PSO算法中的粒子,根据粒子的位置来决定是否进行粒子更新,如果更新则根据公式(3)和公式(4)来更新输入粒子的速度和位置,

vid=w·vid+c1·rand()·(pid-xid)

+c2·rand()·(pgd-xid) (3)

xid=xid+vid (4)

其中w为惯性权重,Vid为粒子的速度,Xid为粒子当前位置,Pid为粒子的个体位置最优值,Pgd为粒子的群体位置最优值,c1和c2为加速常数,rand()为在[0,1]范围里变化的随机值;

再根据群体适应度方差,即公式(5)判断粒子群是否收敛,若收敛,则输出最优适应值的粒子所包含的聚类划分,根据最优适应值的粒子得到K-Means聚类中心的编码,并根据最邻近法则确定特征向量的数据集中的聚类划分,K-Means聚类方法根据所述编码计算聚类中心,重新划分特征向量的数据集,

其中,δ2为适应度方差,n为粒子个数;fi为第i个粒子的适应值;favg为粒子群目前的平均适应度,f为归一化因子。

采用上述进一步方案的有益效果是:通过粒子群PSO算法能够对K-Means聚类方法进行优化,优化的K-Means聚类方法计算聚类中心能够得到隐含层中心。

进一步,所述判断粒子群是否收敛的方法为:当δ2<m时,m为预设的阈值,即粒子群进入收敛阶段时,则完成对K-Means聚类方法的优化。

进一步,所述根据粒子的位置来决定是否进行更新的方法为:根据适应度函数计算粒子当前的适应值作为粒子的编码,根据编码随机初始化粒子的速度和位置,并反复进行T次随机初始化,生成含有n个粒子的初始化种群;

根据个体寻优方法确定初始化种群中粒子当前的位置是否为该粒子经历的个体位置最优值Pid,以及通过群体寻优方法确定粒子当前的位置是否为初始化种群粒子中的群体位置最优值Pgd,如果是,则通过公式(3)和公式(4)进行更新初始化种群中粒子的速度和位置。

采用上述进一步方案的有益效果是:通过求取粒子的两个位置最优值来对粒子进行更新,进而实现对K-Means聚类方法的优化。

进一步,所述根据适应度函数计算粒子当前的适应值的方法为:将粒子随机划分类别作为最初的种群聚类,并计算种群聚类的聚类中心,利用公式(6)来计算粒子当前的适应值,

其中,E为适应值,h为聚类中心的个数,n为粒子群大小,Ci为种群聚类的聚类中心值,d为距离函数,xj为粒子的空间位置。

采用上述进一步方案的有益效果是:通过求取粒子的两个位置最优值来对粒子进行更新,进而实现对K-Means聚类方法的优化。

本发明解决上述技术问题的另一技术方案如下:一种基于RBF神经网络的重复记录检测系统,包括:

记录分类模块,用于将多条记录进行聚类,从而将记录分为多个记录类;

特征向量模块,用于根据字符串相似度算法计算两两记录类中预设字段之间的相似度,从而得到字段之间相似度的特征向量;

标签标注模块,用于依照特征向量将聚类后的记录标注为重复记录的标签或非重复记录的标签,得到带标签的记录;

聚类模块,用于建立RBF神经网络模型,并根据减聚类算法对特征向量进行聚类,得到的聚类中心个数,将聚类中心个数作为RBF神经网络模型的隐层节点个数;

优化模块,用于根据粒子群算法和聚类方法对所述隐层节点个数进行聚类来得到RBF神经网络模型的隐层节点,从而得到优化后的RBF神经网络模型;

训练模块,根据将所述特征向量与带标签的记录配送给优化后的RBF神经网络进行训练,得到重复记录检测模型,通过所述重复记录检测模型对带标签的记录进行重复记录检测。

在上述技术方案的基础上,本发明还可以做如下改进。

进一步,聚类模块中所述减聚类算法为SCM减聚类法,SCM减聚类法对特征向量进行聚类,得到RBF神经网络模型的隐层节点个数的具体方法为:

将所述特征向量作为SCM减聚类法的输入数据集,通过公式(1)计算特征向量的密度最大点,得到第一聚类中心,

其中,Xi为特征向量,γa∈R+a为Xi的邻域半径,选定最大的密度值,设为Dc1,所对应的样本Xc1作为第一聚类中心,

通过公式(2)更新样本Xc1密度值,

Di=Di-Dc1exp(-β||Xi-Xc1||2) (2)

求出更新后的聚类中心,直到Dci<εDc1,其中ε取值为0.5,得到聚类中心个数,将得到的聚类中心个数作为RBF神经网络模型的隐层节点个数,

其中,γb=ηγa,η为系数,η=R+b表示为一个密度指标函数显著减少的邻域。

附图说明

图1为本发明基于RBF神经网络的重复记录检测方法实施例的方法流程图;

图2为本发明基于RBF神经网络的重复记录检测系统实施例的模块框图。

具体实施方式

以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。

RBF神经网络模型是一种具有单隐含层的三层前馈网络,由输入层、隐含层和输出层组成,RBF神经网络模型具有结构简单、训练速度快、能够逼近任意非线性函数的优点,而影响RBF神经网络模型性能的最主要的因素是的隐含层中心的选取,目前最常用的隐含层中心的确定方法是K-means聚类算法,其基本思想是从X个数据样本中随机选取h个数据作为初始聚类中心,然后计算所有样本与聚类中心的距离,对输入样本进行分类,重新计算新的聚类中心,重复上述步骤,直至聚类中心不再变化。K-means聚类算法简单易实现,但是由于初始聚类中心是随机选取,对中心的依赖性强,容易陷入局部最优解,并且其聚类中心的个数是事先给定的,不能根据数据样本特点来确定最合适的聚类个数,针对这一问题,引入了减聚类法,减聚类法能够自适应的确定聚类个数,进而通过粒子群(PSO)优化K-Means得到隐含层中心。

如图1所示的一种基于RBF神经网络的重复记录检测方法,包括如下步骤:

步骤S1:将多条记录进行聚类,从而将记录分为多个记录类;

步骤S2:根据字符串相似度算法计算两两记录类中预设字段之间的相似度,从而得到字段之间相似度的特征向量;具体的,所述字符串相似度算法为Jaro字符串相似度算法;

步骤S3:依照特征向量将聚类后的记录标注为重复记录的标签或非重复记录的标签,得到带标签的记录;具体的,重复记录可标记为“1”,非重复记录可标记为“-1”;

步骤S4:建立RBF神经网络模型,并根据减聚类算法对特征向量进行聚类,得到的聚类中心个数,将聚类中心个数作为RBF神经网络模型的隐层节点个数;

步骤S5:根据粒子群算法和聚类方法对所述隐层节点个数进行聚类来得到RBF神经网络模型的隐层节点,从而得到优化后的RBF神经网络模型;

步骤S6:将所述特征向量与带标签的记录配送给优化后的RBF神经网络进行训练,从而训练出可识别重复记录的重复记录检测模型,通过所述重复记录检测模型对带标签的记录进行重复记录检测。

通过减聚类算法得到RBF神经网络模型的隐层节点个数,并通过粒子群PSO算法和K-Means聚类方法来得到RBF神经网络模型的隐层节点,从而实现RBF神经网络模型的优化,优化后的RBF神经网络模型对记录进行处理,能够保持较好的稳定性、准确率和召回率。

具体的,在该实施例中,对于步骤S4,所述减聚类算法为SCM减聚类法,SCM减聚类法对特征向量进行聚类,得到RBF神经网络模型的隐层节点个数的具体方法为:

将所述特征向量作为SCM减聚类法的输入数据集,通过公式(1)计算特征向量的密度最大点,得到第一聚类中心,

其中,X为特征向量,γa∈R+a为Xi的邻域半径,选定最大的密度值,设为Dc1,所对应的样本Xc1作为第一聚类中心,

通过公式(2)更新样本Xc1密度值,

Di=Di-Dc1exp(-β||Xi-Xc1||2) (2)

求出每次更新后的聚类中心,直到Dci<εDc1,其中ε取值为0.5,得到聚类中心个数,将得到的聚类中心个数作为RBF神经网络模型的隐层节点个数,

其中,γb=ηγa,η为系数,η=R+b表示为一个密度指标函数显著减少的邻域。

影响RBF神经网络性能的最主要的因素是的隐含层中心的选取,通过减聚类法能够有效的确定聚类中心个数。

上述实施例中,所述η=R+取η=1.5,即γb=1.5γa。能够避免出现相距很近的聚类中心的情况。

应理解,粒子群PSO算法是基于群体的,根据对环境的适应度将群体中的个体移动到好的区域。然而它不对个体使用演化算子,而是将每个个体看作是D维搜索空间中的一个没有体积的微粒(点),在搜索空间中以一定的速度飞行,这个速度根据它本身的飞行经验和同伴的飞行经验来动态调整。

作为本发明的一个实施例,所述根据粒子群算法和聚类方法对隐层节点个数进行聚类来得到RBF神经网络模型的隐层节点的方法为:所述根据粒子群算法为粒子群PSO算法,所述聚类方法为K-Means聚类方法;

将特征向量的数据集作为粒子群PSO算法的粒子,通过粒子群PSO算法输出最优适应值的粒子,并根据最优适应值的粒子来优化K-Means聚类方法,再将RBF神经网络模型隐层节点的个数作为优化后的K-Means聚类方法的聚类个数,通过优化后的K-Means聚类方法对隐层节点的个数进行聚类来得到聚类中心,将所述聚类中心作为RBF神经网络模型的隐层节点。

上述实施例中,所述通过粒子群PSO算法输出最优适应值的粒子,并根据最优适应值的粒子来优化K-Means聚类方法,具体实现如下:

将特征向量的数据集作为粒子群PSO算法中的粒子,根据粒子的位置来决定是否进行粒子更新,如果更新则根据公式(3)和公式(4)来更新输入粒子的速度和位置,

vid=w·vid+c1·rand()·(pid-xid)

+c2·rand()·(pgd-xid) (3)

xid=xid+vid (4)

其中w为惯性权重,Vid为粒子的速度,Xid为粒子当前位置,Pid为粒子的个体位置最优值,Pgd为粒子的群体位置最优值,c1和c2为加速常数,rand()为在[0,1]范围里变化的随机值;

再根据群体适应度方差,即公式(5)判断粒子群是否收敛,若收敛,则输出最优适应值的粒子所包含的聚类划分,根据最优适应值的粒子得到K-Means聚类中心的编码,并根据最邻近法则确定特征向量的数据集中的聚类划分,K-Means聚类方法根据所述编码计算聚类中心,重新划分特征向量的数据集,

其中,δ2为适应度方差,n为粒子个数;fi为第i个粒子的适应值;favg为粒子群目前的平均适应度,f为归一化因子。

通过粒子群PSO算法能够对K-Means聚类方法进行优化,优化的K-Means聚类方法计算聚类中心能够得到隐含层中心。

上述实施例中,所述判断粒子群是否收敛的方法为:当δ2<m时,m为预设的阈值,即粒子群进入收敛阶段时,则完成对K-Means聚类方法的优化。

上述实施例中,所述根据粒子的位置来决定是否进行更新的方法为:根据适应度函数计算粒子当前的适应值作为粒子的编码,根据编码随机初始化粒子的速度和位置,并反复进行T次随机初始化,生成含有n个粒子的初始化种群;

根据个体寻优方法确定初始化种群中粒子当前的位置是否为该粒子经历的个体位置最优值Pid,以及通过群体寻优方法确定粒子当前的位置是否为初始化种群粒子中的群体位置最优值Pgd,如果是,则通过公式(3)和公式(4)进行更新初始化种群中粒子的速度和位置。

通过求取粒子的两个位置最优值来对粒子进行更新,进而实现对K-Means聚类方法的优化。

上述实施例中,所述根据适应度函数计算粒子当前的适应值的方法为:将粒子随机划分类别作为最初的种群聚类,并计算种群聚类的聚类中心,利用公式(6)来计算粒子当前的适应值,

其中,E为适应值,h为聚类中心的个数,n为粒子群大小,Ci为种群聚类的聚类中心值,d为距离函数,xj为粒子的空间位置。

通过求取粒子的两个位置最优值来对粒子进行更新,进而实现对K-Means聚类方法的优化。

如图2所示,本发明实施例还提供一种基于RBF神经网络的重复记录检测系统,包括:

记录分类模块,用于将多条记录进行聚类,从而将记录分为多个记录类;

特征向量模块,用于根据字符串相似度算法计算两两记录类中预设字段之间的相似度,从而得到字段之间相似度的特征向量;

标签标注模块,用于依照特征向量将聚类后的记录标注为重复记录的标签或非重复记录的标签,得到带标签的记录;

聚类模块,用于建立RBF神经网络模型,并根据减聚类算法对特征向量进行聚类,得到的聚类中心个数,将聚类中心个数作为RBF神经网络模型的隐层节点个数;

优化模块,用于根据粒子群算法和聚类方法对所述隐层节点个数进行聚类来得到RBF神经网络模型的隐层节点,从而得到优化后的RBF神经网络模型;

训练模块,根据将所述特征向量与带标签的记录配送给优化后的RBF神经网络进行训练,得到重复记录检测模型,通过所述重复记录检测模型对带标签的记录进行重复记录检测。

作为本发明的一个实施例,聚类模块中所述减聚类算法为SCM减聚类法,SCM减聚类法对特征向量进行聚类,得到RBF神经网络模型的隐层节点个数的具体方法为:

将所述特征向量作为SCM减聚类法的输入数据集,通过公式(1)计算特征向量的密度最大点,得到第一聚类中心,

其中,X为特征向量,γa∈R+a为Xi的邻域半径,选定最大的密度值,设为Dc1,所对应的样本Xc1作为第一聚类中心,

通过公式(2)更新样本Xc1密度值,

Di=Di-Dc1exp(-β||Xi-Xc1||2) (2)

求出每次更新后的聚类中心,直到Dci<εDc1,其中ε取值为0.5,得到聚类中心个数,将得到的聚类中心个数作为RBF神经网络模型的隐层节点个数,

其中,γb=ηγa,η为系数,η=R+,γb表示为一个密度指标函数显著减少的邻域。具体的,为避免出现相距很近的聚类中心的情况,所述η=R+取η=1.5,即γb=1.5γa

作为本发明的一个实施例,所述根据粒子群PSO算法和K-Means聚类方法对隐层节点个数进行聚类来得到RBF神经网络模型的隐层节点的方法为:所述根据粒子群算法为粒子群PSO算法,所述聚类方法为K-Means聚类方法;

将特征向量的数据集作为粒子群PSO算法的粒子,通过粒子群PSO算法输出最优适应值的粒子,并根据最优适应值的粒子来优化K-Means聚类方法,再将RBF神经网络模型隐层节点的个数作为优化后的K-Means聚类方法的聚类个数,通过优化后的K-Means聚类方法对隐层节点的个数进行聚类来得到聚类中心,将所述聚类中心作为RBF神经网络模型的隐层节点。

作为本发明的一个实施例,所述通过粒子群PSO算法输出最优适应值的粒子,并根据最优适应值的粒子来优化K-Means聚类方法,具体实现如下:

将特征向量的数据集作为粒子群PSO算法中的粒子,根据粒子的位置来决定是否进行粒子更新,如果更新则根据公式(3)和公式(4)来更新输入粒子的速度和位置,

vid=w·vid+c1·rand()·(pid-xid)

+c2·rand()·(pgd-xid) (3)

xid=xid+vid (4)

其中w为惯性权重,Vid为粒子的速度,Xid为粒子当前位置,Pid为粒子的个体位置最优值,Pgd为粒子的群体位置最优值,c1和c2为加速常数,rand()为在[0,1]范围里变化的随机值;

再根据群体适应度方差,即公式(5)判断粒子群是否收敛,若收敛,则输出最优适应值的粒子所包含的聚类划分,根据最优适应值的粒子得到K-Means聚类中心的编码,并根据最邻近法则确定特征向量的数据集中的聚类划分,K-Means聚类方法根据所述编码计算聚类中心,重新划分特征向量的数据集,

其中,δ2为适应度方差,n为粒子个数;fi为第i个粒子的适应值;favg为粒子群目前的平均适应度,f为归一化因子。

上述实施例中,通过粒子群PSO算法能够对K-Means聚类方法进行优化,优化的K-Means聚类方法计算聚类中心能够得到隐含层中心。

作为本发明的一个实施例,所述判断粒子群是否收敛的方法为:当δ2<m时,m为预设的阈值,即粒子群进入收敛阶段时,则完成对K-Means聚类方法的优化。

作为本发明的一个实施例,所述根据粒子的位置来决定是否进行更新的方法为:根据适应度函数计算粒子当前的适应值作为粒子的编码,根据编码随机初始化粒子的速度和位置,并反复进行T次随机初始化,生成含有n个粒子的初始化种群;

根据个体寻优方法确定初始化种群中粒子当前的位置是否为该粒子经历的个体位置最优值Pid,以及通过群体寻优方法确定粒子当前的位置是否为初始化种群粒子中的群体位置最优值Pgd,如果是,则通过公式(3)和公式(4)进行更新初始化种群中粒子的速度和位置。

采用上述进一步方案的有益效果是:通过求取粒子的两个位置最优值来对粒子进行更新,进而实现对K-Means聚类方法的优化。

作为本发明的一个实施例,所述根据适应度函数计算粒子当前的适应值的方法为:将粒子随机划分类别作为最初的种群聚类,并计算种群聚类的聚类中心,利用公式(6)来计算粒子当前的适应值,

其中,E为适应值,h为聚类中心的个数,n为粒子群大小,Ci为种群聚类的聚类中心值,d为距离函数,xj为粒子的空间位置。

上述实施例中,通过求取粒子的两个位置最优值来对粒子进行更新,进而实现对K-Means聚类方法的优化。

本重复记录检测系统通过减聚类算法得到RBF神经网络模型的隐层节点个数,并通过粒子群PSO算法和K-Means聚类方法来得到RBF神经网络模型的隐层节点,从而实现RBF神经网络模型的优化,优化后的RBF神经网络模型对记录进行处理,能够保持较好的稳定性、准确率和召回率。

本发明根据实验表明,当记录数找过5万时,依然能保持95%以上的准确率和召回率。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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