[关闭]
@sambodhi 2018-05-26T00:33:57.000000Z 字数 3816 阅读 1866

我的数据科学家工作初体验

作者|Admond Lee
译者|Liu Z Y
编辑|Vincent

AI前线导读:数据科学家这一职业真的炙手可热,但是数据科学家也分应用型和研究型,因此并不是我们想象中那么高不可攀。尤其是在很多既有的工具或资源可用的情况下,数据科学的钻研可深可浅,就看你能玩到哪个级别。如今很多非科班出身的转行搞数据科学,也不是什么很稀罕的事。这不,物理学系出身的Admond Lee就写了一篇他的第一次实习数据科学工作的经历,AI前线翻译了本文,希望对有志于从事数据科学职位的读者们有所启示。

撰写本文时,正是我在Quantum Inventions的数据科学家实习即将结束前的最后一天。现在,我坐在笔记本屏幕前,回首过去这几个月的学习之旅,感慨万千。

到了最后,在旅程结束后,问题仍然存在:你学到了什么?那是你想要的吗?

请原谅我作为一名物理学家,搞物理的都笃信这点:提出正确的问题,通过正确的推理,来寻求真理。事实上,提出正确的问题,无疑是重要的数据科学家(稍后将解释)。

为了让你对本文有一个概观,本篇文章主要分三步部分:实习之前、实习期间和实习之后,让你了解我的学习历程。你可以根据你当前的学习阶段,随意跳到本文的任何部分,那让我们现在就开始吧。

谢谢你们!当我的第一篇文章发在Medium上,读者们的支持潮水般势不可挡地涌来,甚至被Towards Data Science加精,我的情绪很是激动!

这已经成为我继续与更多人分享我的学习经验的核动力,因为,如果学习很有趣,那帮助他人会更好!


在实习开始之前

我仍然清楚地记得,我在2017年11月期末考试后的第二天就开始阅读教材:《统计学导论:基于R应用》(An Introduction to Statistical Learning — with Applications in R),这是我在非常基础的统计学层面第一次接触机器学习。

AI前线注:该书中文版链接:https://3clm.jd.com/product-detail.html?sku=26581237226
英文版链接:https://3clm.jd.com/product-detail.html?sku=19727401

我一掌握这些概念之后,我就开始学习Andrew Ng在Coursrea上教授的机器学习课程,这门课程非常流行。事情并不像起初看起来那么容易,但是Andrew Ng总是能够吸引人们的注意力,尽管他讲授的概念非常复杂,但他简化了这些概念,其他人都能够消化。我想这就是让我真正迷恋机器学习的方式。试试吧,你会发现这个流行词“机器学习”并不像它听上去那么复杂。我敢打赌!

同时,我还学习了人工智能的另一个重点领域——深度学习。为了让大家了解看似陌生的术语,请看一下神经网络的解释,以及如何使用神经网络来计算任何函数。如果你阅读完我建议的文章之后,你像我一样,需要某种可视化来理解神经网络是怎么工作的,请访问这个网址[1](见文末)。在这个网页中,你点击“Play”按钮,就可以观察神经网络是如何进行分类和回归的。很酷不是么?

在我于2017年12月开始实习之前,所有的阅读、做事和学习都已经准备好了。


在实习期间

Quantum Inventions专注于通过利用其集成的移动应用套件,为消费者、企业和政府提供移动智能。它们还提供了企业物流和分析平台。我是该公司的第一位加入研发和分析团队的数据科学家实习生。

在最初几天里,我被介绍给公司里出色的同事,见识了业内各种通信术语,以及正在进行的令人兴奋的项目。我最喜欢实习的一件事就是,作为实习生,公司给了我信任和自由,我得以选择我感兴趣的项目,并为之全力以赴!

让我感到吃惊的是,我才意识到,我是这个项目的先驱者,因为之前并没有人做过这个项目。当没人做些事的时候,就会有人去研究,这就是我所感激之处,尽管这项研究存在不确定性和困难。为什么这么说?很简单,因为我有机会从零开始体验真正的数据科学工作流程(如果不是全部的话)。

请允许我在本文中,简要地列出我所经历的工作流程,因为这些都是我在数据科学领域中建立的基础。我希望这些能为你提供某些帮助。

1. 了解业务问题

所选项目是关于短期高速公路旅行时间的预测。但是,就像我所说的,提出正确的问题对数据科学家来说非常重要。要在项目完成之前提出很多问题,以真正地理解真正的业务问题,无论是可用的数据源,还是项目的最终目标(即使我离开项目之后)等等。从本质上来说,我们的目标是,让新加坡高速公路的行驶时间的预测比目前的基线估计法更准确。

2. 收集数据源

接手这个新项目之后我感到很兴奋,开始着手从数据库和同事那里收集数据源(基本就是在办公室四处走动,询问关于数据源的问题)。收集正确的数据源,就类似于你从不同网站抓取数据以便进行数据预处理的情况一样。这项工作很重要,因为它可能会影响你在后期阶段建立的模型的准确性。

3. 数据预处理

要知道,真实世界的数据很脏。我们不能寄希望于Kaggle提供格式良好的、清洗过的数据。因此,数据预处理(其他人可能会称之为数据整理或数据清洗)至关重要,以至于我无法再强调它的重要性了。数据预处理是最重要的阶段,因为它可以占据整个工作流程的40%~70%,只是为了清理将要提供给你模型的数据。

输出质量是由输入质量决定的。(Garbage in, Garbage out)

我喜欢数据科学的一点就是,你必须对自己诚实。当你不知道自己哪里无知,而你认为预处理的数据已经足够干净,并准备好为你的模型提供数据时,那么就有风险了:用错误的数据构建正确的模型。换言之,如果数据在技术上与你拥有的领域知识相符的话,你要始终试着质疑自己,要严格审查数据,检查整个数据集中是否存在其他异常值、缺失或不一致的数据。

在我错误地将错误数据输入模型之后,我就对此特别小心,只是因为预处理步骤中存在一个简单的缺陷。

4. 构建模型

经过一番研究之后,我为项目提出了四个模型,分别是支持向量回归(Support Vector Regression,SVR)、多层感知器(Multilayer Perceptron,MLP)、长短期记忆网络(Long Short Term Memory,LSTM)和状态空间神经网络(State Space Neural Networks,SSNN)。为简洁起见,你可以在网络上找到上述模型的详细说明。

对我来说,从头开始构建不同的模型是一个陡峭的学习曲线,因为我当时还在MOOC和教科书中学习。幸运的是,Scikit-learn和Keras(带有TensorFlow后端)帮我解决了这个问题,因为很容易在Python中习得快速模型原型及实现。此外,我还学习了如何优化模型,并使用几种技术对每个模型的超参数进行微调。

5. 评估模型

为了评估每个模型的性能,我主要使用了以下的一些指标:

  1. 平均绝对误差(Mean Absolute Error,MAE);
  2. 均方误差(Mean Squared Error,MSE);
  3. 可决系数(Coefficient of Determination(R2))。

在这个阶段,重复步骤3~5次(可互换),直到确定最佳模型,足以超过基线估计值。


实习之后

实习肯定重申了我对数据科学的热情,我很感激我的工作能给未来的工作留下了一些吸引力。研究和开发阶段、与不同利益相关者沟通所需的技巧、用数据解决业务问题的好奇心和热情(此处仅举几例)都有助于我对这一领域产生兴趣。

数据科学这一行业还很年轻,关于这一行业的职位描述,对某些像我们这样的求职者而言,似乎有些模糊而朦胧。如果你不具备所需的所有技能,这很正常,因为大多数职位描述都理想化了,以符合雇主的最佳期望。

如果你有疑问,你只需从MOOC、书籍和文章(我现在仍然这样做)中学习基础知识,并将你所学到的东西应用到你的个人项目或实习中去。要耐心些,因为学习是需要时间的。要享受你的学习过程,因为……

到了最后,在旅程结束后,问题仍然存在:你学到了什么?那是你想要的吗?

感谢你的阅读。我希望本文能够为你提供一些简要的(并非详尽的)数据科学工作流程和我的学习过程的文档。

原文链接: My First Data Scientist Internship
https://towardsdatascience.com/my-first-data-scientist-internship-7f7aa2ee4040

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注