《数据科学家修炼之道》笔记

原创 2018年04月16日 20:02:49

【美】 Zacharias Voulgaris 吴文磊 田原 译


有价值的资源:


1.有用的网页链接
http://www.Kaggle.com 标签:人际网络、大数据分析竞赛、找工作
http://datascience01.wordpress.com 标签:新闻


2.相关文章
http://flowingdata.com 标签:数据科学家的职责


目录

第一章 数据科学与大数据

要点:

  • 大数据的4个V的维度:体量、高速、多样以及精确性
  • 数据科学家是那些将数据整理出规则的人。通过利用最新的 技术和原理,他们可以从中导出可操作的信息,通常是推出 一个数据产品。
  • 数据科学家的职务第一次在文章中出现是在2005年,而它在2009年开始变得炙手可热。在哈佛商业评论的一篇文章中,数据科学家被称为21世纪“最迷人”的职业。

第二章 数据科学的重要性

要点:

  • Drew Conway在2010年的9月创作的著名的韦恩图,有效的总结了数据科学的本质。 关于数据科学的韦恩图

  • 数据科学带来了许多新的规则,它们改变了我们的传统处理数据的方式,主要有如下几个。

  • MapReduce
  • Hadoop分布式文件系统(HDFS)
  • 高级文本分析
  • 大规模数据编程语言(如Pig、R、ECL等等)
  • 替代性数据库结构(如HBase、Cassandra、MongoDB等等)

第三章 数据科学家的类型

要点:

  • 人们总结了5种不同类型的数据科学家

  • 数据开发者。他们是编程专家,但他们可能缺少数据科学家的其他部分的技能,通常来自于IT行业。

  • 数据研究者。他们是数据分析的专家,同时他们也能处理机器学习以及其他领域的最新技术。他们通常拥有博士学位,而且正在或曾经从事着学术研究。

  • 数据创意师。相比于前面两个类型的数据科学家显得更为全面,偏爱于使用开源软件,而且多才多艺。他们来自于各行各业,尽管通常来说,他们已经是数据科学家了。
  • 数据商务人士(即高级数据科学家)。数据科学家的最高等级,同时常常担任管理角色,相较于数据科学本身,他们更多地接近于商务世界。通常他们具有包括管理学学位在内的多重背景。
  • 混合/普适类型。这一类的数据科学家是最为平衡的,他们同时或多或少地培养了数据科学所需的各个方面。他们多面发展,具有各个类型的背景,但在经验的广度上,都亚于数据商务人士。通常,混合/普适的数据科学家会晋升为数据商务人士。

第四章 数据科学家的思维体系

要点:

  • 数据科学家所具有的最重要的特质
    1.好奇心
    2.乐于实验
    3.创造力与系统性工作的能力
    4.沟通能力
  • 数据科学家所具有的主要的素质与才能
    1.建模
    2.解决问题
    3.快速学习
    4.适应性
    5.团队合作
    6.变通
    7.研究
    8.关注细节
    9.报告

第五章 技术资质

要点:

  • 你需要熟悉一个或多个面向对象编程语言,例如java和perl。掌握它们中的至少一个语言是必必需的。
  • 拥有一个技术性学科的博士学位在进入数据科学领域会显得十分有用,因为它可以补偿你工作经验的不足,但这并不是一个必备的先决条件。
  • 你需要具备一些对数据科学家工作所特有的专业化知识。
    1.对数据分析工具足够的了解(例如,R,SPSS,SAS,Stata或Matlab)并掌握他们中的至少一个工具。
    2.大数据存储架构经验()例如,Hadoop,Hive等。
    3.其他。数据可视化,关系型数据库,用户建模,大数据集成处理系统。同时还要有大数据领域的数据集的工作经验。
  • 与时俱进。

第六章 经验

要点:

  • 获得最初工作经验的方法如下所示,但不仅限于此。
    1.在Kaggle上参加一些数据科学竞赛,可以是以团队形式参加。
    2.获得一个与之相关的实习职位。
    3.如果你是一个硕士生,你的论文案例可以是一个有数据相关问题的公司。
    4.在数据科学团体中做志愿者。
    5.追随一位导师,例如在DataScienceCentral里的那种。
    数据科学中心网站你可能会遇到这样的机会。

第七章 社交圈

要点:

  • 在获取大数据科学领域以及其他相邻的领域中最近的革命性技术方面,社交圈可以是一个无价的资源。
  • 数据科学家需要立足于现实,这可以通过社交圈去保持与商业世界的关系来达到。这可以帮助他更好地了解需要什么,并且除了带来工作机会之外,还可以让自己触及有趣的商业机会。

第八章 所用的软件

要点:

  • 数据科学家在日常工作中会利用各类工具,本章介绍了其中最具有代表性的,包括:Hadoop/Spark、面向对象编程语言(例如java)、数据分析平台(例如R)、可视化软件以及一些辅助工具(例如GIT和Oracle)。
  • Hadoop是大数据软件界的凯迪拉克,它的套件有几类组件组成,包括文件系统(HDFS)、将数据分析到计算机集群的方法(MapReduce)、机器学习程序(Mahout)、编程语言(Pig)、数据库程序(Hive、HBase等)、调度器(Oozie)、元数据和数据表管理框架(HCatalog)以及调试管理器和协同程序(Zookeeper)等
  • Hadoop套件有很多替代方案,例如Storm、Spark、BashReduce、Disco project..
  • 作为数据科学家,你应该能处理至少一个面向编程语言,例如java、C++、Ruby、Python、C#等。面向对象语言目前是分布最广的编程语言范式,尽管最近有一股面向函数型语言的风潮涌动。
    -Tableau则是数据可视化软件中最好的选择,尽管还有类似于Spotfire、Qlikview、Brist等。
    其它一些程序值得你花时间去了解,GIT、Oracle、MS Excel等。

第九章 学习新知与解决问题

要点:

  • 在线课程,特别是MOOC,是最能增长和改善你对各种主题知识的途径之一。
  • 数据科学小组是一个学习领域新知的既有效又充满乐趣的地方。你需要找到一个举办大量活动的小组,有大量活跃在数据科学领域内的成员,同时与小组内的其他成员积极地参与交流。

第十章 机器学习与R语言平台

要点:

第十一章 数据科学的处理流程

重点:

数据分析的主要步骤可以总结成以下7个

  • 数据准备。数据准备就是通过数据清洗和标准化将原始数据准备成便于之后步骤处理的形式。这一步骤也包括数据格式的识别转换以及数据的读取。
  • 数据探索。“数据探索是数据分析者通过有效的信息搜索的过程来整合信息以及得到真实可信的分析结果的过程”(www.Techopedia.com)。这一过程包括通过检索数据来找到有用的模式和隐藏规则,发现重要的变量特征,画出简单的图以及识别出这一批数据中有什么有意思的信息以及确定之后的研究方向。
  • 数据表示。根据《麦基尔-科技术语词典》一书,数据表示是“数据在计算机以二进制的形式存储的方法”。这一过程是将各种原始变量数据通过特定的计算机存储结构高效的转换存储在计算机中的过程,在存储空间利用和之后的利用过程中都尽量达到最优化。
  • 数据发现。这一过程旨在通过提出假设和统计检验的方式来发现数据中的各种潜在模式、关联关系等。这其中要用到很多统计知识以及个人直觉来从大量无规则数据中找到真正有显著意义的结论。
  • 数据学习。这一过程主要是通过统计学和机器学习的方法在数据中找到有用的模式和规律。它的目标是使找到的结论尽量的能被运用到更多地数据和实际生活中,并且形成一个数据产品的雏形。
  • 开发数据产品。这可能是所有步骤中最重要的一个:基于已有的数据开发一个产品,并将其与其他人分享。根据Hilary Mason的说法,一个数据产品是“一个由数据和算法组合而成的产品”。
  • 洞察、交付和可视化。这一部风的作用是将产品呈现给最终的用户,并且接受用户反馈、微调程序以及计划产品升级的方案。通过突出重点来完成数据产品的可视化并从中获得灵感,进而开始完成新一轮的数据科学工作。

第十二章 所需的具体技能

要点:

-从一名学生、面向对象编程程序员、软件开发工程师或者其他与数据相关领域工作人员升级为数据科学家的过程并没有想象中那么复杂,但是你需要在此过程中制定合理的计划和目标,并且要个要求自己去完成你的计划。

  • 作为一名面向对象程序员,你需要学习:
    1.学习向量化概念
    2.学习类似于R与Matlab之类的数据处理工具
    3.学习统计和机器学习
    4.熟悉大数据分析平台,例如Hadoop
    5.理解用户是怎么想的,并且尝试去思考用户的需求
  • 作为一名机器学习或者人工智能方面的从业者,你和统计出身的人差不多,同样学习统计学以及更好的编写程序,但同时,你需要学习一些大数据处理技术,以及商业素养和嗅觉,最好按这个顺序学习
  • 如果你恰好对于统计和机器学习都比较了解,那你应该花更多地时间磨练自己的编程技术,并且学习一些大数据的分析平台和工具,然后培养自己的商业思维。
  • 作为一名比较专业的在数据相关领域工作过的人,你可能已经比较熟悉各种类型的数据以及数据结构了,所以你应该花更多的时间在面向对象编程、数据可视化、数据分析、交流沟通的能力上,并且最好获得更多的实战经验和数据处理经历。
  • 如果你是一名学生,你需要制定计划,不偏科而且循序渐进的学习所有的重要的数据科学知识、数据分析、编程、大数据技术、商业技巧等。在此之前,我们强烈建议你先认清自己的优势和劣势,然后再制定学习计划。
  • 最后就是,无论你是什么背景出身的人,你都应该花时间锻炼自己的交流沟通能力,因为它们对于数据科学家来说是一项非常重要的技能。

第十三章 数据科学职位哪家寻

要点:

  • 在你开始你的求职之旅之前,你一定要非常清楚自己想要一个什么样的工作,以及自己可以在那些方面做出让步(工资、定居等)
  • 最有效的一种寻找工作的方式就是直接与公司取得联系,包括以下几种:
    1.研究这个公司并且研究清楚该公司的大数据平台和技术目前是什么水平。
    2.找到最合适的求职时机,伺机而动。
    3.学生最好申请当实习生。
    4.与公司内部人员取得联系。
  • 专业的交际圈也是寻找工作的一种好方法。这其中包括了与专业人士的联系、数据科学会议以及社交网站上与数据科学有关的小组。

第十四章 自我展示

要点:

  • 重视招聘者的需求是你在准备面试的过程中一定要记在心里而且时时思考的问题。尤其是,你一定要清楚招聘者是想要如何利用大数据,挺清楚他们对于想要招聘到的人的需求。并且要准备好跟面试官解释你可以用自己所学来提供出有利于公司发展的成果,同时要注意交流技巧。多问问题,并表现出你对公司和职位的兴趣。
  • 让自己从竞争者脱颖而出是非常重要的。你需要通过展示自己全面的技术、精湛的大数据相关知识,以及一些非技术方面的优势来让自己从一群固步自封的数据从业人士(例如数据库管理员、商业智能分析师等)中脱颖而出。
  • 独当一面是指在任何一个行业中成为专家所必须具有的能力,而在数据科学领域,尤其如此。这意味着你可以在没有任何指导的情况下,建立工作小组、领导工作小组、设计分析方法、管理进度和技术,并在整个过程中很好地组织大家完成这一切。这对你进入公司之后的晋升是非常重要的。

第十五章 自由职业数据科学家之路

要点:

  • 想要成为一名自由职业的数据科学家,你几乎需要掌握一名普通公司的数据科学家会的所有技术,此外要记住你的工资一般是按小时结算的,并且项目一般有一定的时间限度。
  • 除了数据分析之外,作为一名自由职业的数据科学家,你还可以提供一些其他的服务。在你的常规工作之余,你还可以做的事情有如下几种。
    1.编程服务。
    2.数据清洗服务。
    3.指导公司人员或学生。
    4.指导学生论文。

第十六章 职业数据科学家的案例学习

案例:
Raj Bondugula博士…

Raj Bondugula博士给新手数据科学家的建议是:“在某个方面成为该领域的专家,可以是统计,也可以是机器学习或者java编程,然后再一件接一件地慢慢尝试更多的事情”。你也需要接受别人的帮助,因为你不可能一个人解决所有的问题。
要点:

  • Hadoop是一项非常重要的工具,并且对于数据科学有非常非同一般的影响力。
  • 在实战中,“数据科学家”和“机器学习专家”基本上是同义词。
  • 数据科学中最具挑战性的问题也可能是未来几年这个领域将会不得不面对的问题,那就是如何从大数据中归纳出合适的问题,找对正确的研究方向以及最终使用合适的方法做出可靠的结果。
  • 数据科学的未来很光明的,这个领域在未来一定会越来越多元化。

第十七章 资深数据科学家案例学习

要点:

  • 资深数据科学家与普通数据科学家的区别主要在于:拥有更多地只是积累、领域见解和专业知识,并且更有经验、有能力把问题化繁为简,并且有能力开始一个新项目。
  • 为了得到一个资深数据科学家的职位,大公司的实习经历和优秀大学颁发的博士学位是非常有用的。但如果你都几乎没有可能在你的简历上加上这两点,也可以尝试获得斯坦福大学的机器学习课程认证(Andrew Ng教授亲授的课程)。
  • 为了成为一名数据科学家,你应该均衡的培养以下的技能:
    1.非常扎实的数学基础知识
    2.通过完成竞赛(Kaggle)来获得经验
    3.使用面向对象编程语言或者函数型语言来开发软件。

第十八章 新数据科学家的召唤

要点:

  • 针对初级数据科学家的招聘职位是比较少的,至少现在不太多。目前大部分的职位都是针对比较有经验的数据科学家,其次是资深数据科学家。
  • 有一些不错的可以用来寻找数据科学类工作的网站。
    Indeed.com
    LinkedIn.com
    DataScienceCentral.com
    http://www.Kaggle.com

附录:术语表

A

人工智能(Artificial Intelligence,A.I.)——计算机科学的一个研究领域,主要是为了开发一种能够感知周围环境并且做出适当的行为反应,甚至于从那些行为中不断自我学习的机器或者算法。有一些人工智能算法被广泛地用于数据科学领域。

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lingpy/article/details/79965550

数据科学家的修炼之道(完整版)

  • 2017年03月15日 21:42
  • 41.54MB
  • 下载

数据科学家修炼之道

  • 2017年11月12日 12:51
  • 31.45MB
  • 下载

Web前端开发修炼之道-CSS篇(转+改)

模块拆分原则: 1.模块与模块之间尽量不要包含相同的部分,如果有相同的部分,应将它们提取出来,拆分成一个独立的模块. 2.模块应在保证数量尽可能少的原则下,做到尽可能的简单,以提高重用性。 CS...
  • mine666
  • mine666
  • 2013-06-07 12:30:13
  • 689

<测试架构师修炼之道>读书笔记1

本书的价值? 讨论测试设计、测试方法、缺陷分析、质量评估等大家熟悉的测试技术。 讨论如何在工作中使用这些技术,指定出适应实际情况的策略,来是测试更为有效。 测试的核心是什么? 不是业务、测试方...
  • u014607169
  • u014607169
  • 2017-05-25 07:28:10
  • 509

『高效程序员的45个习惯:敏捷开发修炼之道』读书笔记

这是我近些日子的读书笔记。 电子书见:http://www.amazon.cn/mn/detailApp?asin=B00ALPRKJ8&tag=baiduiclickcn-23&ref=p...
  • sharetop
  • sharetop
  • 2014-10-20 15:46:27
  • 1354

读书笔记:《程序员修炼之道》《程序员的思维修炼》

《程序员修炼之道》 第1章 注重实效的哲学 1 我的源码让猫给吃了   要负起责任 2 软件的熵   不要容忍破窗户,不要让软件开发过程滑向腐败的深渊 3 石头汤与煮青蛙   善于利用渐变,调动...
  • sun2043430
  • sun2043430
  • 2013-09-02 12:08:59
  • 1012

程序员修炼之道 笔记与感想

提示: 有关键情节透露  1 我的源码让猫给吃了 不要寻找借口,从自身找原因 2 软件的熵  一句话:不以善小而不为,勿以恶小而为之. 从初期就要做好规范,不要因为是poc这样的...
  • AlbertFly
  • AlbertFly
  • 2016-06-02 13:33:46
  • 1327

MySQL DBA修炼之道

  • 2017年07月19日 12:54
  • 4.94MB
  • 下载

程序员修炼之道读后感

程序员修炼之道读后感   本书一共8章 针对编程的实效进行一系列的阐述,以前自己总是看一些偏向于纯技术的书籍都是针对代码技术的实现,并没有详细的介绍项目开发中程序员担当的角色,读完本书丰富了自己对一名...
  • zzzEcho
  • zzzEcho
  • 2016-04-21 22:14:27
  • 692

Java 工程师修炼之道

转自:http://www.hollischuang.com/archives/489 一、基础篇 1.1 JVM 1.1.1. Java内存模型,Java内存管理,Java堆和栈,垃圾回收 h...
  • kl28978113
  • kl28978113
  • 2016-12-04 23:40:31
  • 1012
收藏助手
不良信息举报
您举报文章:《数据科学家修炼之道》笔记
举报原因:
原因补充:

(最多只允许输入30个字)