译者:王群锋(简介附后)

译文未经编辑

总体和样本

让我们先来统一一些术语和概念。

在经典统计学理论中,有总体样本之分。提起总体,人们会马上有以下反应:美国人口总数3亿、世界人口总数70亿等。但是,在统计推断中,总体并不特指人口,它可以是任何对象,任何单位,比如推特的条目、照片、或者星星等。

如果我们可以度量和提取这些对象的某些特征,就称之为对总体的一组观察。习惯上,使用N表示对总体的观察次数。

假设总体为去年“巨无霸”公司员工发送的所有电子邮件,则对该总体的一次观察可以是发信人的姓名、收信人列表、发信日期、邮件内容、邮件字数、邮件中的句子数、邮件中动词的个数、从邮件发出到获得第一次回复的时间等。

采样是指取总体的一个子集,对其进行观察,从而得出关于总体的分析。采样的方法多种多样,有些采样方法会引入偏差,样本不再能够表达总体的特征。当这种情况发生时,通过对样本进行分析得到的结论常常是错误和失真的。

在上述“巨无霸”公司的例子中,可以随机抽取全部员工的1/10,以他们所发的邮件组成样本,或者随机选取一天,以该天内所发邮件的1/10作为样本。这两种抽样方式都是合理的,而且样本的数量也是相等的,但是,如果你据此计算每人发送电子邮件的数量,进而估计出“巨无霸”公司员工发送邮件的分布情况,那么在上述两种采样方式下,你将会得到完全不同的答案。

这样一个简单的问题,由于采样方式的不同,结果都会产生失真,那么对于那些复杂的算法或模型,如果你没有把获取数据的方式考虑进来,情况又会怎样?

在大数据时代,我们有能力记录用户的所有行为,我们可以观察一切,那么,此时做总体和样本的区分还有意义吗?如果我们已经拥有了所有的电子邮件,干嘛还要采样?

这些疑问直抵问题的核心,对此,我们有如下几个方面需要做以澄清。

采样可以解决一些工程上的挑战

在时下流行的关于大数据的讨论中,企业的解决方案重点在使用Hadoop等分布式技术去解决大数据带来的挑战,但他们却忽略了采样作为一种手段同样有效。事实上,在Google,软件工程师、数据科学家和统计学家时刻都在用到采样。

使用多少数据取决于你的目标,做分析或推断,你不需要所有的数据。而当你试图在界面上展示一个用户的信息时,你可能需要该用户的所有数据。

偏差

即使我们拥有了Google、Facebook或Twitter的所有数据,基于这些数据所做出的统计推断不应该延伸到其他不使用这些服务的人群,即使针对使用这些服务的人群,他们某一天的活动也可能是不遵从这一推断的。

微软研究院的Kate Crawford女士在她的演讲“Hidden Biases of Big Data”中提到,如果仅对飓风桑迪到来前后的推特做分析,可能会得出这样的结论:人们在飓风来临前在购物,飓风过后在聚会。然而,这些推特大部分来自纽约人。首先,他们是推特的重度用户,而这时沿海的新泽西人正在担心他们的房子会不会被飓风吹倒,他们哪里还有时间和心情去发推特呢?

换句话说,如果你使用推特数据来分析桑迪飓风,可能会觉得它危害不大。你的结论只对一部分推特用户适用,他们受桑迪飓风的影响很小,还有时间来发推特,但他们无法代表一般意义上的美国大众。

同样在这个例子中,如果你不了解上下文或者对桑迪飓风一无所知,你就不可能对数据做出合理的解释。

采样

让我们再来看看总体和样本在各种语境下的含义。

在统计学中,我们经常使用数学过程去描述总体和样本的关系,我们对数学结构和产生数据的过程做出假设,对该过程的每一次观察即产生一个样本。

以“巨无霸”公司的邮件为例,如果我们随机抽取阅读一些邮件,就会产生一个样本,如果我们再次抽取,又是一次新的观察,又会产生一个新的样本。

这种采样过程中的不确定性有一个学名:取样分布。就像2010年上映的,由莱昂纳多·迪卡普里奥主演的《盗梦空间》一样,这是一个梦中梦。因此,也可以将“巨无霸”公司的电子邮件想象成一个样本,而不是总体。这些电子邮件是一个更大的超级总体的样本(此刻,我们有点哲学家附体),如果那天猜硬币做选择,可能现在得到又是另一组电子邮件。

在这里,我们使用一组电子邮件作为样本,来推断产生数据的过程的某些特征,也就是“巨无霸”公司员工的电子邮件书写习惯。

附:漫谈数据科学(摘自本书“前言”)

{--:}Rachel Schutt

2012年秋天,我在哥伦比亚大学开设了一门新课:数据科学导论。数据科学是工业界的一个新兴领域,在学术界尚未有一个准确的定义。那数据科学到底是什么呢?我将这门课的讲义集结成书,试图回答这一问题。

为了帮助读者理解本书及其缘起,我觉得有必要简单介绍一下我自己,和我设计并教授数据科学导论的初衷。

初衷

很简单,这是一门我期望在我上大学时就有的课。那是上世纪九十年代,数据爆炸尚未开始,开设这样一门课也就无从谈起。当时我是一名数学系的本科生,受到的训练偏重于理论和严格的证明,这样的训练也不赖,它提高了我使用严谨的方式去解决问题的能力,但如果让我自己选择,我更希望能用这些技术去解决生活中的实际问题。

在大学和一个成为统计学博士的机会之间我徘徊良久,我一直在试图寻找自己的领域,我喜欢探究隐藏在宇宙中的模式,我喜欢解答有趣的谜题,我希望可以将自己的这些能力物尽其用。之所以谈起这些,是因为现在很多学生觉得必须先知道自己这辈子到底想要干什么,我做学生时,不可能规划将来要从事数据科学相关的工作,因为那时根本还没有数据科学这样一个领域。因此我建议这些学生,或者其他愿意听我在这唠叨的人:大可不必。不必现在就规划好未来,走点弯路也没什么,谁知道这一路上你会发现什么呢?我拿到统计学博士学位后,在Google工作了几年,在这几年中,数据科学,数据科学家这些术语才在硅谷流行起来。

这个世界有许多问题尚未解决,对于那些对数字敏感且愿意开动大脑去解决这些问题的人充满了机遇。我的目标是帮助学生们成为这样的人:能批判思考的人,能用创新思维去解决问题的人,对世界充满好奇喜欢问问题的人。我可能不会去构建一个数学模型,为治愈癌症贡献一份力量,或者揭示出自闭症的奥秘,或者用来预防恐怖袭击。但我的学生有一天会,我教给了他们这些知识,我完成了我的使命。写作此书,使我有机会将毕生所学传播给更多的人,我希望他们能从中得到激励,或者学到一些有用的工具,来让这个世界变得更好,而不是更坏。

对数据进行建模并非不存偏见,你会谨慎挑选问题,在你的模型中做出恰当的假设,选择合适的矩阵运算并设计算法。

世界上也并不是所有的问题都需要用数据科学或技术手段来解决,一个好的数据科学家能甄别出哪些问题适合用数据科学解决,构建出对应的数据模型或者编写代码去解决它。但我更喜欢一个具备多学科研究能力的团队,他们中有数据处理方面的专家,有对数字敏感的头脑,有编程高手,这样的团队可以走得更远,这样的人我们就可以称之为数据科学家。

课程的起源

我在2012年3月份提议开设此课,主要原因有三。其中第一个原因最重要,我将会花最大篇幅去阐述。

原因一: 我想告诉我的学生工业界的数据科学家是怎么工作的,我要教会他们成为一个数据科学家需要具备的技术。

在为Google+工作时,我所在的数据科学团队由一群身怀绝技的博士组成:有一位社会学家,一位工程师,一位物理学家和一位计算机科学家,我是一名统计学专家。我们属于一个更大的团队,这个团队有很多天才数据工程师,他们实现数据管道,基础架构,分析面板和一些实验性质的架构(用来做A/B测试)。我们的团队组成扁平化,我们有海量的数据,我们每个人都是各自领域的专家,我们精诚合作,做出了很多不可思议的事,包括预测模型的建模,实现算法原型,揭示出隐藏在数据背后的模式,这些对我们的产品影响深远。

使用数据驱动做决策,我们提供真知灼见;分析因果关系,我们发展出了新的方法论。这些全仰仗世界一流的工程师和基础架构。每个人都为团队引入了专家级的技能,包括编码,软件工程,统计学,数学,机器学习,通信,可视化,数据探索和分析,对数据的敏感,直觉和对社交网络的专家级理解。

没有人精通所有的事情,但聚在一起我们无所不能,我们认识到了每种技能的价值,因此我们成功了。我们的共同点是守信,对解决有趣的问题充满好奇心,对待新的科学发现既保有适度的怀疑又充满激情。我们把工作放在心上,对数据背后的模式充满了好奇。

我居住在纽约,希望把我在Google公司的工作经验教给哥大的学生们,我知道他们需要这个,而且,我也喜欢教书。我想教给他们我从工作中学到的东西,我也希望他们能从纽约新兴的数据科学社区受益。

这门课程会邀请一些客座讲师,他们都是些数据科学家,有些来自工业界,有些来自学术界,每个人都具备多种技能,我希望通过这样一种多样性的组合,会让学生们对数据科学有一个更全面的认识。

原因二:数据科学有希望成为一门极具研究价值的学科,它会影响到人们生活的方方面面。为此,哥大和Mayor Bloomberg在2012年7月共同创建了一个数据科学的研究机构。这门课是在发展数据科学理论方面的一次尝试,试图让数据科学成为真正的科学。

原因三:工业界的数据科学家经常说大学不是个学习数据科学的好地方,我想挑战一下这种言论。我的学生叫人印象深刻,他们正在成为一流的数据科学家,我的课堂就是一个数据科学家的孵化器,事实上,本书中的一章内容就是由我的学生们贡献的。

本书的起源

如果不是Cathy O’Neil,就不会有这本书,她是一位数学家,后来转型为一位数据科学家,她的个人博客mathbabe.org很受欢迎,在博客中的“关于自己”部分,她说有一天希望知道一个非科班出身的数学家能如何使这个世界变得更加美好。在我向哥大提议开始数据科学导论这门课程时,恰好认识了Cathy,那时她正在一个初创公司工作,职位是数据科学家。她鼓励并协助我开设这门课,自愿在其博客上为我摇旗呐喊。起先我并不喜欢这么做,我是一个内向的人,Cathy说服了我,这是一个机会,一个去向公众解释什么是真正的数据科学的机会,而不是像商业广告那样对其肆意炒作。

我在哥大的每一节课,Cathy都会坐在第一排,并不时提出问题,她还是我这门课的客座讲师(见第六章)。Cathy对这门课贡献甚巨,她提醒我们在建模时需要的某些道德考量,她将这门课的内容发布到她的博客上,她鼓励我也开设了一个博客,用来和我的学生直接交流,我在上面也会总结自己的教学经验,这或许会帮到其他教授。Cathy的博客和我的一些博客成了本书的原始素材,我们在这一基础上经过修改加工,再加上一些其他资料,终成此书。

组织结构

本书的组织结构遵循我在哥伦比亚大学的数据科学导论课程,在第一章,我们将会回答“什么是数据科学”这个问题,同时以结构化的方式介绍数据科学的工作流程。第二章和第三章对统计模型和机器学习算法做一概览,它们是后续章节的基础。第四到五章以及第八章将会针对特定案例,深入学习一些模型和算法。第七章讲述如何从数据中提取有效信息以及在模型中创建统计变量。

第九章和第十章将深入一些在学术界尚未被广泛教授的内容:数据可视化和社交网络。第十一章和第十二章将从预测模型转而介绍因果分析。第十三章和第十四章介绍数据预处理以及工程方法。第十五章是我的学生们讲述他们的故事,他们是怎样学习数据科学的。第十六章展望数据科学未来的发展。

本书内容

这不是一本关于机器学习的教科书,本书是从多角度对数据科学的一种审视,是对数据科学现有疆域的一次调查。在本书中我们将描述数据科学的现状,将看到世界一流的思想家是怎么工作的,怎么做数据科学方面的研究。同时,我们还将从学术角度,定义什么是数据科学。

希望本书能够被那些善待它的人充分利用,去解决那些重要的问题。

这门课在哥伦比亚大学上完后,我听到了这样的评价:它是一门从人文角度讲解数据科学的课程。我们不仅关注工具、数学、模型、算法和代码,同时关注我们人类自身。我喜欢如下对以人为本的定义:那些以人为本的人对于人类的福利,价值和尊严有着强烈的好奇心和严重的关切。如何在数据科学中体现以人为本?在你建模和设计算法时,想想哪些东西是人所具备而电脑不具备的,比如基于道德的判断;向世界公布一种新的统计模型前,想想会为他人的生活带来怎么样的影响。

如何阅读本书

本书循序渐进,阅读时最好从前到后,按次序阅读。如果你的统计和概率背景不强,或者从前没有编写过程序,阅读本书的同时,如能阅读本章末尾附带的补充材料,查漏补缺,效果将会更好。全书为大家推荐了很多补充材料,当你阅读本书某个章节感到困难时,这或许由于你某些背景知识的缺失,或许由于我们的讲解不够清晰,这时你都可以求助这些补充材料,厘清概念。

书中的代码

本书不是一本手册,书中代码仅供示范,有时需要读者自己去亲手实践,实现某些算法,以期对其中的概念理解更加深入。

目标读者

虽然媒体把数据科学和数据科学家渲染成摇滚巨星般的存在,但别怕,你不必成为一个金融师才能进入这个行业,只要你热爱解决问题,热爱寻找数据背后的模式,你就可以用到数据科学。

具备各种知识背景的读者均可阅读本书,我们希望每位读者根据自己的专业背景都能从本书各取所需,每个人都能读出自己心中的哈姆雷特。

  • 有经验的数据科学家能从中认清自己和自己从事的行业
  • 统计学家能从中了解到统计学和数据科学的关系,或者他们仍然坚持过去的老态度:什么数据科学,这就是统计学嘛。我们也不介意这样的争论。
  • 有志成为数据科学家的金融,数学,和物理学博士们,或者只是希望加强他们自己的数据科学技能,能从本书中了解到他们需要学些什么。
  • 刚接触数据科学的学生将直接被扔进该领域的深水区,如果不能一下子理解书中内容,不要害怕,这是必经之路。
  • 对于那些从未使用过R或Python写过程序的读者,我们推荐The Art of R Programming by Norman Matloff(No Starch Press),在哥伦比亚大学选修过该课程的学生们也从实验讲师Jared Lander的讲解中获益良多,他的新书R for Everyone: Advanced Analytics and Graphics(Addison-Wesley)将于2013年11月上市。书中所有练习也可以使用Python的各种工具包实现。
  • 对于那些完全没有编程经验的读者,上述要求也适用,但你可能需要先阅读些基础的编程书籍,如下两本书是个不错的选择: Mark Lutz 和 David Ascher 的 Learning Python(O'Reilly) ,Wes McKinney的Python for Data Analysis(O'Reilly) 。

先修科目

我们假设本书读者学过线性代数,一些概率论和统计学,还有一些编程经验。没有也没关系,我们试图让本书在内容上自包含,读者可以从下一节的补充材料中针对性阅读,弥补自己在某些方面的不足。

补充阅读

数据科学作为一个新兴领域,根植于其他学科:统计推断,算法,统计模型,机器学习,实验设计,优化理论,概率论,人工智能,数据可视化和探索性数据分析。每门学科都值得花好几门课或好几本书专门讲解,这是写作本书的一个极大挑战,我们将这些补充阅读附在后面,希望读者在需要时可以补充阅读。

数学

  • Linear Algebra and Its Applications,Gilbert Strang著(Cengage Learning)
  • Convex Optimization,Stephen Boyd和Lieven Vendenberghe著(Cambridge University Press)
  • A First Course in Probability(Pearson)、Introduction to Probability Models(Academic Press),Sheldon Ross著

编程

  • R in a Nutshell,Joseph Adler著(O'Reilly)
  • Learning Python,Mark Lutz和David Ascher著(O'Reilly)
  • R for Everyone: Advanced Analytics and Graphics,Jared Lander著(Addison-Wesley)
  • The Art of R Programming: A Tour of Statistical Software Design,Norman Matloff著(No Starch Press)
  • Python for Data Analysis,Wes McKinney著(O'Reilly)

数据分析与统计推断

  • Statistical Inference,George Casella和Roger L. Berger著(Cengage Learning)
  • Bayesian Data Analysis,Andrew Gelman等著(Chapman & Hall)
  • Data Analysis Using Regression and Multilevel/Hierarchical Models,Andrew Gelman和Jennifer Hill著(Cambridge University Press)
  • Advanced Data Analysis from an Elementary Point of View,Cosma Shalizi著(Cambridge University Press)
  • The Elements of Statistical Learning: Data Mining, Inference and Predictio,Trevor Hastie、Robert Tibshirani和Jerome Friedman著(Springer)

人工智能和机器学习

  • Pattern Recognition and Machine Learning,Christopher Bishop著(Springer)
  • Bayesian Reasoning and Machine Learning,David Barber著(Cambridge University Press)
  • Programming Collective Intelligence,Toby Segaran著(O'Reilly)
  • Artificial Intelligence: A Modern Approach,Stuart Russell和Peter Norvig著(Prentice Hall)
  • Foundations of Machine Learning,Mehryar Mohri、Afshin Rostamizadeh和Ameet Talwalkar著(MIT Press)
  • Introduction to Machine Learning (Adaptive Computation and Machine Learning),Ethem Alpaydim著(MIT Press)

实验设计

  • Field Experiments,Alan S. Gerber和Donald P. Green著(Norton)
  • Statistics for Experimenters: Design, Innovation, and Discovery,George E. P. Box等著(Wiley-Interscience)

可视化

  • The Elements of Graphing Data,William Cleveland著(Hobart Press)
  • Visualize This: The FlowingData Guide to Design,Visualization, and Statistics,Nathan Yau著(Wiley)

王群锋(本书书译者) 2004年毕业于西安电子科技大学(本科),后在武汉邮科院和上海一家小外企工作过5年,主要从事电信网元管理系统的开发,09年回到西安,加入西安的SPSS,一家专门从事数据统计及预测软件开发的公司,10年公司被IBM收购,在这里工作至今,主要从事统计模型可视化方面的工作,就是这本书中提到的visualization。除去日常工作,个人对各种技术保持着较强的好奇心,在IBM developerworks上发表文章多篇,在MOOC平台上也选修过几门课程并取得认证。

  1. 发表文章

  2. Udacity & Coursera上选修的课程

  3. 如果对我的个人爱好感兴趣,可关注我的豆瓣及微博