基于Koalas的用电量预测方法及预测系统与流程

文档序号:30233878发布日期:2022-06-01 07:24阅读:202来源:国知局
基于Koalas的用电量预测方法及预测系统与流程
基于koalas的用电量预测方法及预测系统
技术领域
1.本发明涉及用电量预测技术领域,具体涉及一种基于koalas的用电量预测方法及预测系统。


背景技术:

2.pandas库是一个免费、开源的第三方python库,是python数据分析必不可少的工具之一,它为python数据分析提供了高性能且易于使用的数据结构,即series(一维数组结构)和dataframe(二维数据结构)。pandas库基于python numpy库开发而来,因此,它可以与python的科学计算库配合使用。pandas提供了两种数据结构,分别是series与dataframe,这两种数据结构极大增强了pandas的数据分析能力。
3.spark作为apache顶级的开源项目,是一个快速、通用的大规模数据处理引擎,和hadoop的mapreduce计算框架类似,但是相对于mapreduce,spark凭借其可伸缩、基于内存计算等特点,以及可以直接读写hadoop上任何格式数据的优势,进行批处理时更加高效,并具有更低的延迟。实际上,spark已经成为轻量级大数据快速处理的重要平台,各种不同的应用,如实时流处理、机器学习、交互式查询等,都可以通过spark建立在不同的存储和运行系统上。
4.电网数据存在数据量大、种类多、更新速度快等特征,因此基于电网数据构建机器学习模型使用传统的pandas机器学习库存在算力不足的问题,而使用spark进行构建又存在机器学习算法不多的情况。所以针对大数据量的电网数据构建机器学习模型,如何发挥pandas具备的机器学习算法数量多的优势同时发挥spark具备能够快速处理轻量级大数据的优势成为摆在现实的一道难题。


技术实现要素:

5.本发明以发挥pandas与spark在针对大数据量的电网数据构建机器学习模型时的各自优势为目的,提供了一种基于koalas的用电量预测方法及预测系统。
6.为达此目的,本发明采用以下技术方案:
7.提供一种基于koalas的用电量预测方法,步骤包括:
8.s1,通过koalas构建pandas的dataframe与spark的dataframe之间的映射,以将pandas的api翻译成spark dataframe的api;
9.s2,spark应用pandas库中的机器学习算法构建机器学习模型;
10.s3,将历史电网数据划分为训练集和测试集输入到所述机器学习模型中进行模型优化训练后,最终输出用电量预测模型;
11.s4,所述用电量预测模型根据输入的电网数据预测输出用电量预测结果。
12.作为本发明的一种优选方案,步骤s3中,对所述机器学习模型进行优化训练的方法为:
13.记所述测试集中的数据量为m个,所述机器学习模型对所述测试集中的每个数据di
进行用电量预测输出的预测值记为对应的真实值记为yi,则当的数量n与m的比值大于预设的阈值q时,判定所述机器学习模型学习到最佳模型参数达到优化训练的终止条件,将此时输出的所述机器学习模型作为所述用电量预测模型。
14.作为本发明的一种优选方案,p=0.1。
15.作为本发明的一种优选方案,q=90%。
16.本发明还提供了一种基于koalas的用电量预测系统,可实现所述的用电量预测方法,所述用电量预测系统包括:
17.映射模块,用于根据输入的衔接指令通过koalas构建pandas的dataframe与spark的dataframe之间的映射,以将pandas的api翻译成spark dataframe的api;
18.模型构建模块,连接所述映射模块,用于在pandas与spark建立映射后,spark根据模型构建指令,应用pandas库中的机器学习算法构建机器学习模型;
19.样本集划分模块,用于根据样本集划分指令将获取的历史电网数据划分为训练集和测试集;
20.模型优化训练模块,连接所述模型构建模块和所述样本集划分模块,用于根据模型优化训练指令,获取所述样本集划分模块所划分的所述训练集和所述测试集输入到所构建的所述机器学习模型中进行模型优化训练后,最终输出用电量预测模型;
21.用电量预测模块,连接所述模型优化训练模块,用于利用所述用电量预测模型对模型输入数据进行用电量预测,并输出用电量预测结果。
22.本发明通过引入koalas作为桥梁在pandas与spark之间构建映射后用来构建用电量预测模型,使得用电量预测模型既可以使用丰富的的pandas算法库,又可以利用spark的分布式计算功能提供算力,提高了用电量预测模型构建的便捷度和构建速度。
附图说明
23.为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
24.图1是本发明一实施例提供的基于koalas的用电量预测方法的实现步骤图;
25.图2是本发明一实施例提供的基于koalas的用电量预测系统的结构示意图;
26.图3是单独使用pandas或spark构建机器学习模型的耗时对比曲线图。
具体实施方式
27.下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。
28.其中,附图仅用于示例性说明,表示的仅是示意图,而非实物图,不能理解为对本专利的限制;为了更好地说明本发明的实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;对本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
29.本发明实施例的附图中相同或相似的标号对应相同或相似的部件;在本发明的描
述中,需要理解的是,若出现术语“上”、“下”、“左”、“右”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此附图中描述位置关系的用语仅用于示例性说明,不能理解为对本专利的限制,对于本领域的普通技术人员而言,可以根据具体情况理解上述术语的具体含义。
30.在本发明的描述中,除非另有明确的规定和限定,若出现术语“连接”等指示部件之间的连接关系,该术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个部件内部的连通或两个部件的相互作用关系。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
31.本发明实施例提供的一种基于koalas的用电量预测方法,如图1所示,包括:
32.步骤s1,通过koalas构建pandas的dataframe与spark的dataframe之间的映射,以将pandas的api翻译成spark dataframe的api;
33.步骤s2,spark应用pandas库中的机器学习算法构建机器学习模型;
34.步骤s3,将历史电网数据划分为训练集和测试集输入到机器学习模型中进行模型优化训练后,最终输出用电量预测模型;
35.本实施例中,对机器学习模型进行优化训练的方法具体为记测试集中的数据量为m个,机器学习模型对测试集中的每个数据di进行用电量预测输出的预测值记为对应的真实值记为yi,则当的数量n与m的比值大于预设的阈值q时,判定机器学习模型学习到最佳模型参数达到优化训练的终止条件,将此时输出的机器学习模型作为用电量预测模型。
36.优选地,p=0.1;q=90%。
37.步骤s4,用电量预测模型根据输入的电网数据预测输出用电量预测结果。
38.以下对本实施例提供的基于koalas的用电量预测方法相比较单独使用pandas构建机器学习模型具有更高的算力的原理进行简要说明:
39.本发明首先选用5份电网样本数据,这5份样本数据的数据量大小分别为100m(兆)、200m、400m、800m、1600m;
40.对同一份数据,先分别在spark和python平台用相同的机器学习算法比如gradient boosting trees算法构建机器学习模型,不同数据量大小的样本数据使用相同的算法构建机器学习模型耗时情况请参照下表1-5:
[0041] 第一组第二组第三组第四组第五组平均pandas252525252625.2spark232422212723.4
[0042]
表1:100m数据量耗时对照表
[0043] 第一组第二组第三组第四组第五组平均pandas474747484346.4spark333435323333.4
[0044]
表2:200m数据量耗时对照表
[0045] 第一组第二组第三组第四组第五组平均pandas777879787377spark434442404843.4
[0046]
表3:400m数据量耗时对照表
[0047] 第一组第二组第三组第四组第五组平均pandas237247242240243241.8spark585754505053.8
[0048]
表4:800m数据量耗时对照表
[0049]
ꢀꢀ
第一组第二组第三组第四组第五组平均pandas557557557558563558.4spark737472707875.4
[0050]
表5:1600m数据量耗时对照表
[0051]
表1-5中的5个分组均为随机分组以消除数据集本身的偶然性。由上表1-5以及图3可知,对于同个样本集(表1-5中每个表中所分的5个组归属于同个样本集),执行同一种机器学习算法,python耗时分别是spark的几倍到几十倍不等,且随着样本数据量的增加,python的耗时呈指数级增加,但spark耗时接近线性变化。由此可知,将pandas和spark集成后,可以极大限度解放pandas的算力瓶颈,让pandas使用者在不用再学习大数据知识的前提下,充分享受spark对于大数据的计算速度,不仅确保了模型构建的机器学习算法充足且确保了模型构建的速度。
[0052]
下表6中记载了spark和pandas应用相同的机器学习算法构建的机器学习模型对于相同测试集的预测准确度,由表6可知,单独使用spark或pandas构建的机器学习模型的预测准确度相当。表6中的“gradient boosting trees”“random forest”“adaboost”“voting”代表机器学习算法。
[0053][0054]
表6
[0055]
本发明还提供了一种基于koalas的用电量预测系统,可实现上述的用电量预测方法,如图2所示,该用电量预测系统包括:
[0056]
映射模块,用于根据输入的衔接指令通过koalas构建pandas的dataframe与spark的dataframe之间的映射,以将pandas的api翻译成spark dataframe的api;
[0057]
模型构建模块,连接映射模块,用于在pandas与spark建立映射后,spark根据模型构建指令,应用pandas库中的机器学习算法构建机器学习模型;
[0058]
样本集划分模块,用于根据样本集划分指令将获取的历史电网数据划分为训练集和测试集;
[0059]
模型优化训练模块,连接所述模型构建模块和样本集划分模块,用于根据模型优化训练指令,获取样本集划分模块所划分的训练集和测试集输入到所构建的机器学习模型中进行模型优化训练后,最终输出用电量预测模型;
[0060]
用电量预测模块,连接模型优化训练模块,用于利用用电量预测模型对模型输入数据进行用电量预测,并输出用电量预测结果。
[0061]
需要声明的是,上述具体实施方式仅仅为本发明的较佳实施例及所运用技术原理。本领域技术人员应该明白,还可以对本发明做各种修改、等同替换、变化等等。但是,这些变换只要未背离本发明的精神,都应在本发明的保护范围之内。另外,本技术说明书和权利要求书所使用的一些术语并不是限制,仅仅是为了便于描述。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1