本文原出处:blog.csdn.net/Gavin_123


最近在学习数据科学,遇到了很多相关的问题,在网上也搜索了很多答案,感觉受益匪浅,现在想在自己的博客中把我遇到的精华问题和答案整理在自己的博客中,供自己以后参考,也方便大家查阅。

1. 【求职转行】想往数据分析,偏statistic方向转行,有什么推荐的在线网路课程(MOOC),平台和相关书籍呢?

希望可以把这个贴子推广给所有想学习或者想从事数据科学方向的朋友,楼上的朋友已经说的比较详细了,我作为偏统计方向的分析师也在这里说一下自己的一些学习方向和方法,希望对大家有帮助。

我认为从事Data analytics或Data Science需要具备以下技能:

Programming (Hack)

这个方面比较广泛,并不是纯粹指编程技能,要不然对于非CS的同学会觉得遥不可及。几个点说一下:

1. Linux, Bash, 后台相关的命令

一个成熟的数据从业者应该懂得灵活的运用数据寻找,获取,安装,Debug,分享,团队合作,Linux是知名的开源系统,在这个系统下环境的配置将变得非常容易和透明。各种包的安装也会事半功倍,建议是用虚拟机建一个Ubuntu系统来处理自己的数据,再利用pip,conda,git等命令来安装包,链接github,clone优秀的案例并push自己的发现。这里推荐两个学习资源,当然你也可以参考网上的各种博客和官方教程。

Linux:

linkedin.com/learning/l

Github:

linkedin.com/learning/l

2. SQL和资料库相关的技能

资料库是另外一个比较重要的部分,想像一下你不可能一直使用Excel去处理数据,毕竟超过十万行的数据用Excel就比较吃力了。这个时候SQL就是必须要用的,可以说这个是一个核心技能。有的人可能会说SQL非常简单,但是当你实际应用的时候你会发现你在学校学的那些简单Query完全就跟不上需求了。下面说一些基本的Query,大家看看掌握的情况:

o where, group by, order by, having, like, count, sum, min, max, distinct, if, join, left join, limit, and, or, cast, row_number, substr, convert, contact

除了基本的SQL,这里我指相关的relational资料库(MySQL, PostgreSQ等),如果你想分析一些unstructured的数据,比如文字或者image等等,你可以学习一下NoSQL,本人只用过MongoDB和Cassandra,也是主流的两个资料库。感兴趣的可以自己学习一下,这里我觉得两个学习资源不错,一个是codecademy的课程,可以互动式的学习SQL的code,一个是老牌的w3schools的SQL教程,非常的全面。另外MongoDB有自己的线上University,大家有兴趣也可以关注一下。

codecademy:

codecademy.com/learn/le

w3schools:

w3schools.com/sql

MongoDB Univeristy

university.mongodb.com.

3. Python/R语言

是否具备code的能力是数据分析的一个分水岭,senior的数据分析师会至少精通一种数据分析语言,并且如果想做数据挖掘,网路爬虫,交互可视化等等都是需要一定的代码处理和理解能力的。这里主要说Python和R,两者在数据分析领域可以说是各有千秋。

先说一下Python,就我理解Python是一种万能的语言,适用性非常强,除了数据分析还能够做很多的事情,比如编写程序,网站开发,深度学习等等。如果你决定使用Python,那么你需要了解的点主要是各种包的搜索和调用,函数的编写和嵌套,数据类型的把握(list, tuple, series, dict),条件判断,循环迭代等等。最好的开发环境我推荐Anaconda。

其次说一下R,它是一个统计学家编写的语言,所以对于各类统计函数的调用,绘图,模型验证,R有著先天的优势。很多参数都可以通过summary直接导出,有的时候在做模型选择优化的时候会觉得得心应手。如果你在使用R,那么了解数据结构(matrix, array, data.frame, list),数据读取,画图(ggplot2),统计函数(mean, median, sd, var, scale)等就是你的重点了解方向。开发环境建议使用Rstudio。

当然除了我上述的很多功能,两种语言都非常强大,从小的数学计算到大型的deep learning模型,都可以实现。只是两者有明显的使用习惯的区别,建议初学者先选择一种入手,等熟悉之后再双管齐下,最后做到灵活的运用不同的语言到不同的project中去。

现在说一下素材推荐,其实这两种语言最好都是结合我后面将要说的统计知识来一起学习,这样可以更加深入的理解代码和实际问题之间的关系。当然,这里先介绍一下我认为不错的素材,后面说统计方面的时候会更深入的推荐一下。我们上面说了很多线上课程,这里我想先说一下书,个人比较喜欢看书LOL。第一本推荐学习python的宝典:ORELLY的《Learning Python》,相当全面,但是也很厚。另外两本《Python Cookbook》和《Python for Data Analysis》也是重点推荐的。我个人的方法是,分析主要看《Python for Data Analysis》,数据结构看《Python Codebook》,《Learning Python》作为你的字典一样的存在,所有的问题都可以回去找。这样一个组合可以让你在学习Python和数据分析过程中事半功倍。

《Learning Python》:

shop.oreilly.com/produc

《Python Codebook》:

shop.oreilly.com/produc

《Python for Data Analysis》:

shop.oreilly.com/produc

除了上述书籍我在说一下线上课程,首先是codecademy和DataCamp都有互动式的课程可以让你瞬间上手编程,其次LinkednIn Learning也有相关的Essential Training课程,如果你已经有了LinkedIn的Premium,那么这些课程都是免费的,学习之后还可以获得LinkedIn的certificate,对于找工作来说是非常棒的。除了上述的当然还有Coursera,udemy, Udacity和edx,大家可以根据自己的感觉来学习,当然还是要注意自己的学习成本,不要贪多不厌。

codecademy:

codecademy.com/learn/le

DataCamp:

datacamp.com/courses/te.

LinkedIn:

linkedin.com/learning/p

edX:

edx.org/course/analytic

Ok, Python的素材就先说到这里,后面的统计和机器学习部分还会介绍一些python相关的教程。下面我们来说一下R,首先不得不提的就是非常著名的《R in action》一书,它可以算是R语言大数据的101教材了。如果你没有任何编程背景,那么通过这本书入门的时候可以搭配R CRAN的官方文档和数问dataquestion等线上问题集。不管怎么说,我觉得这是一本入门R语言分析的好书。其实还有一本R与统计相关的实战书,我放在后面推荐给大家。线上教程方面就更多了,还是首推DataCamp的互动式课程,然后其他的主流MOOC上也有很多,大家自己可以根据之前介绍python的网址自行搜索。

《R in action》:

kek.ksu.ru/eos/DataMini

DataCamp:

datacamp.com/courses/fr

Statistics(Foundation)

Ok,总算写完了Programming的部分,感觉还是有很多没有涉及到,但是这个话题就是非常复杂的,有的时候code参杂著统计,统计擦杂著machine learning,还有visualization和各种domain信息的乱入,导致想分的特别细去介绍数据科学是非常的困难。但是我还是希望用这种逻辑让你明白,这是一个复合型的事业,你想要走的更远就必须不断的学习,让我们一起努力吧,我会在后面的部分尽量补充好相关的教材推荐。

统计部分是我最喜欢的部分,因为我认为这一块是你做数据分析的基础,所以大家不要小瞧统计哦!从最简单的均值,中位数,标准差,方差,概率,假设检验,显著性,抽样等概念到比较深入的模型构建,参数选择,虚拟量化,dummy变数,时间序列,forecasting等,你需要有统计来帮你去得到相应的选择。上文说的代码,编程语言将会是你的工具,而统计将会是你的主导思想。你需要将这种思想结合到你的domain知识里,然后才能够解决相应的project。

就个人经验推荐一些书籍和课程,第一本叫做《Naked Statistics》,这是我最喜欢的统计入门书,作者的语言相当的生动,利用自己学习统计的经历来阐述一些复杂的问题,由于语言比较通俗易懂,所以很多书中的例子可以用在日后工作中来给非统计背景的人来举例,非常的有用。第二本是我最推荐的进阶书,不仅仅只是统计,包括machine learning我也推荐这本,叫做《The Element of Statistical Learning》,结构相当的完整而且前瞻性非常强。主要是用R语言做了很多模型和演算法,我觉得这是很关键的。有的时候我们总是觉得导入了几个库用了几个包,什么模型啊机器学习啊都做的出来,可是当你带入数据发现结果往往都不好。但是如果你透彻地理解了模型和演算法本身,你再去调整模型的时候效果往往会好很多。

另外Freedman的经典中的经典《Statistics》永远是所有喜欢统计的人的必读书目之一。《A Introduction to Statistical Learning with Applications in R》也是一本实战的书籍,系统的讲解了如何利用R语言来解决市场调研中的数据问题,相信对于从事市场方向的同学有一定的帮助。《Regression Analysis by Example》也是一本非常不错的讲解回归模型的书,里面详细介绍了做回归模型需要的相关知识,比如transformation of variables, weighted least squares, correlated errors, collinear data, variable selection, logistic regression, GLM, PRM, robust regression等。由于可能回归是我们最常用的统计模型,所以这本书也是强烈建议细读的。

《Naked Statistics》:

amazon.com/Naked-Sta ... -Data/dp/B00CH7FWWU

《The Element of Statistical Learning》:

web.stanford.edu/~hasti 来源一亩.三分地论坛.

《A Introduction to Statistical Learning with Applications in R》:. 牛人云集,一亩三分地

www-bcf.usc.edu/~gareth First Printing.pdf 来源一亩.三分地论坛.

《Regression Analysis by Example》:

amazon.com/Regressio ... erjee/dp/0470905840

《Reading and Understanding Multivariate Statistics》:

amazon.com/Reading-U ... rence/dp/1557982732

《Reading and Understanding More Multivariate Statistics》:

amazon.com/Reading-U ... stics/dp/1557986983.

除了这些书籍之外,还有一些网路课程在这里推荐给大家。edX的ColumbiaX系列里面又统计和机器学习相关的tracking,叫做Statistical Thinking for Data Science and Analytics,我觉得是一个不错的选择,但是需要耐下心来看。另外还有更全面的一个是Penn State University的网路课程,它其实是一个online的applied statistics degree,但是所有的教材都是公开的,我个人是从中学到了非常多的知识。

edX:

courses.edx.org/courses ... 101X+1T2016/course/. From 1point 3acres bbs

Penn State University:

onlinecourses.science.psu.edu. from: 1point3acres

Machine Learning (Data Science)

说完了programming和statistics,现在来说一下machine learning。我上文提到的《The Element of Statistical Learning》在这里我再提一遍,因为其内容也涉及了很多machine learning的部分,是一本综合性很好的书。三位作者,Trevor,Robert和Jerome也是stanford的大牛。对于线上课程我推荐Coursera上Andrew的machine learning课程作为入门,因为吴恩达的风格就是通过精挑细选的课程,长短合适的视屏与精准设置的信息块共同呈现,让你从最基本的理论来了解机器学习。他的新课deep learning也在上周在Coursera上线了,以神经网路原理为主要课程体系,不仅讲了很多machine learning中遗漏的信息,还能让你学会构建复杂神经网路的所有核心知识。除了吴恩达,Coursera上还有一门叫做Applied Data Science with Python的课程,来自于University of Michigan,大家也知道这又是一统计强校,其内容从实践的角度上来告诉你如何使用python来进行machine learning,text mining等,其内容都使用线上jupyter notebook,让你的学习效率更佳。当你学习到以上一些内容了之后,估计你已经对机器学习的基本演算法有了一定的了解,但是可能没有一种大局观,对实际问题和数据insight上的把握可能有待提高,这里我推荐一本中文书,是李航老师的《统计学习方法》,其中深入浅出的介绍了很多机器学习的概念,作为系统地把握machine learning的大局观有很大的帮助。

Coursera-Machine Learning:

coursera.org/learn/mach

Coursera-Deep Learning:

coursera.org/specializa

Coursera-Applied Data Science with Python:

coursera.org/specializa

《统计学习方法》:

goo.gl/wt5V9K

由于楼上已经介绍了Udacity的课程,个人认为也是非常有帮助的,大家可以根据自己的需要来选择。

Visualization

最后一个点简单的提一下,画图可以由简单的Excel Chart到非常复杂的D3.js互动式动态配置,可以说是一个非常不一样的tracking,个人建议如果是focus在分析方面的小伙伴可以不需要投入过多的精力,因为这个东西学习成本太大了,你只需要会用python的matplotlib,seaborn,R的ggplot2,还有现在比较流行的plotly,tableau什么的就够了。如果想进阶的去学习visualization的话,那你就得专攻一下java之类的去写D3和reactjs之类的了。这里介绍一个权威的网站和我认识的一个大牛的作品(给Google做的)供大家参考。

ThePudding:

pudding.cool/

An Interactive Visualization of Every Line in Hamilton:

pudding.cool/2017/03/ha

总结,上述了四个方面,希望对大家有所帮助,如果四个方面你都有所涉猎,那么未来还有很多的tracking在等著你,比如大数据spark,Hadoop等计算框架,比如图像处理,深度学习,再比如NLP自然语言处理,语音识别等。如果大家对这些领域也有兴趣,我们可以一起来探讨一下,希望大家都能够不断学习,共同进步。


如有更多问题,欢迎咨询微信L1051212978


推荐阅读:
相关文章