System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术提供一种基于spark和cs-fptree的电网数据频繁模式挖掘方法,属于电网数据频繁模式挖掘。
技术介绍
1、随着电网用户数量逐年增加,用户的用电数据量也在持续增长,用电数据作为新的生产力要素,将会为供电公司带来巨大价值,近年来推出的数据挖掘技术可以发现用电数据隐含信息,基于此可以改进供电策略,提升业务效率。
2、目前采用的数据挖掘技术主要为基于频繁模式树fptree的挖掘策略,而该数据挖掘方法在使用过程中至少存在以下缺陷:
3、由于每条记录的事务项长度不唯一,传统的频繁模式树fptree的子结点个数是不定的,为了方便搜索fptree结点,必须额外定义头项表和线索指针记录存储位置,使结构定义复杂,进而使得操作和管理复杂、数据存储冗余,也将额外增加管理和应用的复杂度;此外,频繁模式树fptree递归生成条件模式子树,基于子树再递归挖掘,聚合得到频繁模式基,如果数据量过大,其递归次数将受到内存容量限制,效率低、可扩展性差,影响挖掘结果的生成。
技术实现思路
1、本专利技术为了克服现有技术中存在的不足,所要解决的技术问题为:提供一种基于spark和cs-fptree的电网数据频繁模式挖掘方法的改进。
2、为了解决上述技术问题,本专利技术采用的技术方案为:一种基于spark和cs-fptree的电网数据频繁模式挖掘方法,包括如下的数据挖掘步骤:
3、步骤1:构建sparksession对象和sprakconf对象,配置资源需求参数
4、步骤2:创建处理器对实例df数据进行特征编码和数据分箱处理,生成二值化全域事务项集;
5、步骤3:创建sparkcontext对象sc,调用parallelize并行化方法生成事务项,定义二值过滤器,对值为1的项填充名称,设定最小支持度筛选项集,生成事务项频繁基和局域事务项集;
6、步骤4:定义cs-fptree生成器,生成有效事务项集的前缀模式树,根据频繁基生成前缀路径表;
7、步骤5:定义子集生成器,生成前缀路径表中各条路径的子集,聚合路径权值,去除不满足最小支持度的子集,得到频繁模式集,对电网数据进行挖掘。
8、所述步骤1中创建实例数据的具体方法为:
9、步骤1.1:启动pyspark,指定masterurl,实例化sparkconf对象指定集群模式,进行资源配置,使用builder构建器模式创建sparksession对象,生成sprak实列;
10、步骤1.2:从hdfs指定的位置读取数据文件,调用spark.read创建dataframe的实例df数据。
11、所述步骤2中生成二值化全域事务项集的具体方法为:
12、步骤2.1:将字符型对象转换为离散数值型:定义转换器,提取df数据中抄表册、电价名称、用户分类、用电类别、供电电压、重要等级的类别特征到rdd,使用map算子对字段建立特征值到特征值索引的映射;
13、步骤2.2:将连续值对象转换为离散数值型:定义分箱器,将df数据中总电量、总电费的连续数值值转换为离散型数值,采用证据权重woe评估分箱优劣,调整分箱策略,其中证据权重woe的表达式为:
14、;
15、步骤2.3:对所有特征进行二值化操作:利用sparkml库的onehotencoderestimator类来实现独热编码,生成二值化全域事务集。
16、所述步骤3中生成事务项频繁基和局域事务项集的具体方法为:
17、步骤3.1:根据业务规则最少数目和置信度要求确定支持系数sp,计算最小支持度min_support,计算公式为:
18、min_support=[fmax×sp];
19、步骤3.2:定义二值过滤器,保留特征值为1的有效事务项,填充对应项名,删除低于最小支持度的项,得到有效事务项rdd;
20、步骤3.3:统计事务项的频度f,从大到小排序,得到事务项的频繁基。
21、所述步骤4中生成有效事务项集的前缀模式树的具体方法为:
22、步骤4.1:建立初始根节点,具体为一棵空cs-fptree树,初始频度为1;
23、步骤4.2:读取有效事务项的行,行中的事务项按频度排序,取出行首项,建立新结点,权重为1,插入cs-fptree,插入规则为:
24、根结点是其前缀,插入左子树,不是前缀,插入右子树;
25、每个被插入的结点写入双亲信息,如果结点相同,不创建新结点,直接写入累加权重;
26、步骤4.3:删除已插入首项,取出新首项,重复步骤4.2,直到清空本行,读取下一条记录;
27、步骤4.4:重复步骤4.2、步骤4.3,直到记录为空,则生成最终的cs-fptree,具体为一棵二叉前缀树。
28、所述步骤5中得到频繁模式集的具体方法为:
29、步骤5.1:读取频繁基中的事务项结点,在cs-fptree中查找对应结点,沿其双亲向上访问直到根,保存访问路径到前缀路径表,路径上的前缀结点共享初始结点的权重;
30、步骤5.2:定义子集生成器,对前缀路径表的全部路径计算子集,得到候选项集并保存到字典freq_dict中,其中字典freq_dict={频繁项子集:首元权重};
31、步骤5.3:定义聚合过滤器,聚合候选子集,筛选大于最小支持度的子集,得到有效事务集的频繁模式集。
32、本专利技术相对于现有技术具备的有益效果为:本专利技术针对电网用户大数据的挖掘策略,基于spark并行计算集群和pyspark api工具,利用改进的cs-fptree进行数据频繁模式挖掘,本专利技术采用改进的cs-fptree从结构上优化了频繁模式树的定义,简化了生成过程,减少了频繁模式挖掘的迭代次数,采用spark分布式计算框架能有效提升内存资源利用率和扩展性能。
本文档来自技高网...【技术保护点】
1.一种基于Spark和CS-FPtree的电网数据频繁模式挖掘方法,其特征在于:包括如下的数据挖掘步骤:
2.根据权利要求1所述的一种基于Spark和CS-FPtree的电网数据频繁模式挖掘方法,其特征在于:所述步骤1中创建实例数据的具体方法为:
3.根据权利要求2所述的一种基于Spark和CS-FPtree的电网数据频繁模式挖掘方法,其特征在于:所述步骤2中生成二值化全域事务项集的具体方法为:
4.根据权利要求3所述的一种基于Spark和CS-FPtree的电网数据频繁模式挖掘方法,其特征在于:所述步骤3中生成事务项频繁基和局域事务项集的具体方法为:
5.根据权利要求4所述的一种基于Spark和CS-FPtree的电网数据频繁模式挖掘方法,其特征在于:所述步骤4中生成有效事务项集的前缀模式树的具体方法为:
6.根据权利要求5所述的一种基于Spark和CS-FPtree的电网数据频繁模式挖掘方法,其特征在于:所述步骤5中得到频繁模式集的具体方法为:
【技术特征摘要】
1.一种基于spark和cs-fptree的电网数据频繁模式挖掘方法,其特征在于:包括如下的数据挖掘步骤:
2.根据权利要求1所述的一种基于spark和cs-fptree的电网数据频繁模式挖掘方法,其特征在于:所述步骤1中创建实例数据的具体方法为:
3.根据权利要求2所述的一种基于spark和cs-fptree的电网数据频繁模式挖掘方法,其特征在于:所述步骤2中生成二值化全域事务项集的具体方法为:
4.根据权利要求3所述的...
【专利技术属性】
技术研发人员:陈运蓬,赵飞,贺江华,尚文,马骊,白静波,马江海,
申请(专利权)人:国网山西省电力公司大同供电公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。