论如何成为一名数据分析师Part 1

论如何成为一名数据分析师Part 1

本篇文章是Quora网站上”如何成为一名数据分析师”问题的高分答案集锦,来自不同领域的回答者结合自己的切身经验,分享了对数据分析师成长之路的看法。本篇文章收录了其中部分评价较高的回答,可为初学者了解或入门数据分析指明方向。

Alex Kamil,就读于哥伦比亚大学

准确的说,不存在”数据分析”这样的东西(详见什么是数据分析?)。

这里有一些我收集的关于数据分析方面的材料,希望能够对你有所帮助(请注意:我是一名本科生,下面提到的资料仅为个人整理所得,在任何方面都不可视为专家意见)。

1.了解矩阵因式分解

学习计算机线性代数相关的课程(这类课程有时也叫做线性代数应用、矩阵计算、数值分析或者矩阵分析等,它既可以属于计算机科学,也可以属于应用数学课程)。矩阵分解算法是许多数据挖掘应用的基础,而在标准的”机器学习”课程中使用的矩阵分解算法通常不具有代表性。面对TB规模的数据时,Matlab等传统工具无法有效地执行数据处理工作,你不可能在大数据上只执行一条eig()语句就可以得出预期的结果。分布式矩阵计算包,例如Apache Mahout[1] 中包含的那些,试图填补这方面的空白,但是,你仍需要理解数值算法/LAPACK/BLAS [2][3][4][5]的工作机制,以便正确使用它们,针对特殊情况进行调整,构建自己的数据处理工具,并将其扩展到商业机器集群中TB级别规模的数据之上[6]。数学课程通常基于本科代数与微积分的基础,因此你应该具有良好的先决条件。

我推荐下面这些自学和参考资料:Jack Dongarra的一些课程以及有哪些不错的学习数值分析的资料?

2.了解分布式计算

了解如何使用Linux集群以及如何设计可扩展的分布式算法(如果你打算对大数据进行分析的话,可以看看这篇文章:为什么人们现在执着于大数据?)非常重要。

过去的Cray和连接机器如今已经被廉价的云主机节点所替代,计算成本也从1984年的1500万美元降低至2011年的低于1.80美元/ GFlop

如果你想充分利用自己的(租用的)硬件环境,那么如何尽可能地发挥多核硬件的性能也至关重要。

请注意:这部分内容并不在标准的机器学习课程的范围之内,但你或许可以在计算机科学授课目录中找到诸如分布式系统或者并行编程之类的课程。可参考一些分布式系统的资料,对于初学者也可以参照计算机网络简介。

在学习了网络和分布式系统的基础知识后,我建议你了解下分布式数据库,这些数据库不久将随着数据规模的迅速增长以及纵向规模达到极限而得到普及。详见分布式数据库的一些关键工作与研究趋势,对于初学者也可以参照关系型数据库导论以及分布式数据库导论(HBase实战)。

3.了解统计分析

刚开始学习统计学时可以使用R编程:R语言有哪些必备的参考书?并结合真实数据进行实验:哪里可以找到公开的大型数据集?

Cosma Shalizi编写了一些非常优秀的关于计算统计学的资料,你可以查看他的授课课件,以及有哪些不错的学习统计分析的资料?

我发现比起按部就班地学习Stats 101课程,在特定领域中(例如,自然语言处理)学习统计学会更加轻松。我个人的建议是学习哥伦比亚大学Michael Collins教授的课程(这门课程你也可以在Coursera上找到)。

你也可以挑选一个需要应用定量统计和因果原则[7]的领域,比如说分子生物学[8]、癌症研究[9]等比较有趣的子领域、肿瘤血管生成的遗传分析[10]以及其他更窄的领域等等。尝试回答该特定领域中的重要问题,并了解在这个过程中需要掌握哪些知识。

4.了解最优化

这部分知识是理解许多机器学习与信号处理算法的前提。

可以从Stephen P. Boyd的视频课程学起,也可以参考有哪些不错的学习最优化的资料?

5.了解机器学习

在你准备算法之前,你需要仔细检查现有的数据并从中挑选出有助于过滤信号噪声的数据特征。可以看看Jeremy Howard对此的看法:在Kaggle中,知道得太多并不一定就是好事。

也可以参考如何学习机器学习?以及有哪些适合初学者的学习大规模机器学习的资料?分别有什么特点?

统计学VS机器学习,加油!

你可以根据MIT、斯坦福以及其他顶尖高校的在线课程目录和课表来制定自己的学习计划。结合数据多做实验,修改一些代码,多提问题,与周围的人多讨论,并自己实现一个网络爬虫:搜索引擎剖析。

你可以选择加入一家初创公司,在实践中学习:有哪些初创公司会聘用擅长机器学习与NLP的工程师?

如果你想更加正式地学习这些知识的话,你也可以去参加计算机科学或者机器学习的培训,当然这种培训的费用也相当昂贵。详见:计算机科学专业的硕士学位值得吗?为什么?

尽量避免专业化程度过高的情况。当进入一个新的领域并着手处理棘手问题时,广度优先的方法往往最为有效,可以结合贝格尔号第二次远航的故事,想一想一名年轻的数据挖掘师在大数据中的探险。

6.了解信息检索

机器学习实际上并没有听起来那么酷:有哪些不错的适合初学者学习信息检索的资料?为什么?

7.了解信号检测与评估

这是一个经典的课题,而且在我看来这是”数据分析”中最为优秀的部分。这些方法曾指导阿波罗登月计划,并用于敌方潜艇的探测,至今这些方法仍在许多领域中有着广泛的使用。这部分内容通常是电子工程课程中的一部分。

有很多不错的参考资料,例如,Robert F. Stengel关于优化控制与评估的授课课件: Rob Stengel的主页和Alan V. Oppenheim的信号与系统课程。以及有哪些不错的学习信号评估与检测的资料?此外也需要关注下卡尔曼过滤器,其在时间序列预测中得到了广泛的应用。

说到数据,你可能想了解一些关于信息的知识:信息的传播、压缩以及如何从噪声中过滤出信号。通信技术工程师在20世纪60年代设计的方法(例如维特比解码器,如今应用于约10亿部的手机中,还有Gabor小波,在虹膜识别领域得到了广泛应用)适用于各种各样的数据分析任务,从基于统计的机器翻译到理解分子网络的组织结构与功能等等都有其用武之地。对于初学者而言,Robert G. Gallager的信息论和可靠通讯是一本不错的资料。也可以参考有哪些不错的学习信息论的资料?

8.掌握算法与数据结构

有哪些最适合初学者学习算法的资料?

9.实践

学习数据分析你需要了解什么?

数据分析领域有哪些好玩的问题?

工具:最好的数据分析工具有哪些?

在哪里能够找到公开的大型数据集,去做数据分析实验?

如果你打算攻读硕士学位:

学习工程学

我建议你在计算机科学领域中,将重心放在信息检索、机器学习或者二者的结合上,并参加一些相关的系统课程。作为一名”数据分析师”,你必须亲手编写大量代码,可能还需要开发分布式算法或系统来处理海量规模的数据,以实现数据分析的结果。统计学的硕士学位会让你学会如何建模,并进行回归分析,而不是如何实现一个系统,我认为,随着数据规模的迅速增长以及现有数据分析工具逐渐过时,后者在现在看来更为重要。能够从头搭建数据挖掘系统的工程师相对来说比较短缺。你可以从相关图书中获取统计数据并使用R进行实验,祝你好运。

发表评论

您的电子邮箱地址不会被公开。