说明书一种保证质量单调性的大规模数据挖掘方法
技术领域
本发明涉及一种高效处理数据的方法,通过该方法来保证大规模数据挖掘结果质量的单调性,属于数据挖掘、大数据和计算机软件的交叉技术应用领域。
背景技术
大数据的数据容量及类型多样性,使得我们愿意利用算法产生近似结果来对大数据进行数据挖掘,传统的算法在进行有限的时间及资源限制下对大数据挖掘时,很难做到挖掘结果的质量与资源限制的平衡以及保证近似结果质量单调性的问题。为解决这个问题,我们在香农熵的基础上,设计保证质量单调性的大数据挖掘方法,该挖掘方法分为两部分:编码部分及挖掘部分,通过保证算法编码部分熵的单调性及挖掘部分的保熵性来确保挖掘算法输出近似结果质量的单调性,原始数据集用PCA技术压缩处理后映射到R-tree数据结构上的K近邻分类的思想。该算法的编码部分利用R-tree来表示数据,它将数据中有相似性的数据组合在一起,作为R-tree的一个结点,并尽量做到同节点内数据的高相似性,不同节点间的相对独立性,以达到对海量数据压缩的目的并提高挖掘部分的效率。挖掘部分利用K近邻分类算法的思想,处理数据,建立数据分类模型,并对测试数据进行分类。
数据挖掘是数据库知识发现(英语:Knowledge-Discovery in Databases,简称:KDD)中的一个步骤。数据挖掘一般是指从大量的数据中自动搜索隐藏于其中的有着特殊关系性的信息的过程。数据挖掘的一般步骤:(1)数据清理(2)数据集成(3)数据选择(4)数据变换(5)数据挖掘(6)模式评估(7)知识表示。本发明使用的处理技术为主方法分析(PCA)技术。该技术方法通过减少数据的属性来达到压缩数据的目的,移除不重要的属性。这种方法通过移除不重要的部分,保留重要部分来对海量数据压缩,以便提高挖掘效率。
信息论中,熵表示的是不确定性的量度。信息熵可以理解成某种特定信息的出现概率(离散随机事件的出现概率)。一个系统越是有序,信息熵就越低;反之,一个系统越是混乱,信息熵就越高。信息熵的函数说明:H=entropy(P,r)为信息熵函数P为信源的概率矢量,r为进制数,H为信息熵。本发明中将信息熵用于R树上,且定义如下:设R-tree为T,同层节点对应一条编码CodeA不同层节点生成编码集,如果编码集中任意两条编码A,B都满足if A<B,then A(x)<B(x),那么编码集单调,即该编码集满足熵的单调性。
发明内容
技术问题:本发明的目的是解决在计算机资源和内存有限的条件下大规模数据挖掘输出结果质量的低效问题,该方法能够通过保证编码阶段熵的单调性和挖掘阶段的保熵性来确保挖掘质量的单调性,提高数据挖掘的输出质量。
技术方案:本发明所述的保证质量单调性的大数据挖掘方法包括编码、挖掘等两个部分,其中编码部分利用主成分分析(PCA)压缩技术对数据进行压缩,减少数据的属性;压缩处理后的数据用R树表示,挖掘部分利用K最近邻(KNN)算法对测试数据进行分类,并计算分类准确率。
本发明所述的保证质量单调性的大数据挖掘方法包括以下步骤:
步骤1)获得用户输入的待进行挖掘的数据,数据的格式为表格的形式,一行为一条数据记录,一列为一个属性,所述的数据由数据记录组成,每个数据项有p个属性,将这p个属性表示为p个变量[x1,x2,...,xp],有个n数据记录p个属性的数据集表示为:
X=X11X12...X1nX21X22...X2n............Xp1Xp2...Xpn]]>的形式,
将该数据集按照用户指定的比例分为训练集和测试集两部分,所述的训练集是数据记录的集合,当训练集中的数据项数量为n,该训练集表示为[X1,X2,...,Xn]-1,其中Xi=[xi1,xi2,...,xip]i=1,...n;所述训练集和测试集的比例根据用户的要求划分,经验上是训练集取总样本的80%到90%之间的任意一个值,输入数据中训练集之外的部分为测试集,
步骤2)对训练集进行编码,具体步骤如下:
步骤21)利用主成分分析PCA方法对训练集进行预处理,获得训练子集X,具体过程如下:
①对原始数据集X进行标准化处理,标准化的过程按照下式进行:i=1,2,…,p;j=1,2,…n
式中,标准化后的矩阵用“*”标记,其中,i=1,2,…,p;j=1,2,…n
原始数据标准化后计算得到:
X*=X11*X12*...X1n*X21*X22*...X2n*............Xp1*Xp2*...Xpn*]]>
②计算样本相关系数矩阵:
R=r11r12...r1pr21r22...r2p............rp1rp2...rpp,]]>根据原始数据标准化得到的X*,样本相关系数为:rij=1n-1Σi-1nXii*Xij*i,j=1,2,...p;]]>
③求相关系数矩阵R的特征值(λ1,λ2,λp)和相应的特征向量ai=(ai1,ai2,…,aip)i=1,2,…,p;
④根据贡献率选取最大的前m个的贡献率较大的主要属性xi,…,xm,其中m<p,将该m个属性作为训练数据集新的属性,并形成训练子集,将原始数据集表示为X=X11X12...X1pX21X22...X2p............Xp1Xp2...Xpp]]>的形式;
所述的主成分分析是将原有的多个属性转化成少数具有代表性的综合属性,这几个少数属性能够反映原来数据的大部分信息,并且各个属性之间保持独立;
步骤22)将训练子集上的数据映射到R树的数据结构上,具体过程如下:
①将训练子集中的每个数据表示为一条记录,并将属性作为记录字段存放在数据库中,尽可能将属性值接近的对象存放在数据库相近位置;
②根据数据库中存放的数据记录从空树开始构建R树,从根节点r开始,根据插入数据对象后其最小包围矩形MBR面积增加量最小的原则,插入r的临近点作为r的子节点加入R树,成为R树的第二层,
③重复该过程直到训练子集上的所有数据都在在R树上为止,所述的R树为一个高度平衡树,用空间对象的MBR来近似表达空间对象,根据MBR建立R树,直接对空间中占据一定范围的空间对象进行索引,R树的每个结点对应着数据库中的数据;
步骤23)将R树上的同层所有节点用一个二进制编码(0,1)的一串数字a表示,将R树转化为一组二进制编码集{a,…,b…};
所述编码的规则为:同层节点数越多的相应二进制编码值大,二进制编码集中元素的个数与R树的层数相等;
步骤24)判断编码是否满足熵的单调性
选取步骤23)生成的任意多条编码值,选取其中的两条a,b,选取条件是a≤b,比较H(S|C=C(S=s,a))与H(S|C=C(S=s,b))两者大小,并得到结果H(S|C=C(S=s,a))>=H(S|C=C(S=s,b))。根据熵的单调性可判断该部分编码值满足该性质;
所述熵的单调性为:假设给定一个数据集S及其上的一个数据s,如果对于任意两个编码值a<b,H(S|C=C(S=s,a))>=H(S|C=C(S=s,b))即R(C(S=s,l))<=R(C(S=s,l’)),则证明满足熵的单调性;所述H(S|C=C)为条件熵H(S|C=C)=H(SC)-H(C),p为概率;S为数据集;C为编码集,c为编码集中一条编码值;(R(c))为值的分辨率量度,且R(c)=H(S)-H(S|C=c));
步骤3)获取步骤23)中二进制编码值最大a,对训练数据进行挖掘;
步骤31)选定测试集中的一个数据q;
步骤32)求得q=(m,n)与每个训练样例z(x,y)∈…D之间的距离计算采用欧式距离计算方法,选取其中与测试数据q点带权路径最短的k个数据;
所述的k值选取利用k交叉验证的方法选择合适的k值,k交叉验证是一种有效使用现有数据集的方法,将数据集分为大小相等的k份,每份轮流作为验证集,其他k-1份则作为训练集的验证方法;
步骤33)分别求得k个数据中属同一类别的数据的个数n1,…np,其中0<p<k+1,然后依次比较n1,…np的大小,获得其中的最大值nm,其中0<m<p+1,测试样例q的类标号由距离加权表决:wi*I(v=yi),根据求得的包含最多数据点q'的数据类别,对测试数据q的类别进行预测,并将q的类别判定为包含数目最多的数据q'的类别类型,所述的加权为:一般的距离权值wi和距离成反比关系,用公式wi=1/d(m,x)2计算, 其中d(m,x)2用欧式距离的计算方法来计算;
步骤4)选取步骤23)生成的两条编码值a,b,根据步骤24)得到结果H(S|C=C(S=s,a))>=H(S|C=C(S=s,b));分别求取H(OR|AR=M(a))及H(OR|AR=M(b))的值,通过比较两者值的大小得到结果H(OR|AR=M(a))>=H(OR|AR=M(b)),根据保熵性可判断该部分满足其性质;
所述的保熵性描述为:假设给定一个数据集S,如果对于任意两个长度的编码值a<=b,假设H(S|C=a)>=H(S|C=b)即R(a)<=R(b),若H(OR|AR=M(a))>=H(OR|AR=M(b))即Q(M(a))<=Q(M(b)),则证明挖掘部分满足保熵性。上述的M(C)为挖掘函数,输入编码值C输出近似结果;OR为挖掘输出的最优结果;AR为输出的近似结果;Q(ar)为挖掘结果质量测量的测量方法;Q(ar)=H(OR)-H(OR|AR=ar),ar为近似结果AR的某个值;
步骤5)
有益效果:本发明所述的保证质量单调性的大数据挖掘方法的设计包括两部分:编码部分及挖掘部分。编码部分利用压缩技术将数据映射成为一系列较短长度的代码;挖掘部分处理编码部分产生的代码值输出满足要求的近似结果。编码部分要保证代码值熵的单调性。挖掘部分要保证输出结果的保熵性。该算法的灵活性由数据组数据的分级结构表示来体现。
本发明提出了一种保证质量单调性的大数据挖掘方法。通过使用本发明所提出的方法大数据进行分类处理,可以提高数据分类结果的准确性,克服挖掘方法在系统内存、运行时间等方面的挑战,从而很好地解决大数据挖掘质量的单调性问题,有助于研究人员在设计和实现保证数据质量单调性的大数据挖掘方法的过程中增强系统的可靠性。具体来说,本发明所述的方法具有如下的有益效果:
(1)本发明所述的保证质量单调性的大数据挖掘方法,解决了传统的算法在进行有限的时间及资源限制下对大数据挖掘时,很难保证挖掘结果的质量与资源限制的之间的有效折中以及挖掘结果质量的问题。本发明设计的保证质量单调性的大数据挖掘方法实现了挖掘算法的灵活性,为进行大数据挖掘工作提供了有效地参考模型。
(2)本发明所述的保证质量单调性的大数据挖掘方法,采用改进的KNN分类算法对大数据挖掘分类准确性进行相关验证,可以证明本发明算法准确性更高,可以提高数据挖掘的质量,有助于提高挖掘结果的准确性性和实用度。
(3)本发明所述的保证质量单调性的大数据挖掘方法,采用信息熵技术对挖掘算法的编码部分及挖掘部分行进验证、保证编码部分满足编码值熵的单调性。挖掘部分满足输出结果的保熵性。从而来保证大数据挖掘算法的有效性,有助于设计高效的挖掘算法。
附图说明
图1保证质量单调性的大数据挖掘方法流程图;
图2鸢尾花的协方差矩阵。
具体实施方式
下面实施例对本发明作更详细的描述。
本发明提出一种保证质量单调性的大数据挖掘方法,该方法的流程如图1所示。本发明的具体实施方式为:
第一阶段:对数据集进行数据预处理等操作将数据表示为挖掘部分可以处理的表示形。
步骤1)获得原始鸢尾花的数据集(如表1)。
步骤2)采用主成分分析方法对数据进行维归约。防止出现维灾难的现象。
本例中鸢尾花数据集包含150种鸢尾花的信息,每50种取自三个鸢尾花种之一:Setosa、Versicolour、Virginica。每个花的特征用以下5种属性描述:
(1)萼片长度(厘米)
(2)萼片宽度(厘米)
(3)花瓣长度(厘米)
(4)花瓣宽度(厘米)
(5)类(Setosa、Versicolour、Virginica)
PCA方法分析鸢尾花的主要成分是可以利用协方差矩阵来确定选取几个主要成分最为合适。协方差矩阵(covariance matrix)S来表示,其中S的第ij个元素Sij是数据的第i个和第j个属性的协方差。若Xi和Xj分别是第i个和第j个属性,则Sij=conariance(Xi,Xj)。而convariance(Xi,Xj)由
convariance(Xi,Xj)=1/m-1Σk-1m(Xki-Xi‾)(Xki-Xj)]]>给出
其中Xki和Xkj分别为第k个对象的第i个和第j个属性的值。协方差矩阵的对角线上是属性的方差。
图2为协方差矩阵的每个特征值(主成分)导致的方差所占的比例。该图称为斜坡图(scree plot),可以用来确定需要多少主成分来捕获数据的大部分变异性。通过该图可以看出鸢尾花数据,第一个主成分捕获了方差的大部分(92.5%),第二个仅5.3%。其余两个只有2.2%.。因此,我们只需要保留前两个主成分就能保持数据变异性的大部分。
对原始的数据集处理后表示为下图表形式,其中每一行是一个对象,每一列是一个属性。创建图表方法为:离散化花瓣长度和花瓣宽度属性这两个主成分,使其取值为低、中、高,然后统计鸢尾花数据集中具有特定的花瓣宽度和长度和种类的花的数量。(对于花瓣的宽度类别低、中、高对应于区间[0,0.75],[0.75,1.75],[1.75,∞]);(对于花瓣的长度类别低、中、高对应于区间[0,2.5],[2.5,5],[5,∞])。
从该表可以看出大部分情况而言花瓣长度=高,花瓣宽度=高,则类别=Virginica;花瓣长度=低,花瓣宽度=低,则类别=Setosa;花瓣长度=中,花瓣宽度=中,则类别=Versicolour。因此,对鸢尾花数据集归约后该数据可表示成{(花瓣长度、花瓣宽度、类别)}的形式。
步骤3)将PCA处理后的鸢尾花数据集映射到R-tree数据结果上;
步骤4)将R-tree结构上每一层结点对应为一条编码值,根据要求选取合适的编码长度值作为分类算法的输入;
步骤5)利用熵的单调性的计算方法求得该部分满足熵的单调性;
第二阶段:采用改进的KNN算法对鸢尾花数据集进行分类挖掘处理
步骤1)输入鸢尾花的测试样例;
步骤2)计算训练样例离测试样例的距离及权值,权值的计算方法为:
wi=1/d(x',x)2。然后给定的利用距离加权公式来计算k个数据点的值:q′=argmaxΣ1m(xi,yi)∈Dz,wi*I(v=yi).]]>
步骤3)根据k个点的类别来判断测试点的类别。
步骤4)根据保熵性的计算方法来计算结果是否满足保熵性,通过计算得知该分类结果满足保熵性。
步骤5)根据实验结果可以分析出分类的准确性相当高。该方法基本满足分类要求。
表1 鸢尾花的数据集
花瓣长度花瓣宽度种类数量
低低Setosa46
低中Setosa2
中低Setosa2
中中Versicolour43
中高Versicolour3
中高Virginica3
高中Versicolour2
高中Virginica3
高高Versicolour2
高高Virginica44