一种基于区块链智能合约与机器学习的数据预处理方法技术

技术编号:20844022 阅读:39 留言:0更新日期:2019-04-13 08:53
一种基于区块链智能合约与机器学习的数据预处理方法,通过区块链技术和机器学习技术协同完成在节点上的数据预处理。具体包括收集物联网数据,存储到本地节点之后将其标准化;在本地节点上创建机器学习算法文件,用于对物联网数据的预处理;将数据存入区块链;利用入链后的数据对学习算法进行训练,得到模型系数,并存储到本地节点;首先将机器学习算法表达式写入智能合约,然后将得到的模型系数通过调用智能合约存入区块链;利用上链后的模型对待处理数据进行处理;将处理后的数据存入区块链。该方法在区块链的智能合约中加入机器学习算法,利用机器学习提高区块链的数据挖掘能力。

【技术实现步骤摘要】
一种基于区块链智能合约与机器学习的数据预处理方法
本专利技术属于区块链
、数据分析
、数据安全领域。
技术介绍
近年来,人工智能的强势崛起,让人们深刻地领略到了人工智能技术的巨大潜力。数据是载体,智能是目标,而机器学习是从数据通往智能的技术、方法途径。数据本身是无意识的,它不能自动呈现出有用的信息。通俗地说,机器学习就是从数据中挖掘出有价值的信息。自2016年互联网绑架病毒爆发之后,“比特币”开始逐渐进入大众的视野,当时大部分人对比特币的认识仅限于一种虚拟交易货币。此后的两年来,“比特币”与美元的比率日渐走高。与此同时,进入广大研究者和开发者视野的是其底层技术——“区块链”。有人比喻它是一种革命性的技术发展,更有人认为它是互联网之后又一个将改变世界、推动世界发展的新生事物。区块链是一种透明化的不可篡改的分布式加密记账体系。作为“比特币”底层技术,区块链为比特币的交易转账等提供了十分安全可靠的保障。传统的数据预处理方式缺乏安全性,其在对数据防护的安全层面上存在不足,在数据处理的过程中由于硬件故障、断电、死机、人为的误操作、程序缺陷、病毒或黑客等造成的数据库损坏或数据丢失现象,某些敏感或保密的数据可能不具备资格的人员或操作员阅读,而造成数据泄密等后果。此外,传统的数据上传存储与处理方法依赖于中心化数据库,使核心数据库服务器负载较大,并且存在信任问题。将区块链技术应用到数据预处理领域能够很好的解决数据安全的问题,但是由于区块链解决的更多是网络节点之间的信任问题,而非数据管理与分析的问题。比如利用区块链能够使数据具备可追溯性,从而实现对例如农产品的溯源,但是人们只能在数据正式上链之前将该农产品的各流程的数据进行可追溯的存储,而不能对已经存储的信息进行数据挖掘。由于区块链本身缺乏数据处理的能力,区块链所存储的数据价值无法被挖掘,存储至区块链中的数据质量也无法保证。
技术实现思路
本专利技术旨在将上述两种技术相结合形成一种新的基于区块链智能合约与机器学习的数据处理方法。用于解决区块链缺乏数据处理能力的问题。为解决上述问题,本专利技术采用如下的技术方案:实现方法架构如图1所示:首先采集物联网原始数据,将采集到的数据标准化,其次建立机器学习模型,然后搭建区块链私有链,将标准化后的数据上传到区块链,把区块链中的标准化数据传入机器学习,将训练完成的模型存储到本地。将机器学习训练好的模型通过智能合约上传到区块链节点。最后调用智能合约对待处理数据进行处理,这里的待处理数据即测试用标准化数据,将处理完成的数据存入区块链。区块链智能合约的运行流程如图2所示,图2属于常规的运行流程,此处仅作为示例所用。该方法包括以下步骤:步骤1:通过传感器上传,智能设备收集等方式收集数据,将收集到的数据进行标准化处理,形成用于训练的训练数据与用于测试的测试数据并存入到本地节点,此时的数据为标准化数据,而且并没有存入区块链。步骤2:在本地节点上创建机器学习算法文件,对于机器学习算法可以根据实际情况选择,可以为线性回归算法,k近邻算法,小波分析算法等,用于对数据的预处理;步骤3:将步骤1中的用于训练的标准化数据存入区块链,实现本地数据与区块链数据的交互,从存储层确保数据不可篡改;步骤4:利用步骤3中的数据对步骤2中的算法进行训练,训练完成后得到模型系数,利用官方给出的保存模型方法将训练完成的模型系数存储到本地节点,以免重复训练所造成的计算资源浪费,此时的模型系数并没有存入区块链;步骤5:首先将机器学习算法表达式写入智能合约,然后将步骤4得到的模型系数通过调用智能合约存入区块链;步骤6:读取存储在本地的标准化测试数据,这里的数据的是待处理数据,调用步骤5中的嵌入了机器学习算法的智能合约对标准化测试数据进行预处理;步骤7:将处理后的数据存入区块链;区块链技术和机器学习技术协同来完成在节点上的数据预处理。本专利技术能够很好的将机器学习与区块链相结合,使用区块链存储,解决了传统的数据上传存储与处理方法依赖于中心化数据库的信任问题。数据存储数据处理放在区块链中完成,利用区块链的不可篡改特点很好的提高了数据存储准确安全性以及数据处理的安全性。在区块链的智能合约中加入机器学习算法,利用机器学习提高区块链的数据处理能力。最终实现区块链的数据智能化处理。有益效果本方法可行性高,可靠性强,解决了传统的数据上传存储与处理方法依赖于中心化数据库的信任问题,提高了区块链的数据挖掘能力。提高了数据存储准确安全性以及数据处理的安全性。最终实现区块链的数据智能化处理。附图说明图1为本专利技术架构图;图2为区块链智能合约的运行流程图;图3为系统流程图;图4为标准化数据格式图;图5为训练模型系数图。具体实施方式下面结合附图1-6和实例对本专利技术做进一步说明:本专利技术提供一种基于区块链智能合约与机器学习的数据预处理方法,系统流程图如图3所示,IOT数据收集系统收集到原始数据,将数据整理成标准化数据集,将数据集通过机器学习训练,训练完成的训练模型存入区块链节点,调用智能合约将部分测试用标准化数据集通过模型得到数据处理结果,并最终在区块链后台进行结果的展示。具体包括以下步骤:步骤1:通过传感器上传,智能设备收集等方式收集数据并存入到本地节点,将收集到的数据进行标准化处理,形成用于训练的训练数据与用于测试的测试数据,此时的数据为标准化数据如图4所示,而且并没有存入区块链;步骤2:在python上写机器学习算法,本专利技术使用线性回归模型为例;步骤2.1:根据实际需要创建合适的机器学习算法文件,目的是将本专利技术所用到的机器学习算法集成,以便对数据训练时的调用;步骤2.2:本专利技术使用线性回归模型为例,采用的方法是利用平方误差最小来找出线性回归模型系数的最佳估计w。利用最佳估计w与标准化数据之间的关系,将输入标准化测试数据存放入矩阵X中,回归系数存放在向量w中,处理结果通过表达式Y=XT*w算出,这里的w就是需要训练出来的线性回归模型系数;步骤3:将步骤1中的用于训练的标准化数据存入区块链,实现本地数据与区块链数据的交互,从存储层确保数据不可篡改;步骤4:利用步骤3中的数据对步骤2中的线性回归算法进行训练,得到训练完成的训练模型系数w,w结果如图5所示。利用sklearn官方给出的保存模型方法joblib.dump将训练好的模型系数w存储到本地节点,以免重复训练所造成的计算资源浪费,此时的模型系数并没有存入区块链;步骤5:编译部署智能合约;步骤5.1:利用sklearn官方给出的读取本地模型方法joblib.load读取本地文件得到上述机器学习线性回归算法训练出的完整模型系数w;步骤5.2:根据本方法所用的线性回归算法将算法中的各项因变量表达式编写入智能合约脚本,以便接收数据对其进行赋值以及计算操作;步骤5.3:由于需要将上述机器学习线性回归算法的模型系数存入区块链,本专利技术调用智能合约将模型系数存入区块链,在智能合约脚本上添加存放参数方法,实现对模型系数的存储;步骤5.4:利用truffle方法将完整的智能合约编译部署到区块链节点中,有效的智能合约通过P2P方式在区块链中扩散,区块链中各个节点都收到一份有效合约并保存在对应的区块中,使得各个节点都可安全有效地运用该智能合约;步骤6:调用智能合约;步骤6.1:本文档来自技高网
...

【技术保护点】
1.一种基于区块链智能合约与机器学习的数据预处理方法,其特征在于,包括以下步骤:步骤1:收集物联网数据,存储到本地节点之后将其标准化;步骤2:在本地节点上创建机器学习算法文件,用于对物联网数据的预处理;步骤3:将步骤1中的数据存入区块链;步骤4:利用步骤3中的数据对步骤2中的算法进行训练,得到模型系数,并存储到本地节点;步骤5:首先将机器学习算法表达式写入智能合约,然后将步骤4得到的模型系数通过调用智能合约存入区块链;步骤6:利用上链后的模型对待处理数据进行处理;步骤7:将处理后的数据存入区块链。

【技术特征摘要】
1.一种基于区块链智能合约与机器学习的数据预处理方法,其特征在于,包括以下步骤:步骤1:收集物联网数据,存储到本地节点之后将其标准化;步骤2:在本地节点上创建机器学习算法文件,用于对物联网数据的预处理;步骤3:将步骤1中的数据存入区块链;步骤4:利用步骤3中的数据对步骤2中的算法进行训练,得...

【专利技术属性】
技术研发人员:张延华王勇于非杨硕鹏杨兆鑫李萌吴文君
申请(专利权)人:北京工业大学
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1