1、 成都 CDA 数据分析 1如何零基础入门数据分析随着数据分析相关领域变得火爆,最近越来越多的被问到:数据分析如何从头学起?其中很多提问者都是商科背景,之前没有相关经验和基础。我在读 Buisness Analytics 硕士之前是商科背景,由于个人兴趣爱好,从大三开始到现在即将硕士毕业,始终没有停下自学的脚步。Coursera 和 EDX等平台上大概上过 20 多门网课,Datacamp 上 100 多门课里,刷过 70 多门。这篇文章是想谈一谈个人的数据分析学习经验,希望对想要入门这个领域的各位有帮助。1. 基本工具学习数据分析的第一步,是了解相关工具Excelexcel 至是最基础的数据
2、分析工具,至今还是非常有效的,原因是它便于使用,受众范围极广,且分析结果清晰可见。相信大多数人都有使用 excel 的基本经验,不需要根据教材去学习了。重点掌握:基本操作的快捷键;函数:计算函数、if 类、字符串函数、查找类(vlookup 和 match),一定要熟悉函数功能的绝对和相对引用; 数据透视表功能等。另外,excel 可以导入一些模块来使用,典型的包括数据分析模块,作假设检验常用;规划求解,作线性规划和决策等问题非常有效。利用这些模块可以获得很不错的分析报告,简单且高效。SQL数据分析的绝对核心!大部分数据分析工作都是对数据框进行的,在这个过程中,需要不断的根据已有变量生成新变量
3、、过滤掉一些样本还有转换成都 CDA 数据分析 2level。SQL 的设计就是为了解决这些问题。其他常用的数据操作工具,包括 R语言的数据框、Python 里的 pandas,基本都是借鉴了 SQL 的思想,一通百通。SQL 入门容易,它的语法极其简单,基本可以说上过一门相关的课或看过一本相关的书就可以了解大概,但融会贯通并能够进行各种逻辑复杂的操作,就需要长时间的锤炼了。SQL 的学习建议,随便找一本书或者网课就好,因为主流的课程基本都是一个思路:先讲 SELECT、WHERE、GROUP BY(配合简单的聚合函数)、ORDER BY 这类单表操作,之后讲 JOIN 进行多表连接。除此之外
4、,必会的基本技能还应该包括 WINDOW FUNCTION 和 CASE WHEN 等等。学了基本的内容之后,就是找项目多练,不断提升。R/Python熟练 SQL 之后,对数据操作方面的内容就得心应手了。接下来更复杂的问题,如搜索和建模,则需要使用编程语言。R vs Python目前最主流的数据分析编程语言就是 R 和 Python,网上遍是关于这两者的争论,有兴趣的可以简单看一下,但不用陷入过度的纠结。我个人的经验来看,熟练两者其中的任何一个都可以胜任数据分析中的大部分工作,不存在某一个语言有明显缺陷的情况。这里不想大篇幅的比较两者,但是想简单的说一下两者的侧重点:R 语言是为了解决统计问
5、题而设计的,因此它有一个很人性化的地方:最大程度的简化语言,从而让分析人员忽略编程内容,直面数据分析。也因为是成都 CDA 数据分析 3统计语言,很多基本的统计分析内容在 R 里都是内置函数,调用十分便捷。此外,R 的报告能力很强,大部分模型库在训练模型后都会提供很多细节,也比较容易通过 rmd 转换成优美的 doc/pdf/html。Python 先是一门 general 的编程语言,之后才是数据分析工具。初学python,语法肯定是不如 R 容易理解的。但使用到后来,当越来越多的需要自己定义时,Python 的优势就显现出来了。另外,Python 在数据量大时速度会比较快。至于先学哪一个,
6、需要结合自己的规划来看:如果最终两个都要学,那我毫不犹豫的建议从 R 开始;如果两个选一个学的话,我目前倾向于 Python,不过如果你确定自己以后只做业务方面的内容,那 R 可能更好一些。另外,如果有专注的领域的话,那么要结合自己的领域来定,比如搞投资分析的可以看一看 R 语言的 PortfolioAnalytics 库,大概就明白,说 R 语言把编程简化专注结果所言非虚。R 语言学习当然无论入门哪种语言,学习路径都很重要。R 语言的学习建议从基础数据结构开始,了解 R 中的 vector、dataframe 和 list 等结构,对语法有基本的理解。之后建议学习 dplyr 和 ggplo
7、t2 这两个库,两者分别是数据操纵和可视化库,学过之后可以做一些基本的数据项目了。学习平台首推 datacamp,是付费的但绝对物有所值,没有比边学边练更好的学习方式了。此外推荐一本 R语言实战(R in Action),可以当作学习手册。Python 学习包括我在内的很多同学都把 Coursera 上的 Python for everyone 当作启成都 CDA 数据分析 4蒙教材,这是一门很好的课程,但对于专注数据分析的 Python 使用者而言,课程没有提供最完美的学习路径。学习 Python 也应该从数据结构开始,list、dictionary、tuple 这些数据结构要了解。之后建议
8、学习numpy、pandas 和 matplotlib,分别是矩阵库、数据框库和可视化库,基本就算是入门了。学习 Python,Datacamp 依然是个很不错的平台,但是资源不如 R 丰富。首推一本叫利用 python 进行数据分析(Python for data analysis)的教材,直接传授数据分析最需要的编程技能,熟悉书中的知识基本就可以说学会 Python 数据分析的基本操作了。2. 描述性分析和统计基础了解基本工具之后,还要拥有相关的知识才能正式开始数据分析。分析的基础是统计知识,相信大部分人都学过概率和统计相关的课程,自己基础是否够扎实,可以考一考自己:均值/标准差/相关性等
9、指标,各种探索性分析场景用哪种可视化方法比较好,抽样分布/置信区间/假设检验,贝叶斯理论等。在这些相关内容没有彻底熟练之前,建议不要认为自己基础已经足够扎实了,这些内容都是值得反复学习的。另外,可以结合数据分析工具来学习,比如用 R或 Python 进行双均值假设检验(当然这里是手写而不是调用函数),对理解编程和理解统计都有帮助。这里推荐深入浅出统计学和深入浅出数据分析两本书,可以作为入门,也可以作为复习,当然如果统计背景比较深,没必要看了,太基础了。也推荐 Coursera 杜克大学的 Statistics with R,前三门课质量都比较高,需要有 R 的基本知识,可以边学统计边练 R。描
10、述性分析真的很重要,这里需要再强调一下。如果真的想做数据分析,成都 CDA 数据分析 5尤其是业务导向的数据分析,建议一定要重视这部分。平时做项目也是一样的,拿到数据后先彻底的理解数据,不要急着往模型里放。3. 机器学习终于到了机器学习,我猜对于很多数据分析学习者,机器学习是本质目的。机器学习是有不同种学法的:对于业务数据分析者,了解各类模型的使用场景、优劣势,基本就足够了;对于偏数据科学和挖掘的人员来说,要深入理解每一种模型,至少得写出推导步骤;更深入的算法导向人员,还要有从头实现算法的能力。这篇文章的目标读者主要是第一类和第二类。学习机器学习模型可以从理解模型和实现两个方向入手,目前主流的
11、实现工具还是 R 和 Python。Datacamp 上有很多用 R 和 Python 进行机器学习的课程,看了之后基本可以了解机器学习模型在做什么,平时的应用场景大概怎样。流行的模型一定要理解,像逻辑回、支持向量机(核函数)、k 邻近、朴素贝叶斯、集成学习模型(随机森林和各类 boosting)都是很常用的模型;bias-variance tradeoff、标准化、正则化、交叉检验、重采样,这些概念也要了解。如果想进一步深入的去理解模型细节,那么微积分和线性代数是必要的先修课,否则无法继续进行了。当然如果决定进一步学习细节,需要看更多的教材,上一些相关课程。网上的相关课有很多,目前最火爆的肯
12、定是 Coursera Andrew Ng 的机器学习。这门课也是我的入门课,确切的说我第一次学这门课的时候,甚至还不会调包,也不太会编程,就跟着一步一步做,很艰难的完成了作业。做到神经网络那部分,当时实在写不出来,去网上找答案看。到现在,这门课我应该看成都 CDA 数据分析 6过有五遍了,基本上每隔几个月重新看一下都有新的收获。Coursera 还有另一系列的机器学习课来自华盛顿大学,质量也很高,课程用 Python(缺陷是使用的库不是 pandas 和 sklearn,而是授课者自己开发的库),很大一部分内容是手写模型,很有助于打好基础。此外,因为这是一系列课,所以覆盖范围要比 Andre
13、w Ng 的课广一些,回归问题、分类问题、非监督问题,都单独成为一门课程。很多机器学习的教材写的也不错,比如 An Introduction to Statistical Learning(ISL)和 Machine Learning with R,两者都是讲模型的数学推导,并用 R 语言实现。机器学习确实是很深奥的东西,如果时间允许建议经典的课程和教材都看一看,有的课甚至可以多看几遍。4. 更进一步如果以上内容都比较扎实的完成,可以说能够进行大部分项目了,也对数据分析有着很成体系的理解。之后可以结合自己的需求,深入学习更多的内容,或者结合实际项目练习。尝试着找一些完整的项目去做,比如说 ka
14、ggle 就是很不错的平台,会提供数据集进行使用。kaggle 的入门赛也做的很好,简单易懂,让新人不会太迷茫。如果有额外兴趣的话,还是有很多更深奥的东西值得学习的,比如深度学习范围的内容或者大数据的相关技术等。5. 结尾的话很多人在入门数据分析时候都会问:我从零开始,多久能学会机器学习?其实取决于你怎么理解会,如果从头学 python,到能使用 sklearn 调出机器学成都 CDA 数据分析 7习模型,大概一个月就完成了。但深入的去理解以上内容,确实不是一年半载能完成的。我见过很多人追求速成,也确实速成了。遇到项目基本就是把数据导进来,不做特征处理,然后调出各种模型(其中不乏像神经网络和 boosting 这种比较高级的模型) ,每个用默认参数试一次,看看效果。然而数据分析没那么简单,也没那么 fancy。做一个项目,80%的时间都在准备,涉及到许多数据清理和操作,其中的一些东西是任何教材和课程都无法传授的。还是更建议一步一个脚印的去学习,边学边做、边学边想,记好学习笔记,并定期总结学习心得。打好基础不可急于求成,才是学习的最好途径。成都 CDA 数据分析 8来源:http:/