发明内容
本发明所要解决的技术问题是克服现有技术的缺陷,提供一种组态化机器学习建模任务描述的预测方法及系统。
为解决上述技术问题,本发明提供一种组态化机器学习建模任务描述的预测方法,包括:
获取当前区域的业务数据,输入到预先训练好的集成多种机器学习算法的预测模型,输出该区域对应该业务的预测数据;
所述集成多种机器学习算法的预测模型的构建以及训练,包括:
根据业务需求从机器学习算法集成框架中提取与该业务数据相关的多个机器学习算法,生成对应业务的以有向无环图数据结构进行描述的机器学习流程化任务描述结构,每个机器学习算法为所述机器学习流程化任务描述结构中的一个运算节点,确定用于依次调用每个运算节点对应的运算程序的参数,生成训练模型;
获取业务训练数据,对所述训练模型进行训练,完成训练,保存训练好的集成多种机器学习算法的预测模型。
进一步的,所述机器学习算法集成框架,包括:
自定义算法、TensorFlow框架算法、Sklearn框架算法和Spark MLlib框架算法,用于获取样本数据,进行数据预处理,特征选择,分类评估和模型保存。
进一步的,所述机器学习流程化任务描述结构包括:整体流程信息、运算节点信息和运算节点间关系信息,其中,
整体流程信息,用于显示流程化任务的整体组成情况;
运算节点信息,用于显示运算节点对应的算法;
运算节点间关系信息,用于显示运算节点之间的运算关系,
进一步的,所述整体流程信息设定有流程编号、执行流水号和流程信息详细结构。
进一步的,所述运算节点信息设定有节点编号、节点名称、节点类型、节点运行所需的业务参数和资源参数、机器学习算法名称,以及机器学习算法节点可执行程序所在的路径。
进一步的,所述运算节点间关系信息设定有来源节点编号、来源节点是否存在前序节点、来源节点类型、前序节点类型名称、目标节点编号、目标节点类型、目标节点是否存在前序节点、目标节点类型名称。
进一步的,还包括:
在对训练模型训练前检查当前机器学习流程化任务描述结构是否正确,如果描述结构正确,则校验成功;如果描述结构错误,则校验失败,需等待业务人员修改自定义描述结构后再执行。
进一步的,还包括:
根据回归评估算法的R-square来描述数据对模型拟合程度的好坏,数值在0-1之间,越接近1表示正确率越高,如果正确率不满足预期,调整回归算法节点的参数,重新进行模型训练。
一种组态化机器学习建模任务描述的预测系统,包括:
数据获取模块,用于获取当前区域的业务数据;
分析预测模块,用于输入到预先训练好的集成多种机器学习算法的预测模型,输出该区域对应该业务的预测数据;
所述集成多种机器学习算法的预测模型的构建以及训练,包括:
根据业务需求从机器学习算法集成框架中提取与该业务数据相关的多个机器学习算法,生成对应业务的以有向无环图数据结构进行描述的机器学习流程化任务描述结构,每个机器学习算法为所述机器学习流程化任务描述结构中的一个运算节点,确定用于依次调用每个运算节点对应的运算程序的参数,生成训练模型并保存;
获取业务训练数据,对所述训练模型进行训练,完成训练,确定训练好的集成多种机器学习算法的预测模型。
一种存储一个或多个程序的计算机可读存储介质,其特征在于,所述一个或多个程序包括指令,所述指令当由计算设备执行时,使得所述计算设备执行所述的方法中的任一方法。
一种计算设备,包括,
一个或多个处理器、存储器以及一个或多个程序,其中一个或多个程序存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行所述的方法中的任一方法的指令。
具体实施方式
下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
如图1所示,本发明提供了一种组态化机器学习建模任务描述的预测方法,其特征在于,包括:
获取当前区域的业务数据,输入到预先训练好的集成多种机器学习算法的预测模型,输出该区域对应该业务的预测数据;
所述集成多种机器学习算法的预测模型的构建以及训练,包括:
根据业务需求从机器学习算法集成框架中提取与该业务数据相关的多个机器学习算法,生成对应业务的以有向无环图数据结构进行描述的机器学习流程化任务描述结构,则每个机器学习算法为所述机器学习流程化任务描述结构中的一个运算节点,确定用于依次调用每个运算节点对应的运算程序的参数,生成训练模型;
获取业务训练数据,对所述训练模型进行训练,完成训练,确定训练好的集成多种机器学习算法的预测模型。
所述集成多种机器学习算法的预测模型的集成原理,如图2所示,根据业务需求从多种机器学习算法集成框架中提取与该业务数据相关的多个机器学习算法,具体如下:
(1)从自定义算法Self Definition中选取样本数据源算法,用于接入数据;
(2)从机器学习spark mllib中选取奇异值分解算法,用于对之前的负荷预测数据进行奇异值分析,找出过大或过小的奇异值进行过滤;
(3)从机器学习Sklearn中选取随机森林分类算法,用于对步骤(2)处理后的样本数据自动进行特征选择和分类,通过多决策树表决方式,迅速完成对大量数据快速训练;
(4)从深度学习TersorFlow中选取DNN分类算法,用于和步骤(3)随机森林分类配合使用,得到一个比单一分类算法更好的预测结果。
(5)自定义算法Self Definition中选择模型保存算法,保存步骤(1)-(4)中的算法,完成训练模型保存,用于对负荷预测数据的批量训练。
获取业务训练数据,解析并执行所述训练模型的流程,完成训练,保存训练好的集成多种机器学习算法的预测模型。
所述根据业务需求从多种机器学习算法集成框架中提取与该业务数据相关的多个机器学习算法,包括:
根据业务需求从多种机器学习算法集成框架中提取与该业务数据相关的算法,包括数据清洗、数据变换、特征工程、机器学习、深度学习、模型管理等处理算法。
(1)数据清洗:缺失值查找、数据填充、离群值处理等;
(2)数据变换:随机采样、数据过滤、时序数据周期化、标准化归一化等;
(3)特征工程:特征变换、特征生成、特征选择
(4)机器学习:随机森林分类、K均值聚类、线性回归等;
(5)深度学习:DNN回归、DNN分类、RNN回归、RNN分类、LSTM时序等;
(6)模型管理:模型保存、模型加载、分析预测等。
本发明支持跨机器学习框架的算法选择,包括Spark MLlib、TensorFlow、Sklearn和自定义算法框架。业务人员可以根据需求,跨机器学习算法框架选择算法,自定义流程化描述结构,由任务执行器解析描述结构并执行节点算法,从而能够快速完成自定义模型的训练与评估。
在本实施例中,选取样本数据源、奇异值分析、随机森林分类、DNN分类和模型保存五个机器学习算法,组装成机器学习模型训练流程,流程化任务描述语言结构交互过程如图3所示。
流程信息以有向无环图(DAG)数据结构进行描述,用一维数组表示,关键字是flow_info;
样本数据源、奇异值分析、随机森林分类和模型保存等关键环节抽象为DAG图中的运算节点,用键值对表示,关键字是nodes;
运行序列抽象为DAG图中的边,用键值对表示,关键字是edges。
本实施例通过三个步骤详细介绍流程信息flow_info、节点关系信息edges、算法节点信息nodes的描述结构。
步骤1:
流程化任务描述语言结构采用英文命名,易于维护和理解,整体流程信息的一级节点由三部分组成,流程编号、执行流水号和流程信息详细结构,其中简化示例结构如图4所示:
其中,exec_id表示执行流水号,记录了任务执行的流水号,任务每次执行时生成新的流水号,用于追溯机器学习模型的历史执行结果。历史执行结果包括历史执行时模型信息、节点的执行状态和洞察信息等。flow_id表示流程编号,每个用户自定义任务流程对应唯一的流程编号。flow_info描述了详细的流程信息,对name-流程名称、edges-节点关系信息和nodes-算法节点信息进行封装。
步骤2:
节点关系信息edges包括n条边(即节点间关系)的信息。其中,每条边的结构包括来源节点编号、来源节点是否存在前序节点、来源节点类型、前序节点类型名称、目标节点编号、目标节点类型、目标节点是否存在前序节点、目标节点类型名称,示例如图5所示:
其中,来源节点是否存在前序节点source_node_port和目标节点dist_node_port是否存在前序节点的枚举值如表1所示。
表1是否存在前序节点枚举值
枚举值 |
值类型 |
说明 |
true |
boolean |
存在 |
false |
boolean |
不存在 |
其中,来源节点类型source_node_code和目标节点类型dist_node_code的常用枚举值如表2所示,包括但不限于以下枚举值。
表2节点类型枚举值
枚举值 |
值类型 |
说明 |
data |
string |
数据集 |
model |
string |
模型 |
graph |
string |
图表 |
步骤3:
算法节点信息nodes包括n个算法节点的信息,采用统一的JSON格式键值对来定义定义了算法节点信息。其中,每个算法节点信息包括节点编号、节点名称、节点类型、节点执行所需的参数、机器学习算法名称,以及机器学习算法节点可执行程序所在的路径。
下面以随机森林分类为例进行说明,示例如图6所示:
本发明中,组态化机器学习建模任务描述方法,业务人员将各种算法编排成符合业务需求的描述结构,建立了任务执行器和运算节点之间的纽带,机器学习流程化任务执行过程如图3所示。任务执行器解析描述结构,有序执行各运算节点的算法,从而快速的响应不断变化的业务需求,提高了应用研发效率,加快了人工智能在电网调控领域应用落地和实施。
相应的本发明还提供一种组态化机器学习建模任务描述的预测系统,包括:
数据获取模块,用于获取当前区域的业务数据;
分析预测模块,用于输入到预先训练好的集成多种机器学习算法的预测模型,输出该区域对应该业务的预测数据;
所述集成多种机器学习算法的预测模型的构建以及训练,包括:
根据业务需求从机器学习算法集成框架中提取与该业务数据相关的多个机器学习算法,生成对应业务的以有向无环图数据结构进行描述的机器学习流程化任务描述结构,则每个机器学习算法为所述机器学习流程化任务描述结构中的一个运算节点,确定用于依次调用每个运算节点对应的运算程序的参数,生成训练模型;
获取业务训练数据,对所述训练模型进行训练,完成训练,确定训练好的集成多种机器学习算法的预测模型。
一种存储一个或多个程序的计算机可读存储介质,其特征在于,所述一个或多个程序包括指令,所述指令当由计算设备执行时,使得所述计算设备执行所述的方法中的任一方法。
一种计算设备,包括,
一个或多个处理器、存储器以及一个或多个程序,其中一个或多个程序存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序包括用于执行所述的方法中的任一方法的指令。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。