之前一直有朋友叫我列一个数据科学的书单,说实话这件事情我是犹豫了很久的。有两个原因,其一是因为自己读书太少才疏学浅,其二我觉得基于我个人观点认为"好”的书其实可能对于很多人是不一定合适的。
从一个,有过一点Data Science实习经历的,在读统计PhD学生的角度,给大家列一个书单吧,里面有我读过的书,也有我想读的书。
我的原则是尽可能推一些新书,和我自己所认为的"好书”。不过我觉得,我介绍的书当中可能有不少的书在之前的回答里都有提到了,那也是难免的。毕竟很多好书都是得到了大家的一致认可的。
对于读过的书我可能会给一点点小短评。这个书单,算是对自己过去阅读的总结,也算是未来给自己所提的要求。如果对其他人有那么一点点用,那也是极好的。
------------2017-4.23 Update--------------------------------
这里想澄清一个误会,有些知友以为我这些书都看完了,怎么可能嘛2333。
这个书单里面有些书,我认为有些是值得从头到尾看完的,有些书是适合看一部分的,还有些书是你在做项目,解决一个特定问题的时候才需要去翻查的。这些说明我会慢慢补上。
还有人问我怎么找到这些书的电子版的。有个论坛,叫经管之家(原人大经济论坛)我觉得不少人应该都听说过吧,我在里面混了8,9年了。
------------2018-2.03 Update---------------------------------
这个答案写了也快一年了,期间做了一个实习,也面试了一些公司。也花了足够多的时间静下心来,对关于Data Science的方方方面面进行了一个更细致全面深入的思考。现在列的书的书我一部分是看完了,其余很多还在一点点挤时间啃呢(大坑)。
这个更新过的答案算是一个小总结,还是衷心希望希望能对其他同学能有那么一点点用。
---------------------------------------------------------------
1. 概览(Overview):
The Data Science Handbook: Advice and Insights from 25 Amazing Data Scientists
业内老司机给数据科学新人的一些建议: />
Data Science for Business: What You Need to Know about Data Mining and Data-Analytic Thinking />
Doing Data Science: Straight Talk from the Frontline />
2. 数学(Maths):
A Mathematical Primer for Social Statistics />
SAGE出版社的Quantitative Applications in the Social Sciences (QASS)的绿皮小书中的一本。标题看起来好像是社会统计学中的数学入门读本,但是其实这里面已经把Data Science中基本一大半要用的数学都覆盖到了。讲了基本的矩阵代数,微积分,概率与统计,最后用基本线性模型把所有的概念都串了起来。只有184页的小书,适合随身携带,有空就翻翻,常读常新。
另外绿皮小书中有很多别的好书,都比较short and sweet,有兴趣的同学自己看吧:
多变量微积分(multivariate calculus):
我是觉得看MIT这门课的前两个Chapter就OK了。
线性代数(Linear Algebra):
这本书对应课程绝对良心: />
Matrix Algebra: Theory, Computations and Applications in Statistics
这本书分为三部分:
第一部分讲矩阵代数;
第二部分讲矩阵代数在数据分析中的应用;
第三部分讲数值线性代数和相应的软件;
比较难,适合想深入从理论和应用层面掌握数据科学中矩阵代数的同学。 />
3. 概率论与统计(Probability And Statistics):
Introduction to Probability, Statistics, and Random Processes
一本手把手教你概率论的书,相应学习网站上书和视频都有。 />
Probability Theory: The Logic of Science
下载地址:
大名鼎鼎的概率论沉思录,介绍看这个把: />
OpenIntro Statistics
至今见到最好的一本统计学入门书,相应学习网站上书和视频都有。 />
Statistical Inference
不少美国大学统计系研究生第一年的教材,推荐给想系统学习数理统计的同学。 />
Applied Linear Statistical Models
我觉得是把线性模型讲得很好的一本书。
/>
An Introduction to Generalized Linear Models
广义线性模型入门简介 />
All of Statistics: A Concise Course in Statistical Inference
注意,我觉得这本书是给的统计底子很好的人复习用的,不适合自学。 />
Computer Age Statistical Inference: Algorithms, Evidence, and Data Science
Efron和Hastie两位大师通过这本书给了大数据时代的统计学一个非常现代和全面的介绍。 />
在现在这个计算机能力越来越强的年代,Bootstrap,这个简单又威力强大的工具正在获得越来越多的关注和应用。
比如Facebook用Bootstrap计算置信区间:
要彻底弄懂Bootstrap我还是推荐Efron老爷子的书:
An Introduction to the Bootstrap />
Statistics in a Nutshell: A Desktop Quick Reference(翻查用)
案头的统计学速查手册 />
贝叶斯统计(Bayesian Statistics)
Bayes' Rule: A Tutorial Introduction to Bayesian Analysis
贝叶斯统计101 />
Think Bayes: Bayesian Statistics in Python
简介怎么用Python做贝叶斯统计 />
Bayesian Methods for Hackers
更加深入地介绍怎么用Python做贝叶斯统计。 />
Practical Statistics for Data Scientists: 50 Essential Concepts
我在实习期间抽空看完的一本书,这本书应该算是填平课堂的统计学和工业界数据科学的一本很好的参考指南。写得比较简洁但是直击要点,而且给出了很多reference。 />
4. 机器学习(Machine Learning)
我觉得机器学习不能沉溺于理论,要尽快开始动手把玩一些实际数据集来加深对算法的理解。所以我打算推荐一些Hands-on(手把手)的书。
An Introduction to Statistical Learning: with Applications in R
通过R讲解算法的统计学习入门书,估计被推荐烂了(笑)。可以在这本书的网站上找到这本书的pdf和数据集。
相关课程
/>
Applied Predictive Modeling
黄皮书,没啥好多说的。准备面试和工作的时候必读。 />
Python Machine Learning
手把手教你用sklearn做机器学习,同样是工作必备。 />
Fundamentals of Machine Learning for Predictive Data Analytics: Algorithms, Worked Examples, and Case Studies
我觉得这本书特别适合我这种脑子不太好的人,因为他会把机器学习算法拆开,结合案例,一步一步地给你讲。 />
Real-World Machine Learning
告诉你工业界的人怎么用Machine Learning解决实际问题的书。建议所有Data Scientist在实习前和全职工作开始前都读一下。 />
Learning From Data
这本书讲清楚了很多机器学习书中不怎么提到的机器学习理论,比如VC Dimension这种东西。Caltech有公开课,吐血推荐: />
The Elements of Statistical Learning: Data Mining, Inference, and Prediction, Second Edition
大名鼎鼎的ESL,读起来比较累(我太渣),我觉得适合翻查和摘抄。 />
Pattern Recognition and Machine Learning
同样大名鼎鼎的PRML,我个人觉得比ESL好读不少。 />
Machine Learning Refined: Foundations, Algorithms, and Applications
一本很新的ML书,写得很concise但是crystal clear。最让人眼前一亮的是在这本书在Part III讲大规模机器学习,讲了很多其他书中没见过的,比较高级的梯度下降的方法。这个有多重要呢,我听过别人的一句玩笑话说"湾区80%的服务器都在跑Regression”。梯度下降做的事情其实就是Regression的Parameter Estimation,可想而知这章的东西有多重要了。
这本书的网站给出了部分章节和所有的ipython notebook:home-page />
5. 数据挖掘(Data Mining)
Introduction to Data Mining
深入讲数据挖掘的书,干货很多 />
面向程序员的数据挖掘指南
一本面向程序员的,用Learn by doing学习基本数据挖掘和推荐算法的书。
中文在线版本:
英文在线版本: />
6. SQL:
SQL怎么入门,网上到处都是教程。书的话我只是觉得这一本Cookbook最好。因为他把很多SQL query里的陷阱都提到了,而且每道题给出了市面上所有流行数据库(MySQL,DB2,Oracle,SQL Server,Postgresql)的Query代码
SQL Cookbook: Query Solutions and Techniques for Database Developers (翻查用) />
7. R:
R in Action
有名的R语言实践 />
下面是R教主Hadley Wickham的三本书,没啥好太多说的,读就是了:
R for Data Science
在线版本: />
R Packages />
Advanced R />
Data Science in R: A Case Studies Approach to Computational Reasoning and Problem Solving
用12个高级案例分析来讲怎么用R做Data Science的书,一本让我震惊得下巴差点掉地的书,原来R编程写到一定境界是可以这个样子的。
难度不小,有兴趣的看看吧。。。
网站在这里: />
8. Python:
因为不是软件工程师,我Python水平也不高。推荐两本我用来入门和准备继续进一步提高看的书吧。
Think Python
这本书我拿来入门的 />
Fluent Python
用来Python进阶的 />
Python for Probability, Statistics, and Machine Learning
用Python来学习概率,统计和机器学习的书
Github链接: />
Python Data Science Handbook(翻查用)
一本非常全面的通过Python解决数据科学问题的工作手册。作者给出了这本书全部的Jupyter Notebook: />
9. 数据科学家面试 (Data Scientist Interview)
Data Science Interviews Exposed
几个在美国的中国人数据科学家写的面试准备书。基本给出了所有数据科学面试涵盖的知识点概述,数据科学家面试流程和注意事项,干货满满。仔细读完这本书,数据科学家面试是怎么个一回事儿,基本上你就心中有数了。 />
Cracking the PM Interview: How to Land a Product Manager Job in Technology
在美国,不少数据科学家在公司做的很多工作和产品相关,甚至不少数据科学家被当成半个产品经理用,所以这本产品经理的面试准备书对于数据科学家的面试也很有借鉴意义的。 />
10. 算法(Algorithm)
数据科学家逃不掉算法,虽然要求不像软件工程师那么高。因为我是Python死忠,所以这里推荐的所有算法书中的算法实现都有用到Python。
Grokking Algorithms: An illustrated guide for programmers and other curious people
非常直观的一本算法入门书中的入门书,这本书作者不仅仅是软件工程师,他还是一个绘本画师,里面所有的插图都是他自己亲手画的,非常的萌。 />
Problem Solving with Algorithms and Data Structures Using Python
一本用Python讲数据结构和算法的好书,有在线的电子版。过完了就可以开始刷Leetcode了。
/>
Algorithms in a Nutshell: A Practical Guide
算法速查手册,给出了Python的实现。
/>
11. 工作手册(Handbook)
The Data Science Handbook
我正在读的,涵盖最全面的一本数据科学工作手册,推荐给想成为"Unicorn"-全栈数据科学家的同学 />
12. 网络爬虫与数据折腾(Web Scraping and Data Wrangling)
Web Scraping with Python: Collecting Data from the Modern Web
用Python3手把手教你做爬虫
/>
Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython
大名鼎鼎的Pandas官方指南第二版,作者Wes McKinney现在是2Sigma的Senior VP。 />
Regular Expressions Cookbook(翻查用)
我知道很多人不喜欢正则表达式,但是又不得不面对他,经常翻查这本书应该能搞定很多问题。 />
13. 数据可视化与讲故事(Data Visualization and Storytelling)
怎么画出又漂亮又高大上的图表,然后讲一个好故事把你的老板和客户忽悠得一愣一愣的,是一个好的数据科学家的终极大招之一。
Communicating Data with Tableau: Designing, Developing, and Delivering Data Visualizations
我知道有些喜欢编程的人瞧不上各种按钮点点点的软件,但是我表示Tableau真的很好用。 />
Interactive Data Visualization for the Web: An Introduction to Designing with D3
讲怎么用数据可视化工具D3.js。会一些前端技能和Javascript对数据科学家绝对是锦上添花。 />
Data Visualization with Python and JavaScript: Scrape, Clean, Explore & Transform Your Data
一本讲怎么把把Python和Javascript串起来做数据可视化的书,一颗赛艇。 />
Storytelling with Data: A Data Visualization Guide for Business Professionals
教你怎么讲故事忽悠人23333 />
14. A/B 测试(A/B Testing)
A / B Testing: The Most Powerful Way to Turn Clicks Into Customers />
Designing with Data: Improving the User Experience with A/B Testing
Spotify 的 VP of Design and User Experience 写的怎么做AB测试的书。 />
A/B Testing, A Data Science Perspective
Airbnb的Data Scientist讲的A/B testing Workshop,这个不是书,是workshop录像,但是强烈推荐,至今看到的最好的AB testing workshop。建议面试前一定要过一遍,记笔记,尤其是怎么做AB testing那些步骤,记下来,刻在脑子里!!!
至于怎么看呢,这个Safari Online是可以免费试用的:
你们注册一下看完了这个然后不续订cancel服务就ok了。 />
15. Some Big Data Books
I Heart Logs: Event Data, Stream Processing, and Data Integration
很多Data Scientist每天分析的数据都是User Event Log,所以个人感觉对Log做一个比较系统的深入理解还是比较有必要的。
下载在这里
/>
Agile Data Science 2.0: Building Full-Stack Data Analytics Applications with Spark
一本手把手教你怎么用Apache Spark加上一大堆其他的开源工具(Apache Kafka, MongoDB, ElasticSearch, d3.js, scikit-learn, and Apache Airflow)做Data Product的书(这本书竟然还介绍了Apache Airflow!)。这年头拥有能把数据做成产品落地能力的数据科学家,不多,但是非常非常的值钱!看这本书可以入一个门。 />
Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems
这本书的介绍可以见这篇文章:
我觉得虽然这本书主要是写给后端工程师和架构师看的。但是我觉得数据科学家们有时间也值得看一看,为了更方便地和工程师们有共同语言,这样工作起来效率更高。 />
16. Unix/Linux命令行四件套和Reproducible Research
硅谷公司给我最大的震撼之一就是他们的Tech Stack对Unix/Linux系统和命令行的重度依赖。这个也不奇怪,Unix的设计哲学其实是这样的: />
把一个问题劈开成无数个小块,然后分而治之,其实和Data Science中解决一个大问题的方式是一模一样。Unix/Linux这一块学习曲线很陡,花的时间也特别多,但是绝对是Data Scientist进阶道路上绝对绕不开的一关。
四件套其一(命令行):
The Linux Command Line: A Complete Introduction />
四件套其二(Shell Scripting)
Classic Shell Scripting />
四件套其三(Git)
Version Control到底有多重要可以看看这篇文章:
Learn Git in a Month of Lunches
个人感觉Git很难学,能把Git讲得很好的书也很少。目前来看个人觉得这本书算是讲得最清楚最直观的。 />
四件套其四(Vim)
好吧,我承认。。。程序员小伙伴在命令行把Vim玩得飞一样的画面,给我留下了极深的印象。Vim作为编辑器之神,和Unix/Linux系统的标配,还真找不到不好好学的理由。(Emacs党不要打我,逃。。。)
Learning the vi and Vim Editors: Text Processing at Maximum Speed and Power />
另外我还想提一个概念,叫Reproducible Research,为什么? />
最后重点推荐这本书,不仅把前面提到四件套全部串起来了。而且给了怎么做好Reproducible Research的很多好建议。我想感叹一下,做生物信息的真的辛苦不容易,天天用Linux服务器和各种开源工具处理各种大规模稀奇古怪的DNA数据,不过转型到工业界对他们来说真的是小菜一碟。
Bioinformatics Data Skills: Reproducible and Robust Research with Open Source Tools />
17. Simulation
在很多Data Scientist的日常工作中,为了印证自己的一个猜想,最常做的事情很可能就是写个小程序做Simulation。原因如下,说白了还是懒: />
而且感觉现在技术面试Coding题,要你写Simulation的情况也越来越多的。所以学写Simulation作为Data Scientist的一个核心技能是逃不掉的了。
Simulation for Data Science with R
用R讲Simulation: />
Computer Simulation: A Foundational Approach Using Python
用Python讲Simulation
这本书的github: />
如果好奇随机数生成原理或想深入理解蒙特卡罗方法,可以看看这本书
Random Number Generation and Monte Carlo Methods
这本书网上有pdf下载: />
18. Domains/Business Knowledge
大家还记得Data Science那个饼图吧,第三块,很多理工科出身学生们不得不面对的,往往也是最欠缺的一块就是这一块:
Domains/Business Knowledge />
后面Analytics part中的书也和这一块有很多overlaps。
How to Measure Anything: Finding the Value of Intangibles in Business
简评看这里吧:
总之一句话:If you can't measure it, you can't improve it. - Peter Drucker />
Principles of Marketing Engineering and Analytics
在准备数据科学面试的Case问题前,先读一下这本书补习下Domain Knowledge把(笑 />
R for Marketing Research and Analytics (Use R!)
光知道市场研究中数据科学应用的理论还是不够的,最好能用R语言再实践一下: />
19. Exploratory Data Analysis(探索性数据分析)
其实在Data Scientist的日常工作中,回答一个问题往往并不需要建模,有时候画画图,看看分布,slicing and dicing一下,算一下Summary Statistics什么的就行了。尤其是他们经常会做不少ad hoc analysis,其实这时候干的事情往往就是Exploratory Data Analysis(EDA)
Exploratory Data Analysis in Business and Economics: An Introduction Using SPSS, Stata, and Excel
这本书深入讲了EDA的方方面面。特别是他会手把手教你怎么算各种EDA中的统计量,怎么看图说话。 />
Data Analysis with R
看到这里可能有同学会问,怎么又是一本R的书。
我只想说,你们面Data Scientist职位,公司不是会经常给你们发个什么Takehome Data Challenge吗(让很多人又恨又怕的Takehome啊,每次都挂掉无数人。。。)?第一步干的事情就是EDA啊,把这本书chapter 2 (univariate data)和 chapter3(multivariate data)看看就知道怎么做了。另外这书chapter11还专门讲了怎么dealing with messy data,说白了就是怎么clean data,在Takehome中的重要性就不说了。其他的章节嘛,爱看不看把。。。
/>
-----------------------分割线-------------------------
第二部分:其他技能(Some Other Skills)
这一部分推荐的书,是为那些想成为数据科学家中的超级赛亚人的同学所准备的23333
20. 神经网络与深度学习(Neural Network and Deep Learning)
Make Your Own Neural Network
深度学习炒得火热,但是在认真学习Deep Learning之前,各位巨巨们真的不先尝试下推推公式,然后Python从头自己造一个玩具神经网络玩一玩吗,真的很好玩的! />
Deep Learning
这个还有介绍的必要吗(望天) />
Hands-On Machine Learning with Scikit-Learn and TensorFlow
我觉得对于DS老司机们来说,这本书的Sklearn部分可以无视,重点放在后半部分怎么用
TensorFlow玩深度学习。 />
Pro Deep Learning with TensorFlow: A Mathematical Approach to Advanced Artificial Intelligence in Python:
从数学的层面讲TensorFlow原理的书,基本是先大段公式然后大段代码,适合矩阵代数功底特别好,从数学层面深入理解TensorFlow的同学。 />
21. 信息论(Information Theory)
关于信息论在数据科学上的重要性,可以看看这篇文章:
Information Theory: A Tutorial Introduction />
Information, Entropy, Life and the Universe: What We Know and What We Do Not Know />
22. 因果推断(Causal Inference)
关于因果分析的重要性可以看看这个slides:
Causal Inference in Statistics: A Primer
因果分析的入门小书,作者是大牛Judea Pearl />
Observation and Experiment: An Introduction to Causal Inference
把Observational study 和 Experiment放在一起讲的因果推断的入门书,写得像小说一样流畅(人家的英文写作水平真是要给跪了。。。) />
23. 抽样(Sampling)
Sampling
深入理解Sampling Technique的方方面面。 />
24. 凸优化(Convex)
Convex Optimization
斯坦福的凸优化,课程在这里:
另外这本书的网站给出了免费电子书:
/>
25. 分析(Analytics)
Lean Analytics: Use Data to Build a Better Startup Faster (Lean Series)
这本书讲创业公司中分析的应用,重点推荐给想复习Metrics的同学。 />
Web Analytics 2.0: The Art of Online Accountability and Science of Customer Centricity />
26. 文本挖掘与自然语言处理(Text Mining And Natural Language Processing)
Text Mining with R
萌萌的兔子书,用R的tidy approach介绍Text Mining的书。Code非常Clean而且Elegant。 />
Natural Language Processing with Python: Analyzing Text with the Natural Language Toolkit
Python NLTK的官方指南,有在线版:
/>
Introduction to Information Retrieval
斯坦福的信息萃取,有在线电子版 />
Speech and Language Processing
斯坦福NLP大牛Dan Jurafsky的书,现在他在写这本书的第三版: />
数学之美
吴军老师的数学之美。 />
27. 异常检测(Anomaly Detection)
关于异常值检验,zhihu大V @阿萨姆 同学写过一个介绍:
Fraud Analytics Using Descriptive, Predictive, and Social Network Techniques: A Guide to Data Science for Fraud Detection
这本书我正在读,不难读,作为Fraud Detection的概述讲得还是挺细的。 />
Outlier Analysis />
28. 推荐系统 (Recommender Systems)
Statistical Methods for Recommender Systems />
Recommender Systems: The Textbook />
29. 社交网络分析 (Social network analysis)
Network Science
大牛Barabási 今年的力作,关于网络科学的简介。有在线版本,里面的图漂亮得我是跪下了。
/>
Social and Economic Networks
斯坦福教授Matthew O. Jackson的书,在coursera上有这本书的公开课。 />
Social Network Analysis for Startups: Finding connections on the social web
一本用Python做社交网络分析的书。 />
30. 时间序列预报(Time Series Analysis and Forecasting)
现在很多时间序列的书,重点放在描述时间序列上,所以会大量介绍ARMA和ARIMA。但是我这里想着重强调的是预报(Forecasting)。这里面有一套方法,个人感觉很少被传统统计系的时间序列课程介绍。
Practical Time Series Forecasting with R: A Hands-On Guide />
Forecasting: principles and practice
这本书也是有在线版本的,是莫那什大学的Forecasting的世界权威 Rob写的,比上面那本书把Forecasting介绍得更加深入: />
31. 强化学习与人工智能
Reinforcement Learning: An Introduction
强化学习入门书,有在线版: />
Decision Making Under Uncertainty: Theory and Application
斯坦福的课本,具体评价看看他们学生怎么说的。 /> />
Artificial Intelligence: A Modern Approach
Google的大佬,研究总监Peter Norvig的书
网站在这里,每次点进去都要膜拜一下Orz。。。
这本书例子的python实现在这里: />
-----------------------分割线-------------------------
第三部分:休闲读物(Casual Reading)
这部分介绍的书,躺在床上看看很不错。
Soft Skills: The software developer's life manual
同软件工程师一样,数据科学家只会写代码和建模是远远不够的。软实力非常非常重要。 />
The Healthy Programmer: Get Fit, Feel Better, and Keep Coding
身体是革命的本钱,身体搞垮了怎么继续用数据科学改变世界呢?另外数据科学家其实和人打交道的机会通常来说要远远多于软件工程师,在这个看脸看身材的时代,你懂的。 />
Exposing the Magic of Design
有一个Design Mindset对数据科学家是很加分的哦 :) />
Thinking, Fast and Slow
这本书被大V @邹昕 推荐过。 />
Naked Statistics: Stripping the Dread from the Data
可能是你读过最好玩的统计学读物。 />
Uncertainty: The Soul of Modeling, Probability & Statistics
一本在哲学层面上思考数据科学的书。 />
---------------------------------2018-02-03----施工完-----------------
现在家里变成了这个样子。。。。 />