Big Data

需求预测我喜欢用ARIMA模型

本文结构: 时间序列分析? 什么是ARIMA? ARIMA数学模型? input,output 是什么? 怎么用?-代码实例 常见问题? 时间序列分析? 时间序列,就是按时间顺序排列的,随时间变化的数据序列。 生活中各领域各行业太多时间序列的数据了,销售额,顾客数,访问量,股价,油价,GDP,气温。。。 随机过程的特征有均值、方差、协方差等。 如果随机过程的特征随着时间变化,则此过程是非平稳的;相反,如果随机过程的特征不随时间而变化,就称此过程是平稳的。 下图所示,左边非稳定,右边稳定。 非平稳时间序列分析时,若导致非平稳的原因是确定的,可以用的方法主要有趋势拟合模型、季节调整模型、移动平均、指数平滑等方法。 若导致非平稳的原因是随机的,方法主要有ARIMA(autoregressive integrated moving average)及自回归条件异方差模型等。 什么是ARIMA? ARIMA (Auto Regressive Integrated Moving Average) 可以用来对时间序列进行预测,常被用于需求预测和规划中。 可以用来对付 ‘随机过程的特征随着时间变化而非固定’ 且 ‘导致时间序列非平稳的原因是随机而非确定’ 的问题。不过,如果是从一个非平稳的时间序列开始, 首先需要做差分,直到得到一个平稳的序列。 模型的思想就是从历史的数据中学习到随时间变化的模式,学到了就用这个规律去预测未来。 ARIMA(p,d,q)模型,其中 d 是差分的阶数,用来得到平稳序列。 AR是自回归, p为相应的自回归项。 MA为移动平均,q为相应的移动平均项数。 ARIMA数学模型? ARIMA(p,d,q)模型是ARMA(p,q)模型的扩展。 ARIMA(p,d,q)模型可以表示为: 其中L 是滞后算子(Lag operator),d in Z, d>0。 AR: 当前值只是过去值的加权求和。 MA: 过去的白噪音的移动平均。 ARMA: AR和MA的综合。 […]

Big Data

百度内部培训资料PPT:数据分析的道与术

这是一个来自百度内部培训关于数据分析的、阅读类的PPT,文字说明非常充分,适合刚入门数据分析的朋友进行学习。 主要内容: 1、什么是数据分析(道) 1.1 数据分析是什么? 1.2 什么是做好数据分析的关键? 1.3 分析要思考业务,尤其是接地气 1.4 分析要言之有物,行之有效 2、数据分析方法(术) 3、常见的统计陷阱 4、PPT蕴含的人生哲理

Big Data

深度 | Hadoop数据操作系统YARN全解析

“ Hadoop 2.0引入YARN,大大提高了集群的资源利用率并降低了集群管理成本。其在异构集群中是怎样应用的?Hulu又有哪些成功实践可以分享? 为了能够对集群中的资源进行统一管理和调度,Hadoop 2.0引入了数据操作系统YARN。YARN的引入,大大提高了集群的资源利用率,并降低了集群管理成本。首先,YARN允许多个应用程序运行在一个集群中,并将资源按需分配给它们,这大大提高了资源利用率,其次,YARN允许各类短作业和长服务混合部署在一个集群中,并提供了容错、资源隔离及负载均衡等方面的支持,这大大简化了作业和服务的部署和管理成本。 YARN总体上采用master/slave架构,如图1所示,其中,master被称为ResourceManager,slave被称为NodeManager,ResourceManager负责对各个NodeManager上的资源进行统一管理和调度。当用户提交一个应用程序时,需要提供一个用以跟踪和管理这个程序的ApplicationMaster,它负责向ResourceManager申请资源,并要求NodeManger启动可以占用一定资源的Container。由于不同的ApplicationMaster被分布到不同的节点上,并通过一定的隔离机制进行了资源隔离,因此它们之间不会相互影响。 图1 Apache YARN的基本架构 YARN中的资源管理和调度功能由资源调度器负责,它是Hadoop YARN中最核心的组件之一,是ResourceManager中的一个插拔式服务组件 。YARN通过层级化队列的方式组织和划分资源,并提供了多种多租户资源调度器,这种调度器允许管理员按照应用需求对用户或者应用程序分组,并为不同的分组分配不同的资源量,同时通过添加各种约束防止单个用户或者应用程序独占资源,进而能够满足各种QoS需求,典型代表是Yahoo!的Capacity Scheduler和Facebook的Fair Scheduler。 YARN作为一个通用数据操作系统,既可以运行像MapReduce、Spark这样的短作业,也可以部署像Web Server、MySQL Server这种长服务,真正实现一个集群多用途,这样的集群,我们通常称为轻量级弹性计算平台,说它轻量级,是因为YARN采用了cgroups轻量级隔离方案,说它弹性,是因为YARN能根据各种计算框架或者应用的负载或者需求调整它们各自占用的资源,实现集群资源共享,资源弹性收缩。 图2 以YARN为核心的生态系统 Hadoop YARN在异构集群中的应用 从2.6.0版本开始,YARN引入了一种新的调度策略:基于标签的调度机制。该机制的主要引入动机是更好地让YARN运行在异构集群中,进而更好地管理和调度混合类型的应用程序。 1.什么是基于标签的调度 故名思议,基于标签的调度是一种调度策略,就像基于优先级的调度一样,是调度器中众多调度策略中的一种,可以跟其他调度策略混合使用。该策略的基本思想是:用户可为每个NodeManager打上标签,比如highmem,highdisk等,以作为NodeManager的基本属性;同时,用户可以为调度器中的队列设置若干标签,以限制该队列只能占用包含对应标签的节点资源,这样,提交到某个队列中的作业,只能运行在特定一些节点上。通过打标签,用户可将Hadoop分成若干个子集群,进而使得用户可将应用程序运行到符合某种特征的节点上,比如可将内存密集型的应用程序(比如Spark)运行到大内存节点上。 2.Hulu应用案例 基于标签的调度策略在Hulu内部有广泛的应用。之所以启用该机制,主要出于以下三点考虑: 集群是异构的。在Hadoop集群演化过程中,后来新增机器的配置通常比旧机器好,这使得集群最终变为一个异构的集群。Hadoop设计之初众多设计机制假定集群是同构的,即使发展到现在,Hadoop对异构集群的支持仍然很不完善,比如MapReduce推测执行机制尚未考虑异构集群情形。 应用是多样化的。Hulu在YARN集群之上同时部署了MapReduce、Spark、Spark Streaming、Docker Service等多种类型的应用程序 。当在异构集群混合运行多类应用程序时,经常发生由于机器配置不一导致并行化任务完成时间相差较大的情况,这非常不利于分布式程序的高效执行。此外,由于YARN无法进行完全的资源隔离,多个应用程序混合运行在一个节点上容易相互干扰,对于低延迟类型的应用通常是难以容忍的。 个性化机器需求。由于对特殊环境的依赖,有些应用程序只能运行在大集群中的特定节点上。典型的代表是spark和docker,spark MLLib可能用到一些native库,为了防止污染系统,这些库通常只会安装在若干节点上;docker container的运行依赖于docker engine,为了简化运维成本,我们 只会让docker运行在若干指定的节点上。 为了解决以上问题,Hulu在Capacity Scheduler基础上启用了基于标签的调度策略。如图3所示,我们根据机器配置和应用程序需求,为集群中的节点打上了多种标签,包括: q spark-node:用于运行spark作业的机器,这些机器通常配置较高,尤其是内存较大; q mr-node:运行MapReduce作业的机器,这些机器配置是多样的; q docker-node:运行docker应用程序的机器,这些机器上装有docker engine; q streaming-node:运行spark streaming流式应用的机器。 图3 YARN部署示例 需要注意的是,YARN允许一个节点同时存在多个标签,进而实现一台机器混合运行多类应用程序(在hulu内部,我们允许一些节点是共享的,同时可以运行多种应用程序)。表面上看来,通过引入标签将集群分成了多个物理集群,但实际上,这些物理集群跟传统意义上完全隔离的集群是不同的,这些集群既相互独立又相互关联,用户可非常容易地通过修改标签动态调整某个节点的用途。 Hadoop YARN应用案例及经验总结 1Hadoop YARN应用案例Hadoop […]

Big Data

彻底颠覆你认知的10条大数据思维

大数据思维原理是什么?简单概括为10项原理,当样本数量足够大时,你会发现其实每个人都是一模一样的。 数据核心原理 从“流程”核心转变为“数据”核心 大数据时代,计算模式也发生了转变,从“流程”核心转变为“数据”核心。Hadoop体系的分布式计算框架已经是“数据”为核心的范式。非结构化数据及分析需求,将改变IT系统的升级方式:从简单增量到架构变化。大数据下的新思维——计算模式的转变。   例如:IBM将使用以数据为中心的设计,目的是降低在超级计算机之间进行大量数据交换的必要性。大数据下,云计算找到了破茧重生的机会,在存储和计算上都体现了数据为核心的理念。大数据和云计算的关系:云计算为大数据提供了有力的工具和途径,大数据为云计算提供了很有价值的用武之地。而大数据比云计算更为落地,可有效利用已大量建设的云计算资源,最后加以利用。 科学进步越来越多地由数据来推动,海量数据给数据分析既带来了机遇,也构成了新的挑战。大数据往往是利用众多技术和方法,综合源自多个渠道、不同时间的信息而获得的。为了应对大数据带来的挑战,我们需要新的统计思路和计算方法。   说明:用数据核心思维方式思考问题,解决问题。以数据为核心,反映了当下IT产业的变革,数据成为人工智能的基础,也成为智能化的基础,数据比流程更重要,数据库、记录数据库,都可开发出深层次信息。云计算机可以从数据库、记录数据库中搜索出你是谁,你需要什么,从而推荐给你需要的信息。 数据价值原理 由功能是价值转变为数据是价值 大数据真正有意思的是数据变得在线了,这个恰恰是互联网的特点。非互联网时期的产品,功能一定是它的价值,今天互联网的产品,数据一定是它的价值。   例如:大数据的真正价值在于创造,在于填补无数个还未实现过的空白。有人把数据比喻为蕴藏能量的煤矿,煤炭按照性质有焦煤、无烟煤、肥煤、贫煤等分类,而露天煤矿、深山煤矿的挖掘成本又不一样。与此类似,大数据并不在“大”,而在于“有用”,价值含量、挖掘成本比数量更为重要。不管大数据的核心价值是不是预测,但是基于大数据形成决策的模式已经为不少的企业带来了盈利和声誉。 数据能告诉我们,每一个客户的消费倾向,他们想要什么,喜欢什么,每个人的需求有哪些区别,哪些又可以被集合到一起来进行分类。大数据是数据数量上的增加,以至于我们能够实现从量变到质变的过程。举例来说,这里有一张照片,照片里的人在骑马,这张照片每一分钟,每一秒都要拍一张,但随着处理速度越来越快,从1分钟一张到1秒钟1张,突然到1秒钟10张后,就产生了电影。当数量的增长实现质变时,就从照片变成了一部电影。 美国有一家创新企业Decide.com它可以帮助人们做购买决策,告诉消费者什么时候买什么产品,什么时候买最便宜,预测产品的价格趋势,这家公司背后的驱动力就是大数据。他们在全球各大网站上搜集数以十亿计的数据,然后帮助数以十万计的用户省钱,为他们的采购找到最好的时间,降低交易成本,为终端的消费者带去更多价值。 在这类模式下,尽管一些零售商的利润会进一步受挤压,但从商业本质上来讲,可以把钱更多地放回到消费者的口袋里,让购物变得更理性,这是依靠大数据催生出的一项全新产业。这家为数以十万计的客户省钱的公司,在几个星期前,被eBay以高价收购。 再举一个例子,SWIFT是全球最大的支付平台,在该平台上的每一笔交易都可以进行大数据的分析,他们可以预测一个经济体的健康性和增长性。比如,该公司现在为全球性客户提供经济指数,这又是一个大数据服务。,定制化服务的关键是数据。《大数据时代》的作者维克托·迈尔·舍恩伯格认为,大量的数据能够让传统行业更好地了解客户需求,提供个性化的服务。   说明:用数据价值思维方式思考问题,解决问题。信息总量的变化导致了信息形态的变化,量变引发了质变,最先经历信息爆炸的学科,如天文学和基因学,创造出了“大数据”这个概念。如今,这个概念几乎应用到了所有人类致力于发展的领域中。从功能为价值转变为数据为价值,说明数据和大数据的价值在扩大,数据为“王”的时代出现了。数据被解释是信息,信息常识化是知识,所以说数据解释、数据分析能产生价值。 全样本原理 从抽样转变为需要全部数据样本 需要全部数据样本而不是抽样,你不知道的事情比你知道的事情更重要,但如果现在数据足够多,它会让人能够看得见、摸得着规律。数据这么大、这么多,所以人们觉得有足够的能力把握未来,对不确定状态的一种判断,从而做出自己的决定。这些东西我们听起来都是非常原始的,但是实际上背后的思维方式,和我们今天所讲的大数据是非常像的。   举例:在大数据时代,无论是商家还是信息的搜集者,会比我们自己更知道你可能会想干什么。现在的数据还没有被真正挖掘,如果真正挖掘的话,通过信用卡消费的记录,可以成功预测未来5年内的情况。统计学里头最基本的一个概念就是,全部样本才能找出规律。为什么能够找出行为规律?一个更深层的概念是人和人是一样的,如果是一个人特例出来,可能很有个性,但当人口样本数量足够大时,就会发现其实每个人都是一模一样的。   说明:用全数据样本思维方式思考问题,解决问题。从抽样中得到的结论总是有水分的,而全部样本中得到的结论水分就很少,大数据越大,真实性也就越大,因为大数据包含了全部的信息。 关注效率原理 由关注精确度转变为关注效率 关注效率而不是精确度,大数据标志着人类在寻求量化和认识世界的道路上前进了一大步,过去不可计量、存储、分析和共享的很多东西都被数据化了,拥有大量的数据和更多不那么精确的数据为我们理解世界打开了一扇新的大门。大数据能提高生产效率和销售效率,原因是大数据能够让我们知道市场的需要,人的消费需要。大数据让企业的决策更科学,由关注精确度转变为关注效率的提高,大数据分析能提高企业的效率。   例如:在互联网大数据时代,企业产品迭代的速度在加快。三星、小米手机制造商半年就推出一代新智能手机。利用互联网、大数据提高企业效率的趋势下,快速就是效率、预测就是效率、预见就是效率、变革就是效率、创新就是效率、应用就是效率。   竞争是企业的动力,而效率是企业的生命,效率低与效率高是衡量企来成败的关键。一般来讲,投入与产出比是效率,追求高效率也就是追求高价值。手工、机器、自动机器、智能机器之间效率是不同的,智能机器效率更高,已能代替人的思维劳动。智能机器核心是大数据制动,而大数据制动的速度更快。在快速变化的市场,快速预测、快速决策、快速创新、快速定制、快速生产、快速上市成为企业行动的准则,也就是说,速度就是价值,效率就是价值,而这一切离不开大数据思维。   说明:用关注效率思维方式思考问题,解决问题。大数据思维有点像混沌思维,确定与不确定交织在一起,过去那种一元思维结果,已被二元思维结果取代。过去寻求精确度,现在寻求高效率;过去寻求因果性,现在寻求相关性;过去寻找确定性,现在寻找概率性,对不精确的数据结果已能容忍。只要大数据分析指出可能性,就会有相应的结果,从而为企业快速决策、快速动作、创占先机提高了效率。 关注相关性原理 由因果关系转变为关注相关性 关注相关性而不是因果关系,社会需要放弃它对因果关系的渴求,而仅需关注相关关系,也就是说只需要知道是什么,而不需要知道为什么。这就推翻了自古以来的惯例,而我们做决定和理解现实的最基本方式也将受到挑战。   例如:大数据思维一个最突出的特点,就是从传统的因果思维转向相关思维,传统的因果思维是说我一定要找到一个原因,推出一个结果来。而大数据没有必要找到原因,不需要科学的手段来证明这个事件和那个事件之间有一个必然,先后关联发生的一个因果规律。它只需要知道,出现这种迹象的时候,我就按照一般的情况,这个数据统计的高概率显示它会有相应的结果,那么我只要发现这种迹象的时候,我就可以去做一个决策,我该怎么做。这是和以前的思维方式很不一样,老实说,它是一种有点反科学的思维,科学要求实证,要求找到准确的因果关系。 在这个不确定的时代里面,等我们去找到准确的因果关系,再去办事的时候,这个事情早已经不值得办了。所以“大数据”时代的思维有点像回归了工业社会的这种机械思维——机械思维就是说我按那个按钮,一定会出现相应的结果,是这样状态。而农业社会往前推,不需要找到中间非常紧密的、明确的因果关系,而只需要找到相关关系,只需要找到迹象就可以了。社会因此放弃了寻找因果关系的传统偏好,开始挖掘相关关系的好处。 例如:美国人开发一款“个性化分析报告自动可视化程序”软件从网上挖掘数据信息,这款数据挖掘软件将自动从各种数据中提取重要信息,然后进行分析,并把此信息与以前的数据关联起来,分析出有用的信息。 非法在屋内打隔断的建筑物着火的可能性比其他建筑物高很多。纽约市每年接到2。5万宗有关房屋住得过于拥挤的投诉,但市里只有200名处理投诉的巡视员,市长办公室一个分析专家小组觉得大数据可以帮助解决这一需求与资源的落差。该小组建立了一个市内全部90万座建筑物的数据库,并在其中加入市里19个部门所收集到的数据:欠税扣押记录、水电使用异常、缴费拖欠、服务切断、救护车使用、当地犯罪率、鼠患投诉,诸如此类。 接下来,他们将这一数据库与过去5年中按严重程度排列的建筑物着火记录进行比较,希望找出相关性。果然,建筑物类型和建造年份是与火灾相关的因素。不过,一个没怎么预料到的结果是,获得外砖墙施工许可的建筑物与较低的严重火灾发生率之间存在相关性。利用所有这些数据,该小组建立了一个可以帮助他们确定哪些住房拥挤投诉需要紧急处理的系统。他们所记录的建筑物的各种特征数据都不是导致火灾的原因,但这些数据与火灾隐患的增加或降低存在相关性。这种知识被证明是极具价值的:过去房屋巡视员出现场时签发房屋腾空令的比例只有13%,在采用新办法之后,这个比例上升到了70%——效率大大提高了。 全世界的商界人士都在高呼大数据时代来临的优势:一家超市如何从一个17岁女孩的购物清单中,发现了她已怀孕的事实;或者将啤酒与尿不湿放在一起销售,神奇地提高了双方的销售额。大数据透露出来的信息有时确实会起颠覆。比如,腾讯一项针对社交网络的统计显示,爱看家庭剧的男人是女性的两倍还多;最关心金价的是中国大妈,但紧随其后的却是90后。而在过去一年,支付宝中无线支付比例排名前十的竟然全部在青海、西藏和内蒙古地区。   说明:用关注相关性思维方式来思考问题,解决问题。寻找原因是一种现代社会的一神论,大数据推翻了这个论断。过去寻找原因的信念正在被“更好”的相关性所取代。当世界由探求因果关系变成挖掘相关关系,我们怎样才能既不损坏建立在因果推理基础之上的社会繁荣和人类进步的基石,又取得实际的进步呢?这是值得思考的问题。   解释:转向相关性,不是不要因果关系,因果关系还是基础,科学的基石还是要的。只是在高速信息化的时代,为了得到即时信息,实时预测,在快速的大数据分析技术下,寻找到相关性信息,就可预测用户的行为,为企业快速决策提供提前量。比如预警技术,只有提前几十秒察觉,防御系统才能起作用。比如,雷达显示有个提前量,如果没有这个预知的提前量,雷达的作用也就没有了,相关性也是这个原理。比如,相对论与量子论的争论也能说明问题,一个说上帝不掷骰子,一个说上帝掷骰子,争论几十年,最后承认两个都存在,而且量子论取得更大的发展——一个适用于宇宙尺度,一个适用于原子尺度。 预测原理 从不能预测转变为可以预测 大数据的核心就是预测,大数据能够预测体现在很多方面。大数据不是要教机器像人一样思考,相反,它是把数学算法运用到海量的数据上来预测事情发生的可能性。正因为在大数据规律面前,每个人的行为都跟别人一样,没有本质变化,所以商家会比消费者更了消费者的行为。   例如:大数据助微软准确预测世界怀。微软大数据团队在2014年巴西世界足球赛前设计了世界怀模型,该预测模型正确预测了赛事最后几轮每场比赛的结果,包括预测德国队将最终获胜。预测成功归功于微软在世界怀进行过程中获取的大量数据,到淘汰赛阶段,数据如滚雪球般增多,常握了有关球员和球队的足够信息,以适当校准模型并调整对接下来比赛的预测。 […]

Big Data

使用基于Apache Spark的随机森林方法预测贷款风险

在本文中,我将向大家介绍如何使用Apache Spark的spark.ml库中的随机森林算法来对银行信用贷款的风险做分类预测。Spark的spark.ml库基于DataFrame,它提供了大量的接口,帮助用户创建和调优机器学习工作流。结合dataframe使用spark.ml,能够实现模型的智能优化,从而提升模型效果。 分类算法 分类算法是一类监督式机器学习算法,它根据已知标签的样本(如已经明确交易是否存在欺诈)来预测其它样本所属的类别(如是否属于欺诈性的交易)。分类问题需要一个已经标记过的数据集和预先设计好的特征,然后基于这些信息来学习给新样本打标签。所谓的特征即是一些“是与否”的问题。标签就是这些问题的答案。在下面这个例子里,如果某个动物的行走姿态、游泳姿势和叫声都像鸭子,那么就给它打上“鸭子”的标签。   我们来看一个银行信贷的信用风险例子: 我们需要预测什么? 某个人是否会按时还款 这就是标签:此人的信用度 你用来预测的“是与否”问题或者属性是什么? 申请人的基本信息和社会身份信息:职业,年龄,存款储蓄,婚姻状态等等…… 这些就是特征,用来构建一个分类模型,你从中提取出对分类有帮助的特征信息。 决策树模型 决策树是一种基于输入特征来预测类别或是标签的分类模型。决策树的工作原理是这样的,它在每个节点都需要计算特征在该节点的表达式值,然后基于运算结果选择一个分支通往下一个节点。下图展示了一种用来预测信用风险的决策树模型。每个决策问题就是模型的一个节点,“是”或者“否”的答案是通往子节点的分支。 问题1:账户余额是否大于200元? 否 问题2:当前就职时间是否超过1年? 否 不可信赖 随机森林模型 融合学习算法结合了多个机器学习的算法,从而得到了效果更好的模型。随机森林是分类和回归问题中一类常用的融合学习方法。此算法基于训练数据的不同子集构建多棵决策树,组合成一个新的模型。预测结果是所有决策树输出的组合,这样能够减少波动,并且提高预测的准确度。对于随机森林分类模型,每棵树的预测结果都视为一张投票。获得投票数最多的类别就是预测的类别。 基于Spark机器学习工具来分析信用风险问题 我们使用德国人信用度数据集,它按照一系列特征属性将人分为信用风险好和坏两类。我们可以获得每个银行贷款申请者的以下信息: 存放德国人信用数据的csv文件格式如下: 1 2 3 4 1,1,18,4,2,1049,1,2,4,2,1,4,2,21,3,1,1,3,1,1,1 1,1,9,4,0,2799,1,3,2,3,1,2,1,36,3,1,2,3,2,1,1 1,2,12,2,9,841,2,4,2,2,1,4,1,23,3,1,1,2,1,1,1 在这个背景下,我们会构建一个由决策树组成的随机森林模型来预测是否守信用的标签/类别,基于以下特征: 标签 -> 守信用或者不守信用(1或者0) 特征 -> {存款余额,信用历史,贷款目的等等} 软件 本教程将使用Spark 1.6.1 你可以从链接中下载代码和数据来运行示例: https://github.com/caroljmcdonald/spark-ml-randomforest-creditrisk 输入spark-shell命令后,本文的例子可以在spark-shell环境中交互式的运行。 你也可以把代码当做独立的应用来运行,操作步骤参考Getting Started with Spark on MapR Sandbox 按照教程指示,登录MapR沙箱,用户名为user01,密码为mapr。将样本数据文件复制到你的沙箱主目录下/user/user01 using scp。(注意,你可能需要先更新Spark的版本)打开spark shell: […]