如何在业余时间学习数据分析?

我是一个web前端开发者和rails程序员,计算机专业出身,掌握Python、Ruby、C、Java编程语言,具有较为扎实的计算机理论基础。
现在工作之外的时间里想学习一下数据分析或者数据挖掘。现在大数据这个词搞得蛮火的,不少公司也有在招聘数据分析员。
抱着「技多不压身」的想法我也想稍微学习一下。说不定以后的工作也会需要。

我稍微了解了一下,数据分析最基础就是用excel来工作。不过我计算机专业出身的人,还是想通过用编程语言的方法来学习。听说R语言不错,我也稍微了解了一下。
不过现在要学数据分析的话,我可以从哪里着手?
从哪里弄到有分析价值的数据?
在开源社区有没有开源项目适合用来学习数据分析?
可以自己动手做个什么项目来实践
已邀请:

min

赞同来自: 大数据魔镜 candy

首先,说一下数据向工作分类:
1,数据分析师:最要求对行业熟悉精通,强悍的商业思路和逻辑,具有较强的分析能力;

2,算法工程师:类似于数学科学家的存在,对数学基础知识的要求最强,其次是商业模式要懂,针对行业问题设计数学分析和挖掘算法;

3,数据工程师:最要求编程能力和大数据统筹能力,比如数据仓库、海量数据采集器、统计分析系统的开发,维护,迭代;

回来看题主的条件,第三类是题主最能上手的工作方向。遗憾的是小弟只是偏向第一类,大学虽是计算机专业,但是编程能力实在比翔还翔,无法胜任第三类工作,能够提出的建议只能是学习hadoop,当然,对java的要求很高,而且对于企业的要求也不低,至少业务能够用得上分布式数据库的级数。

然后,谈谈现在被妖魔化的大数据:
现在,我领导一向外在吹嘘大数据,我脑袋就开始痛,不是因为我做不到,而是因为,领导根本不懂什么是大数据。

现在很多人只是看到了大数据的优点,比如说可以将企业发展的各种情况进行量化,并且可以以可视的方式检阅企业,提出最有利的决策,在许多行业能够进行大规模的应用,等等。

但是,大数据的局限性也相当多的:
首先,大数据只能是通过过去已经发生的数据进行预测,使用的变量也只能是过去的,大数据不可能在07年预测到现在nokia扑街了,苹果和安卓称雄的事情。很多年前,曾经想用神经网络去模拟股市的发展趋势图,现在回想起来,只能对自己呵呵了。大数据对于未来的大型的变数无法预测。

其次,确保数据的真实性和全面性。比如说在某些无法量化效果的行业,如传媒,电影,数据分析只能依照观看数(PV)、票房、搜索引擎的关键词搜索数等此类可以量化的数据进行决策,本质上产品向的演员能力、剧本能力、文笔水平等等都无法量化,此时大数据剩下的功能就只有向企业高层卖萌和马后炮的功能了。

最后,确保数据在行业链条中的确呈现闭环状态。数据(用户)从一个业务流向另一个业务的时候,无可避免地会生成转化率的问题,分析数据的目的就是为了提升(降低)转化率,但是遗憾的是,对于数据(用户)在两个业务中的留存数的记录,很多部门或者很多企业或者很多行业都无法做到完善,在转化的方向也无法统计清晰。如果数据无法形成闭环,则建立在这些数据之上的决策,都是镜中花水中月,看起来很美,用起来扑街。

这个可以在两个方面进行提升,一是题主,令广大苦逼数据分析师普大喜奔的人,你们设计的系统要有足够强的统计能力、反应能力、容错能力与可维护能力,一个优秀的数据分析工程师,可是人见人爱花见花开的;

二是行业进化,一些行业在发展的过程,用户的信息收集的过程是从无到有,从少到多,这个不可避免。这个只能有两个字,忍,熬。当然,数据收集设计也是数据分析工作中的一项好玩的工作。

先说到这...缺午觉伤不起....一会儿省人事的时候再说说关于产品向的数据分析的发展方向..

===========分割线==========
现在省人事了,好吧,有位盆友说貌似不对题,嗯,其实我是想先答一下关于数据分析的一些误区,毕竟先把地雷阵点出来,对于题主比较好,毕竟现在胡说大数据的东郭先生太多了(比如我领导的事情我会随便说吗)。

对于题主,其实我还是挺信任的,能够在知乎上面说“掌握”和“比较熟悉”的人还是挺强的,应该有很好的执行力,指出来几本书,几个方法给题主看也不错,但是我相信题主比较想知道的是技能树怎么养成吧
先写好~

===========继续线==========
尝试着说说自己的企划吧,但愿能够给题主有点儿帮助。

现在从事着数据分析工作,越来越觉得分析其实只是一项基础的技能,核心还是要针对具体工作和行业和职能分工。

所以,对于具体的工作技能上面,我会倾向于向产品、策划、运营、项目的方向发展,因为对于产品向职位来说,数据分析的终结目标还是为了给产品提供量化的需求分析,指导策划的方向,监察运营的质量,提供运营点和缺陷,等等相关工作,几乎每一项都和分析有关,分析的目标是描述现状、评估结果、提供决策。

以一点而后扩充一线,以一线扩充一面,是我未来的发展方向。以此作为对题主君的参考。

如果是按照题主的发展思路,应该是往数据仓库,海量分发式设计,比较地合适,具体的话建议多看看大挨踢企业的招聘信息,这个会比较有帮助。
对于大部分人来说,数据分析基本上都是靠着自学完成,比如我就是一个典型的案列。题主是计算机出生,上手数据分析应该比较容易一点。我没接触过什么编程,目前也在搞SPARK,HADOOP等,也没觉得自己比别人差多少~~
 
书单:
图片2.jpg

我给出的这个回答基于我自己的学习路径,并且主要是以书本为主,尝试回答一下:一个新手如何系统的学习数据分析
我喜欢将学习分阶段进行,这样学习起来有目标并且不会太累,每个阶段完成各自的任务就好。

初级阶段:
首先,我是赞成PYTHON ROCKS这句话。说多了你可能不理解,但是当你正真在工业上应用的时候,你就会发现PYTHON能做很多R不能做的事情。 因此强烈建议第一阶段以打基础,学习PYTHON为主。 那么怎么学?
《深入浅出数据分析》 是可以学习到最基础的统计、概率等理论知识,这些知识是你前进的基石,而且此书延续了head first系列的一贯作风,非常的有趣味,读起来不会感觉枯燥乏味!

接下来你应该好好的学一学PYTHON这门语言。我们说PYTHON可以做的事情太多了,数据分析只是它的一个功能而已。因此锁定目标,只学习有关数据分析部分的知识就行,其它涉及到什么WEB开发,网络编程的一律跳过,一定要集中精力去攻克你的目标,不要分神,有时候摊子铺大了就回不来了!! 那么《利用PYTHON进行数据分析》绝对是你学习PYTHON的不二之选(我指的是数据分析),这本书的作者是大名鼎鼎的pandas的作者,你可以想象这本书的权威性。因此去买一本,好好的研究一番,基本上你的数据处理能力能上好几个台阶。一定要重点学习numpy,pandas,matplotlib. 

然后,SQL是你逃不掉的命,一定要写好,你既然是计算机专业,应该不需要我强调太多~

《Hadoop实战》你就当着小说读读就行,改善一下你程序员的思维,学会一点怎么在真实业务中应用数据分析技巧!记住:这是趣味书!

以上就是初级阶段,主要以看书为主,让自己对数据分析有一个初步的认识。
下面的中级,高级就需要配合视频和书本一起来学习了~

中级进阶:
这一部分是核心的地方,也是你能够和别人拉开距离的阶段。学的好,薪资蹭蹭的往上涨,学不好,那就多学几遍。

在这个阶段的核心任务就是:撸的了代码,算的上公示,看得懂业务! 中级阶段会涉及到大量的使用代码和模型去解决实际业务问题!

看清楚三点:代码、模型、案列
你要边学边用,这样才能学的更快,收货更多! 那么怎么学?
第一步,《数据挖掘导论》这本书先花一个月的时间好好的阅读下,知道数据挖掘的一个雏形,能够认识一些常用的模型和算法。能够搞清楚常用的监督和非监督学习,提到模型要能说出它的应用场景和优缺点。回答几个关于这本书的常见问题?

1. 阅读这本书是否需要一点课前知识? 
答:要,但是不多。

2. 都有哪些课前知识?
答:微积分,概率论,线性代数,运筹学等等

3. 我的天!那我是不是先要去学习一下这些知识后再来看这本书?
答:千万别!!! 记得我前面说过:摊子铺大了你有时候就回不来了。 

4. 那我怎么学?
答:很简单。直接看书,看不明白的就去google。比如说你看到SVM那里,不知道什么是拉格朗日,那么就去Google(其实这本书的附录也讲了什么是朗格朗日,甚至还讲解了怎么进行矩阵计算)。 总之,不要兜圈子,遇到什么就去补什么。

同时,在这里我强烈建议你去学习一下coursera上面的机器学习课程,你会对算法有一个更深的认识,关键是你能学会矩阵计算,梯度下降等常用技能:
https: //www.coursera.org/learn/machine-learning

第二步,使用PYTHON结合数据挖掘知识进行实际案列操作。请使用《集体智慧编程》,这本书的评价我也给你们贴出来,豆瓣评分9分,质量自然不用我说。我唯一想强调的是:请你一定要全部代码自己写一遍,不要复制粘贴!!!!!!

如果有时间,请去学习一下关于PYTHON的课程:Introduction to Computer Science and Programming Using Python

第三步,欢迎使用《机器学习系统设计》这本书,你会接触到PYTHON里面最niubility的SCIKIT-LEARN机器学习包。虽然官网文档阅读性已经很佳,但是缺少一个系统的过程。而这本书就是教会你如何从真实的业务角度去思考运用机器学习模型。 同样的,请你自己敲代码,不懂的就去看官方文档,还是不懂的就去google。

第四步,想知道为什么豆瓣和亚马逊的推荐那么准确? 那么《推荐系统实战》绝对是一本最佳的书籍,作者将全部的算法使用PYTHON实现,无论是基于业务的推送还是基于协同过滤算法的推送都讲解的非常清楚!!如果你有兴趣了解,请毫不犹豫的上马拉弓~

第五步,你一定听说过R,一定也纠结过到底学习R还是PYTHON。那么我就粗暴的回答一下:都要学!,前期已PYTHON为主,后期一起学习R语言,不要问我为什么,纯属个人感觉。 

《R IN ACTION》绝对绝对是入门的最好参考书,没有之一。跟着书上的代码敲一遍,模型计算都自己搞清楚(你有了前面的基础,这些学起来很轻松)。

gus

赞同来自: 大数据魔镜

 我试着回答一下,不足之处请见谅!你的问题有4个,即:
1. 要学数据分析的话,从哪里着手?
2. 从哪里弄到有分析价值的数据?
3. 在开源社区有没有开源项目适合用来学习数据分析?
4. 可以自己动手做个什么项目来实践? 

1. 从哪里着手学习?
做一个好的数据分析师或者所谓的数据挖掘工程师,需要具有良好的理工科知识,慎密的逻辑分析方法和思路,常规领域的知识(文学、地理、文化、生活、基本经济领域的常识或经验),有各行各业的朋友也可以说是社会资源(此社会资源非常在招聘启示中所说的社会资源)。

仅做一个“数据搬运工”的话,那个就比较简单了,我想既然你是想扩展,估计不会仅仅想做一个“搬运工”吧!

首先理工科知识,“你说你是一个web前端开发者和rails程序员,计算机专业出身”,那恭喜你,你在使用电算工具方面具有得天独厚的优势,很多人难以成为一个优势的数据分析师,就是卡在这个地方,因为优秀的数据分析师是不会运用别人的处理结果的,因为天知道加工数据的人是否在源数据处理的过程中漏掉哪些重要的部分。

不知你在数学、运筹学、统计学方面的知识精度、深度如何,我想加精加深应该不是难事,使用的分析工具excel是最基础的,理想的分析工具仍然是spss、sas和数据库,excel只适合小数据的分析,但建模用到的知识主要是以上3个方面的知识,因此如果这3个方面的知识你很自信,那恭喜你,你只需要熟悉一下软件使用的方法即可。
再一个,我想做为一个计算机专业的人在逻辑方法、思路这个方面应该也是强项,这个不再表扬了。

第二个方面,常规领域的知识,假如你一直是一个埋头苦干的程序员,我想这部分知识,则是你迫切补充的。
数据分析:数据落脚在你对数据搜集、查全、分类、处理、建模等关键点,分析则是如何解读数据。

解读数据是则是感性大于理性的东西,则考验你的知识面的广度、深度,体验的广度、深度。有一些流程上的体验,有的则是积累。当然做到做方面很困难,因此你需要确定一个比较具体的方向(应足够的小和细),在这个方向上罗列需要掌握的知识和体验,这样不必被海量知识所淹没,迷失方向。

第三个方面有各行各业的朋友,这其实是对第二个方面的补充,拥有不同行业的朋友可以使你缩短你在第二方面的短板,属于借来主义,这个在对付突发情况,没有太多准备时间的时候,是有着非常大的帮助,重点是可以帮你快速排除干扰因素,确定关键因素,以及相对准确的解读方向。需要注意的是,这个绝对不是精分,只能用于精度不算太高的项目当中。

2. 从哪里弄到有分析价值的数据?
免费的数据就在生活当中,只是你没有注意到而已。小的来说,身边的小数据,生活区域的人流量、车辆、常见商品的价格变动(这个可以从统计局网站上获得),你自己的生活数据,工作数据,大的来说,各国各级统计局网站上的公开数据(这是海量的),股票数据,各行业的专业网站上的行业数据 ,知识产权数据(专利数据),报纸信息、广告数据。太多了,不再赘述。

3. 在开源社区有没有开源项目适合用来学习数据分析? 
答案是肯定的,除了你自己可以对感兴趣的方面提个题目外,你可以到市场调查的行业网站,网络调查的平台上,上面有很多正在做的课题和问卷,你不要项目弄得太大,缩小到练习即可。

4. 可以自己动手做个什么项目来实践? 
这个问题,问得让人郁闷,我想反过来问你一句,你想在哪个行业或企业发展?或者是你最关注哪个行业或企业?你所关注的行业或企业过去做什么,现在在做什么,未来计划做什么?做的规划需要了解什么?我想问到这,你应该知道做什么项目了吗?

当然如果你只是想验证一下方法,这个更简单,你拿统计局某一方面的数据比较人口、工资、企业投资,或是股票数据中某一股票的变动分析?

要回复问题请先登录注册