探索性数据分析肖波中央民族大学探索式数据分析统计推理总体和样本建立模型概率分布探索式数据分析科学数据处理数据科学家的角色案例研究探索性数据分析所谓探索性数据分析(ExploratoryDataAnalysis,以下简称EDA),是指对已有的数据(特别是调查或观察得来的原始数据)在尽量少的先验假定下进行探索,通过作图、制表、方程拟合、计算特征量等手段探索数据的结构和规律的一种数据分析方法。数据每天都在产生我们生活的世界是复杂的,随机的和不确定的。同时它又是一个生成大数据的机器。当我们通勤于地铁和出租车时,当我们的血液流经我们的身体时,当我们通过浏览器在因特网购物、发邮件、完成工作和看股票时,当我们行动、饮食、与朋友谈话时,当工厂生产出产品时,所有这一切都在生成数据。1.统计推理一旦你持有了全部数据,你就某种程度上掌握了这个世界或抓住了世界的轨迹。但是你不可能在一个有几百万数据的大型Excel表或数据库上遍历,获取图形,理解现实和处理它所生成的数据。故你需要一个新的理念,去简化这些捕获的数据,使之更加容易理解,方法更加简洁,使得数据适合于建立数学模型和函数。这就是大家知道的统计方法。从现实到数据又从数据回到现实的全过程就叫统计推理。2.总体与样本总体是指某一事物的全体成员。它可以是任何对象,如推特、照片或星球的全体。如果我们可以测度这些对象的特征,我们就要有一个完整的观测集。通常用常数N来表示对于总体的观测数量。总体中的N个单独个体就是样本。获取样本的过程叫采样。3.抽样当我们抽样时,我们是抽取总体中的一个大小为N的子集,以便对总体进行推理和得出某种结论。从总体取得子集有各种不同的方法。你要确保合理的采样机制,因为它可能为数据带来偏差并扭曲结果。所以样本并不是总体收缩了的“小我”版本。一旦发生这种情况,你的所有结论都是错误的和歪曲了的。抽样案例研究在BigCorp公司邮件的案例中,你可以制作一个全体雇员的表,然后从所有他们已发送的邮件中随机选择十分之一。这些邮件就是你的样本。你也可以每天从发送的邮件中随机抽取十分之一作为你的样本。两个方法都是有道理的,两方法也都抽取了同样样本个数。但是如果你用得到的样本计算平均每个人发送的邮件个数和用样本来估算BigCorp公司每个雇员发送邮件数的概率分布,你也许会得到完全不同的答案。4.大数据时代的总体和样本大数据时代我们无时不在地记录所有用户的行为,我们就可以观察所有的事物吗?还需要考虑总体和样本吗?上例中如果我们取得了所有的邮件,我们还需要抽样吗?大数据也需要抽样在当前大数据的热门讨论中,人们主要聚焦于用Hadoop这样的企业解决方案来应对大数据引起的工程和计算挑战,忽略了抽样这一合理的解决方法。可是在Google公司软件工程师,数据科学家和统计学家一直在使用抽样方法。你需要多少数据取决于你的目标是什么。对于目标为分析和推理来说没必要取得全部时间的全部数据。而在有的情况下,出于服务目的,为了取得正确的信息以润色一个用户界面时(可视化图形),对于特殊的用户就需要全部信息。案例研究:大数据隐含的偏见如果你在飓风桑迪之前和之后立即分析数据。你会认为大部分人在桑迪前在超市购物,桑迪后在举办派对。可是事实是大部分推特用户是纽约人,首先他们比海岸新泽西人用户多得多。其次是海岸新泽西人在担心他们的房子受损去找维护材料,他们没有时间去上推特。换言之,你使用推特的数据来理解的话你会认为飓风桑迪没有那么糟糕。你得出这样的结论是因为你采用了飓风桑迪的推特用户数据的一个子集(他们不能代表全体美国人)。缺席的人因为形势所迫没时间去上推特。如果你没有结合实地情况和充分了解飓风桑迪,你将无法对结果做出正确的解释。5.样本与采样分布在统计学中我们经常用数学模型来模拟总体与样本之间的关系。故我们总是要做一些能反应真实的简化了的假设。用过程产生的数据来建立数学模型和图形。我们只观察生成过程中特殊的一部分数据,这就叫样本。由这种采样产生的不确定性有个名字叫:采样分布。6.采样取得的新数据类型(传统:十进制数值,二进制)文本:电邮,推特,报刊文章记录:用户级数据,时间戳事件数据,格式化登录文件地理位置信息:网络数据传感器数据图像、视频数据7.大数据的定义“大”是相对的。构造一个类似于1PB这样的阈值是没有意义的,它听起来太绝对。只有当数据的数据量大的成为一种挑战时才能称之为“大”。它是一个由于数据量大已经无法求解(内存,外存,复杂性,处理速度都无法满足)时的相对的术语。上世纪七十年代与现在的“大”意义完全不同。“大”指你无法在一台计算机上调试它。不同的公司和个人有不同的适合于他们的计算资源。若作为一个科学家他不能把数据匹配到一个计算机上时就可称之为大,一旦发生它必须去学习新的工具和方法。8.大数据时代不再需要采样吗?有人认为大数据时代特征是:搜集和使用大量的数据而不是采集少量样本可承受数据的混乱放弃追究原因他们进一步认为大数据不需要理解原因,只要给定足够大数据就行了。他们还认为不需要担心采样错误,因为它从字面上讲是沿着真理的轨迹走的。因为在大数据研究中:令样本个数“N=ALL”。真的能做到“N=ALL?事实上是从来做不到。我们往往失去了我们最应该关心的东西。例如就像有人说的那样,因特网监督从来未实施过。因为我们最想抓的非常聪明和技术精良的罪犯从来没有抓住过。因为他们总是先我们一步。大量例子中一个是选举夜间民意测验,即使我们绝对调查了每一个离开测验站的人,我们也任然没有把握谁会决定不来投票。对这些人我们本应该与之谈话使之了解投票意愿的。进一步说,我们关于N=ALL的假设是大数据时代最大的问题。上述案例中,人们不投票的原因包括没有时间,没有意愿和各种未说明的放弃投票的非正常原因。有些人可能做兼职工作并花费时间于通勤中,没有出现而使得统计投票时没有他们。9.数据不是客观的另外一个关于假定N=ALL的依据是数据是客观的。相信数据是客观的或“数据会说话”是完全错误的。而且要当心他们变换其他说法。你试图比较一下以完全相同的资格招收的男雇员和女雇员。你会发现女雇员更容易毫无前兆的离职。与男性比较她们会对工作环境提出更多负面反馈意见。你的模型将在下次招聘时在同样条件下倾向于男性。而没有去检讨你的公司在对待女性方面存在的不足。N=1对于N=ALL的一个极端说法是N=1。意思是样本的个数为1。在过去样本个数为1是很荒唐的事。你从一个单个的实体上无从做出任何推理。它是如此荒唐。但是N=1在大数据时代具有新的含义。对于一个人我们可以记录海量的信息。事实上,我们为了推理可能从他们的行为和事件上进行了采样(如电话,击键)。这就是用户级的模拟化。10.建立模型人类用不同表达方式来试图理解他们周围的世界,建筑物的体系属性通过蓝图和缩小的三维形式来表示。分子生物学家用三维可视化连接形式表示蛋白质的结构。数据科学家和统计学家则用代表数据的图形和结构的数学函数来描述数据生成过程中的不确定性和随机性。这种形式就是模型的概念。统计模型在你进行编程以前最好勾画一张图来显示怎么来处理与你的模型相关的内容。思考一下应首先考虑那些因素?谁影响了谁?什么引起了什么?如何检验它们等?但是不同的人有不同的思维方式。有的人就喜欢用数学术语来表示这些关系。数学表达式一般会含有一些参数,但是参数的值是未知的。在数学表达式中常数用希腊字母表示,数据用拉丁字母表示。例如你有两个数据x和y,它们之间具有线性关系,可以记作y=α+βx。不知道α和β的实际值。所以它们是参数。有的人喜欢首先用箭头画一个数据流图。显示事物间如如何相互影响和什么事多次发生。这在选择方程前给他们一个形象的图形理解。建模是一种艺术你有什么诀窍可以生成数据模型吗?事实上建模一半是科学,一半是艺术。尽管建模是所有事情的关键,遗憾的是你在哪里也得不到多少指导。你必须假定许多现实的隐含结构。这也是模型工作的一部分。我们应该有一个标准答案告诉你们如何做出选择和解释,但是现在还没有一个公认的标准。我们只能深思熟虑并反复地去修改它。11.探索性数据分析(ExploratoryDataAnalysis)一个启动的好方法是做探索性数据分析(EDA)。这就意味着对你的数据集通过绘图来建立直观感觉。EDA很有用,只要你不断尝试,出错和再尝试必有效果。最好的办法就是由浅入深,由简到繁。做你能想到的也许是最愚蠢的事,但它最终结果可能并不坏。比如你可以通过画直方图和散点图来开始观察数据。然后你就记下结果。也许结果会是错误的,但是这没有什么关系。接着按图形选择一个函数。写下来后你自己要仔细想:对这函数有什么感觉吗?为什么没有?将会有什么样的发展?一开始简单,逐步复杂化,做出假设并去验证。你可以使用发散的语句如“我假设我的用户自然地形成5个簇,因为我听到销售代表谈到他们时与五种不同类型人谈话。”。接着你就可以用你自己的话找出方程并开始编程。力求模型简单记住从简单开始总是好的。在模型的简单和精确之间有一个权衡。简单模型易于解释和理解。通常一个粗放的,简单的模型可达到你90%的目的且只花几个小时就可建立和匹配好。而作一个复杂的模型花几个月也就达到92%的目的。12.样本概率分布没有计算机的时代,科学家观察实际世界现象,对其进行检测,并且记下它频繁出现的数据的表现图形。经典的例子是人类的身高遵从正态分布,形状想一个锺的形状。也叫也叫哥西分布,这是由数学家高斯命名的。其他常用的形状在它们被观察到后都被命名(如普尔森分布和韦伯分布)。其他像伽马分布和指数分布由相应的数学对象而得名。一般是通过实验检测获取的形状来近似逼近于一个带有参数的数学函数。参数可以通过数据来估计。正态分布正态分布函数其参数μ是一个平均的中值,控制分布的中心(因为是对称分布)。参数σ控制分布式如何展开。这是一般的函数形式。在特定的实际世界现象里。这些参数都有具体的数值。它们是通过数据估计来取得。随机变量x或y可以指定一个概率分布p(x)。把x映射到一个正实数。为了使之成为一个概率密度函数,必须限制p(x)函数取值在曲线面积之下积分值.为1,则可解释为概率。一些常见的概率分布13.模型匹配匹配意味着使用观测到的数据来估计模型的参数。你用你的数据为证据来近似实际数学处理并产生数据。匹配模型经常涉及到优选法和算法。像最大似然法之类就可帮助取得参数。事实上,在你估计参数的时候它就是个估算器,意思是说它本身就是数据的函数。模型匹配好后你可以写成y=7.2+4.5x的样子。例子中告诉你两个变量之间的关系,根据你的假定,它们是一种线性模式。匹配好模型是在你开始编程的前提,你的程序将要读入数据,你要指定你在选择的函数。R或者Python语言将使用内置的优化方法给出相应数据最好的参数值。错误匹配你会被反复提醒关于错误匹配的问题,这个问题这会成为你的梦魇。过度匹配是一个术语,用来指你用一个数据集来估计你的模型,但是你采集的样本并不适合于你的模型。14.探索性数据分析(EDA)方法EDA的基本工具是画图和综合统计学。一般讲,它是研究数据的系统化方法。画出变量的分布(直方图),画出数据的时间序列,变换变量,使用矩阵研究变量间的关系,生成综合条件结果。很少去计算平均值,最小最大值等。EDA需要的工具也很多,你想要理解数据。理解它的形状,根据你的理解去处理数据。EDA是你分析数据的工具。它不能证明任何事情。15.EDA的作用凡是做数据分析的人都要先做EDA的主要理由是为了得到数据的灵感。为了做分布函数的比较,为了审验数据(确保数据达到你期望的规模,符合你要的格式),去发现数据丢失,数据超界和总结数据的特征。数据是由日志生成的。EDA也可帮助调试处理。例如数据的模式在登录时可能是错误的需要修改。如果你不调试纠正问题,你将会认为的模式是真实的。我们一起工作的工程师在这些方面总会对你很有帮助。最后要说,EDA帮助你确保产品符合最初的要求。16、EDA与可视化的区别尽管EDA牵扯到