[正式版]《大数据原理与实践》第9次微信公开课:Analysis
大数据价值链最后也是最重要的阶段就是数据分析,其目标是提取数据中隐藏的数据,提供有意义的建议以及辅助决策制定。本次课程的内容主要包括以下几个方面:
什么是数据分析?
大数据的分析技术
大数据分析语言
实例分析:星环科技Discover
1、什么是数据分析?
数据分析处理来自对某一兴趣现象的观察、测量或者实验的信息。数据分析目的是从和主题相关的数据中提取尽可能多的信息。主要目标包括:
推测或解释数据并确定如何使用数据;
检查数据是否合法;
给决策制定合理建议;
诊断或推断错误原因;
预测未来将要发生的事情。
由于统计数据的多样性,数据分析的方法大不相同。可以将根据观察和测量得到的定性或定量数据,或根据参数数量得到的一元或多元数据进行分类。根据数据分析深度将数据分析分为三个层次:描述性(descriptive)分析,预测性分析和规则性(prescriptive)分析。
描述性分析:基于历史数据描述发生了什么。例如,利用回归技术从数据集中发现简单的趋势,可视化技术用于更有意义地表示数据,数据建模则以更有效的方式收集、存储和删减数据。描述性分析通常应用在商业智能和可见性系统。
预测性分析:用于预测未来的概率和趋势.。例如,预测性模型使用线性和对数回归等统计技术发现数据趋势,预测未来的输出结果,并使用数据挖掘技术提取数据模式(pattern)给出预见。
规则性分析:解决决策制定和提高分析效率。例如,仿真用于分析复杂系统以了解系统行为并发现问题,而优化技术则在给定约束条件下给出最优解决方案。
2、大数据分析技术
大数据的分析技术主要依靠四个方面:统计分析、数据挖掘、机器学习和可视化分析。
统计分析:统计分析是基于统计理论,是应用数学的一个分支。在统计理论中,随机性和不确定性由概率理论建模。统计分析技术可以分为描述性统计和推断性统计。描述性统计技术对数据集进行摘要(Summarization)或描述,而推断性统计则能够对过程进行推断。更多的多元统计分析包括回归、因子分析、聚类和判别分析等。
数据挖掘:数据挖掘可以认为是发现大数据集中数据模式的一种计算过程。许多数据挖掘算法已经在人工智能、机器学习、模式识别、统计和数据库领域得到了应用,2006年ICDM 国际会议上总结了影响力最高的10种数据挖掘算法,包括C4.5、k-means、SVM、Apriori、EM、PageRank、AdaBoost、kNN、朴素贝叶斯和CART,覆盖了分类、聚类、回归和统计学习等方向。此外, 一些其他的先进技术如神经网络和基因算法也被用于不同应用的数据挖据。有时候,几乎可以认为很多方法间的界线逐渐淡化,例如数据挖掘、机器学习、模式识别、甚至视觉信息处理、媒体信息处理等等,“数据挖掘”只是作为一个通称。
机器学习:机器学习是一门研究机器获取新知识和新技能,并识别现有知识的学问,其理论主要是设计和分析一些让计算机可以自动“学习”的算法。机器学习算法从数据中自动分析获得规律,并利用规律对未知数据进行预测。在大数据时代,人们迫切希望在由普通机器组成的大规模集群上实现高性能的以机器学习算法为核心的数据分析,为实际业务提供服务和指导,进而实现数据的最终变现。与传统的在线联机分析处理OLAP不同,对大数据的深度分析主要基于大规模的机器学习技术。因而与传统的OLAP相比较,基于机器学习的大数据分析具有自己独特的特点,包括迭代性、容错性、参数收敛的非均匀性等。这些特点决定了理想的大数据分析系统的设计和其他计算系统的设计有很大不同,直接应用传统的分布式计算系统应用于大数据分析,很大比例的资源都浪费在通信、等待、协调等非有效的计算上。
可视化分析:可视化分析与信息绘图学和信息可视化相关。数据可视化的目标是以图形方式清晰有效地展示信息。一般来说,图表和地图可以帮助人们快速理解信息。但是,当数据量增大到大数据的级别,传统的电子表格等技术已无法处理海量数据。大数据的可视化已成为一个活跃的研究领域,因为它能够辅助算法设计和软件开发。
前三个数据分析技术之间的关系,简单来看,统计学主要是通过机器学习来对数据挖掘发挥影响,而机器学习和数据库则是数据挖掘的两大支撑技术。
3、大数据挖掘
大数据挖掘旨在从大数据中挖掘出未知且有用的知识。只有通过挖掘,大数据的价值才得以体现,挖掘对大数据的利用有着举足轻重的意义。
大数据挖掘有两个基本问题,即“挖什么”(what to mine)与“怎么挖”(how to mine)。前者决定从数据中抽取什么样的信息、统计什么样的规律,是在数据的收集、处理和挖掘的全过程中要考虑的问题;后者决定怎样具体进行抽取与统计,仅限于挖掘本身。“怎么挖”是数据挖掘研究的核心,而“挖什么”在数据挖掘的应用中往往更为重要,因为它决定了挖掘结果的价值。在现实中,决定挖金银还是挖铜铁,比决定用锄头挖还是用铲子挖更关键。
大数据挖掘有如下四项策略:
(1)尽量设想挖掘的场景
收集数据是数据挖掘的第一步,首先需要判断应该记录、采集哪些数据。这第一步直接影响了能从数据中挖掘出什么样的知识。巧妇难为无米之炊,没有某方面的数据,也就无法从中进行相关的挖掘。但是,存储、处理数据是有代价的,提高数据挖掘效率的关键在于只记录、采集有用的数据。所以,要对收集数据的内容进行合理的判断,在此基础上将可能有用的数据全部记录、采集下来。要做到这一点就必须尽量对挖掘场景做出合理的设想。
让我们看一个实际的案例:某公司的工程师开发了一个互联网浏览器中的工具栏。用户安装了该工具栏后,在浏览器中的操作,如点击网页链接、拖动鼠标等,都会被记录下来。在得到用户允许的前提下,这些数据会被传送到该公司的云端服务器。工具栏记录的用户浏览器使用行为数据,可以用在设计或改进互联网搜索引擎等方面。工程师对工具栏应该记录的数据内容进行了精心的设计,考虑了各种可能的情况,希望收集的数据能支持多种挖掘任务。用户的 IP地址、网页链接的点击时间等都被记录下来。然而,他们忘记了记录一个重要的信息:用户关闭浏览器的时间。这样,从数据中就无法判断用户何时结束了搜索或浏览行为,给之后的挖掘带来了一定的困难。
判断收集什么样的数据牵涉到如何认识世界这一哲学问题。哲学家康德(Kant)的一个核心观点是:我们所认识的世界是我们用自己拥有的理论对自己观察的现象做出的解释。纸上的一条墨迹,数学家把它看成平面上的直线,中国人把它看成汉字“一”。
我们怎样看世界决定了我们看到的世界是什么样的。只有对数据挖掘的内容有比较清晰的想法,才能对数据的收集范围有比较明确的界定。所以,尽量设想挖掘场景是必不可少的。
(2)尽量多方面收集数据
我们很难事先穷尽所有可能的挖掘场景,所以也就很难完全准确地判断应该收集哪些数据。作为弥补措施,可以考虑在存储、处理能力允许的条件下,尽量多方面收集数据。更多的数据总有可能对数据挖掘产生某些帮助。
回到工具栏的例子。工具栏记录的用户访问互联网的行为数据,能大大帮助搜索引擎提高对用户行为和意图的理解,提高搜索结果的相关性。研究发现,从用户在浏览器中的简单操作中可以发现许多有用的信息,帮助推断用户的兴趣、意图等。比如,从用户在浏览器中的鼠标移动轨迹中可以估计出他对网页的关注范围,从用户对网页链接的点击可以猜测出他的信息需求,从用户对窗口的关闭动作可以推测出他的兴趣转移。
(3)尽量将数据整合
让数据发挥更大作用的办法是将相关数据整合在一起,用于挖掘。数据整合有助于了解事物的全貌,发现未知的关系,提升预测的准确率。局部数据只是“罗之一目”,而整体数据才是“弥天大网”。
例如在互联网搜索中的用户行为基本模型中,互联网搜索中用户的行为数据都可以纳入其中,对用户的行为进行描述。在现实中,该模型的数据需要从多个数据源中获取,并通过整合处理而得到。
互联网搜索中有许多用户。每个用户会多次使用搜索引擎,每次使用完成一个查询任务,就构成一个会话(session),每个会话又由多个查询组成。在每个查询中,用户提交查询语句,搜索引擎返回结果,用户根据其内容判断网页的相关性,点击相关网页的链接浏览网页。在浏览过程中,用户可能按照网页的链接浏览多个网页,之后返回搜索结果,也可能直接离开。用户在浏览器中的动作可以通过工具栏记录下来,传送给搜索引擎。但是,基于效率等方面的考虑,搜索引擎返回的结果往往不会被工具栏记录,而仅仅记录搜索的结果。所以,将客户端与搜索引擎端的数据进行整合成为互联网搜索数据挖掘工作中的一项重要任务。但浏览器记录的用户ID与搜索引擎记录的用户ID往往不一致,将同一用户的不同ID联系起来并非易事。
(4)悉心观察数据特征
决定从数据中挖掘什么,首先需要对数据进行认真细致地观察,从而对数据有深入的了解。只有对数据有深刻的认识,才有可能从中挖掘出深层的知识。
美国在线公司(AOL)隐私泄露事件是一个著名的“人肉数据挖掘”案例。为了促进研究,AOL于2006年发布了搜索查询数据集,其中包括 65万用户3个月中在 AOL搜索提交的两千多万查询。为了保护用户隐私,AOL将用户的个人信息删除,给每个用户赋予一个ID。《纽约时报》的一个记者对AOL数据进行了观察、分析,利用电话号码簿,很快确定出ID为 4417749的用户是居住在美国佐治亚州的62岁的寡妇西尔玛·阿诺德。这位记者通过提交“landscapers in Lilburn, Ga”的查询,推断此人大概住在佐治亚州的利尔本(Lilburn)。记者又提交了多个含有“Arnold”的人名查询,揣测此人大概姓 Arnold。该记者又搜索了“60 single men”,判断此人是 60 岁左右的妇女等。
AOL 事件说明了数据挖掘中保护用户隐私问题的重要性,同时也说明了只要认真观察数据,可以挖掘到许多深层的信息。
4、大数据分析语言
数据分析的语言和工具千万种,综合起来万变不离其宗。无非是数据获取、数据存储、数据管理、数据计算、数据分析、数据展示等几个方面。而被提到频率最高的如Excel、R、Python、SPSS、SAS、SQL等。对于大数据来说,最常用的语言一共有三个:SQL、R和Python。
R是一款优秀的开源统计应用语言,它直观、易用、低成本,而且还有庞大的社区支持,随着数据挖掘技术的兴起,R 语言得到了广泛的应用。
R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。R语言是主要用于统计分析、绘图的语言和操作环境。R本来是由来自新西兰奥克兰大学的Ross Ihaka和Robert Gentleman 开发(也因此称为R),现在由“R开发核心团队”负责开发。R是一套完整的数据处理、计算和制图软件系统。其功能包括:数据存储和处理系统;数组运算工具(其向量、矩阵运算方面功能尤其强大);完整连贯的统计分析工具;优秀的统计制图功能;简便而强大的编程语言:可操纵数据的输入和输出,可实现分支、循环,用户可自定义功能。
与其说R是一种统计软件,还不如说R是一种数学计算的环境,因为R并不是仅仅提供若干统计程序、使用者只需指定数据库和若干参数便可进行一个统计分析。R的思想是:它可以提供一些集成的统计工具,但更大量的是它提供各种数学计算、统计计算的函数,从而使使用者能灵活机动的进行数据分析,甚至创造出符合需要的新的统计计算方法。
Python在这些工具里面是综合功能最强大的,但是这些功能分散在第三方库里面,没有得到有机的整合,所以学习成本还是比较高的。Python与R不同,Python是一门多功能的语言。数据统计是更多是通过第三方包来实现的。
关于大数据分析,本次是第一次课,后面会专门讨论数据挖掘、机器学习,以及相关大数据分析语言的。
参考文献:
程学旗, 靳小龙, 大数据系统和分析技术综述, 软件学报, 2014,25(9): 1889-1908.
张俊林, 大数据日知录: 架构与算法, 电子工业出版社, 2014.
下面是本次课程的讲义,欢迎大家观看~(同样,最后有PPT下载的方法)
注:如需该课件,可以在微信公众号中回复“大数据09”进行获取,欢迎订阅本公众号!
往期精彩文章回顾:
[正式版]《大数据原理与实践》第7次微信公开课:Management
简介 | 产品 | 技术 | 案例集 | 培训 | 白话大数据评测 投资 | 新手上路 | Holodesk | TED视频金融 | 电力 | 视频监控 | 运营商 |交通 税务 | 电商 | 智能金融 | 医疗 | 快递