译者 | Liu Z Y编辑 | Natalie微信公众号 | AI 前线(ID:ai-front)
撰写本文时,正是我在 Quantum Inventions 的数据科学家实习即将结束前的最后一天。现在,我坐在笔记本屏幕前,回首过去这几个月的学习之旅,感慨万千。
到了最后,在旅程结束后,问题仍然存在:你学到了什么?那是你想要的吗?
请原谅我作为一名物理学家,搞物理的都笃信这点:提出正确的问题,通过正确的推理,来寻求真理。事实上,提出正确的问题,无疑是重要的数据科学家(稍后将解释)。
为了让你对本文有一个概观,本篇文章主要分三步部分:实习之前、实习期间和实习之后,让你了解我的学习历程。你可以根据你当前的学习阶段,随意跳到本文的任何部分,那让我们现在就开始吧。
在实习开始之前
我仍然清楚地记得,我在 2017 年 11 月期末考试后的第二天就开始阅读教材:《统计学导论:基于 R 应用》(An Introduction to Statistical Learning — with Applications in R),这是我在非常基础的统计学层面第一次接触机器学习。
AI 前线注:
该书中文版链接:https://3clm.jd.com/product-detail.htmlsku=26581237226
英文版链接:https://3clm.jd.com/product-detail.htmlsku=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. 评估模型
为了评估每个模型的性能,我主要使用了以下的一些指标:
- 平均绝对误差(Mean Absolute Error,MAE);
- 均方误差(Mean Squared Error,MSE);
- 可决系数(Coefficient of Determination(R2))。
在这个阶段,重复步骤 3~5 次(可互换),直到确定最佳模型,足以超过基线估计值。
实习之后
实习肯定重新激发了我对数据科学的热情,我很感激我的工作能给未来的工作留下了一些吸引力。研究和开发阶段、与不同利益相关者沟通所需的技巧、用数据解决业务问题的好奇心和热情(此处仅举几例)都有助于我对这一领域产生兴趣。
数据科学这一行业还很年轻,关于这一行业的职位描述,对某些像我们这样的求职者而言,似乎有些模糊而朦胧。如果你不具备所需的所有技能,这很正常,因为大多数职位描述都理想化了,以符合雇主的最佳期望。
如果你有疑问,你只需从 MOOC、书籍和文章(我现在仍然这样做)中学习基础知识,并将你所学到的东西应用到你的个人项目或实习中去。要耐心些,因为学习是需要时间的。要享受你的学习过程,因为……
当你有疑问时,从 MOOCs、书籍和文章 (我现在还在做的) 中学习基本原理,并将你所学到的东西运用到你的个人项目或实习中。要有耐心。学习之旅的确需要时间。津津有味地学习你的旅程。因为…
到了最后,在旅程结束后,问题仍然存在:你学到了什么?那是你想要的吗?
感谢你的阅读。我希望本文能够为你提供一些简要的(并非详尽的)数据科学工作流程和我的学习过程的文档。
原文链接:
https://towardsdatascience.com/my-first-data-scientist-internship-7f7aa2ee4040
[1] http://playground.tensorflow.org/#activation=relu®ularization=L2&batchSize=10&dataset=circle®Dataset=reg-plane&learningRate=0.01®ularizationRate=0.001&noise=50&networkShape=4,2&seed=0.94867&showTestData=false&discretize=false&percTrainData=90&x=true&y=true&xTimesY=false&xSquared=true&ySquared=true&cosX=false&sinX=false&cosY=false&sinY=false&collectStats=false&problem=regression&initZero=false&hideText=false
本文为专栏文章,来自:AI前线,内容观点不代表本站立场,如若转载请联系专栏作者,本文链接:https://www.afenxi.com/53748.html 。