异构数据集基于MIC的字段值优先连接方法与流程

文档序号:11950786阅读:430来源:国知局

本发明涉及异构数据字段值连接技术领域,特别涉及一种异构数据集基于MIC的字段值优先连接方法。



背景技术:

合理分析异构数据集的字段内容,有助于对其领域系统的构建及测试,然而异构数据集通常达到TB甚至PB级别,极其耗费网络资源,并且数据中用户行为及相关物品属性等相关字段内容涉及隐私信息,因此,企业及政府等机构极少愿意分享其数据供研究人员使用。随着互联网规模的不断扩大,异构数据中重尾现象也越发普遍,各个字段间的连接关系变得愈加复杂,生成具有真实数据特性的异构数据集集极具难度。因此,构建一个可模拟出真实字段间值连接关系的异构数据集字段值连接算法成为众多科研工作中异构数据来源的基础。

现有的数据连接算法的研究主要分为时间字段相关性质的研究与非时间字段相关性质的研究两个方面。前者主要应用于网络流量预测、时序分析等方面,现已较为成熟,有相应的商用与科研软件供研究人员使用,而后者主要在于对字段值分布特性的数学建模及字段间连接研究,主要应用于特定的研究项目中,需要根据不同业务场景进行逼真生成,复杂度高,主要代表性工作有加拿大萨斯喀彻温大学Busari提出的proWGen异构数据模拟器,通过分析异构数据字段值分布情况,用Zipf-like分布刻画字段重尾性进行数据模拟,采用多参数的机制,使得该模拟器具有良好的扩展性,能应用于Web服务器的压力测试及缓存性能研究。缺点在于:proWGen对字段连接仅采用简单的正/负相关的方式实现,难以逼真模拟实际中复杂多样的异构数据。随着互联网数据量的爆炸式增加,Zipf-like已经不再适用于描述具有重尾特性的异构数据分布,若采用Zipf-like进行数据生成,对于生成数据所应用的系统而言,其测试性能评估上会存在高估的结果,与真实数据情况对比有较大的误差,意味着生成了不可靠的数据。



技术实现要素:

本发明的目的在于提供一种异构数据集基于MIC的字段值优先连接方法,该方法有利于逼真模拟异构数据集,使连接的数据集保持合理的字段间的均衡性以及节点间的相似性。

为实现上述目的,本发明的技术方案是:一种异构数据集基于MIC字段值优先连接方法,其特征在于,对于二个异构数据集U和V,U中含有A字段,V中含有B字段,由字段A与字段B连接生成l条记录的数据集的问题,其中字段A中所有值构造的集合SA={A1,A2,A3,…,Am},字段B中所有值构造的集合SB={B1,B2,B3,…,Bn},每条记录的形式为{Ax,By},1≤x≤m,1≤y≤n,m、n分别表示字段A、B中共有m、n种取值,包括以下步骤:

步骤1:拟合异构数据集的广延指数分布,即SE分布的参数a、b、c、x0,其中c为广延参数,x0为尺度参数,a表示SE拟合近似直线斜率,b表示SE拟合近似直线截距;

步骤2:计算字段A与字段B之间的MIC系数eMIC

步骤3:分别生成服从SE分布的字段A中所有值分别出现次数构成的集合StA和字段B中所有值分别出现次数构成的集合StB

步骤4:分别建立集合StA、StB对应的累积分布函数PA(x)、PB(y);

步骤5:判断记录的总条数l是否为0,是则转步骤10,否则转步骤6;

步骤6:生成随机数ξA,根据累积分布函数PA(x)计算得出字段A中对应的字段值Ax

步骤7:基于字段值优先连接模型计算得出字段B中对应的字段值By

步骤8:保存{Ax,By}作为一条记录,添加到文件D中;

步骤9:更新总条数l=l-1,并返回步骤5;

步骤10:输出文件D,完成异构数据的所有连接。

进一步的,步骤1中,按如下方法拟合异构数据集的SE分布的参数a、b、c、x0

字段值出现次数服从SE分布,采用如下公式对字段值出现次数分布曲线进行描述:

<mrow> <msubsup> <mi>y</mi> <mi>i</mi> <mi>c</mi> </msubsup> <mo>=</mo> <mo>-</mo> <mi>a</mi> <mi> </mi> <mi>log</mi> <mi> </mi> <mi>i</mi> <mo>+</mo> <mi>b</mi> </mrow>

其中,对于服从SE分布的字段中所有值分别出现次数,根据各字段值出现次数从多到少降序排列,用i表示字段值出现次数的位序值,1≤i≤N,N表示所述字段中共有N种取值,用yi表示位序值i对应的出现次数,yic表示yi的c次幂;

为广延参数c取一经验常量,取值范围为(0,1),然后采用最小二乘法拟合出a、b的值,再根据a=x0c求得尺度参数x0的值,而后代入下式:

<mrow> <mi>p</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> <mo>=</mo> <msup> <mi>e</mi> <mrow> <mo>-</mo> <msup> <mrow> <mo>(</mo> <mfrac> <mi>x</mi> <msub> <mi>x</mi> <mn>0</mn> </msub> </mfrac> <mo>)</mo> </mrow> <mi>c</mi> </msup> </mrow> </msup> </mrow>

得到SE分布的累计概率分布函数,完成SE分布的建模。

进一步的,步骤2中,采用如下公式计算字段A与字段B之间的MIC系数eMIC

<mrow> <msub> <mi>e</mi> <mrow> <mi>M</mi> <mi>I</mi> <mi>C</mi> </mrow> </msub> <mo>=</mo> <munder> <mrow> <mi>m</mi> <mi>a</mi> <mi>x</mi> </mrow> <mrow> <mi>m</mi> <mi>n</mi> <mo>&lt;</mo> <mi>B</mi> <mrow> <mo>(</mo> <mi>l</mi> <mo>)</mo> </mrow> </mrow> </munder> <mo>{</mo> <mfrac> <mrow> <msup> <mi>I</mi> <mo>*</mo> </msup> <mrow> <mo>(</mo> <msup> <mi>D</mi> <mo>&prime;</mo> </msup> <mo>,</mo> <mi>m</mi> <mo>,</mo> <mi>n</mi> <mo>)</mo> </mrow> </mrow> <mrow> <mi>log</mi> <mi> </mi> <mi>min</mi> <mo>{</mo> <mi>m</mi> <mo>,</mo> <mi>n</mi> <mo>}</mo> </mrow> </mfrac> <mo>}</mo> </mrow>

其中,m表示字段A的取值划分份数,n表示字段B的取值划分份数,B(l)表示网格划分份数,D'表示给定数据集,I*(D′,m,n)表示给定数据集D'在m*n划分下的最大互信息值,min{m,n}表示取{m,n}中的最小值,max{}表示取{}中元素的最大值。

进一步的,步骤4中,采用如下方法建立集合StA、StB对应的累积分布函数PA(x)、PB(y):

对于集合StA={tA1,tA2,tA3,…,tAm},其中tAm表示字段A中第m个字段值Am出现的次数,根据集合StA中各字段值出现次数从多到少降序排列,得到出现次数降序排列的集合S'tA,然后建立如下的累积分布函数PA(x):

<mrow> <msup> <mi>p</mi> <mi>A</mi> </msup> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> <mo>=</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>x</mi> </munderover> <msub> <mi>t</mi> <mrow> <mi>A</mi> <mi>i</mi> </mrow> </msub> <mo>/</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>m</mi> </munderover> <msub> <mi>t</mi> <mrow> <mi>A</mi> <mi>i</mi> </mrow> </msub> </mrow>

其中,x表示集合S'tA中字段值出现次数的位序值,1≤x≤m;

同理,建立StB对应的累积分布函数PB(y)。

进一步的,步骤6中,按如下方法根据累积分布函数PA(x)计算得出字段A中对应的字段值Ax:从(0,1)上的均匀分布生成随机数ξA,令ξA=pA(x),通过累积分布函数PA(x)的逆函数解析式计算得到唯一的位序值x,根据位序值与字段值的映射关系,求得对应的字段值Ax

进一步的,步骤7中,按如下方法基于字段优先模型计算得出字段B中对应的字段值By:根据所需要关联的字段之间正负相关情况,建立字段值优先连接模型,通过字段值优先连接模型计算得到r′AB,其中正相关字段值优先连接模型如下所示:

<mrow> <msubsup> <mi>r</mi> <mrow> <mi>A</mi> <mi>B</mi> </mrow> <mo>&prime;</mo> </msubsup> <mo>=</mo> <msub> <mi>e</mi> <mrow> <mi>M</mi> <mi>I</mi> <mi>C</mi> </mrow> </msub> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>g</mi> </munderover> <msub> <mi>t</mi> <mrow> <mi>A</mi> <mi>i</mi> </mrow> </msub> <mo>/</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>m</mi> </munderover> <msub> <mi>t</mi> <mrow> <mi>A</mi> <mi>i</mi> </mrow> </msub> <mo>+</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <msub> <mi>e</mi> <mrow> <mi>M</mi> <mi>I</mi> <mi>C</mi> </mrow> </msub> <mo>)</mo> </mrow> <mi>h</mi> <mo>/</mo> <mi>n</mi> </mrow>

负相关字段值优先连接模型如下所示:

<mrow> <msubsup> <mi>r</mi> <mrow> <mi>A</mi> <mi>B</mi> </mrow> <mo>&prime;</mo> </msubsup> <mo>=</mo> <mn>1</mn> <mo>-</mo> <mo>&lsqb;</mo> <msub> <mi>e</mi> <mrow> <mi>M</mi> <mi>I</mi> <mi>C</mi> </mrow> </msub> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>g</mi> </munderover> <msub> <mi>t</mi> <mrow> <mi>A</mi> <mi>i</mi> </mrow> </msub> <mo>/</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>m</mi> </munderover> <msub> <mi>t</mi> <mrow> <mi>A</mi> <mi>i</mi> </mrow> </msub> <mo>+</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <msub> <mi>e</mi> <mrow> <mi>M</mi> <mi>I</mi> <mi>C</mi> </mrow> </msub> <mo>)</mo> </mrow> <mi>h</mi> <mo>/</mo> <mi>n</mi> <mo>&rsqb;</mo> </mrow>

其中g∈[1,m],h∈[1,n],参数eMIC∈[0,1]为字段A与字段B之间的MIC系数,用于衡量字段间连接关系,在模型中的物理意义表示优先连接部分所占比例;r′AB表示连接取值数,用于在字段值累积概率中取值过程,令r′AB=pB(y),通过累积分布函数PB(y)的逆函数解析式计算得到唯一的位序值y,根据位序值与字段值的映射关系,求得对应的字段值By,即得到完整一条记录{Ax,By},从而完成一条数据记录的连接。

本发明的有益效果是与现有的方法完全不同,通过利用异构数据特征进行参数提取,采用SE分布代替Zipf-like分布对字段重尾性进行刻画,然后采用一种全新的基于MIC的字段值优先连接模型代替传统的正/负相关模型,进行数据字段值连接。通过该方法连接的数据,不仅在整体上能拟合一个逼真的分布趋势,在局部上也能够准确刻画字段重尾性,使生成的数据集保持合理的字段间的均衡性以及节点间的相似性,可应用于异构数据驱动的软件过程。

附图说明

图1是本发明实施例的实现流程图。

具体实施方式

本发明提供一种异构数据集基于MIC字段值优先连接方法,其特征在于,对于二个异构数据集U和V,U中含有A字段,V中含有B字段,由字段A与字段B连接生成l条记录的数据集的问题,其中字段A中所有值构造的集合SA={A1,A2,A3,…,Am},字段B中所有值构造的集合SB={B1,B2,B3,…,Bn},每条记录的形式为{Ax,By},1≤x≤m,1≤y≤n,m、n分别表示字段A、B中共有m、n种取值,如图1所示,包括以下步骤:

步骤1:拟合异构数据集的广延指数分布,即SE分布(Stretched Exponential Distribution)的参数a、b、c、x0,其中c为广延参数,x0为尺度参数,a表示SE拟合近似直线斜率,b表示SE拟合近似直线截距。具体方法如下:

字段值出现次数服从SE分布,采用如下公式对字段值出现次数分布曲线进行描述:

<mrow> <msubsup> <mi>y</mi> <mi>i</mi> <mi>c</mi> </msubsup> <mo>=</mo> <mo>-</mo> <mi>a</mi> <mi> </mi> <mi>log</mi> <mi> </mi> <mi>i</mi> <mo>+</mo> <mi>b</mi> </mrow>

其中,对于服从SE分布的字段中所有值分别出现次数,根据各字段值出现次数从多到少降序排列,用i表示字段值出现次数的位序值,1≤i≤N,N表示所述字段中共有N种取值,用yi表示位序值i对应的出现次数,yic表示yi的c次幂;

为广延参数c取一经验常量,取值范围为(0,1),然后基于异构数据集采用最小二乘法拟合出a、b的值,再根据a=x0c求得尺度参数x0的值,而后代入下式:

<mrow> <mi>p</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> <mo>=</mo> <msup> <mi>e</mi> <mrow> <mo>-</mo> <msup> <mrow> <mo>(</mo> <mfrac> <mi>x</mi> <msub> <mi>x</mi> <mn>0</mn> </msub> </mfrac> <mo>)</mo> </mrow> <mi>c</mi> </msup> </mrow> </msup> </mrow>

得到SE分布的累计概率分布函数,完成SE分布的建模。

步骤2:采用如下公式计算字段A与字段B之间的MIC系数(maximal information coefficient,最大信息系数)eMIC

<mrow> <msub> <mi>e</mi> <mrow> <mi>M</mi> <mi>I</mi> <mi>C</mi> </mrow> </msub> <mo>=</mo> <munder> <mrow> <mi>m</mi> <mi>a</mi> <mi>x</mi> </mrow> <mrow> <mi>m</mi> <mi>n</mi> <mo>&lt;</mo> <mi>B</mi> <mrow> <mo>(</mo> <mi>l</mi> <mo>)</mo> </mrow> </mrow> </munder> <mo>{</mo> <mfrac> <mrow> <msup> <mi>I</mi> <mo>*</mo> </msup> <mrow> <mo>(</mo> <msup> <mi>D</mi> <mo>&prime;</mo> </msup> <mo>,</mo> <mi>m</mi> <mo>,</mo> <mi>n</mi> <mo>)</mo> </mrow> </mrow> <mrow> <mi>log</mi> <mi> </mi> <mi>min</mi> <mo>{</mo> <mi>m</mi> <mo>,</mo> <mi>n</mi> <mo>}</mo> </mrow> </mfrac> <mo>}</mo> </mrow>

其中,m表示字段A的取值划分份数,n表示字段B的取值划分份数,B(l)表示网格划分份数,D'表示给定数据集,I*(D′,m,n)表示给定数据集D'在m*n划分下的最大互信息值,min{m,n}表示取{m,n}中的最小值,max{}表示取{}中元素的最大值。

步骤3:分别生成服从SE分布的字段A中所有值分别出现次数构成的集合StA和字段B中所有值分别出现次数构成的集合StB

步骤4:分别建立集合StA、StB对应的累积分布函数PA(x)、PB(y)。具体方法如下:

对于集合StA={tA1,tA2,tA3,…,tAm},其中tAm表示字段A中第m个字段值Am出现的次数,根据集合StA中各字段值出现次数从多到少降序排列,得到出现次数降序排列的集合S'tA,然后建立如下的累积分布函数PA(x):

<mrow> <msup> <mi>p</mi> <mi>A</mi> </msup> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> <mo>=</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>x</mi> </munderover> <msub> <mi>t</mi> <mrow> <mi>A</mi> <mi>i</mi> </mrow> </msub> <mo>/</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>m</mi> </munderover> <msub> <mi>t</mi> <mrow> <mi>A</mi> <mi>i</mi> </mrow> </msub> </mrow>

其中,x表示集合S'tA中字段值出现次数的位序值,1≤x≤m;

同理,建立StB对应的累积分布函数PB(y)。

步骤5:判断记录的总条数l是否为0,是则转步骤10,否则转步骤6。

步骤6:根据累积分布函数PA(x)计算得出字段A中对应的字段值Ax。具体方法如下:从(0,1)上的均匀分布生成随机数ξA,令ξA=pA(x),通过累积分布函数PA(x)的逆函数解析式计算得到唯一的位序值x,根据位序值与字段值的映射关系,求得对应的字段值Ax

步骤7:基于字段值优先连接模型计算得出字段B中对应的字段值By。具体方法如下:根据所需要关联的字段之间正负相关情况,建立字段值优先连接模型,通过字段值优先连接模型计算得到r′AB,其中正相关字段值优先连接模型如下所示:

<mrow> <msubsup> <mi>r</mi> <mrow> <mi>A</mi> <mi>B</mi> </mrow> <mo>&prime;</mo> </msubsup> <mo>=</mo> <msub> <mi>e</mi> <mrow> <mi>M</mi> <mi>I</mi> <mi>C</mi> </mrow> </msub> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>g</mi> </munderover> <msub> <mi>t</mi> <mrow> <mi>A</mi> <mi>i</mi> </mrow> </msub> <mo>/</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>m</mi> </munderover> <msub> <mi>t</mi> <mrow> <mi>A</mi> <mi>i</mi> </mrow> </msub> <mo>+</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <msub> <mi>e</mi> <mrow> <mi>M</mi> <mi>I</mi> <mi>C</mi> </mrow> </msub> <mo>)</mo> </mrow> <mi>h</mi> <mo>/</mo> <mi>n</mi> </mrow>

负相关字段值优先连接模型如下所示:

<mrow> <msubsup> <mi>r</mi> <mrow> <mi>A</mi> <mi>B</mi> </mrow> <mo>&prime;</mo> </msubsup> <mo>=</mo> <mn>1</mn> <mo>-</mo> <mo>&lsqb;</mo> <msub> <mi>e</mi> <mrow> <mi>M</mi> <mi>I</mi> <mi>C</mi> </mrow> </msub> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>g</mi> </munderover> <msub> <mi>t</mi> <mrow> <mi>A</mi> <mi>i</mi> </mrow> </msub> <mo>/</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>m</mi> </munderover> <msub> <mi>t</mi> <mrow> <mi>A</mi> <mi>i</mi> </mrow> </msub> <mo>+</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <msub> <mi>e</mi> <mrow> <mi>M</mi> <mi>I</mi> <mi>C</mi> </mrow> </msub> <mo>)</mo> </mrow> <mi>h</mi> <mo>/</mo> <mi>n</mi> <mo>&rsqb;</mo> </mrow>

其中g∈[1,m],h∈[1,n],参数eMIC∈[0,1]为字段A与字段B之间的MIC系数,用于衡量字段间连接关系,在模型中的物理意义表示优先连接部分所占比例;r′AB表示连接取值数,用于在字段值累积概率中取值过程,令r′AB=pB(y),通过累积分布函数PB(y)的逆函数解析式计算得到唯一的位序值y,根据位序值与字段值的映射关系,求得对应的字段值By,即得到完整一条记录{Ax,By},从而完成一条数据记录的连接。

步骤8:保存{Ax,By}作为一条记录,添加到文件D中。

步骤9:更新总条数l=l-1,并返回步骤5。

步骤10:输出文件D,完成异构数据的所有连接。

其中,步骤1至步骤2为异构数据字段特征提取过程,步骤3至步骤4表示对字段进行建模,步骤6至步骤8为连接一条完整记录的过程,其中步骤7表示字段连接。

下面对本发明涉及的相关内容作进一步的说明。

1、SE分布

SE分布(Stretched Exponential Distribution),中文全称为广延指数分布,最早由Kohlrausch于1847年研究发现,适用于描述不同复杂系统的动态衰减现象,其中包括自然、经济、互联网等领域。美国俄亥俄州立大学张晓东对不同异构系统的用户行为数据进行分析,发现Zipf-like分布不适合描述异构数据行为的重尾性,而SE分布能对其进行很好的刻画,说明该分布适用于描述幂律模型无法准确刻画的情况。

下式表示SE分布的概率密度函数:

<mrow> <mi>p</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> <mo>=</mo> <mi>c</mi> <mfrac> <msup> <mi>x</mi> <mrow> <mi>c</mi> <mo>-</mo> <mn>1</mn> </mrow> </msup> <msubsup> <mi>x</mi> <mn>0</mn> <mi>c</mi> </msubsup> </mfrac> <msup> <mi>e</mi> <mrow> <mo>-</mo> <msup> <mrow> <mo>(</mo> <mfrac> <mi>x</mi> <msub> <mi>x</mi> <mn>0</mn> </msub> </mfrac> <mo>)</mo> </mrow> <mi>c</mi> </msup> </mrow> </msup> </mrow>

累计分布函数如下式所示:

<mrow> <mi>p</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> <mo>=</mo> <msup> <mi>e</mi> <mrow> <mo>-</mo> <msup> <mrow> <mo>(</mo> <mfrac> <mi>x</mi> <msub> <mi>x</mi> <mn>0</mn> </msub> </mfrac> <mo>)</mo> </mrow> <mi>c</mi> </msup> </mrow> </msup> </mrow>

其中c为广延参数,其参数范围在(0,1),x0为尺度参数。

为了方便描述,我们约定将X轴上的对应所有数据进行取自然对数处理,Y轴上的对应所有数据进行取原值的c次幂处理,这样得到的坐标系称为SE坐标系。若异构数据集中某字段的所有值出现次数服从SE分布,那么根据对象出现次数降序排列,在坐标系中,以位序值i作为X轴,以出现次数ti作为Y轴,再将X、Y的值转化置SE坐标系中,字段值出现次数在SE坐标系下呈现一条近似直线,字段值出现次数服从SE分布。

采用下式对字段值出现次数分布直线进行描述:

<mrow> <msubsup> <mi>y</mi> <mi>i</mi> <mi>c</mi> </msubsup> <mo>=</mo> <mo>-</mo> <mi>a</mi> <mi> </mi> <mi>log</mi> <mi> </mi> <mi>i</mi> <mo>+</mo> <mi>b</mi> </mrow>

其中a=x0c,b=y1c,又因为c为经验常量,因此通过最小二乘法可以拟合出a、b的值,从而求得x0,代入上式,计算得到完整的累计概率分布函数,完成SE分布的建模。

2、字段连接关系度量

记录是由若干个字段连接而成,而字段间必然存在着某种关系。为了能准确量化描述两个字段间的连接关系,研究者们提出了pearson系数、spearman系数、核密度估计(KDE)、互信息等度量标准。这些度量方法复杂、不适用非线性数据,缺乏普适性、健壮性低等问题,难以适用于数据连接算法中。为此本发明采用MIC(The Maximal Information Coefficient)系数作为字段连接关系度量。

2011年,Reshef在Science首次提出MIC系数,中文又称为最大信息系数。该系数是在互信息的基础上衍化而来,能对不同类型的连接关系进行评估,其范围为[0,1],且具有对称性、良好的普适性和公平性。如果字段A与B独立,则MIC(A,B)=0;如果A与B之间具有确定的关系,则MIC(A,B)=1,此时不存在任何噪声影响。

计算方法主要是通过对字段对(A,B)中所有样本点的构成的散点图进行划分,利用动态规划的方式计算并搜索不同划分方式下所能达到的最大互信息值。最后,对最大互信息值进行标准化处理,所得结果即为MIC,记作eMIC。记D'为给定数据集,m和n分别表示在A和B字段值的划分份数,l为字段(A,B)的样本容量,G表示某种划分。因此在划分G下等(m×n)轴划分的最大互信息为式(6):

I*(D′,m,n)=maxI(D′|G)

标准化处理得到的特征矩阵如下式所示:

<mrow> <mi>M</mi> <msub> <mrow> <mo>(</mo> <msup> <mi>D</mi> <mo>&prime;</mo> </msup> <mo>)</mo> </mrow> <mrow> <mi>m</mi> <mo>,</mo> <mi>n</mi> </mrow> </msub> <mo>=</mo> <mfrac> <mrow> <msup> <mi>I</mi> <mo>*</mo> </msup> <mrow> <mo>(</mo> <msup> <mi>D</mi> <mo>&prime;</mo> </msup> <mo>,</mo> <mi>m</mi> <mo>,</mo> <mi>n</mi> <mo>)</mo> </mrow> </mrow> <mrow> <mi>log</mi> <mi> </mi> <mi>min</mi> <mo>{</mo> <mi>m</mi> <mo>,</mo> <mi>n</mi> <mo>}</mo> </mrow> </mfrac> </mrow>

最终得到的MIC值如下式所示:

<mrow> <msub> <mi>e</mi> <mrow> <mi>M</mi> <mi>I</mi> <mi>C</mi> </mrow> </msub> <mo>=</mo> <munder> <mrow> <mi>m</mi> <mi>a</mi> <mi>x</mi> </mrow> <mrow> <mi>m</mi> <mi>n</mi> <mo>&lt;</mo> <mi>B</mi> <mrow> <mo>(</mo> <mi>l</mi> <mo>)</mo> </mrow> </mrow> </munder> <mo>{</mo> <mi>M</mi> <msub> <mrow> <mo>(</mo> <msup> <mi>D</mi> <mo>&prime;</mo> </msup> <mo>)</mo> </mrow> <mrow> <mi>m</mi> <mo>,</mo> <mi>n</mi> </mrow> </msub> <mo>}</mo> </mrow>

其中B(l)为网格划分细度,通常取值为l0.6,以上方法步骤简称MINE方法。

由上式可以发现,MIC随着网格划分细度的变化而变化,当样本容量越大的时候估计值也越准确,这适用于当前大数据的时代背景。MIC系数具有适用范围广、计算复杂度低,健壮性高,标准化结构特性。因此,本发明采用MIC作为字段连接关系度参考。

3、基于MIC的字段值优先连接模型

假设要对于二个异构数据集U和V中,U中含有A字段,V中含有B字段,由字段A与字段B连接生成共计l条记录的数据集。令字母S表示为集合,那么字段A对应的值所在集合SA={A1,A2,A3,…,Am},共有m种取值;字段B对应的值所在集合SB={B1,B2,B3,…,Bn},共有n种取值。每条记录的形式为{Ax,By}(1≤x≤m,1≤y≤n)。令字母t代表次数,则字段A值Am出现的次数为tAm次,字段A中所有值分别出现次数构成集合StA,字段B中值Bn出现的次数为tBn次,字段B中所有值分别出现次数构成集合StB,且满足下式:

<mrow> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>m</mi> </munderover> <msub> <mi>t</mi> <mrow> <mi>A</mi> <mi>i</mi> </mrow> </msub> <mo>=</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </munderover> <msub> <mi>t</mi> <mrow> <mi>B</mi> <mi>i</mi> </mrow> </msub> <mo>=</mo> <mi>l</mi> </mrow>

表示字段A所有值出现次数累加和等于字段B所有值出现次数累加和等于异构数据集总记录数l。

对于数据连接而言,首先分别对字段的所有值出现次数的集合进行建模,根据集合StA与StB中各字段值出现次数从多到少降序排列,得到出现次数降序排列的集合S'tA与S'tB。然后累积分布函数p(x),其中x表示字段值出现次数的排名位序。以A字段为例,累积分布函数具体如下式:

<mrow> <msup> <mi>p</mi> <mi>A</mi> </msup> <mrow> <mo>(</mo> <mi>x</mi> <mo>)</mo> </mrow> <mo>=</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>x</mi> </munderover> <msub> <mi>t</mi> <mrow> <mi>A</mi> <mi>i</mi> </mrow> </msub> <mo>/</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>m</mi> </munderover> <msub> <mi>t</mi> <mrow> <mi>A</mi> <mi>i</mi> </mrow> </msub> <mrow> <mo>(</mo> <mn>1</mn> <mo>&le;</mo> <mi>x</mi> <mo>&le;</mo> <mi>m</mi> <mo>)</mo> </mrow> </mrow>

到该步便完成字段建模的步骤。

记录是由字段连接而成,在完成字段建模之后,需要将两个字段进行连接操作,进而形成一条完整的记录。连接操作即为取集合SA与SB笛卡尔积的一个元素的过程。假定符号ξ表示(0,1)上均匀分布的随机数,字母r表示连接取值数,则在连接一条记录时,首先生成随机数ξA,令ξA=pA(x),通过上式的逆函数解析式计算可得唯一的实数位序x,根据位序与字段值映射关系,求得字段值Ax。然后,根据AB字段间的连接关系,通过连接模型计算得到rAB,令rAB=pB(y),同理可得字段值By,即得到记录{Ax,By}。

连接关系存在三种情况,分别为正相关、负相关与零相关,其中正相关表示自变量增长,因变量也跟着增长;负相关表示自变量增长,因变量反而减少;因变量的增减与自变量的增减无关,相互独立。现阶段数据连接算法中主要使用连接模型分为正相关模型与负相关模型,其中正相关模型为rAB=ξA,负相关模型为rAB=1-ξA,该模型的不足之处在于连接关系度量简单,不具备的物理意义,且未考虑字段间零相关情况。因此,本发明提出一种基于MIC的字段值优先连接模型PCF(the Priority Connection of Field based on maximal information coefficient,PCF)。令r'AB表示经过PCF模型得到的连接取值数,且r'AB由优先连接部分与独立部分连接而成。正相关PCF模型如下式所示:

<mrow> <msubsup> <mi>r</mi> <mrow> <mi>A</mi> <mi>B</mi> </mrow> <mo>&prime;</mo> </msubsup> <mo>=</mo> <msub> <mi>e</mi> <mrow> <mi>M</mi> <mi>I</mi> <mi>C</mi> </mrow> </msub> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>g</mi> </munderover> <msub> <mi>t</mi> <mrow> <mi>A</mi> <mi>i</mi> </mrow> </msub> <mo>/</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>m</mi> </munderover> <msub> <mi>t</mi> <mrow> <mi>A</mi> <mi>i</mi> </mrow> </msub> <mo>+</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <msub> <mi>e</mi> <mrow> <mi>M</mi> <mi>I</mi> <mi>C</mi> </mrow> </msub> <mo>)</mo> </mrow> <mi>h</mi> <mo>/</mo> <mi>n</mi> </mrow>

负相关PCF模型如下式所示:

<mrow> <msubsup> <mi>r</mi> <mrow> <mi>A</mi> <mi>B</mi> </mrow> <mo>&prime;</mo> </msubsup> <mo>=</mo> <mn>1</mn> <mo>-</mo> <mo>&lsqb;</mo> <msub> <mi>e</mi> <mrow> <mi>M</mi> <mi>I</mi> <mi>C</mi> </mrow> </msub> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>g</mi> </munderover> <msub> <mi>t</mi> <mrow> <mi>A</mi> <mi>i</mi> </mrow> </msub> <mo>/</mo> <munderover> <mo>&Sigma;</mo> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>m</mi> </munderover> <msub> <mi>t</mi> <mrow> <mi>A</mi> <mi>i</mi> </mrow> </msub> <mo>+</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <msub> <mi>e</mi> <mrow> <mi>M</mi> <mi>I</mi> <mi>C</mi> </mrow> </msub> <mo>)</mo> </mrow> <mi>h</mi> <mo>/</mo> <mi>n</mi> <mo>&rsqb;</mo> </mrow>

其中g∈[1,m],h∈[1,n],参数eMIC∈[0,1]为字段A与字段B之间的MIC系数,用于衡量字段间连接关系,在模型中的物理意义表示优先连接部分所占比例。表示随机字段值Ag出现次数的累积分布概率p(x)。h/n表示在B字段中n个取值内,随机选取第h个值作为字段值的概率。令ξB=h/n分别带入正、负相关PCF模型,化简得到:

r′AB=eMICξA+(1-eMICB

r′AB=1-[eMICξA+(1-eMICB]

若字段间存在连接关系,模型优先采用ξA对字段B进行连接取值,若字段间相互独立,则重新生成随机数ξB,进行连接取值。当eMIC→1时,说明字段A与字段B存在线性相关连接关系,表示每个字段A的值都连接着在各自累积分布函数p(x)下相同累积概率的字段B的值,以正相关模型为例,PRF模型转化为r′AB=ξA。当eMIC→0时,说明字段A与字段B相互独立,表示每个字段A的值都与字段B的值不存在连接关系,呈现随机关系。以正相关模型为例,PRF模型转化为r′AB=ξB。当eMIC∈(0,1)时,优先连接部分所占比例为eMIC,独立部分所占比例为(1-eMIC),通过两部分的和,根据正相关PRF模型公式计算得出r'AB,以r'AB作为字段B中某值的累积概率,从而可以求出字段B的值,最终完成一次字段A与字段B的值连接。

PCF模型具有一般性与明确的物理意义,以MIC系数作为主要参考,能合理的描述数据间的连接关系情况,适用于大部分异构数据字段值连接步骤。

以上是本发明的较佳实施例,凡依本发明技术方案所作的改变,所产生的功能作用未超出本发明技术方案的范围时,均属于本发明的保护范围。

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