试论一种基于粗糙集的海量数据挖掘算法
2018-04-16中国计量大学信息工程学院蔡丛豫
中国计量大学信息工程学院 蔡丛豫
引言:就传统的数据挖掘技术来说,其在数据量级方面存在着一定的局限性,影响最终的效果,所以将粗糙集理论应用其中。对此,本文以算法的优化为切入点,对一种基于粗糙集的海量数据挖掘算法进行分析。结合本文的分析,其目的就是优化海量数据挖掘算法,并以全新的并行算法等为基础,提高海量数据挖掘的效率,以期为相关人员提供参考。
1.基于粗糙集对Rough Set知识约简算法的改进
1.1 离散化算法
在Rough Set知识获取方法中,数据离散化是其关键的构成内容之一,本文就采用属性重要性的方式,将CDL引入到原算法之中,保证这种算法能够实现对海量数据的挖掘。具体来说,这种算法的具体步骤为:
(1)对每一个连续的条件属性,进行循环遍历,同时能够生成条件信息熵,即ICDL({ai})的信息熵。
(2)结合条件信息,对信息熵以降序的方式进行排序,即将所有连续的属性均进行排列。
(3)对于完成排序的DT,并每个条件的ai进行循环遍历,从而能够形成ICDL(C{ai})。在这一条件下,可以将Szone设置为null,而Szone实际上是ai值域的子集。
(4)对(Sa,Sb)区间的额每一个断点,进行循环遍历,而Sa、Sb是ai的连续属性值,并设Szone的值为Szone与Sa的和。
(5)对DT中所有满足条件SVj(ai)=Sh的样本,进行循环遍历,即SVj,而其中的Sh=属于Szone。
(6)对DT中所有满足条件SVj(ai)=Sb的样本,进行循环遍历,即SVk,如果样本SVk、SVj属于ICDL({ai})的同一分类中,并且使用@的符号进行连接,在需要将(Sa,Sb)的断点选择出来,并对Szone进行重置(空)。
1.2 值约简算法
基于粗糙集理论,能够对值约简算法进行改进,以此来实现对海量的挖掘,保证数据分析结果的稳定性。具体来说,值约简算法的具体步骤如下:
(1)输入一个完备的信息系统DT,最终输出的结果为规则集RT。假设Index为样本标号,DA表示决策属性,C则为条件属性的集合,然后进行以下的计算步骤。
(2)对RT进行初始化,使其转化为DT。
(3)对所有的条件属性ai进行循环遍历,并将SSCDL(ai)中的所有样本,均以“?”的符号标记在ai之上。
(4)对MSCDL(ai)中的所有样本ai,均以“*”进行属性值的标记。另外,在MSCDL(ai)中剩余的样本,其ai的属性值并不需要进行改变。
(5)在后续的计算步骤,只需要按照传统的值约简算法进行即可。
2.基于粗糙集的两步离散化算法并行化
2.1 离散化算法
实际上,本文所提及的离散化算法,其是以动态聚类为基础的。对于这种算法的具体步骤,本文将做出如下的分析:
(1)输入决策表,即S=<U,同时R=C∪D,还包括V、F>。输出的结果为:对S进行筛选而形成具体的断点集,即CUTfirst,以此来对S中的每一个属性k进行遍历,然后进行如下的计算。
(2)对k断点的重要性进行计算、分析,并按照由小到大的顺序进行排序。然后,在数组Importantk[]中对计算结果进行保存,数组的索引m表示断点最为重要的位置。具体来说,Importantk[m]=max{Importantk[i],i∈并设l等于0,n等于|h-l+1|,而h等于m。
(3)采用归一化的方式对数据进行处理,并对Importantk[]进行循环遍历,最终得出:Importantk[i]=Importantk[i]/Importantk[m]。
(5)对聚类的个别数进行初始化,并对变量v=e+1进行循环控制。
(6)如果v的数值大于e,则应该进行以下的循环:1)建立中心表T,定在Importantk中对l~h的范围进行随机选择K个中心;2)对e1=0的循环变量进行设定;3)如果e1不等于v时,其所执行的循环为:e1等于v,应对Importantk中数值距离、数值类别进行统计,然后将其与距离最小的类别进行同类处理,并对聚类中心的数值进行调整,明确T中各类标准差的数值,并使v等于
(8)在每一个聚类类别中,选择最重要的断点,添加至CUT-ifrst之中。基于这样的方式,就能够基于粗糙集理论实现对离散化算法的优化,以便于对海量数据进行挖掘与计算。
2.2 并行离散化算法
依据粗糙集理论,可以在动态聚类的基础上,实现两步并行理算化算法,其具体的计算步骤为:
(1)输入S=<U,同时R=C∪D,还包括V、F>。输出的结果为:决策表S中的断点集,即CUTlast,然后进行如下的计算。
(2)在没有进行离散化的基础上,对决策表中区域的POSc(D)进行详细的计算[2]。
(3)在散播属性的阶段,可以在主进程中设置证其能够满足条件条件属性的全集,并将S1分配给P1……。并保
(4)在进行并行处理的过程中,假设进程为Pi,则可以通过两步离散化算法进行处理,实现对断点的聚类,并将其发送至CUTfirst中。
(6)在并行离散化算法的过程中,实际上需要对断点补充进行修正,这一阶段的具体方式,与两步离散化算法相同。
(7)在断点散播阶段之中,其中的断点集可以由各个进程L进行表示,将以等价类的方式对集合进行实例划分,即CUTlast为空集,而L则等于{U}。在计算的过程中,可以设置满足条件另外还包括条
(8)在对数据进行并行处理的阶段,可以根据断点的重要性,进行选择与发送。
(9)在断点的归约阶段之中,其主进程应该接受所有的结果[3]。
(10)对各个进程的CUTlast进行更新。
(11)依据X∈L的条件,对相关的数据进行处理,最终将其中的X取掉。
(12)如果L中的实例并没有形成相同的决策,在需要从步骤(3)进行重复,反之则可以结束算法。
结语:综上所述,为了能够实现对海量数据的挖掘,就应该打破传统算法的限制。在本文的分析中,对于算法的改进,其创新点在于以粗糙集为基础,结合传统算法实现了对海量数据挖掘算法的优化,而本文的研究能够在一定程度上为丰富文献类的类型做出贡献,基于这一条件,提高了数据算法的简便性,并实现了对数据深入挖掘的目标,发挥了基于粗糙集的海量数据挖掘算法的价值。通过这样的优化方式,在根本上强化了数据挖掘算法的准确性,在未来的发展中,很可能会应用在各个行业的大数据分析中,为其制定决策、战略提供有价值的数据依据。另外,所以,结合本文的分析发现,文中所论述的一种基于粗糙集的海量数据挖掘算法,其具有较强的可行性。