IT屌丝如何成为数据科学家?

jopen 11年前

  数据科学家被《财富》杂志誉为 21 世纪最性感的职业,但遗憾的是大多数企业里都没有真正的数据科学家人才。根据麦肯锡报告,仅仅在美国市场,2018 年大数据人才和高级分析专家的人才缺口将高达 19 万。此外美国企业还需要 150 万位能够提出正确问题、运用大数据分析结果的大数据相关管理人才。

  那么,对于不同职业经历和专业背景的 IT 人士来说,如何才能尽快转型,加入数据科学家的钻石王老五的行列呢?

  Ofer Mendelevitch 近日在 Hortonworks 官方博客发表文章给出了自己的观点。

  Mendelevitch 认为无论是 Java 程序员还是业务分析师都有机会成为数据科学家,以下是他对不同人群给出的具体建议:

  Java 程序员

  作为 Java 开发者,你对软件工程的规则已经了然于心,能够设计软件系统执行复杂任务。数据科学正是关于开发“数据产品”的一门科学,主要是基于数据和算法的软件系统。

  对于 Java 程序员来说,第一步需要了解机器学习的各种算法:现在有哪些算法,都能解决哪些问题以及如何实现。另外还需要学习使用RMatlab 等建模工具,此外 WEKAVowpal WabbitOpenNLP 等库也为大多数常见算法提供了经过验证的实现方法。如果你还不太熟悉 Hadoop,学习 map-reduce、PigHiveMahout 将很有帮助。

  Python 程序员

  如果你是 Python 程序员,对软件开发和脚本编写一定很熟悉,也许已经在使用很多数据科学中常见的库例如 NumPySciPy

  Python 对数据科学应用的支持很好,尤其是 NumPy/Scipy, Pandas, Scikit-learn, IPython 等用于探索性分析的库,以及可视化方面的 Matplotlib

  在处理大型数据集方面,多学些 Hadoop 及其与 Python 的流式集成。

  统计学家与应用科学家

  如果你有统计学或者机器学习的背景,那么你很可能很多年前就开始使用诸如R, MatlabSAS 进行回归分析、聚类分析等机器学习相关任务。

  R、Matlab 和 SAS 是很强大的统计分析和可视化工具,对于很多机器学习算法都有很成熟的实现方法。

  但是,这些工具通常被用于做数据勘探和模型开发,很少单独用来开发产品级的数据产品。在开发端到端的数据产品时,大多数情况下,你需要需要同时用到其他软件模块如 Java、Python 等,并与 Hadoop 等数据平台整合。

  显然,熟悉一门或者多门现代编程语言,例如 Python 或 Java 是你的首要任务。此外,与有经验的数据工程师紧密合作将有助于更好地理解他们开发生产级数据产品所用到的工具和方法。

  业务分析师

  如果你的背景是 SQL,那么说明你已经跟数据打交道很多年了,你很清楚如何通过数据获取业务分析结果。Hive 能让你以你熟悉的 SQL 语言访问 Hadoop 上的大数据集,因此是你步入大数据殿堂的首选。

  数据产品通常需要使用 SQL 无法胜任的高级机器学习和统计,因此对于业务分析师来说,进入数据科学领域的第二个重要步骤就是在理论层面深入了解此类算法(例如推荐引擎、决策树、NLP),并熟悉目前的实现工具如 Mahout, WEKA,或 Python 的 Scikit-learn

  Hadoop 开发者

  作为 Hadoop 开发者,你一定已经了解了大数据集和集群计算的复杂性。你还可能熟悉 Pig、Hive、HBase 并有丰富的 Java 经验。

  第一步,你需要深入了解机器学习和统计,以及这些算法面向大数据集的高效实现方法。Mahout 是个不错的开始,可以在 Hadoop 上实现上述很多算法。

  另外一个需要关注的领域是数据清理(data cleanup),很多算法在建模前都会为数据分配基本结构。但不幸的是,现实中数据大多很“脏”,清理这些数据是数据科学中一项很繁重的工作。Hadoop 通常是建模前大规模数据清理和预处理的工具选择。

  总结

  通向数据科学殿堂之路不可能一帆风顺,你必须学习很多新规则、编程语言,更重要的是还要积累实战经验。这些都需要时间、精力和投入,但最终你会发现一切都物超所值。

  这里有很多你可能会用到的学习参考书籍培训演示文稿