- 需要熟练使用主流的数据挖掘（或统计分析）工具如Business Analytics and Business Intelligence Software（SAS）、SPSS、EXCEL等。
- 经典图书推荐：《概率论与数理统计》、《统计学》推荐David Freedman版、《业务建模与数据挖掘》、《数据挖掘导论》、《SAS编程与数据挖掘商业案例》、《Clementine数据挖掘方法及应用 》、《Excel 2007 VBA参考大全》、《IBM SPSS Statistics 19 Statistical Procedures Companion》等。
- 经典图书推荐：《数据挖掘概念与技术》、《机器学习实战》、《人工智能及其应用》、《数据库系统概论》、《算法导论》、《Web数据挖掘》、《 Python标准库》、《thinking in Java》、《Thinking in C++》、《数据结构》等。
- 需要深入学习数据挖掘的理论基础，包括关联规则挖掘 （Apriori和FPTree）、分类算法（C4.5、KNN、Logistic Regression、SVM等) 、聚类算法 （Kmeans、Spectral Clustering）。目标可以先吃透数据挖掘10大算法各自的使用情况和优缺点。
- 相对SAS、SPSS来说R语言更适合科研人员The R Project for Statistical Computing，因为R软件是完全免费的，而且开放的社区环境提供多种附加工具包支持，更适合进行统计计算分析研究。虽然目前在国内流行度不高，但是强烈推荐。
- 可以尝试改进一些主流算法使其更加快速高效，例如实现Hadoop平台下的SVM云算法调用平台–web 工程调用hadoop集群。
- 需要广而深的阅读世界著名会议论文跟踪热点技术。如KDD，ICML，IJCAI，Association for the Advancement of Artificial Intelligence，ICDM
等等；还有数据挖掘相关领域期刊：ACM Transactions on Knowledge Discovery from Data，IEEE Transactions on Knowledge and Data Engineering，Journal of Machine Learning Research Homepage，IEEE Xplore: Pattern Analysis and Machine Intelligence, IEEE Transactions on等。
- 可以尝试参加数据挖掘比赛培养全方面解决实际问题的能力。如Sig KDD
，Kaggle: Go from Big Data to Big Analytics等。
- 可以尝试为一些开源项目贡献自己的代码，比如Apache Mahout: Scalable machine learning and data mining
- 经典图书推荐：《机器学习》 《模式分类》《统计学习理论的本质》《统计学习方法》《数据挖掘实用机器学习技术》《R语言实践》，英文素质是科研人才必备的《Machine Learning: A Probabilistic Perspective》《Scaling up Machine Learning : Parallel and Distributed Approaches》《Data Mining Using SAS Enterprise Miner : A Case Study Approach》《Python for Data Analysis》等。
四、成为一名数据科学家需要掌握的技能图。（原文：Data Science: How do I become a data scientist?）
Before you begin, you need Multivariable Calculus, Linear Algebra, and Python.If your math background is up to multivariable calculus and linear algebra, you’ll
Numerical Linear Algebra / Computational Linear Algebra / Matrix Algebra:
Multivariate calculus is useful for some parts of machine learning and a lot of probability. Linear / Matrix algebra is absolutely necessary for a lot of concepts in machine learning.
You also need some programming background to begin, preferably in Python. Most other things on this guide can be learned on the job (like random forests, pandas, A/B testing), but you can’t get away without knowing how to program!
Python is the most important language for a data scientist to learn.Check out
- Why is Python a language of choice for data scientists?
- Is Python the most important programming language to learn for aspiring data scientists & data miners?
For some reasoning behind that.
To learn Python, check out
Plug Yourself Into the Community
Start reading data science blogs and following influential data scientists!
- What are the best blogs about data?
- What is your source of machine learning and data science news? Why?
- Data Science: what are some best users/agencies to follow on Twitter, Facebook, G+, and LinkedIn?
- What are the best Twitter accounts about data?
Setup your tools
- Install Python, iPython, and related libraries (guide)
R and RStudio (I would say that R is the second most important language. It’s good to know both Python and R)
Learn to use your tools
- Learn R with
- What’s the best way to learn to use Sublime Text?
- What is the best way to learn SQL?
(I don’t think there’s too much of a need to install it on your computer, but just learning the syntax will be helpful for the job)
Learn Probability and Statistics
Be sure to go through a course that involves heavy application in R or Python.
- Python Application:
Think Stats (free pdf) (Python focus)
- R Applications:
An Introduction to Statistical Learning (free pdf)(MOOC) (R focus)
- Print out a copy of
The Only Probability Cheatsheet You’ll Ever Need
Complete Harvard’s Data Science Course
This course is developed in part by a fellow Quora user, Professor
Intro to the class
- What is it like to design a data science class?
- What is it like to take CS 109/Statistics 121 (Data Science) at Harvard?
Lectures and Slides
- Intro to Python, Numpy, Matplotlib
(Homework 0) (solutions)
- Poll aggregation, web scraping, plotting, model evaluation, and forecasting
(Homework 1) (solutions)
- Data prediction, manipulation, and evaluation
(Homework 2) (solutions)
- Predictive modeling, model calibration, sentiment analysis(Homework 3) (solutions)
- Recommendation engines, Using mapreduce
(Homework 4) (solutions)
- Network visualization and analysis
(Homework 5) (solutions)
- Data manipulation, modeling, plotting
- Lab 2: Web Scraping
- Lab 3: EDA, Pandas, Matplotlib
- Lab 4: Scikit-Learn, Regression, PCA
- Lab 5: Bias, Variance, Cross-Validation
- Lab 6: Bayes, Linear Regression, and Metropolis Sampling
- Lab 7: Gibbs Sampling
- Lab 8: MapReduce
- Lab 9: Networks
- Lab 10: Support Vector Machines
Do most of Kaggle’s Getting Started and Playground Competitions
I would NOT recommend doing any of the prize-money competitions. They usually have datasets that are too large, complicated, or annoying, and are not good for learning (Kaggle.com)
Start by learning scikit-learn, playing around, reading through tutorials and forums at
Next, play around some more and check out the tutorials for
Afterwards, try some
Now, try a
Try out some
Finally, try out any of the other knowledge-based competitions that interest you!
User Behavior –
Do Side Projects
- What are some good “toy problems” in data science?
- How can I start building a recommendation engine?
- What are some ideas for a quick weekend Python project?
- What is a good measure of the influence of a Twitter user?
- Where can I find large datasets open to the public?
- What are some good algorithms for a prioritized inbox?
- What are some good data science projects?
Code in Public
Create public github respositories, make a blog, and post your work, side projects, Kaggle solutions, insights, and thoughts! This helps you gain visibility, build a portfolio for your resume, and connect with other people working on the same tasks
Check out more specific versions of this question:
- How do I become a data scientist as an undergrad?
- How do I become a data scientist, almost finishing school and without the necessary skills?
- How do I become a data scientist as a PhD student?
- How do I become a data scientist, while currently working in a different job?
- How can I apply for Data Scientist job without holding a PhD?
- How do I become a data scientist in India?
- How do I become a data scientist without going to college/having a degree?
Think like a Data Scientist
In addition to the concrete steps I listed above to develop the skillset of a data scientist, I include
(1) Satiate your curiosity through data
As a data scientist you write your own questions and answers.
Much of data science is not the analysis itself, but discovering an interesting question and figuring out how to answer it.
Here are two great examples:
- Hilary: the most poisoned baby name in US history
- A Look at Fire Response Data
Challenge: Think of a problem or topic you’re interested in and answer it with data!
(2) Read news with a skeptical eye
Much of the contribution of a data scientist (and why it’s really hard to replace a data scientist with a machine), is that a data scientist will tell you what’s important and what’s spurious. This persistent skepticism is healthy in all sciences, and is especially necessarily in a fast-paced environment where it’s too easy to let a spurious result be misinterpreted.
You can adopt this mindset yourself by
(3) See data as a tool to improve consumer products
Visit a consumer internet product (probably that you know doesn’t do extensive A/B testing already), and then think about their main funnel. Do they have a checkout funnel? Do they have a signup funnel? Do they have a virility mechanism? Do they have an engagement funnel?
Go through the funnel multiple times and hypothesize about different ways it could do better to increase a core metric (conversion rate, shares, signups, etc.). Design an experiment to verify if your suggested change can actually change the core metric.
Challenge: Share it with the feedback email for the consumer internet site!
(4) Think like a Bayesian
To think like a Bayesian, avoid the
Checking your dashboard, user engagement numbers are significantly down today. Which of the following is most likely?
1. Users are suddenly less engaged
2. Feature of site broke
3. Logging feature broke
Even though explanation #1 completely explains the drop, #2 and #3 should be more likely because they have a much higher prior probability.
You’re in senior management at Tesla, and five of Tesla’s Model S’s have caught fire in the last five months. Which is more likely?
1. Manufacturing quality has decreased and Teslas should now be deemed unsafe.
2. Safety has not changed and fires in Tesla Model S’s are still much rarer than their counterparts in gasoline cars.
While #1 is an easy explanation (and great for media coverage), your prior should be strong on #2 because of your regular quality testing. However, you should still be seeking information that can update your beliefs on #1 versus #2 (and still find
(5) Know the limitations of your tools
“Knowledge is knowing that a tomato is a fruit, wisdom is not putting it in a fruit salad.” – Miles Kington
Knowledge is knowing how to perform a ordinary linear regression, wisdom is realizing how rare it applies cleanly in practice.
Knowledge is knowing five different variations of K-means clustering, wisdom is realizing how rarely actual data can be cleanly clustered, and how poorly K-means clustering can work with too many features.
Knowledge is knowing a vast range of sophisticated techniques, but wisdom is being able to choose the one that will provide the most amount of impact for the company in a reasonable amount of time.
You may develop a vast range of tools while you go through your Coursera or EdX courses, but
(6) Teach a complicated concept
How does Richard Feynman distinguish which concepts he understands and which concepts he doesn’t?
Feynman was a truly great teacher. He prided himself on being able to devise ways to explain even the most profound ideas to beginning students. Once, I said to him, “Dick, explain to me, so that I can understand it, why spin one-half particles obey Fermi-Dirac statistics.” Sizing up his audience perfectly, Feynman said, “I’ll prepare a freshman lecture on it.” But he came back a few days later to say, “I couldn’t do it. I couldn’t reduce it to the freshman level. That means we don’t really understand it.” – David L. Goodstein,
Feynman’s Lost Lecture: The Motion of Planets Around the Sun
What distinguished Richard Feynman was his ability to distill complex concepts into comprehendible ideas. Similarly, what distinguishes top data scientists is their ability to cogently share their ideas and explain their analyses.
- Is there any summary of top models for the Netflix prize?
- What is a good explanation of Latent Dirichlet Allocation?
- What is Least Angle Regression and when should it be used?
(7) Convince others about what’s important
Perhaps even more important than a data scientist’s ability to explain their analysis is their ability to
Certain tasks of data science will be commoditized as data science tools become better and better.
However, the need for a data scientist to extract out and communicate what’s important
The data scientist’s role in the company is the
Any feedback on this post is appreciated – in the comments, as a suggested edit, or in a private message.
If you liked this material, please consider following:
2) My personal blog,
The best way to become a data scientist is to learn – and do – data science. There are a many excellent courses and tools available online that can help you get there.
Here is an incredible list of resources compiled by Jonathan Dinu, Co-founder of
EDIT: I’ve had several requests for a permalink to this answer. See here:
Python is a great programming language of choice for aspiring data scientists due to its general purpose applicability, a
When learning a new language in a new domain, it helps immensely to have an interactive environment to explore and to receive immediate feedback. IPython provides an interactive REPL which also allows you to integrate a wide variety of frameworks (including
Data scientists are better at software engineering than statisticians and better at statistics than any software engineer. As such, statistical inference underpins much of the theory behind data analysis and a solid foundation of statistical methods and probability serves as a stepping stone into the world of data science.
edX: Introduction to Statistics: Descriptive Statistics: A basic introductory statistics course.
Coursera Statistics, Making Sense of Data: A applied Statistics course that teaches the complete pipeline of statistical analysis
MIT: Statistical Thinking and Data Analysis: Introduction to probability, sampling, regression, common distributions, and inference.
While R is the de facto standard for performing statistical analysis, it has quite a high learning curve and there are other areas of data science for which it is not well suited. To avoid learning a new language for a specific problem domain, we recommend trying to perform the exercises of these courses with Python and its numerous statistical libraries. You will find that much of the functionality of R can be replicated with
Well-written books can be a great reference (and supplement) to these courses, and also provide a more independent learning experience. These may be useful if you already have some knowledge of the subject or just need to fill in some gaps in your understanding:
O’Reilly Think Stats: An Introduction to Probability and Statistics for Python programmers
Introduction to Probability: Textbook for Berkeley’s Stats 134 class, an introductory treatment of probability with complementary exercises.
Berkeley Lecture Notes, Introduction to Probability: Compiled lecture notes of above textbook, complete with exercises.
OpenIntro: Statistics: Introductory text book with supplementary exercises and labs in an online portal.
Think Bayes: An simple introduction to Bayesian Statistics with Python code examples.
A solid base of Computer Science and algorithms is essential for an aspiring data scientist. Luckily there are a wealth of great resources online, and machine learning is one of the more lucrative (and advanced) skills of a data scientist.
Coursera Machine Learning: Stanford’s famous machine learning course taught by Andrew Ng.
Coursera: Computational Methods for Data Analysis: Statistical methods and data analysis applied to physical, engineering, and biological sciences.
MIT Data Mining: An introduction to the techniques of data mining and how to apply ML algorithms to garner insights.
Edx: Introduction to Artificial Intelligence: Introduction to Artificial Intelligence: The first half of Berkeley’s popular AI course that teaches you to build autonomous agents to efficiently make decisions in stochastic and adversarial settings.
Introduction to Computer Science and Programming: MIT’s introductory course to the theory and application of Computer Science.
UCI: A First Encounter with Machine Learning: An introduction to machine learning concepts focusing on the intuition and explanation behind why they work.
A Programmer’s Guide to Data Mining: A web based book complete with code samples (in Python) and exercises.
Data Structures and Algorithms with Object-Oriented Design Patterns in Python: An introduction to computer science with code examples in Python — covers algorithm analysis, data structures, sorting algorithms, and object oriented design.
An Introduction to Data Mining: An interactive Decision Tree guide (with hyperlinked lectures) to learning data mining and ML.
Elements of Statistical Learning: One of the most comprehensive treatments of data mining and ML, often used as a university textbook.
Stanford: An Introduction to Information Retrieval: Textbook from a Stanford course on NLP and information retrieval with sections on text classification, clustering, indexing, and web crawling.
DATA INGESTION AND CLEANING
One of the most under-appreciated aspects of data science is the cleaning and munging of data that often represents the most significant time sink during analysis. While there is never a silver bullet for such a problem, knowing the right tools, techniques, and approaches can help minimize time spent wrangling data.
School of Data: A Gentle Introduction to Cleaning Data: A hands on approach to learning to clean data, with plenty of exercises and web resources.
Predictive Analytics: Data Preparation: An introduction to the concepts and techniques of sampling data, accounting for erroneous values, and manipulating the data to transform it into acceptable formats.
Data Wrangler: Stanford research project that provides an interactive tool for data cleaning and transformation.
sed – an Introduction and Tutorial: “The ultimate stream editor,” used to process files with regular expressions often used for substitution.
awk – An Introduction and Tutorial: “Another cornerstone of UNIX shell programming” — used for processing rows and columns of information.
The most insightful data analysis is useless unless you can effectively communicate your results. The art of visualization has a long history, and while being one of the most qualitative aspects of data science its methods and tools are well documented.
UC Berkeley Visualization: Graduate class on the techniques and algorithms for creating effective visualizations.
Rice University Data Visualization: A treatment of data visualization and how to meaningfully present information from the perspective of Statistics.
Harvard University Introduction to Computing, Modeling, and Visualization: Connects the concepts of computing with data to the process of interactively visualizing results.
Tufte: The Visual Display of Quantitative Information: Not freely available, but perhaps the most influential text for the subject of data visualization. A classic that defined the field.
School of Data: From Data to Diagrams: A gentle introduction to plotting and charting data, with exercises.
Predictive Analytics: Overview and Data Visualization: An introduction to the process of predictive modeling, and a treatment of the visualization of its results.
D3.js: Data-Driven Documents — Declarative manipulation of DOM elements with data dependent functions (with
Vega: A visualization grammar built on top of D3 for declarative visualizations in JSON. Released by the dream team at
Rickshaw: A charting library built on top of D3 with a focus on interactive time series graphs.
Modest Maps: A lightweight library with a simple interface for working with maps in the browser (with ports to multiple languages).
Chart.js: Very simple (only six charts) HTML5 “ based plotting library with beautiful styling and animation.
COMPUTING AT SCALE
When you start operating with data at the scale of the web (or
UC Berkeley: Analyzing Big Data with Twitter: A course — taught in close collaboration with Twitter — that focuses on the tools and algorithms for data analysis as applied to Twitter microblog data (with project based curriculum).
Coursera: Web Intelligence and Big Data: An introduction to dealing with large quantities of data from the web; how the tools and techniques for acquiring, manipulating, querying, and analyzing data change at scale.
CMU: Machine Learning with Large Datasets: A course on scaling machine learning algorithms on Hadoop to handle massive datasets.
U of Chicago: Large Scale Learning: A treatment of handling large datasets through dimensionality reduction, classification, feature parametrization, and efficient data structures.
UC Berkeley: Scalable Machine Learning: A broad introduction to the systems, algorithms, models, and optimizations necessary at scale.
Mining Massive Datasets: Stanford course resources on large scale machine learning and MapReduce with accompanying book.
Data-Intensive Text Processing with MapReduce: An introduction to algorithms for the indexing and processing of text that teaches you to “think in MapReduce.”
Hadoop: The Definitive Guide: The most thorough treatment of the Hadoop framework, a great tutorial and reference alike.
Programming Pig: An introduction to the Pig framework for programming data flows on Hadoop.
PUTTING IT ALL TOGETHER
Data Science is an inherently multidisciplinary field that requires a
UC Berkeley: Introduction to Data Science: A course taught by Jeff Hammerbacher and Mike Franklin that highlights each of the varied skills that a Data Scientist must be proficient with.
How to Process, Analyze, and Visualize Data: A lab oriented course that teaches you the entire pipeline of data science; from acquiring datasets and analyzing them at scale to effectively visualizing the results.
Coursera: Introduction to Data Science: A tour of the basic techniques for Data Science including SQL and NoSQL databases, MapReduce on Hadoop, ML algorithms, and data visualization.
Columbia: Introduction to Data Science: A very comprehensive course that covers all aspects of data science, with an humanistic treatment of the field.
Columbia: Applied Data Science
Coursera: Data Analysis
An Introduction to Data Science: The companion textbook to Syracuse University’s flagship course for their new Data Science program.
Kaggle: Getting Started With Python For Data Science: A guided tour of setting up a development environment, an introduction to making your first competition submission, and validating your results.
Data science is infinitely complex field and this is just the beginning.
There’s also a great SlideShare summarizing these skills:
You’re also invited to connect with us on Twitter @zipfianacademy