1概述
Hadoop 可以使海量数据的处理变得异常的简单。
目前为止,Hadoop 已经涉及了全球一半以上的数据处理工作,这其中涉及了通信、电子商务、医疗数据、互
联网等等,是当下最为实用的数据处理平台。
数据清洗是一个重要步骤,在获得有价值的医疗大数据方面也是非常必要的。医学数据非常庞大杂乱,是普通数据分析软件短期之内不能清洗完成的。由于数据录入的错误、数据的不完整,或是在数据仓库从多数据源中抽取数据时,因为各数据源数据表的构造有些差异,数据迁移时都会产生一些错误或冗余信息。假如不对这些脏数据进行清洗,那么这些数据就不一定会有价值。因此,消除重复记录、错误记录和填充不完整数据就变得很重要。
2大数据清洗的关键技术
设计主要是对不符合规则的医学数据处理,并结合Hadoop 这个大数据平台来实现数据的清洗。本实验数据清洗流程分别对医学重复数据、不完整数据、错误数据进行清洗并建立相对应的清洗模型方便同种模型
的数据在预处理平台中进行有效的清洗,利用了Kettle 对重复数据进行清洗、K 均值对不完整数据进行填充、箱型图检测异常值数据,并用Python 程序过滤无价值数据。
医学数据清洗是在对数据分析的过程中的必须步骤,从数据的源头出发,结合回溯等思想来处理一些不合适的数据,例如:重复数据、缺失数据、错误数据。
数据清洗用到的关键技术有:2.1Python 语言实现数据去重
Python 是一种面向对象、解释型的计算机程序设计
语言,具有丰富和强大的类库。实验中通过对医学中错误的数据以及不完整的数据按利用Python 中的pandas 库进行一定的规则进行数据的处理,最终得到符合本实验要求的数据。
基金项目:河北省高等学校科学技术研究项目(ZD2018241);河北省高等学校科学技术研究青年基金项目(QN2018155);河北北方学院2019年度大学生创新创业训练项目(xj201910)。
作者简介:李杨(1998-),女,本科,研究方向:计算机科学与技术;刘洋(1987-),女,通讯作者,硕士,讲师,研究方向:医学人工智能。
基于Hadoop 医学数据平台的数据清洗
李杨,刘洋*,贺瑞心,张贵轩
(河北北方学院,河北张家口075000)
摘
要:随着医院信息化的不断深入和普及,病人的电子病历、药物信息、诊治记录和病人的个人信息等,存在着重复、不完整或错误的数据,无法在数据库中清晰明了地获取每个病人的信息,因此医学数据清洗应运而生。实现一个基于Kettle 工具和Python 语言的数据清洗平台。平台使用Kettle 工具和Python 语言对简单的医学重复数据、医学错误数据及医学不完整数据按照设计的清洗流程以及清洗规则进行清洗,之后通过Kettle 转换存储到Hadoop 平台的Hive 数据仓库中,从而得到有价值的医疗数据并
应用到医疗大数据分析和挖掘中。
关键词:Hadoop 平台;数据清洗;Hive 数据仓库
图1总体流程设计
医学重复
数据
医学不完整数据
医学错误数据JDBC
规则库检索
是否符合定义的业务规则
符合规则数据/JDBC
规则库
通用的业务规则
特定业务规则
不符合规则
数据
Kettle
Python 程序
干净的医
学数据
图5
数据聚类后可视化
图4原始数据可视化2.2Kettle 数据导入
Kettle 是一款开源的ETL 工具,它允许来自不同数
据库的数据通过提供一个图形化的用户环境来描述想做
什么,而不是想怎么做。实验中Kettle 用来获取不同数据源的数据,将数据进行整合处理,连接两个不同的数据库,建立两个数据库的关系,最终将处理好的数据以想要的格式展示。2.3K-Means 聚类可视化
K-Means 聚类算法是一种无监督的学习算法,是将
整个要处理的数据集样本划分为若干个不相交的子集,聚类的时候,不需要知道每个样本的类别和类别的个数,只需要把相似的聚成一个“簇”。在实验中K-Means 主要用来显示异常的数据信息,使数据能供清晰明了地显示在图中。
3数据清洗实现
实验的创新点在于使用ETL 工具Kettle 与Python 语
言结合进行数据处理。Kettle 这个ETL 工具集,它允许管理来自不同数据库的数据,通过Kettle 可以形成各种数据解决方案,并将数据提交到Hadoop 平台下存储到HDFS 中,保证了数据的稳定性与可靠性,而且Hadoop 能够在节点之间动态移动,保证了各节点的动态平衡。并且Hadoop 大数据平台迎合热门大数据技术,应用性强,界面友好,操作简便,设计合理,有很大的理论和研究价值。3.1数据处理
医学数据主要的问题是:重复数据、不完整数据、
错误数据,对这些不同数据问题的分析也不尽相同。3.1.1重复数据
重复数据顾名思义就是从海量的数据中搜索比较那
两行或者哪几行数据每列都相同,之后标记重复的行,列出重复的次数,最后一步就是根据条件删除掉重复行,避免出现冗余。3.1.2缺失数据
缺失数据一般是工作人员的疏忽,也可能是数据采
集器故障,或者是有些特征本来就不存在的,数据的缺失可以分为完全随机缺失、随机缺失、非随机缺失。对于不是完全随机缺失的数据不能直接删除,要经过一定的处理:可以根据数据的重要性删除数据、数据填充和不处理数据。
一个医学数据有很多空值(图2),只用简单粗暴的方法去删除记录,就会损失很多重要数据,可能直接导
致数据发生偏差,因此要根据某种规则使之填充完整。
数据缺失值的填充主要用到的思想是替换缺失值、拟合缺失值,替换缺失值用这一列的平均数来填充,拟合缺失值主要用到的是建模,用其他变量做模型的输入对缺失值的预测,如:回归预测、多重插值、随机森林。如图3所示。
3.1.3异常数据
异常数据是指一些不符合数据逻辑,或者是让因为
误差导致的数据偏差。通常会借助一些图形法和建模来识别异常值,主要是用到箱线图、K 均值聚类。箱线图的分散情况筛选出异常的数据,用于连续型的变量,例如人每天的血压值、每个人的每分钟心跳次数,对于一些离散型的数据不太实用。K 均值除了可以作分类和预测,也可以用于识别异常值,K 均值就是根据个样本点与簇中心点之间的距离,直到簇中心的变化不再发生大幅度的变动,形成k 个簇。
从图4中随机挑选两个点作为最开始的簇中心,根据计算把样本点与两个五角星之间的距离计算出来,而后依照中心划分出两个部分,分别对样本计算均值,到每部分新的均值,再次根据簇样本点与各五角星之间的距离得到新的簇内样本点,循环往复,得到最终的聚类(图5)。
3.2数据转换
数据转换是将数据从一种结构转换成另外一种结构
的过程。由于数据的来源的多样话,需要把所有的数据都导入到一个相同的数据库中存储,Kettle 实现了数据的导入、转换、输出,
把不同的数据源都转换到相同的图2
原始数据图3填充后数据
(下转第176页)
位置存储,开发效率要比Python 中的Pandas 库更快。把Python 数据处理以后的数据导出成一个表格文件,之后再kettle 建立一个转换关系,选择要导入的字段,最后把想要的输出查询整合到一起。
现有近1000条记录的药物入库信息的文本文件,大量的数据以及数据格式不完整而且由于数据源的问题有些重复的数据,还有一些数据是医生或病人不想得到的,需要通过数据清洗将复杂的数据处理成医生或病人想要得到的数据;先利用Kettle 简单地清洗这些数据;如图6所示是文本文件复杂重复数据。
从本段药品信息中可以看出数据的不规则以及存在ID 相同的记录,而且病人或医生并不想得到这些所有的字段,如病人需要得到ID、药品制剂通用名、制剂剂型、还有目品种名称4个字段;而医生只要得到ID、药品制剂通用名、还有入库日期和出库日期4个字段,根据不同的需求得到人们想要的数据。Kettle 首先使用的是Spoon 库对文本文件输入扫描,之后通过ID 进行数据的去重,选取想要的合适字段,最后以文本的形式输出。
3.3Hadoop 数据存储
根据上面两步,得到了干净的数据,最后就是把所有
的数据转换成正确的格式导入到Hadoop 这个大数据平台上存储,可以保证数据的稳定性存储。通过Kettle 把数据将数据传输到Hadoop 平台上,进一步使用Map 函数实现数据的分包和数据的压缩,reduce 函数实现数据的存储。
以上将数据存入到Hadoop 的平台上的数据清洗,实现了把杂乱的数据存入到Hive 中,为用户提供了一个更方便的清洗方法。
4结语
根据医学行业的数据不断增长,利用Hadoop 平台可
以实现把清洗的数据保存到Hive 中。在此操作过程中,用Python 实现数据去重、数据缺失值判断及其处理填充和错误数据,再由Ketlle 实现了数据的转换传递,然后根据MapReduce 进行计算,存入到HDFS 中,最后再把数据传到Hive,完成数据的长期存储。通过大数据清洗
平台可以使数据更干净的存储,增加了内容的可信度。
参考文献
[1]魏迪.基于Hadoop 的海量业务数据分析平台的设
计与实现[D].北京邮电大学,2014.[2]张宁宁.基于Hadoop 的工业大数据清洗方法研究[D].齐鲁工业大学,2018.
[3]靳丹,张磊,王洪军,王宝会.基于Hadoop 的大数
据清洗框架设计与应用[J].网络新媒体技术,
2015,4(05):
33-38.
图6药物信息
3.4加密技术的应用
从计算机网络安全加密技术的内容可以看出,其主
要是加密重要的数据信息,并处理其可读性。通过数据加密技术,能防治因用户信息泄露而给用户带来的损失,能较好提升信息资源的安全性和可靠性。当前市面上较为常见加密技术主要有两类:数据储存加密和数据传输加密。用户在选择加密方式时,可以根据自身实际情况,选择最契合的加密方式。
4结语
随着计算机网络技术的发展,用户在进行网络活动
时所面临的网络环境越来越复杂,让用户的资源信息面临着被破坏和泄露的风险。因此,用户在进行各类网络活动时,应提升自身的网络安全意识,合理为电脑系统配置检测技术、杀毒软件、防护墙、加密技术等,提升电脑运行的安全性和稳定性,让其能有更良好的网络活动体验。
参考文献
[1]文怡,陈希.计算机网络技术的应用及安全防御关键
研究[J].科技创新与应用,2019,(35):153-154.[2]贾燕.防火墙技术在计算机网络安全中的应用[J].电子技术与软件工程,2019,(23):193-194.[3]张晓阳,张钰坤.计算机网络安全技术在网络安全
python是做什么的通俗易懂的维护中的应用[J].通讯世界,2019,26(11):
26-27.
[4]张波,丁炳文,谭凯武.虚拟专用网络技术在计算
机网络信息安全中的应用[J].信息与电脑(理论
版),2019,31(21):197-198+201.
[5]赵晓松.计算机网络信息安全中防火墙技术的有效
运用分析[J].计算机产品与流通,2019,(7).
(上接第122页)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论