并非所有人都有机会在课堂上学习数据科学、人工智能或机器学习,也不是每个人都能承担正式教育的费用。那么,我们该如何应对呢?软件开发者和机器学习工程师 JeRRy Buaba 提供了一条自学之路。
在学习数据科学、人工智能或机器学习的过程中,时间和金钱常常是最大的障碍。自学是一项需要高度自律、勤奋和专注的艺术。合理利用自学,可以灵活地将学习与工作结合起来。
尽管自学的初期阶段可能会遇到许多困难,但相信这一切都是值得的。取得良好进展的关键在于按照自己的节奏学习。
本文将为您分享一条自学数据科学、人工智能和机器学习的路径,帮助您在学习新知识的过程中取得进展。
学习数学
数学学习可能听起来枯燥,但对于这一领域却是必不可少的。阅读本文的读者应该已经掌握了一些高中阶段的基础数学知识,这为学习打下了良好的基础。然而,这些知识远远不够,您还需深入学习统计学、代数及其他相关数学概念。
必备的数学知识资源列表,详见:(链接已清除)
学习编程
作为初学者,您不应直接学习机器学习代码,而应首先掌握一般编程的核心概念。了解编程的基本概念、现有编程语言的种类以及如何正确编写代码是至关重要的。这些基础概念将伴随您在整个学习过程中。
在这个阶段,请勿急于学习高级内容,您对事物的理解深度将直接影响您在行业中的表现。
以下视频介绍了编程和计算机科学的基本概念,适合您回顾:(链接已清除)
熟练掌握一种编程语言
数据科学、人工智能和机器学习工程师常用的编程语言包括 Python、R、Java、Julia 和 SQL等。虽然还有许多其他语言可供选择,但这些是最常用的,原因如下:
- 只需投入足够的学习时间,您便能较容易地掌握这些语言,并且它们的开发速度较快。
- 能够用更少的代码实现更多功能。
- 拥有完善的社区和生态支持,遇到问题时能获得帮助。
- 几乎涵盖了数据科学、人工智能或机器学习所需的所有库和软件包。
- 开源且免费使用。
学习多种语言是有益的,但在学习每种编程语言时,建议您慢慢来,避免同时学习多种语言,这可能会导致混淆和迷失方向。
建议先学习 Python,因为它相对易于理解。接下来,可以按顺序学习以下资源:
(链接已清除)
(链接已清除)
学会如何获取数据
数据通常不会直接提供给你,有时甚至没有现成数据,因此您需要找到方法来获取可用数据。
如果您所在的工作单位有良好的数据收集系统,那将是一个省心的选择;否则,您需要主动寻找有效的数据,而不是随意的数据。
获取数据并不等同于数据挖掘,而是数据挖掘过程中的一部分。您可以在互联网上找到许多免费的开源数据,有时可能需要通过网络爬虫从网站获取数据。学习网络爬虫非常重要,因为这项技能在职业生涯中可能会经常用到。
网络爬虫教程:(链接已清除)
数据有时会存储在数据库中,作为数据科学家、人工智能或机器学习工程师,您需要掌握一定的数据库管理知识,以便直接连接和使用数据库。在这一阶段,掌握 SQL 知识尤为重要。
SQL 学习资源:(链接已清除)
学习如何处理数据
这一步骤通常被称为“数据整理”(Data WRangling)。这个过程包括数据清理,通过探索性数据分析来删除不必要的数据。
数据整理还包括将数据结构化为可用的格式。在数据科学、人工智能或机器学习项目中,这一阶段往往是最繁琐的。在学习过程中,您将使用的大多数样本数据已被预处理,但现实世界的数据往往没有经过处理。作为一个有志于在这一领域发展的专业人士,您应当寻找真实世界的数据并进行处理。Kaggle 是一个获取全球公司真实数据的好地方。
尽管数据整理是一项繁重的任务,但只要持续投入精力和专注,您会发现它也是一项有趣的工作。
数据整理相关课程:(链接已清除)
学习如何可视化数据
作为数据科学家、人工智能或机器学习工程师,您的工作环境或团队中的每个人可能无法理解您所掌握的技术细节,或者从原始数据中得出结论。因此,数据可视化变得尤为重要。
数据可视化通常是通过图表展示数据,使得没有数据科学、人工智能或机器学习知识的人也能够理解数据。
数据可视化的方法有很多。作为程序员,编写代码来可视化数据应该是首选,因为这种方法迅速且无额外成本。您可以使用许多免费的开源库来进行数据可视化,例如 Matplotlib、Seaborn 和 Bokeh。
Matplotlib 数据可视化教程:(链接已清除)
另一种可视化数据的方法是使用像 Tableau 这样的闭源工具。许多闭源工具可以制作更优雅和复杂的可视化结果,但通常需要付费。Tableau 是最常用的工具,也是我个人推荐的工具,希望大家能够学习使用。
Tableau 使用教程:(链接已清除)
人工智能与机器学习
人工智能和机器学习可以视为数据科学的子集,它们都是由数据驱动的过程。这些领域旨在通过提供经过良好处理的数据,使机器或其他无生命物体的行为趋近于人类。机器能够通过逐步教导和引导,完成许多人类可以完成的任务。我们可以把机器想象成一个毫无知识的婴儿,逐渐学习识别物体、说话、从错误中学习并不断改进。
人工智能和机器学习主要通过多种数学算法赋能机器。尽管这一领域仍在不断发展,许多潜力尚未被挖掘,但现阶段人工智能和机器学习已广泛应用于目标检测、面部识别、语音识别、自然语言处理以及欺诈和垃圾邮件检测等领域。
AI 和 ML 通用应用:(链接已清除)
深入了解机器学习:(链接已清除)
通过观看以上视频,您应该能够对机器学习的初学者和中级知识有一个大致了解,掌握多种可用的机器学习算法及其应用。现在,您已经准备好构建第一个简单的机器学习模型,可以参考 VicTor RoMan 的这篇文章:(链接已清除)
学习如何将机器学习模型部署到互联网上
通过机器学习训练得到的模型可以通过部署,让全球用户访问。为此,您需要对 web 开发有充分的理解,以创建网页发布模型。
网站前端需要与存放模型的后端进行通信,为此,您还需要了解如何构建和集成 API,以处理网站前后端之间的通信问题。
如果您打算通过 pipeline 或 Docker 容器在云服务器上部署机器学习模型,您需要具备云计算和运维的相关知识。部署机器学习模型的方法有很多,但建议您首先学习如何使用 Python web 框架 Flask 进行部署。
教程:(链接已清除)
师傅领进门
自学成才固然不错,但没有什么比直接向行业专家学习更有效。某些知识通过实际学习可以掌握,而另一些则需要亲身体验。
拥有一位优秀的导师可以在各方面给予您支持,但并非所有导师都能对您的职业生涯或生活产生积极影响,因此找到一位合适的导师显得尤为重要。NotITia AI 是一个优秀的平台,提供从初学者到专家的数据科学、人工智能和机器学习培训。该平台将为您分配一位专属导师,提供个性化与专业的指导。
请记住,仅仅参加课程和从在线资源中学习并不足以使您成为真正的数据科学家、人工智能或机器学习工程师。您还需要获得相关认证,某些职位甚至要求学位。抓紧时间学习,以便获得证书或学位,为从事该行业做好准备。
