如何自学成为数据科学家或AI工程师?你需要攻克这九点

并非每个人都有时间在教室里学习数据科学、人工智能或机器学习,也并非每个人都能负担得起正式学习这些领域知识所需要的费用。那我们应该怎么办呢?软件开发者、机器学习工程师 Jerry Buaba 提供了一条自学路径。

人们在尝试学习数据科学、人工智能或机器学习时所面临的最大拦路虎就是时间和金钱。自学是一门艺术,需要足够的自律、勤奋和专注。利用得当的话,它能让你灵活地将学习与工作结合起来。

然而,自学数据科学、人工智能或机器学习的开始阶段会非常艰难,但请相信这一切都是值得的。自学时取得良好进展的关键是按照自己的节奏学习。

本文将分享一条自学数据科学、人工智能和机器学习时可以遵循的道路,同时也能帮助大家在学习新事物上取得良好进展。

学习数学

学习数学听起来很烦人,但对这个领域来说是十分必要的。阅读这篇文章的读者应该都从高中学到了一些初高级数学知识。这是很好的开端,但仅有这些知识在数据科学、人工智能和机器学习领域还远远不够。你需要更深入地学习一些统计学、代数和其他的数学概念。

必备数学知识资源列表,参见:https://towardsdatascience.com/mathematics-for-data-science-e53939ee8306。

学习编程

作为初学者而言,不要直接开始学习编写机器学习代码,而是首先学习一般编程的核心概念。先了解什么是编程、现有的编程语言种类、如何正确地写代码等。这些东西非常重要,因为你将学到许多重要的概念,而这些概念将一直伴随着你。

所以这一步要慢慢来,不要急于学习高级的东西,在这个过程中对事物的理解深浅将决定你在这个行业中的表现。

这个视频介绍了编程和计算机科学,可以帮你过一遍计算机科学和编程中的重要概念:https://www.youtube.com/watch?v=zOjov-2OZ0E。

熟练掌握一种编程语言

数据科学家、人工智能和机器学习工程师使用的语言多种多样,其中最常用的语言是 Python、R、Java、Julia 和 SQL。当然还有很多其他的可用编程语言,这里列出的是最常用的语言,原因如下:

只要投入足够的时间进行学习并坚持下来,你可以比较容易地学会这些语言,并且它们的开发速度很快。

可以利用更少的代码完成更多的功能。

社区和生态十分完善,任何时候遇到任何问题社区都能提供帮助和支持。

拥有数据科学家、人工智能或机器学习工程师所需要的几乎所有库和软件包。

开源且免费使用。

学习多种语言绝对没错,事实上这是一件很好的事。然而,在学习每一门编程语言时,你需要慢慢来,尽量不要同时学习多种语言,因为这可能会让你感到困惑,并让你在一段时间内迷失方向。

慢慢来,一次学一门语言,确保只学习你职业生涯所需要的那部分语言。我建议先学 Python,因为它相对比较容易理解。此外,我还建议大家按先后顺序学习以下资源:

https://www.youtube.com/watch?v=rfscVS0vtbw&t=5s

https://www.youtube.com/watch?v=r-uOLxNrNk8

学会如何获取数据

数据通常不会直接送到你手里,有时根本就没有现成的数据,但无论如何,你必须找到一种方法来获得能使用的数据。

你工作的地方可能有一不错的数据收集系统,如果这样那你就可以省心了。如果没有的话,你必须找到一种方法来获取数据,不是任何数据都可以,而是可用来实现目标的有效数据。

获取数据并不完全等同于数据挖掘,它是数据挖掘的一个过程。你可以在互联网上许多地方获得免费和开源的数据,有时你可能需要从网站上抓取数据。网络爬虫非常重要,我希望每个人都能学习网络爬虫,因为你的职业生涯中可能会经常用到它。

网络爬虫教程:https://www.youtube.com/watch?v=0_VZ7NpVw1Y

数据有时会保存在数据库中,那么作为数据科学家、人工智能或机器学习工程师,你还需要了解一点数据库管理知识,以便在工作中直接连接和使用数据库。在这个阶段,SQL 知识是非常重要的。

SQL 学习资源:https://www.youtube.com/watch?v=sTiWTx0ifaM&t=15s

学习如何处理数据

这通常被称为「数据整理」(Data Wrangling)。该过程包括数据清理, 这可以通过对数据执行一些探索性数据分析并删除数据中不需要的部分来完成。

数据整理过程还包括将数据结构化为可以使用的格式。在数据科学、人工智能或机器学习项目中,这个阶段是最累人的部分。在学习过程中,你将要使用的大多数样本数据都已经过预处理,但是现实世界中的数据可能还没有经过任何处理。作为一个有志于在这个领域做好的人,你应该寻找一些真实世界数据并进行处理。真实世界的数据几乎可以在任何地方找到,但是 Kaggle 仍是一个从全球公司获取真实数据的神奇地方。

数据整理或处理是一项非常累人的任务,但是如果有持续的奉献精神和专注,它也可能是件有趣的事。

数据整理相关课程:https://www.youtube.com/watch?v=sz_dsktIjt4

学习如何可视化数据

成为数据科学家、人工智能或机器学习工程师,并不意味着你的工作场所或团队中的每个人都能够理解你所在领域的技术细节,或者能够从原始形式的数据中做出推断,因此我们需要对数据进行可视化。

数据可视化通常是指使用图表来展示数据,以便任何不具备数据科学、人工智能或机器学习知识的人也能理解这些数据。

数据可视化的方法有很多。作为程序员,编写代码来可视化数据应该是首选方法,因为这种方法速度快,而且无需成本。编写代码来可视化数据可以通过我们使用的编程语言提供的许多免费和开源库来完成。Matplotlib、Seaborn 和 Bokeh 都是可用来可视化数据的 Python 库。

Matplotlib 数据可视化教程:https://www.youtube.com/watch?v=yZTBMMdPOww

可视化数据的另一种方式是使用 Tableau 之类的闭源工具。很多闭源工具可用来制作更优雅和复杂的可视化结果,但是需要付费。Tableau 是最常用的工具,也是我个人经常使用的工具。我推荐大家学习使用 Tableau。

Tableau 使用教程:https://www.youtube.com/watch?v=aHaOIvR00So

人工智能与机器学习

人工智能和机器学习更像是数据科学的子集,因为它们都是由数据驱动的。它们指通过向机器或其他无生命物体提供经过良好处理的数据,使它们的行为与人类相似的过程。机器可以通过逐渐的教导和引导来做很多人类能做的事情。在这种情况下,我们可以把机器想象成一个完全没有知识的婴儿,他们逐渐学会识别物体、说话、从错误中学习并变得更好。我们也可以用同样的方式教机器做这些事。

人工智能和机器学习大体上是通过多种数学算法来给机器赋能。人工智能和机器学习的全部潜力仍然不为人知,因为它是一个不断发展的领域。但目前人工智能和机器学习被广泛应用于认知功能,如目标检测和识别、面部识别、语音识别和自然语言处理、欺诈和垃圾邮件检测等。

AI 和 ML 通用应用:https://www.youtube.com/watch?v=5hNK7-N23eU

深入了解机器学习:https://www.youtube.com/watch?v=GwIo3gDZCVQ&t=5s

观看完以上视频后,你应该能够大致了解机器学习初学者和中级知识,了解许多可用的机器学习算法及其作用和使用过程。现在, 你应该准备好构建第一个简单的机器学习模型了,你可以参考 Victor Roman 的这篇文章:https://towardsdatascience.com/machine-learning-general-process-8f1b510bd8af。

学习如何使自己的机器学习模型可在互联网上使用

通过机器学习训练得到的模型可以通过部署,让互联网上的每个人都可以使用。要做到这一点,你需要对 web 开发有很好的理解,因为你必须创建一个或一组网页来发布模型。

网站前端也需要与容纳模型的后端进行通信。为此,你还需要知道如何构建和集成 API,以处理网站前后端之间的通信问题。

如果你打算通过 pipeline 或 docker 容器在云服务器上部署机器学习模型,那么你可能需要对云计算和运维有充分地了解。部署机器学习模型的方法有很多,但首先,我建议你学习如何使用 python web 框架 Flask 来部署机器学习模型。

教程:https://www.youtube.com/watch?v=UbCWoMf80PY

师傅领进门

能够自学成才当然很棒,但没有什么比直接从行业专家那里学习效果更好。有些知识通过学习现实生活中的概念就可以掌握,而有些知识只有亲身体验才能学会。

相关推荐