大数据导论-第5章-大数据分析_第1页
大数据导论-第5章-大数据分析_第2页
大数据导论-第5章-大数据分析_第3页
大数据导论-第5章-大数据分析_第4页
大数据导论-第5章-大数据分析_第5页
已阅读5页,还剩103页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

大数据技术导论第五章大数据分析5.1

大数据分析概述5.2业务理解5.3数据认知5.4特征工程5.5数据建模5.6通用计算引擎Spark5.7数据分析引擎Hive5.1大数据分析概述

从前面几章的介绍,我们已经知道大数据不是简简单单的数据体量大,而是这些数据的价值巨大。大数据的价值被海量数据所掩盖,不易获取,这就使得大数据分析在大数据技术领域显得尤为重要,只有通过分析才能获取有价值的信息。所以大数据分析方法可以说是决定最终信息是否有价值的决定性因素。本章首先介绍大数据分析的特点、类型、流程等,然后再分别介绍大数据分析的各种方法。5.1大数据分析概述

数据分析是指用适当的统计分析方法对收集来的大量数据进行分析,将它们加以汇总和理解。数据分析的目的就是为了提取有用信息和形成决策依据。大数据分析就是用分布式策略对数据进行分析,相对于小数据分析,大数据分析的处理理念有了3个明显的转变:(1)数据采用全体而不是抽样的;(2)分析要的是效率而不是绝对精度;(3)分析的结果要的是相关性而不是因果性。5.1大数据分析概述

(1)数据分析是为了检验假设的问题,需要提供必要的数据验证,在数据分析中,分析模型构建完成后,需要利用测试数据验证模型的准确性。(2)数据分析是为了找到出现问题的深层次原因,比如分析产品销售情况的数据,需要找到销售数据的变动,如促销、节日、卖场宣传、卖场环境、消费心理、价格、对手等。针对可能的原因实施追踪分析。(3)不能为了数据分析而去做数据分析。没有明确的问题或者目标,直接去做数据分析往往得不到好的结果。而且需求不同,分析思路和分析方法会有很大的不同。5.1.1数据分析原则5.1大数据分析概述

(1)大数据分析应是可视化分析(2)大数据分析的理论核心是数据挖掘算法(3)大数据分析最重要的应用领域之一就是预测性分析(4)大数据分析广泛应用于网络数据挖掘(5)大数据分析离不开数据质量和数据管理5.1.2大数据分析特点5.1大数据分析概述5.1.3大数据分析流程5.1大数据分析概述5.1.4数据分析师基本技能和素质5.1大数据分析概述5.1.5大数据分析难点(1)可扩展性(2)可用性(3)领域知识的结合(4)结果的检验第五章大数据分析5.2

业务理解5.1大数据分析概述5.3数据认知5.4特征工程5.5数据建模5.6通用计算引擎Spark5.7数据分析引擎Hive5.2.1粗粒度的全局了解5.2业务理解接触一个全新的业务系统,首先要搞清楚这个业务系统主要是支撑什么样的业务?而对于支撑的业务本身又有两个核心内容,即核心的业务流程是如何的?核心的业务对象模型是如何的?在这个了解清楚后可以继续了解这个业务系统大致会有哪些核心的业务功能模块,业务模块之间的相互关系是如何的?已经如何衔接的。

有时候了解到这个层面可能还不够,你还需要了解这个业务系统可能是支撑端到端业务流程或共享业务数据的一部分,那么还需要了解到这个业务系统或支撑的业务在端到端流程中所处的位置,该业务系统和上游业务和下游业务的关系,相互间的协同和接口。

业务系统支撑了什么样的业务,存储了哪些核心业务对象和数据,这是对一个业务系统最基础的全局理解。

5.2.2动态了解-流程模型5.2业务理解在对业务系统有了一个全局的理解后,需要开始进一步考虑流程模型方面的内容。注意在这里指的流程模型不是指工作流或人工审批流模型,而是指业务流程模型。或者说了解业务系统本身在分析设计中所涉及到的业务建模方面的内容。

业务建模或业务流程模型的了解需要解决的问题是,一个业务系统为何会存在这些业务模块,这些业务模块之间是如何进行协同来支撑业务流程的。任何业务模块都会有输入和输出,了解清楚业务模块的输入输出后就能够比较清楚业务模块之间是如何串接和集成来支撑上层的核心业务的。5.2.2动态了解-流程模型5.2业务理解如果一个业务系统按SOA思想来建设,你可能会看到有哪些上层的核心业务模块,核心的领域服务层和底层的数据模型层,核心的业务模块本身是如何调用核心领域服务来进行协同和衔接的。只有清楚了业务流程才可能理解清楚业务模块之间的协同和集成关系,否则你看到的是孤立的业务模块,业务模块和业务流程之间出现断点而无法真正想清楚业务模块间如何协同来支撑业务的。

如果一个业务系统本身是流程型的业务系统,这些流程又大量是审批流为主,那么即使审批流定义再复杂,整个业务系统本身也是简单的,因为不存在上面所说的大量业务模块间协同情况。5.2.3静态了解-数据模型5.2业务理解对于一个业务系统的复杂往往体现在两个方面,一个方面是本身业务模块间的协同和交互复杂,一个是底层的数据模型和关系复杂。在解决了第一个层面的动态分析问题后,就需要开始考虑第二个层面的数据模型了解层面的问题。

任何业务流程,模块间动态的协同最终都将持久化到数据库中,成为数据库中的数据表和数据表之间的关联依赖关系,映射关系。业务系统前面谈到过或者是以流程为中心的业务系统,或者是以数据为中心的业务系统,对于数据为核心的业务系统必须理解底层的数据模型。这种数据模型的理解首先是要理解元模型结构,这种结构不是简单的单个数据对象,而是多个数据对象之间的关联关系,映射关系,层次关系等。正是由于数据之间有这些关系,而形成了一个复杂的数据网络。5.2.3静态了解-数据模型5.2业务理解对于数据模型的理解基本可以分为如下几种,一种是单对象的结构,包括主从,层次等各种结构;然后才是对象和对象之间的关联依赖结构,如一对多,多对多结构等。对于较为复杂的业务系统,你可能还会看到为了保证底层数据模型的可扩展性和灵活性,往往在数据模型层会根据面向对象的思路做进一步的抽象,那么在这种情况下还必须等将OO的对象模型和面向结构的数据库模型共同来参考理解,以分析和了解清楚最终数据存储的方式,数据存储后最终呈现的方式。5.2.4动静结合-关键业务分析5.2业务理解对于新切入一个新的业务系统,如果能够理解到这一步,基本就可以对一个业务系统有一个比较全面的理解和认识。首先是了解业务流程和模块间协同,然后是了解数据模型和数据间关系,最后则是真正的根据核心业务来进一步理解在流程协同过程中最终数据的落地存储。由动态的业务流程驱动的最终静态数据的存储落地和关系的建立。只有这样流程和数据的分析最终才会融合为一个整体。5.2.4动静结合-关键业务分析5.2业务理解对于关键业务的分析你会看到,对于这些关键业务需要理解清楚究竟涉及到哪些模块的协同,在模块的协同过程中最终会产生哪些核心的数据,或者说会更改哪些核心数据的状态或数据间的关系。真正你需要关注的往往不是单个数据对象中某些数据熟悉的变更和修改,而更多的是关注核心业务流程驱动下,数据对象状态的修改,数据对象间关联关系的修改,数据间映射模型的调整等。

对于一个完整的业务系统,按道理只要有基本的数据对象维护功能即可,但是要真正能够支撑业务,你会看到数据对象中的关键属性,关键依赖关系的变更,最终都是由上层的业务模块和流程来支撑的,那么你就必须要能够真正的理解所有的核心业务流程最终对底层数据模型造成的影响。5.2.5数据业务化5.2业务理解(1)数据业务定义在一个真实的企业环境中,数据并不是人们关心的根本。人们关心的根本所在是:业务。因为,业务企业之所以存在的根本原因。如果一个企业核心业务的发展,不需要数据助力,那就没人关心数据分析。事实上,这样的企业非常多,甚至是大多数。一个企业之所以关心数据分析建模,根本原因一定是因为:数据可以助力核心业务发展。那么,在这个前提下,一个数据科学家来到一个企业,没有人会告诉你该分析什么数据,更不会有人告诉你应该如何分析。相反,老板会告诉你他关心什么业务问题。接下来需要你来把这个业务问题定义称为一个数据可分析问题。如果不能把业务问题定义成为数据可分析问题,那么数据就无法助力。如果可以,接下来就是数据分析与建模问题。5.2.5数据业务化5.2业务理解跟大家分享一个有趣的故事。一个做货车车联网的朋友提到一个问题,说他们有一个物流客户非常认可他们的数据价值。希望通过货车车联网数据帮助手下货车司机改进驾驶行为。这是一个常典型的业务问题。但是,这个业务问题应该如何被定义称为一个数据可分析问题呢?首当其冲的挑战是:如何定义一个货车司机的驾驶行为叫做“好”,什么叫做“坏”?如果没有一个清晰定义的标准,后续的数据分析就会缺乏一个业务认可的因变量Y。在缺乏因变量Y的前提下做的任何数据分析,都不可避免地需要太多主观介入,进而很容易产生纠纷。这么复杂的一个过程,没有唯一正确答案,恐怕是任何数据建模比赛都无法模拟的。5.2.5数据业务化5.2业务理解(3)数据业务实施数据分析与建模完成了。接下来,需要把这些成果转化成为一个在商业环境中可以被实施的产品。这一步非常艰难。各种数据科学比赛经常喜欢考虑(例如)个性化推荐类型的预测问题。此类问题的业务实施方案是清晰定义的,经验积累非常充足。简单总结一下。数据业务化的核心是让数据产生价值。为此,需要三个环节:(1)将业务问题定义成为数据可分析问题;(2)对数据可分析问题作分析建模;(3)对最后的分析结果和模型进行业务实施。以Kaggle为代表的一大类优秀的数据建模比赛能够对(2)作出很大的帮助。但是,对(1)+(3)帮助甚微,最具挑战,最有价值的恰恰是(1)+(3)。第五章大数据分析5.3

数据认知5.2业务理解5.1大数据分析概述5.4特征工程5.5数据建模5.6通用计算引擎Spark5.7数据分析引擎Hive5.3.1数据预处理5.3数据认知从不同途径得到的数据结构是多种多样的,很多数据都要经过预处理才能进行有效的分析,数据预处理不仅仅是为了改善数据的外观,也是进行一些统计分析和作图前必要的步骤。原始的数据可能会有很多问题,比如残缺的数据、重复的数据、无效的数据度量单位不一致等等。把这些影响分析的数据处理好,才能获得更加精确地分析结果。比如空气质量的数据,其中有很多天的数据由于设备的原因是没有监测到的,有一些数据是记录重复的,还有一些数据是设备故障时监测无效的。5.3.1数据预处理5.3数据认知那么我们需要用相应的方法去处理,比如残缺数据,我们是直接去掉这条数据,还是用临近的值去补全,这些都是需要考虑的问题。当然在这里我们还可能会有数据的拆分、合并、数据类型的转换、数据的正态化处理等。有目的的收集数据,是确保数据分析过程有效的基础。组织需要对收集数据的内容、渠道、方法进行策划。策划时应考虑:(1)将识别的需求转化为具体的要求,如评价供方时,需要收集的数据可能包括其过程能力、测量系统不确定度等相关数据。(2)明确由谁在何时何处,通过何种渠道和方法收集数据。(3)记录表应便于使用。(4)采取有效措施,防止数据丢失和虚假数据对系统的干扰。5.3.2概率分析5.3数据认知一、常用统计量(1)集中趋势度量①均值②中位数③众数(2)离中趋势度量①极差②标准差③变异系数④分位数⑤方差5.3.2概率分析5.3数据认知5.3.2概率分析5.3数据认知5.3.2概率分析5.3数据认知5.3.2概率分析5.3数据认知二、假设检验5.3.2概率分析5.3数据认知二、假设检验

①μ-检验

②t检验

③F检验

5.3.2概率分析5.3数据认知

④卡方检验假设有两个分类变量X和Y,它们的值域分别为{x1,x2}和{y1,y2},其样本频数列联表为:

5.3.3对比分析5.3数据认知(1)对比分析原理

对比分析,就是给孤立的数据一个合理的参考系,否则孤立的数据毫无意义。比如如果一个企业盈利增长10%,我们并无法判断这个企业的好坏,如果这个企业所处行业的其他企业普遍为负增长,则5%增长已经不错,如果行业其他企业增长平均为50%,则这是一个很差的数据。

对比分析最关键的是A/B两组只保持单一变量,其他条件保持一致。只有这样才能得到比较有说服力的数据。5.3.3对比分析5.3数据认知(2)常用对比分析方法①同比②环比③定基比

5.3.3对比分析5.3数据认知(3)对比的参照物孩子考试考了95分,家长很高兴,因为知道满分是100分,有参照物。最近一次考试考了80分,家长会发火,因为过去的95分成了新参照物。后来一问,发现这次卷子出难了,孩子已经是班级第一了,就又转怒为喜,这里其他孩子就成了参照物。再举一个例子:企业A今年收入8000万,是高还是低?大家看着这个问题,应该会感到无从判断,因为没有参照物,即没有对比。因此,拿到一个数据,要判断是好是坏是高是低,必须要进行对比。首先,企业A可以跟自己比。如果前年收入2000万,去年收入4000万,那今年8000万算很好了。去年收入1个亿,今年8000万就是糟糕了。这叫纵向对比。其次,企业A也可以跟其他人比。同行的几家竞争对手企业今年都收入几个亿,那企业A的8000万就不理想。这叫横向对比。5.3.3对比分析5.3数据认知

第三,企业A还可以对比不同的维度和度量。比如竞争对手都做全国市场,企业A只做山东市场。企业A在山东市场的收入比竞争对手在山东市场的收入高,那么就本地区而言,企业A做的更好,而放眼全国,企业A做的就有局限。比如如果竞争对手都做了十几年,而企业A刚做四五年,那企业A就算做的不错,但如果成立的时间相仿的竞争对手已经过亿了,那企业A就算做的不够好。这叫综合对比。5.3.4细分分析5.3数据认知

(1)找原因用细分

今年利润下降了,老板下令查找原因。原因怎么找呢?先看一个示例“因为四季度华南区域洗衣机的销量下降了,导致了今年利润的下降”。我们会发现,这个原因是由时间、区域、产品这三个维度和销量这一个度量组成的,于是我们可以知道,对于问题原因的查找定位,本质上就是在回答哪些维度下的哪些度量的下降或上升,导致了问题的发生。这就是在做数据细分。5.3.4细分分析5.3数据认知

(2)细分无止境

我们可以按维度细分,有多少维度,就可以有多少种细分的方向。比如看是去年所有月份都下降了,还是只有某几个月下降。如果是后者,那么就可以缩小查找的数据范围。聚焦到这几个月后,可以再看是哪些区域下降了,进一步细分。

细分无止境,细到什么地步才够呢?答案是,到可操作的区间才够。

比如就细分到“四季度利润下降,其它季度没有下降”,还是没有解决问题的办法,必须细到哪个时间段哪个区域哪条产品线,直到细到某一个最终责任人,才具有可操作性。需要注意的是,在真实情况中,问题往往不一定只有一个原因,而是多个原因综合起来形成的。5.3.4细分分析5.3数据认知(3)细分策略分时。不同时间段数据是否有变化。分渠道。不同来源的流量或者产品是否有变化。分用户。新注册用户和老用户相比是否有差异,高等级用户和低等级用户相比是否有差异。分地区。不同地区的数据是否有变化。组成拆分。比如搜索由搜索词组成,可以拆分不同搜索词;店铺流量由不用店铺产生,可以分拆不同的店铺。5.3.5交叉分析5.3数据认知(1)交叉分析概念在进行数据分析的时候,大部分时间都在使用比较分析、细分分析方法,但其实还有一个方法也会经常使用——交叉分析,尤其是在排查数据异常的问题时,交叉分析就能展现其强大的威力。交叉分析是指对数据在不同维度进行交叉展现,进行多角度结合分析的方法,弥补了“各自为政”分析方法所带来的偏差。5.3.5交叉分析5.3数据认知(2)交叉分析模型这里不得不再说一下交叉分析基于的底层基础数据模型,因为如果没有设计好底层的数据模型,上层的交叉分析是很难实现的,或者多维的交叉受到限制而使分析存在局限性。5.3.6相关分析5.3数据认知(1)相关性描述在进入复杂模型构建之前,查看数据关系是了解不同变量如何相互影响的明智步骤。相关性看两个变量之间共同的趋势为了更加准确地描述变量之间的线性相关程度,可以通过计算相关系数来进行相关分析。在二元变量的相关分析过程中比较常用的有Pearson相关系数、Spearman秩相关系数和判定系数。5.3.6相关分析5.3数据认知Pearson相关系数相关系数r的取值范围:-1≤r≤1

0<|r|<1表示存在不同程度线性相关。5.3.6相关分析5.3数据认知(2)两个变量相关性分类5.3.6相关分析5.3数据认知相关分析与使用方法对照表第五章大数据分析5.4

特征工程5.2业务理解5.3数据认知5.1大数据分析概述5.5数据建模5.6通用计算引擎Spark5.7数据分析引擎Hive5.4.1特征工程面临的挑战5.4特征工程特征工程说起来容易,做起来真的不易,想要对实际问题进行模型分析,几乎大部分时间都花在了特征工程上。面临如下挑战:自动特征抽取;特征的可解释性;特征的评价5.4.2特征选择5.4特征工程当数据预处理完成后,需要选择有意义的特征输入机器学习的算法和模型进行训练。特征选择要解决的问题是移除无关的属性。在数据集中,存在一些特征对于提高模型的准确率比其他更重要的特征,也还有一些特征与其他特征放在一起出现了冗余,特征选择是通过自动选出对于解决问题最有用的特征子集。

通常来说,从两个方面考虑来选择特征:(1)特征是否发散:如果一个特征不发散,例如方差接近于0,也就是说样本在这个特征上基本上没有差异,这个特征对于样本的区分并没有什么用。(2)特征与目标的相关性:这点比较显见,与目标相关性高的特征,应当优选选择。除方差法外,本文介绍的其他方法均从相关性考虑。5.4.3特征提取5.4特征工程(1)PCAPCA(PrincipalComponentAnalysis,主成分分析)的思想,是一种数据降维技术,它能将大量相关变量转化为一组很少的不相关变量,这些无关变量称为主成分。PCA的目标是用一组较少的不相关变量代替大量相关变量,同时尽可能保留初始变量的信息,这些推导所得的变量称为主成分,它们是观测变量的线性组合。第一主成分与第二主成分正交,以次类推,但从实用的角度来看,都希望能用较少的主成分来近似全变量集。5.4.3特征提取5.4特征工程(2)因子分析

因子分析(FA)是一系列用来发现一组变量的潜在结构的方法,通过寻找一组更小的、潜在的或隐藏的结构来解释已观测到的、变量间的关系。具有以下特点:因子的数量远少于原始变量个数,因此因子分析能够减少分析中的工作量。因子变量不是对原始变量的取舍,而是根据原始变量的信息进行重组,能反映原始变量的大部分信息。因子之间不存在线性相关关系。5.4.3特征提取5.4特征工程FA的目标是通过发掘隐藏在数据下的一组较少的、更为基本的无法观测的变量,来解释一组可观测变量的相关性。这些虚拟的、无法观测的变量称作因子。(每个因子被认为可解释多个观测变量间共有的方差,也叫作公共因子)模型的形式为:Xi=a1F1+a2F2+……apFp+UiXi是第i个可观测变量(i=1,2,……k)Fj是公共因子(j=1,2,……p)5.4.4指标设计5.4特征工程(1)设计指标技巧时间戳处理。分解类别变量。分箱/分区。交叉特征。5.4.4指标设计5.4特征工程(2)如何设计指标如何设计数据分析指标?统计学起着举足轻重的作用,它不以数学上的烦琐为荣(所以很多影响深远的统计学论文不涉及过多的数学理论证明),也不炫耀匪夷所思的分析技巧(实践经验表明,越是质朴简单的统计方法,适用性越高),它是人们在实践中对数据分析很多朴素直觉的规范以及汇总。不同的目标,不同业务、不同时期、不同的数据源,数据指标肯定是不一样的。所以,数据指标设计永远没有最好,合适就好。由数据指标构成的数据称为专家数据,专家数据的质量决定了分析的深度,决定了数据的价值的大小。构造专家数据的过程一般称为特征工程或数据整合,这一过程对分析师的经验和知识要求较高。指标设计的核心任务是把原始数据转换为专家数据,使你的数据分析项目落地,指标设计过程就是业务的量化过程。5.4.4指标设计5.4特征工程(3)常用指标在统计学指标使用的指标通常是如下统计量:平均数、众数、中位数、方差、极差、四分位点,通过统计量可得到如图5.3所示的数据指标,这些指标就好像是数据的“鼻子”、“眼睛”、“嘴唇”、“眉毛”等。5.4.4指标设计5.4特征工程绝对数反映客观现象总体在一定时间、地点条件下的总规模、总水平的综合性指标。相对数由两个有联系的指标对比计算而得到的数值,即:5.4.4指标设计5.4特征工程比例与比率5.4.4指标设计5.4特征工程频数,一组数据中各别数据重复出现次数频率,每组类别次数与总次数据的比例5.4.4指标设计5.4特征工程(4)业务指标①网站订单分析指标体系1.本周订单数6.本周与上周订单分析2.本周支付订单总量7.本周各来源注册用户订单转化量3.本周取消订单量8.本周订单平均转化率4.本周被投诉订单量9.不同终端订单量5.每日订单及环比情况10.本周新增订单分布5.4.4指标设计5.4特征工程(4)业务指标②手机上网分析指标5.4.4指标设计5.4特征工程(4)业务指标③客户分析指标体系5.4.4指标设计5.4特征工程(4)业务指标④网站数据分析指标体系4、关系数据库行式存储4.1NoSQL第五章大数据分析5.5

数据建模5.2业务理解5.3数据认知5.4特征工程5.1大数据分析概述5.6通用计算引擎Spark5.7数据分析引擎Hive5.5数据建模5.5.1模型分类数据模型有监督学习分类KNN决策树朴素贝叶斯分类Logistic回归SVM支持向量机回归分析半监督学习无监督学习聚类分析--Kmeans关联分析—Apriori数据降维5.5数据建模5.5.2决策树(1)决策树结构①决策树作用机器学习中决策树是一个预测模型,它表示对象属性和对象值之间的一种映射,树中的每一个节点表示对象属性的判断条件,其分支表示符合节点条件的对象。树的叶子节点表示对象所属的预测结果。②决策树构建为了理解决策树,先看一个例子。表5.4给出一个判别是否为张三的数据集,Class取“+”表示该样本为张三,Class取“-”表示该样本不是张三。5.5数据建模5.5.2决策树IndexHeightHairEyeClass1shortblondblue+2tallblondbrown_3tallredblue+4shortdarkblue_5talldarkblue_6tallblondblue+7talldarkbrown_8shortblondbrown_5.5数据建模5.5.2决策树决策树1hair(red)

((hair(blond)

(eyes(blue))

张三5.5数据建模5.5.2决策树决策树2hair(red)

(height(tall)

eyes(blue))

(height(shor)

eyes(blue))

张三。5.5数据建模5.5.2决策树③分裂属性从决策树1和决策树2看出,学习结果与分裂属性的顺序有关。所谓分裂属性就是在某个节点处按照某一特征属性的不同划分构造不同的分支,其目标是让各个分裂子集尽可能地“纯”。尽可能“纯”就是尽量让一个分裂子集中待分类项属于同一类别。分裂属性分为两种不同的情况:属性是离散值。使用属性划分的一个子集进行测试,按照“属于此子集”和“不属于此子集”分成两个分支。属性是连续值。此时确定一个值作为分裂点X,按照“X<属性值<=X”生成两个分支。5.5数据建模5.5.3关联分析5.5数据建模5.5.3关联分析基本术语5.5数据建模5.5.3关联分析Apriori算法5.5数据建模5.5.3关联分析实验指导5.5数据建模5.5.3关联分析通过【Data】选项卡导入数据5.5数据建模5.5.3关联分析在Associate选项卡,确保参数Baskets打钩,单击“Execute”按钮建立由关联规则组成的模型,下图展示区显示相关分析结果,支持度=0.1,置信度=0.1的情况下,共挖掘了29条规则。5.5数据建模5.5.3关联分析单击“FreqPlot”按钮显示频繁项直方图,如下图所示。5.5数据建模5.5.3关联分析单击“Plot”按钮显示可视化规则图,如下图所示。5.5数据建模5.5.4回归分析回归分析(Regression

Analysis)是研究变量之间作用关系的一种统计分析方法,其基本组成是一个(或一组)自变量与一个(或一组)因变量。回归分析研究的目的是通过收集到的样本数据用一定的统计方法探讨自变量对因变量的影响关系,即原因对结果的影响程度。

回归分析是指对具有高度相关关系的现象,根据其相关的形态,建立一个适当的数学模型(函数式),来近似地反映变量之间关系的统计分析方法。利用这种方法建立的数学模型称为回归方程,它实际上是相关现象之间不确定、不规则的数量关系的一般化。5.5数据建模5.5.4回归分析5.5数据建模5.5.4回归分析(1)确定回归模型

由于我们研究的是一元线性回归,因此其回归模型可表示为:y=

0+

1x+

。其中,y是因变量;x是自变量;

是误差项;

0和

1称为模型参数(回归系数)。(2)求出回归系数

回归系数的求解,最常用的一种方法就是最小二乘估计法,基本原理是,根据实验观测得到的自变量x和因变量y之间的一组对应关系,找出一个给定类型的函数y=f(x),使得它所取的值f(x1),f(x2),…,f(xn)与观测值y1,y2,..,yn在某种尺度下最接近,即在各点处的偏差的平方和达到最小5.5数据建模5.5.4回归分析5.5数据建模5.5.4回归分析回归分析各种变体5.5数据建模5.5.5聚类分析

聚类模型指将物理或抽象对象的集合分组为由类似的对象组成的多个类的分析过程。聚类是一种把两个观测数据根据它们之间的距离计算相似度来分组的方法(没有指导样本)。

从统计学的观点看,聚类分析是通过数据建模简化数据的一种方法。传统的统计聚类分析方法包括系统聚类法、分解法、加入法、动态聚类法、有序样品聚类、有重叠聚类和模糊聚类、k-均值聚类等。5.5数据建模5.5.5聚类分析K-means算法流程Step1:从n个数据对象任意选择k个对象作为初始聚类中心Step2:根据每个聚类对象的均值(中心对象),计算每个对象与这些中心对象的距离,并根据最小距离重新对相应对象进行划分Step3:重新计算每个(有变化)聚类的均值(中心对象)Step4:循环(2),(3)直到每个聚类不再发生变化为止方法有两个特点:通常要求已知类别数;只能使用连续性变量。5.5数据建模5.5.5聚类分析(2)操作实例数据集是weather,K=4时的聚类结果,24个变量中数值变量有16个,由于没有选择聚类变量个数,默认对所有数值变量聚类。在下图点击【Data】按钮对聚类结果可视化。5.5数据建模5.5.5聚类分析(2)操作实例

一旦完成建模,按钮Stats、DataPlot、Discriminant可用。单击“Stats”按钮,将在结果展示区显示每个聚类簇所有参与模型质量评估的统计量,并比较不同K-means模型。单击“DataPlot”按钮输出数据分布可视化图形,单击“Discriminant”按钮输出判别式坐标图,该图突出原始数据簇与簇之间的关键差异,类似于PCA(principalcomponentsanalysis)。点击“Discriminant”按钮判别式坐标图显示在下图。

第五章大数据分析5.6通用计算引擎Spark5.2业务理解5.3数据认知5.4特征工程5.5数据建模5.1

大数据分析概述5.7数据分析引擎Hive5.6通用计算引擎SparkSpark是2013年加州大学伯克利分校AMP实验室(Algorithms,Machines,andPeopleLab)开发通用内存并行计算框架。Spark以其先进的设计理念,迅速成为社区的热门项目,围绕着Spark推出了SparkSQL、SparkStreaming、MLLib和GraphX等组件,这些组件逐渐形成大数据处理一站式解决平台。Spark使用Scala语言进行实现,Scala语言是一种面向对象、函数式编程语言,能够像操作本地集合对象一样轻松地操作分布式数据集。(1)运行速度快(2)易用性好(3)通用性强(4)支持多种数据源5.6.1

Spark简介5.6通用计算引擎SparkSpark生态5.6.1

Spark简介5.6通用计算引擎Spark(1)Spark把中间数据放到内存中,迭代运算效率高。MapReduce中计算结果需要落地,保存到磁盘上,这样势必会影响整体速度,而Spark支持DAG图的分布式并行计算的编程框架,减少了迭代过程中数据的落地,提高了处理效率。(2)Spark容错性高。Spark引进了弹性分布式数据集RDD(ResilientDistributedDataset)

的抽象,它是分布在一组节点中的只读对象集合,这些集合是弹性的,如果数据集一部分丢失,则可以根据“血统”(即充许基于数据衍生过程)对它们进行重建。另外在RDD计算时可以通过CheckPoint来实现容错,而CheckPoint有两种方式:CheckPointData,和LoggingTheUpdates,用户可以控制采用哪种方式来实现容错。5.6.2

Spark与Hadoop差异5.6通用计算引擎Spark(3)Spark更加通用。不像Hadoop只提供了Map和Reduce两种操作,Spark提供的数据集操作类型有很多种,大致分为:Transformations和Actions两大类。Transformations包括Map、Filter、FlatMap、Sample、GroupByKey、ReduceByKey、Union、Join、Cogroup、MapValues、Sort和PartionBy等多种操作类型,同时还提供Count,Actions包括Collect、Reduce、Lookup和Save等操作。另外各个处理节点之间的通信模型不再像Hadoop只有Shuffle一种模式,用户可以命名、物化,控制中间结果的存储、分区等。5.6.2

Spark与Hadoop差异5.6通用计算引擎Spark(1)Spark是基于内存的迭代计算框架,适用于需要多次操作特定数据集的应用场合。需要反复操作的次数越多,所需读取的数据量越大,受益越大,数据量小但是计算密集度较大的场合,受益就相对较小。(2)由于RDD的特性,Spark不适用那种异步细粒度更新状态的应用,例如web服务的存储或者是增量的web爬虫和索引。就是对于那种增量修改的应用模型不适合。(3)数据量不是特别大,但是要求实时统计分析需求。5.6.3

Spark的适用场景5.6通用计算引擎Spark5.6.4

Spark运行模式运行环境模式描述Local本地模式常用于本地开发测试,本地还分为local单线程和local-cluster多线程;Standalone集群模式典型的Mater/slave模式,不过也能看出Master是有单点故障的;Spark支持ZooKeeper来实现HAOnyarn集群模式运行在yarn资源管理器框架之上,由yarn负责资源管理,Spark负责任务调度和计算Onmesos集群模式运行在mesos资源管理器框架之上,由mesos负责资源管理,Spark负责任务调度和计算Oncloud集群模式比如AWS的EC2,使用这个模式能很方便的访问Amazon的S3;Spark支持多种分布式存储系统:HDFS和S35.6通用计算引擎Spark5.6.5

Spark常用术语术语描述ApplicationSpark的应用程序,包含一个Driverprogram和若干ExecutorSparkContextSpark应用程序的入口,负责调度各个运算资源,协调各个WorkerNode上的ExecutorDriverProgram运行Application的main()函数并且创建SparkContextExecutor是为Application运行在Workernode上的一个进程,该进程负责运行Task,并且负责将数据存在内存或者磁盘上。每个Application都会申请各自的Executor来处理任务ClusterManager在集群上获取资源的外部服务(例如:Standalone、Mesos、Yarn)WorkerNode集群中任何可以运行Application代码的节点,运行一个或多个Executor进程5.6通用计算引擎Spark5.6.5

Spark常用术语Task运行在Executor上的工作单元JobSparkContext提交的具体Action操作,常和Action对应Stage每个Job会被拆分很多组task,每组任务被称为Stage,也称TaskSetRDD是Resilientdistributeddatasets的简称,中文为弹性分布式数据集;是Spark最核心的模块和类DAGScheduler根据Job构建基于Stage的DAG,并提交Stage给TaskSchedulerTaskScheduler将Taskset提交给Workernode集群运行并返回结果Transformations是SparkAPI的一种类型,Transformation返回值还是一个RDD,所有的Transformation采用的都是懒策略,如果只是将Transformation提交是不会执行计算的Action是SparkAPI的一种类型,Action返回值不是一个RDD,而是一个scala集合;计算只有在Action被提交的时候计算才被触发。第五章大数据分析5.7数据分析引擎Hive5.2业务理解5.3数据认知5.4特征工程5.5数据建模5.1大数据分析概述5.6通用计算引擎Spark5.7数据分析引擎Hive数据仓库(DataWarehouse)是一个面向主题的(SubjectOriented)、集成的(Integrated)、相对稳定的(Non-Volatile)、反应历史变化(TimeVariant)的数据集合,用于支持管理决策。数据仓库体系结构通常含四个层次:数据源、数据存储和管理、数据服务、数据应用。(1)数据源:是数据仓库的数据来源,含外部数据、现有业务系统和文档资料等;(2)数据集成:完成数据的抽取、清洗、转换和加载任务,数据源中的数据采用ETL(Extract-Transform-Load)工具以固定的周期加载到数据仓库中。5.7.1数据仓库概念5.7数据分析引擎Hive(1)无法满足快速增长的海量数据存储需求,传统数据仓库基于关系型数据库,横向扩展性较差,纵向扩展有限。(2)无法处理不同类型的数据,传统数据仓库只能存储结构化数据,企业业务发展,数据源的格式越来越丰富。(3)传统数据仓库建立在关系型数据仓库之上,计算和处理能力不足,当数据量达到TB级后基本无法获得好的性能。5.7.2传统数据仓库存在的问题5.7数据分析引擎HiveHive是建立在Hadoop上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。Hive定义了简单的类SQL查询语言,称为HQL。

Hive的设计特点如下:支持索引,加快数据查询。支持不同的存储类型,例如,纯文本文件、HBase中的文件。将元数据保存在关系数据库中,大大减少了在查询过程中执行语义检查的时间。可以直接使用存储在Hadoop文件系统中的数据。内置大量用户函数UDF来操作时间、字符串和其他的数据挖掘工具,支持用户扩展UDF函数来完成内置函数无法实现的操作。类SQL的查询方式,将SQL查询转换为MapReduce的job在Hadoop集群上执行。5.7.3

Hive特征5.7数据分析引擎Hive5.7.4

Hive系统架构5.7数据分析引擎Hive5.7.5Hive应用案例数据字段定义user_id购物者的唯一ID。age_range用户的年龄范围:1为小于18;2为[18,24];3[25,29];4[30,34];5代表[35,39];6为[40,49];7和8为大于等于50;0和NULL为未知。gender用户性别:0为女;1为男;2和空为不详。merchant_id商家的唯一ID。label值来自{0,1,-1,NULL}。'1'表示'user_id'是'merchant_id'的重复购买者,而'0'则相反。“-1”表示“user_id”不是给定商家的新客户,因此超出了我们的预测。但是,这些记录可能会提供更多信息。“NULL”只在测试数据中出现,表明这是一对预测。activity_log{user_id,merchant_id}之间的交互记录集,其中每个记录是表示为“item_id:category_id:brand_id:time_stamp:action_type”的操作。'#'用来分隔两个相邻的元素。记录没有以任何特定顺序排序。5.7数据分析引擎Hive5.7.5Hive应用案例user_idage_rangegendermerchant_idlabelactivity_log3417660944-1408895:1505:7370:1107:03417660412-117235:1604:4396:0818:0#954723:1604:4396:0818:0#275437:1604:4396:0818:0#236488:1505:4396:1024:0user_idage_rangegendermerchant_idlabelactivity_log3417660944-1408895:1505:7370:1107:03417660412-117235:1604:4396:0818:03417660412-1954723:1604:4396:0818:03417660412-1275437:1604:4396:0818:03417660412-1236488:1505:4396:1024:0原始数据清洗后数据5.7数据分析引擎Hive5.7.5Hive应用案例数据变换user_idage_rangegendermerchant_idlabelitem_idcategory_idbrand_idtime_stampaction_type3417660944-140889515057370110703417660412-1172351604439681805.7数据分析引擎Hive5.7.5Hive应用案例(2)创建数据表createtablematch_data(user_idint,age_rangeint,genderint,merchant_idint,labelint,activity_logvarchar(1000))rowformatdelimitedfieldsterminatedby',';(3)将root下的train_format2.csv数据导入到创建的match_data表中loaddatalocalinpath'/root/train_format2.csv'overwriteintotablematch_data;5.7数据分析引擎Hive5.7.5Hive应用案例(4)查看match_data数据SELECT*FROMmatch_datalimit100;5.7数据分析引擎Hive5.7.5Hive应用案例(5)创建中间表RESULTCREATETABLERESULTAS//创建RESULT表并获取match_data的USER_ID,ITEM_ID,BRAND_ID,ATIION_TYPESELECTUSER_ID,SPLIT(LOG_SPLIT,':')[0]ASIT

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论