大数据的分析技术之tensorflow的应用
2018-07-28丘仕能
丘仕能
摘要:随着大数据时代的发展,数据分析成为整个大数据处理流程的核心,就是从大数据中获得各种信息,这就包括了数据可视化分析、数据预测、数据处理、数据存储等。而tensorflow在数据分析方面有一定的便捷性。该文对大数据的特征进行了分析,并由此为基础介绍当前数据分析的一些技术和工具,并介绍tensorflow关于数据处理与数据可视化方面的运用。
关键词:大数据;数据分析;tensorflow;可视化
中图分类号:TP311 文献标志码:A 文章编号:1009-3044(2018)15-0022-01
1大数据的定义与特征
自2011年IDC给出大数据定义以来,随着众多专家对大数据的研究与分析,现在较为被人接受的定义如下,大数据是指使用传统和常用的软件技术和工具在一定时间内无法完成获取、管理和处理的数据集;而麦肯锡全球研究所给出的定义是,大数据指的是在大小范围超过常用数据库工具的获取、存储、管理和分析能力的数据集。
相较于传统处理的小数据,大数据具有以下“5个V的特点:
1)规模大(Volume):数据容量从20世纪80年代末的GB、TB的级别上升到20世纪90年代的PB、EB级别的数据单位。
2)类型多(Variety):即大数据不仅包括传统的关系型、结构化数据,还包括以网页、视频、音频、文档等形式存在的未加工、半结构化和非结构化的数据。
3)时效性(Velocity):很多大数据需要在一定的时间限度内得到及时处理,满足一定的响应性能要求。
4)准确性(Veracity):大数据中的内容是与真实世界中的发生息息相关的,研究大数据就是从庞大的网络数据中提取出能够解释和预测现实事件的过程,处理的结果要保证一定的准确性。
5)价值性(Value):是通过数据分析后获取得到有价值的数据,并对大数据进行分析挖掘,合理运用数据,以低成本创造高价值。
2 大数据分析的技术与工具
大数据分析是将数据用于特定的模型中回答特定的问题或发现新的见解,特定的模型是指具有描述性、诊断性、预测性与规定性的模型,通过在某平台上运行算法后发现大数据中潜在价值的过程。
大数据分析的第一步是数据的“抽取——转换——加载”,典型的大数据分析方法有以下三种,一是可视化数据分析,二是数据挖掘算法,三是预测性分析。大数据分析时是将数据的不同来源、类型关系的区别、平面数据等文件提取出来,然后通过人工或者机器进行清洁、转换、集成,最后加载到数据仓库或者数据集市中,成为联机分析处理、数据挖掘的基础。由于数据来源不同且格式不匹配,因此,数据清洁变得尤为重要。目前,数据清洁工作基本都是数据工程师通过半自动化的工具进行的人工的简单处理。因为数据源的种类与数量同商业的情报任务时刻紧密关联,从而这就涉及实时数据分析了,而这种数据分析这一般采用“复杂事件处理”方法,是指通过将系统数据分为不同类型的事件,根据事件间的关系建立不同的序列库,利用过滤、关联等技术,最终产生高级事件和商业流程。另一个大数据分析的重要因素是“关键绩效指标”,通过建立关联绩效指标,“成功”的标准成为企业及其各部门制定优先事项标准的界定。大数据分析需要创新,故而需要大量的试验;虽然大数据分析有它独特的优势,但也有很大的局限性,因为只要数据足够大,数据挖掘总能发现一些关系,因此需要很多专家来控制大数据分析的范围,以及分析方向。
目前并没有适合所有场所的大数据分析软件和工具。由于大数据分析工具通常非常复杂、程序密集,所以再运用时需要多种技能才能有效应用。而目前的分析工具有:电子表格、在线分析处理、统计或定量算法、规则引擎、数据挖掘工具、文本挖掘工具、模拟工具、遗传算法、信息提取、群智能;但按分析流程划分有:查询和报告软件、联机分析软件、数据挖掘软件、可视化软件等。當前大数据处理确定标准的软件系统有可能是目前比较流行的Hadoop。这些流行的系统一般具备较好特性,如具有磁性、灵活性与深刻性等特点。
3 tensorflow的数据处理
Tensorflow是一个采用数据流图,用于数值己算的开源软件库。节点(Nodes)表示数学操作,线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。任何研究开发人员都可以在 Apache2.0开源协议下使用tensorflow,而Tensorflow具备以下特征:高度的灵活性,需要将你的计算表示为一个数据流,也可以通过自己书写代码来丰富底层操作;真正可移植性发,tensorflow可以在CPU与GPU上运行,从而可以使你的模型在多个CPU上规模化运算;性能最优化,Tensorflow 给予了线程、队列、异步操作等以最佳的支持,可以将你手边硬件的计算潜能全部发挥出来;多语言支持,支持python/C++程序构建页面,如果业务使用其他编程也不用担心,使用跨语言的gRPC或者HTTP服务也可以访问使用TensorFlow训练好的智能模型。
大数据架构中采用的是hadoop系统以及Kerberos安全认证,而分布式的Tensorflow是常用与机器学习的架构,hadoop解决了大数据的存储问题,而分布式Tensorflow解决了大数据训练以及数据可视化分析的问题。
TensorFlow的数据供给机制允许你在TensorFlow运算图中将数据注入到任一张量中。因此,python运算可以把数据直接设置到TensorFlow图中。Tensorflow处理大数据一般使用其提供的batch gennerator,然后把数据送入队列中用string_input_producer来生成一个先入先出的队列,从而使文件阅读器读取数据,根据阅读器,选择相应阅读器read方法输出一个key来表示输入的文件和其中的记录,使用tf.train.batch或者tf.train.shuffle_bath就可以生成你定义的batch size的数据了,需要用Coordinator()和start_queue_runer()来监控队列的状态。
Tensorflow的数据可视化分析运用的是TensorBoard,主要是方便TensorFlow程序的理解、调试与优化,并展示其图像,绘制生成的定量指标图及附加数据。
在生成TensorBoard时主要是通过创建节点围绕数据生成图像。主要通过构建函数,创建一个FileWrite对象和一个事件文件,运用tf.train.SummaryWriter生成可视化的文件,TensorBoard会在事件文件中选择相应的图,并且通过图形的方式展示出来.
参考文献:
[1] 顾荣.大数据处理技术与系统研究[D].南京:南京大学,2016.
[2] 高志鹏,牛琨,刘杰.面向大数据的分析技术[J].北京邮电大学校报,2015(7).
[3] 张靖雨,网潇枫,周楠.基于大数据分析技术的数据安全与机器学习[J].数据库技术,2018(03).
[4] 王兆华.基于大数据分析下的机器学习模型设计方法[J].电脑知识与技术,2018(01).
[5] 李成录.大数据背景下机器学习算法的综述[J].信息技术与材料,2018(03).