一种基于MapReduce的约束关系粗糙集规则获取方法
技术领域
本发明涉及一种规则获取方法,尤其涉及一种基于MapReduce的约束关系粗糙集规则获取方法,属于数据处理领域。
背景技术
在当前的数据信息时代背景下,从大规模数据集中提取有效的决策规则,能够对企业决策提供有力支撑。传统的决策方法主要是定性预测,即专家预测法,常侧重主观意识,近年来决策支持系统中涌现出越来越多的定量决策方法,即根据历史和现状统计资料,运用数学模型对资料进行科学的分析处理,找出预测目标与其他因素的规律性联系。据有关资料统计,预测方法已多达200余种。
在众多的决策获取方法中,利用粗糙集理论获取决策规则逐步成为决策支持系统中较主流的方法。经典粗糙集理论获取分类规则的具体做法是:首先将论域(研究对象组成的非空有限集)按照不可分辨关系划分成若干知识库,在保持分类能力不变的情况下,删除不相关或不重要的信息,获取关键属性,该过程称为知识约简,其结果是实现了数据降维,获取到约简属性,约简属性及其属性值构成了最终的分类规则。
然而在多属性决策信息系统中,属性之间存在的优劣关系对决策规则的获取具有重要意义,优势粗糙集理论能够从偏好属性决策表中获取可用于分类或决策的偏好规则,使粗糙集应用更具可靠性。但是,已有的并行知识约简算法大都是针对经典粗糙集方法,而且仅仅实现了约简任务的并行计算,是内存驻留算法,所有数据计算必须同时在内存中进行,并且它只能在单机上运行,这就大大地影响了算法的时效性和伸缩性,因此它不能处理大规模数据;利用云环境实现并行规则获取的方法,如发明专利“基于Hadoop的邻域粗糙集快速属性约简方法”(专利申请号:201310224008.1,公开号:103336790A)实现了邻域粗糙集属性约简算法的并行化,大大降低了时间复杂度,提高了大规模数据的分析效率,但是该发明仍然是针对传统的经典粗糙集理论实施了并行运算,没有解决偏好多属性决策信息系统中的不相容缺陷,获取到的决策规则可靠性较差。
发明内容
本发明所要解决的技术问题是针对背景技术的不足提供了一种基于MapReduce的约束关系粗糙集规则获取方法,其在解决了偏好多属性决策信息系统中的不相容缺陷的同时,引入约束概念进一步量化优势关系,构建MapReduce运算模型实现约束关系粗糙集下的并行规则获取。
本发明为解决上述技术问题采用以下技术方案
一种基于MapReduce的约束关系粗糙集规则获取方法,具体包括如下步骤:
步骤1,预先建立一个数据分布规则库,配置条件约束集;
步骤2,搭建Hadoop分布式平台;
步骤3,将数据集划分为训练数据集和测试数据集;
步骤4,对数据集进行预处理,进而将数据集转化成Hadoop能够辨识的格式;
步骤5,通过步骤1建立的数据分布规则库将数据集划分成多个数据分片;
步骤6,对每个数据分片进行Map操作;
步骤7,将步骤6获取的Map结果汇总进行Reduce操作,进而获取分类规则。
作为本发明一种基于MapReduce的约束关系粗糙集规则获取方法的进一步优选方案,所述步骤6具体过程如下:
步骤6.1,将数据分片的数据集构造成信息系统模式,具体为:S={U,A,V,f,E},其中U为论域,A=C∪D,A是属性集,C是条件属性集合,D是决策属性集合,V是属性集的值域集,f是信息函数,E是条件约束集;
步骤6.2,根据决策属性集合将步骤5获取的数据分片划分出有穷个决策类:Cl={Clt,t∈N},N={1,2,...,n},其中,n为决策属性个数;计算各决策类的上联合及其优势集,进而得到上联合的下近似: 为上联合,Lapp为上联合的下近似;
步骤6.3,对每一个l∈Lapp,初始化规则集进而计算规则前件:Condition={rq≥vqi+eq},其中,q∈C,rq表示属性q的规则值,i是下近似对象xi的下标,vqi表示属性q在xi处的属性值,eq是相应属性的约束值,根据覆盖样例集之间的衡量关系,选取最优的规则前件{best},即DRl=DRl∪{best};
步骤6.4,对每一个DRl,判断是否是最小规则集合:对每一条dr∈DRl,若则DRl=DRl-dr;
步骤6.5,将最小规则集合纳入到结果规则集:即
作为本发明一种基于MapReduce的约束关系粗糙集规则获取方法的进一步优选方案,所述步骤7具体过程如下:
步骤7.1,将同一类别的上联合进行合并规则集,得到新的规则集:
步骤7.2,根据包含原则,化简合并后的规则集得到所有数据的上联合及其集合规约:
步骤7.3,取步骤7.2中Reduce输出结果的并集,即获取到海量数据下的上联合分类规则集合:(其中n为决策属性个数)。
作为本发明一种基于MapReduce的约束关系粗糙集规则获取方法的进一步优选方案,在步骤6.2中,所述各决策类的上联合的具体计算为:
作为本发明一种基于MapReduce的约束关系粗糙集规则获取方法的进一步优选方案,对于条件属性集合C,若则称在给定的约束关系下,对象x在属性集C上优于y,记为xDcy,那么获取x的C-优势集方法为:其中,为优势集。
作为本发明一种基于MapReduce的约束关系粗糙集规则获取方法的进一步优选方案,下近似集的具体计算为:
本发明采用以上技术方案与现有技术相比,具有以下技术效果:
1,本发明在基于优势关系的粗糙集理论中加入约束概念,实现了各条件属性之间偏好关系的量化,使优势关系得以定量衡量,增加了知识规则在实际问题分析中的实用性;
2,本发明利用MapReduce技术来实现约束关系粗糙集的并行规则获取算法。MapReduce使得用户不必关注如何进行数据分割、负载均衡、容错处理等细节,只需要将实际应用问题分解成若干可并行操作的子问题,将MapReduce与约束关系粗糙集理论相结合,实现了在海量数据规模下获取决策分类规则,且时效性、可扩展性良好。
附图说明
图1是本发明的实现流程图;
图2是本发明不同数据规模下的运行时间的仿真效果图;
图3是本发明节点数目与可扩展性对应关系的仿真效果图。
具体实施方式
下面结合附图对本发明的技术方案做进一步的详细说明:
如图1所示,本发明设计一种基于MapReduce的约束关系粗糙集规则获取方法,具体包括如下步骤:
步骤1,预先建立一个数据分布规则库;配置条件约束集E={e1,e2,...,ec}量化优势关系;
步骤2,搭建Hadoop分布式平台;在CentOS6.5下搭建Hadoop分布式系统,构造其中1台Master,6台Slaver。
步骤3,将数据集划分为训练数据集和测试数据集:将数据集随机分为两部分:2/3的数据用来建模,剩余1/3的数据用来对模型做测试。
步骤4,对数据集进行预处理,进而将数据集转化成Hadoop能够辨识的格式;
步骤5,通过步骤1建立的数据分布规则库将数据集划分成多个数据分片;
步骤6,对每个数据分片进行Map操作;
步骤7,将步骤6获取的Map结果汇总进行Reduce操作,进而获取分类规则。
作为本发明一种基于MapReduce的约束关系粗糙集规则获取方法的进一步优选方案,所述步骤6具体过程如下:
步骤6.1,将数据分片的数据集构造成信息系统模式,具体为:S={U,A,V,f,E},其中U为论域,A=C∪D,A是属性集,C是条件属性集合,D是决策属性集合,V是属性集的值域集,f是信息函数,E是条件约束集;
步骤6.2,根据决策属性集合将步骤5获取的数据分片划分出有穷个决策类:Cl={Clt,t∈N},N={1,2,...,n},其中,n为决策属性个数;计算各决策类的上联合及其优势集,进而得到上联合的下近似: 为上联合,Lapp为上联合的下近似;
步骤6.3,对每一个l∈Lapp,初始化规则集进而计算规则前件:Condition={rq≥vqi+eq},其中,q∈C,rq表示属性q的规则值,i是下近似对象xi的下标,vqi表示属性q在xi处的属性值,eq是相应属性的约束值,根据覆盖样例集之间的衡量关系,选取最优的规则前件{best},即DRl=DRl∪{best};
步骤6.4,对每一个DRl,判断是否是最小规则集合:对每一条dr∈DRl,若则DRl=DRl-dr;
步骤6.5,将最小规则集合纳入到结果规则集:即
作为本发明一种基于MapReduce的约束关系粗糙集规则获取方法的进一步优选方案,所述步骤7具体过程如下:
步骤7.1,将同一类别的上联合进行合并规则集,得到新的规则集:
步骤7.2,根据包含原则,化简合并后的规则集得到所有数据的上联合及其集合规约:
步骤7.3,取步骤7.2中Reduce输出结果的并集,即获取到海量数据下的上联合分类规则集合:其中,n为决策属性个数。
作为本发明一种基于MapReduce的约束关系粗糙集规则获取方法的进一步优选方案,在步骤6.2中,所述各决策类的上联合的具体计算为:
作为本发明一种基于MapReduce的约束关系粗糙集规则获取方法的进一步优选方案,在步骤6.2中,对于条件属性集合C,若则称在给定的约束关系下,对象x在属性集C上优于y,记为xDcy,那么获取x的C-优势集方法为:其中,为优势集。
作为本发明一种基于MapReduce的约束关系粗糙集规则获取方法的进一步优选方案,在步骤6.2中,下近似集的具体计算为:
综上所述,本发明在基于优势关系的粗糙集理论中加入约束概念,实现了各条件属性之间偏好关系的量化,使优势关系得以定量衡量,增加了知识规则在实际问题分析中的实用性;
本发明利用MapReduce技术来实现约束关系粗糙集的并行规则获取算法。MapReduce使得用户不必关注如何进行数据分割、负载均衡、容错处理等细节,只需要将实际应用问题分解成若干可并行操作的子问题,将MapReduce与约束关系粗糙集理论相结合,实现了在海量数据规模下获取决策分类规则,且时效性、可扩展性良好。
本发明中,将实验数据集划分为训练数据和测试数据,是为了验证并行算法的可靠性,本发明并行算法得到的决策模型正确率在85%以上,正确率很可观。对本发明的算法分类时效性和可扩展性效果可通过如下仿真进一步说明:
1.仿真内容:本发明使用来自某电信子公司的客户流失分析数据作为数据源,该数据集大小约为6GB,包含的客户属性有:总通话分钟、费用总计、通话次数、欠费次数、拆机次数、使用月份累计、服务使用类型数量。按比例抽取未流失客户和流失了的客户,将二者数据混合后随机分为两部分:2/3的数据用来建模,剩余1/3的数据用来对模型做测试。在数据预处理阶段,将客户信息中的缺失数据用同类别中的值或均值代替。仿真1测量不同数据规模在不同节点下的运行时间,分析数据规模和节点数量对MapReduce处理性能的影响,如图2所示;仿真2评估了本发明所述算法的可扩展性,实验结果如图3所示。
2.仿真结果:从图2中可以看出,小数据集时不同节点数目的运行时间差异不明显,这是因为数据集略小,数据分块较少,部分节点处于空闲状态,真正执行计算任务的节点数目相差不大,因此不同节点之间运行时间的差异并不明显;但此时,小数据集下启动Hadoop系统,依然会调用大量系统资源,运行时间略长,不能很好地体现MapReduce的并行优势。随着数据规模的逐步扩大,MapReduce并行算法的优势越来越凸显,数据集规模越大,节点数目越多,运行时效性越好。
图3显示本发明算法的可扩展性,可以看出:数据规模按节点数同比例扩大时,算法运行时间变长,可扩展性略有下降,这是因为随着数据量的增加,Map阶段数据对象增多,计算上、下联合集合及其规则前件的时间变长,但该算法具有的可扩展性依然十分可观。