第一节 大数据处理流程
首先是利用多种轻型数据库收集海量数据,对不同来源的数据进行预处理后,整合存储到大型数据库中,然后根据企业或个人目的和需求,运用合适的数据挖掘技术提取有益的知识,最后利用恰当的方式将结果展现给终端用户。
一 数据采集
大数据的采集是指在确定用户目标的基础上,对该范围内的所有结构化、半结构化、非结构化数据进行采集的过程。
(零) 数据来源
商业数据、互联网数据、传感器数据。
采集方法有以下三种
(一) 系统日志采集
1.作用:知道找谁解决问题,定位解决问题,了解客户需求进行个性化营销。
2.采集工具:
Scribe是Facebook开源的日志收集系统,能够从各种日志源上收集日志,存储到一个中央存储系统中,以便于进行集中统计分析和处理;
Flume是Cloudera的开源的日志系统,能够有效地收集汇总和移动大量的实时日志数据;
Chukwa属于Hadoop系列产品,是一个大型分布式系统监测数据的收集系统,提供了很多模块以支持Hadoop集群分析。
(二) 网络数据采集
网络数据采集是指利用互联网搜索引擎技术从网站抓取数据信息。
目前网络数据采集采用的技术基本上是利用垂直搜索引擎技术的网络爬虫或数据采集机器人、分词系统、任务与索引系统等技术进行综合运用而完成。——将非结构化数据从网页中抽取出来,将其存储为统一的本地数据文件,并以结构化的方式存储。
关键字:数据抓取技术:网络爬虫、数据采集机器人、分词系统、任务与索引系统。
对于网络流量的采集可以使用DPI或DFI等带宽管理技术进行处理。
网络爬虫软件:八爪鱼、Gooseeker
(三) 其他数据采集
对于保密性要求较高的数据,使用特定系统接口等相关方式采集数据。
二 数据预处理
为什么数据预处理?
因为数据通常是 不完整的(数据存在缺失值),含噪声的(与期望结果存在偏差),不一致的(数据的来源不同,编码不同)
且数据没有高质量,结果也低质量。
(一) 数据清洗
目的是填补缺失的数据、平滑噪声数据、删除冗余数据、纠正错误数据、清除异常数据,将原始的数据格式进行标准化。
(二) 数据集成
数据集成是将多个数据源中的数据结合起来并统一存储,建立数据仓库,以更好的解决数据的分布性和异构性问题。
(三) 数据变换
1.数据变换是采用线性或非线性的数学变换方法将多维数据压缩成较少维数的数据,消除它们在时间、空间、属性及精度等特征表现方面的差异。
2.变换方法
数据平滑(除去噪声数据),如Bin方法、聚类方法和回归方法。
合计处理
数据泛化处理(用更抽象的来表示数据,像java中的接口)
数据聚焦
数据规范化
(四) 数据归约
数据归约是指寻找依赖于发现目标数据的有用特征,以缩减数据规模,从而在尽可能保持数据原貌的前提下,最大限度地精简数据量。
三 数据存储
(一) 分布式文件系统
- 指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连,众多的节点组成一个文件系统网络。——每个节点可以分布在不同的地点,通过网络进行节点间的通信和数据传输。
谷歌的GFS文件系统,用于存储海量搜索数据,处理大文件。
HDFS是Hadoop分布式文件系统,具有高容错性的特点。
(二) 分布式数据库
利用网络将物理上分布的多个数据存储单元连接起来组成的逻辑数据库。
基本思想是将集中式数据库中的数据,分散存储到多个数据存储节点上,并通过网络节点连接起来,以获取更大的存储容量和更高的并发访问量。特性:
分布式数据库具有高扩展性、高并发性、高可用性以及更高的数据访问速度。
(三) 云存储
- 云存储是一种以数据存储管理为核心的云计算系统,它是指通过集群应用、网络技术和分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供具有数据存储和业务访问功能的一个系统。
- 特性: 既保证数据的安全性,又能节约存储空间。
四 数据挖掘
(一) 含义
指根据业务的需求和目的,运用合适的工具软件和数据挖掘方法对数据仓库中的数据信息进行处理,寻找出特定的数据规律或数据模式,得出有价值的信息和知识。
(二) 对象
数据挖掘的对象:根据信息存储格式,分为关系数据库、面向对象数据库、数据仓库、文本数据源、多媒体数据库、空间数据库、时态数据库、异质数据库以及Internet等;
(三) 工具
数据挖掘常用的工具软件:Intelligent Miner、SPSS、SAS、WEKA、MATLAB、R语言和 Python 等;
(四) 任务
数据挖掘的任务:关联分析、聚类分析、分类、回归、预测、序列和偏差分析。
五 数据解释
数据解释是一个面向用户的过程,它是指将大数据挖掘及分析结果在显示终端以友好、形象、易于理解的形式呈现给用户。
(一) 数据可视化
数据可视化技术主要是通过图形化方法进行清晰、有效的数据传递。
基本思想是使用单个图元元素表示数据库中的每一个数据项,大量的数据集组成数据图像,并以多维数据的形式表示数据的各个属性值。
可视化技术可以分为:几何技术、图标技术、图形技术、分层技术、混合技术。
数据可视化平台:Yonghong 、 魔镜
(二) 人机交互
人机交互技术是指通过系统输入、输出设备,以有效的方式实现人与系统之间信息交换的技术。
其中,系统可以是各类机器、计算机和软件。用户界面或人机界面是人机交互所依托的介质和对话接口,通常包括硬件和软件系统。
人机交互技术是一种双向的信息传递过程,既可以由用户向系统输入信息,也可以由系统向用户反馈信息。
第二节 大数据来源
要做大数据最关键的,企业需要找到自己的核心数据(价值)。
(一)核心数据
第一步,找到核心数据。
1、现状
1)历史交易数据
按照主数据的普遍规划来划分,金融企业一般拥有客户数据、交易数据、账户数据等。——通常可以用来促进精准营销、优化产品设计等。
2)用户行为数据
柜员服务系统、网上服务系统中产生的大量的业务行为数据——通常可以用来分析提高运营效率、促进精准营销。
3)系统运行日志
金融企业的应用系统会产生大量的数据库日志和应用程序日志。——分析应用系统效率,进而提高应用系统服务水平和客户满意度。
4)非结构化数据
通过语音呼叫中心、邮件中心、短信中心等客户接触渠道采集的数据,客户服务大厅视频监控系统的视频数据。
5)过程文档数据
金融企业通常都成立了大规模的研发中心和数据中心,按照标准的流程开发和部署应用系统。在这个过程中,将产生大量的需求分析、设计文档、测试报告、上线部署、问题记录等过程和技术文档。
2、问题
最大的问题在于来源多样、流动性差、共享性差
1)数据质量问题
由于某些应用系统开发历史较久,随着架构规划和科学技术的不断进步,导致接口数量多、数据不一致、数据质量差等问题。
2)内部管理壁垒
对于许多企业来说,信息流被各部门彼此分割,数据难以互通,大数据的共享和汇集变得非常困难,更难以实现大数据的深度应用。
3、解法方法
1)提升对数据资产质量的认识
金融企业要明确:各个渠道和部门拥有的是数据采集职责,为公司增加数据资产;数据资产的所有权与使用权,只能归公司所有。
2)明确数据相关的职责与归属
3)打通数据流转
(二)外围数据
第二步,找到外围数据。
1、外围数据
1)数据共享联盟
对于大数据来说,整合和共享的价值更大。
2)互联网数据
网络爬虫仍然是外部数据的有效获取途径,也可以直接和大型互联网平台进行数据交易。
未来各行业更好发展的一条捷径就是客户数据资源共享。
2、外围数据的基本准则
1)合法、符合道德规范
2)分析清除提供者的商业模式
3)在购买与交换之间权衡利弊
4)外部数据的目的是补充内部数据,转化为企业数据资产
3、常见问题
1)数据获得成本
数据不是免费的。金融企业数据是非常有价值的一类,数据提供商最为知道数据的价值,因此选择通过“购买加交换”的形式提供数据,金融企业需要评估可能付出的成本与代价。
2)数据价值发挥
让数据流转起来,尽量不形成数据壁垒,最大限度发挥数据的作用。
(三)常规渠道数据
第三步,找到常规渠道的数据。
1)政府数据开发存在内驱动力
政府通常掌握着最大量的、关键性的数据和公共信息资源,如果加大开发力度,将会极大的推动政府办事效率的提升和国家信息服务业的发展。
(四)社会化媒体数据
1、社会化媒体数据指人们在社会化媒体中产生或分享的各类信息,包括评论、视频、照片、地理位置、个人资料、社交关系等。
3、采集工具
第三节 大数据架构
一个企业要大力发展大数据应用首先需要解决两个问题:Hadoop两大核心技术是分布式存储和分布式处理。
Hadoop的入门认识
https://blog.csdn.net/gwd1154978352/article/details/81095592
(零)Hadoop生态圈组件的介绍
主要模块
(一)HDFS系统
该系统就是为了解决分布式存储。
1、概念
首先,HDFS系统是一个文件系统,用于存储文件,通过统一的命名空间——目录树来定位文件;
其次,HDFS系统是分布式的,由很多服务器联合起来实现其功能,集群中的服务器有各自的角色;
最后,HDFS系统在大数据中的应用是为各类分布式运算框架提供数据存储服务,将大文件、大批量文件,分布式存放在大量服务器上,以便于采取分而治之的方式对海量数据进行运算分析。
2、特性
(1)有高容错性的特点;
(2)整个系统部署在低廉的硬件上;
(3)提供高传输率来访问应用程序的数据;
(4)适合超大数据集的应用程序;
(5)流式数据访问。
3、结构
(1)HDFS中有三个重要的角色
- NameNode(命名结点)
相当于数据目录,负责管理文件系统名称空间和控制外部客户机的访问。NameNode决定是否将文件映射到DataNode上的复制块上。 - DataNode(数据结点)
数据存储在DataNode结点上。
响应来自HDFS客户机的读写请求,它们还响应来自NameNode的创建、删除和复制块的命令。 - Client
用于实现客户端文件存储的所有操作,包含文件的增删以及查询等。
4、HDFS文件的写入与读取
(1)写入流程
- 1)客户端通过Distributed FileSystem上的create()方法指明一个欲创建的文件的文件名,然后client通过RPC方式与NameNode通讯创建一个新文件映射关系;
- 2)客户端写数据: FSData OutputStream把写入的数据分成包(packet), 放入一个中间队列—数据队列(data queue)中去。OutputStream从数据队列中取数据,同时向Namenode申请一个新的block来存放它已经取得的数据。NameNode选择一系列合适的DataNode,构成一个管道线,然后OutputStream把数据写入到管道线中的第一个DataNode,再转到第二个DataNode……
- 3)确认队列中的包再得到管道线中所有DataNode的确认后移除确认队列;
- 4)所有文件写入完成后,关闭文件写入流。
- 1)打开文件流(open)
- 2)从NameNode读取文件块位置列表;
- 3)FSData InputStream打开read() 方法;
- 4)根据文件块与DataNode映射关系,从不同DataNode并发读取文件块;
- 5)从不同DataNode并发读取文件块;
- 6)文件读取完毕,关闭input流。
(二)MapReduce
MapReduce分为Map和Reduce。
(三)HBase
第四节 数据挖掘方法
(一)分类分析
1、决策树
决策树链接
https://www.jianshu.com/p/7e504801d42c
- 决策树概念
决策树是用于分类和预测的主要技术之一,是以实例为基础的归纳学习算法,着眼于从一组无次序、无规则的实例中推理出以决策树表示的分类规则。
目的是找出属性和类别间的关系,用它来预测将来未知类别的记录的类别。
表现形式类似于流程图的树结构。
采用自顶向下的递归方式,其中内部节点是属性或者属性组合,而叶节点代表样本所属的类或类分布。在决策树的内部节点进行属性的比较,并根据不同属性值判断从该节点向下的分支,在决策树的叶节点得到结论。
-
根节点、父节点、子节点和叶子节点:
子节点由父节点根据某一规则分裂而来,然后子节点作为新的父亲节点继续分裂,直至不能分裂为止。
根节点是没有父节点的节点,即初始分裂节点。
叶子节点是没有子节点的节点。
决策树如何构建:
步骤1:将所有的数据看成是一个节点,进入步骤2;
步骤2:从所有的数据特征中挑选一个数据特征对节点进行分割,进入步骤3;
步骤3:生成若干孩子节点,对每一个孩子节点进行判断,如果满足停止分裂的条件,进入步骤4;否则,进入步骤2;
步骤4:设置该节点是子节点,其输出的结果为该节点数量占比最大的类别。
(1)数据如何分割
离散型:按照属性值进行分裂,每个属性值对应一个分裂节点。
连续型:一般性的做法是对数据按照该属性进行排序,再将数据分成若干区间(如[0,10]、[10,20]、[20,30]……),一个区间对应一个节点,若数据的属性值落入某一区间则该数据就属于其对应的节点。
(2)如何选择分裂的属性
决策树采用贪婪思想进行分裂,即选择可以得到最优分裂结果的属性进行分裂。
大多数情况下分裂很难一步到位,我们希望每一次分裂之后子节点的数据尽量“纯”。
选择分裂属性是要找出能够使所有子节点数据最纯的属性,决策树使用信息增益或者信息增益率作为选择属性的依据。
① 信息增益
节点的复杂度可以用以下两种不同的计算方式:
a)熵
b)基尼值
② 信息增益率
(3)什么时候停止分裂
决策树节点停止分裂的一般性条件:
① 最小节点数
② 熵或者基尼值小于阀值
③ 决策树的深度达到指定的条件
④ 所有特征已经使用完毕,不能继续进行分裂
2、贝叶斯分类
贝叶斯神经网络
https://www.jianshu.com/p/58a7b6bc25f7
贝叶斯(Bayes)分类算法是利用贝叶斯定理,来预测类成员的概率。
主要利用贝叶斯定理来预测一个未知类别的样本属于各个类别的可能性,选择其中可能性最大的一个类别作为该样本的最终类别。
- 朴素贝叶斯分类算法
朴素贝叶斯分类,假设每个属性之间都是相互独立的,并且每个属性对分类问题产生的影响都是一样的,即一个属性值对给定类的影响独立于其他属性的值。
-
举例
3、k-近邻分类法
k近邻
https://www.jianshu.com/p/5bb229d79ef9
是对存储带有标记的样本集,给一个没有标记的样本,用样本集中k个与之相近的样本对其进行即时分类。k-近邻就是找出k个相似的样本来建立目标函数逼近。
-
基本思路
寻找距离最近的邻居
k-近邻分类中对新数据点进行分类的方法是计算它与其他所有数据点间的距离,并以距离最近的点所在的分类作为新数据点的类别。
- 数据分类
数据分类的方法很简单,将计算获得的距离值进行排序。距离最近的数据点所在的类别就是新增数据的分类。
(二)回归分析
1、概念
是指对具有相关关系的两个变量或多个变量建立合适的数学模型,以近似地表示变量之间平均变化关系的一种统计方法。回归分析与分类分析类似,但回归分析的目的不是寻找描述类的模式,而是寻找变量间关系模式。
-
例子
https://blog.csdn.net/qq_41720475/article/details/105256464
4、logit回归
主要用途有:
1)寻找危险因素
2)预测
3)判别
逻辑回归1
https://blog.csdn.net/weixin_39445556/article/details/83930186
逻辑回归2
https://blog.csdn.net/liulina603/article/details/78676723
逻辑回归3
https://www.jiqizhixin.com/articles/2019-01-22-8
回归分析
https://www.jianshu.com/p/b7f0727e32b4
(三)其他方法
1、聚类分析(掌握)
https://www.jianshu.com/p/f5dafb4b18b9
1)概念:指将物理或抽象对象的集合分组成为由类似的对象组成的多个类的分析过程。在分类的过程中,不必事先给出一个分类的标准,聚类分析能够从样本数据出发,自动进行分类。
2)特点:同一类中的对象有很大的相似性,而不同类间的对象有很大的相异性。
3)应用4)聚类方法
- ① 快速聚类
要求事先确定分类,而且你还需要事先确定点,也就是聚类种子。然后,根据其他点离种子的远近把所有点进行分类。再然后就是将这几类的中心(均值)作为新的基石,再分类。如此迭代。
基本步骤
在链接里面有k近邻聚类就是快速聚类
- ② 系统聚类(链接里面的层次聚类)
基本思想:先将每个样品各看成一类,然后规定类与类之间的距离,选择距离最小的一对合并成新的一类,计算新类与其他类之间的距离,再将距离最近的两类合并,这样每次减少一类,直至所有的样品合为一类为止。
基本步骤
2、关联规则
关联分析1
https://www.jianshu.com/p/469dff109fae
关联分析2
https://blog.csdn.net/sealyao/article/details/6460578
1)定义
根据一个事务中某些项的出现可导出另一些项在同一事务中也出现,即隐藏在数据间的关联或相互关系。
2)关联规则的挖掘阶段
第一阶段:从海量原始数据中找出所有的高频项目组;
第二阶段:从这些高频项目组产生关联规则。
关联规则挖掘技术已经被广泛应用于金融行业:市场营销、营销风险评估、诈骗预测等。
3)Apriori算法:使用候选项集找频繁项集(掌握)
① 频繁项集:所有支持度大于最小支持度的项集。
② 定理:
a. 如果一个项集是频繁项集,则它的所有子集都是频繁项集
b. 如果一个集合不是频繁项集,则它的所有父集(超集)都不是频繁项集
③ 目标
发现频繁项集:发现满足最小支持度的所有项集
发现关联规则:从频繁项集中提取所有高置信度的规则
Apriori算法属于候选消除算法,是一个生成候选集、消除不满足条件的候选集、并不断循环直到不再产生候选集的过程。
④ 例子
上图图演示了Apriori算法的过程,最后生成三级频繁项集后,没有更高一级的候选项集,因此整个算法结束,{牛奶,面包,尿布}是最大频繁子集。
https://blog.csdn.net/baimafujinji/article/details/53456931
4)基于划分的算法
这个算法先把数据库从逻辑上分成几个互不相交的块,每次单独考虑一个分块并对它生成所有的频集,然后把产生的频集合并,用来生成所有可能的频集,最后计算这些项集的支持度。
5)FP-Tree算法
在FP-growth算法中,通过两次扫描事务数据库,把每个事务所包含的频繁项目按其支持度降序压缩存储到FP-tree中。在以后发现频繁模式的过程中,仅在FP-Tree中进行查找即可,并通过递归调用FP-growth的方法来直接产生频繁模式。
可以在上面的链接中了解。
3、因子分析
用少数几个因子去描述许多指标或因素之间的联系,即将相关比较密切的几个变量归在同一类中,每一类变量就成为一个因子,以较少的几个因子反映原资料的大部分信息。
4、主成分分析
10.3主成分分析
https://www.jianshu.com/p/5bb229d79ef9
Var(Fi)越大,表示Fi包含的信息越多。因此在所有的线性组合中选取的F1应该是方差最大的,故称F1为第一主成分。如果第一主成分不足以代表原来P个指标的信息,再考虑选取F2即选第二个线性组合,为了有效地反映原来信息,F1已有的信息就不需要再出现在F2中,用数学语言表达就是要求Cov(F1, F2)=0,则称F2为第二主成分,依此类推可以构造出第三、第四,……,第P个主成分。
5、神经网络方法
神经网络
https://www.jianshu.com/p/704151935e26
6、Web数据挖掘
7、序列分析
序列分析是对序列数据进行分析发现蕴藏其中的模式和规律。序列数据和时间序列数据都是连续的观测值,观测值之间相互依赖。它们之间的差别在于序列数据包含离散的状态,而时间序列是连续的数值。
8、偏差分析
数据库中一般会存在着很多异常数据,找出这些异常数据非常重要,偏差分析可以解决此类问题。偏差分析是用于检测数据现状、历史记录与标准之间的显著变化和偏离。如观测结果与期望的偏离、分类中的反常实例、模式的例外等。偏差检验的基本方法就是寻找观察结果与参照之间的差别。例如信用卡欺诈案行为检测、网络入侵检测、劣质产品分析等。
9、预测
大数据预测是指运用历史数据和预测模型去预测未来某件事情的概率。精度和不确定性是预测的关注点,通常用预测方差进行衡量。预测技术是以表示一系列时间值的数列作为输入,接下来运用计算机学习和统计技术对数据进行周期性分析、趋势分析和噪声分析,进而估算这些序列未来的值。例如,可以通过挖掘企业的历史销售数据预测该企业未来一年的销售额。