大家常说,抓住机会的最佳时机就是“现在”,但对于许多人来说,真正迈出第一步却往往是最困难的事情,尤其是对于想要涉足数据科学和机器学习的人来说。本文旨在为那些希望入门数据科学和机器学习的人提供指导和建议,并推荐一些学习资源。
我想学习机器学习和人工智能,该从哪里开始?
从这里开始。
两年之前,我开始在网上自学机器学习,并通过YouTube和博客分享我的学习经验。那时我完全不懂编程,但在决定学习机器学习前,我从未写过一行代码。
很多人通过私信询问我相关问题,尽管我不一定能回答所有问题,但我尽力给出答案。最常见的问题是:“我应该从哪里开始?”以及“我需要具备多少数学基础?”
今天早上,我又收到了类似的咨询。有人表示已经开始了Python的学习,并打算进一步学习机器学习,但却不清楚接下来该做什么。
“我已经学会了Python,下一步该怎么做?”
我会建议他们按照一定的步骤来进行。如果你希望成为一名机器学习从业者,但目前还不熟悉编程,那么可以将本文当作一个指南。我的学习方式是代码先行:先运行代码,然后再根据需要学习理论、数学、统计和概率等知识,而不是一开始就死记硬背理论。
记住,刚开始学习机器学习时,你可能会遇到各种障碍。但请耐心一点,一步一步来。将本文保存下来,方便随时查阅。
我主要使用Python进行学习,因为我是从Python开始的,并且一直沿用至今。当然,你也可以选择其他编程语言,但本文中的所有步骤均基于Python。
学习Python、数据科学工具和机器学习概念
很多来信咨询的人表示,他们已经学了一些Python知识。但即使是新手,也应该花几个月时间学习Python编程以及基本的机器学习概念。这两方面都很重要。
在学习Python编程的过程中,可以练习使用Jupyter和Anaconda等数据科学工具。花些时间了解这些工具的作用和使用方法。
学习资源
学习通过Pandas、NumPy和Matplotlib进行数据分析、操作和可视化
当你掌握了一些Python技能后,可能会想要学习如何处理和操作数据。为此,你需要熟悉Pandas、NumPy和Matplotlib。
学习资源
利用scikit-learn学习机器学习
现在你已经掌握了数据处理和可视化的技能,可以开始学习如何在数据中寻找模式。scikit-learn是一个Python库,提供了许多有用的机器学习算法以及评估模型性能的工具。
重点在于了解不同类型的机器学习任务,例如分类和回归,以及哪种算法最适合解决这些问题。不需要一开始就深入研究每个算法,而是先学会如何使用它们。
学习资源
学习深度学习和神经网络
深度学习和神经网络在处理非结构化数据时最为有效,如图像、视频、音频文件和自然语言文本。
小贴士
在大多数情况下,你会想对结构化数据使用决策树(如随机森林或XGBoost),而对于非结构化数据,则使用深度学习或迁移学习(即使用预训练的神经网络)。
你可以把这些小贴士记录下来,随着学习不断积累这些信息。
学习资源
其他课程和书籍
在学习过程中,最好的方法是通过实际项目来应用所学知识。这不一定是复杂的项目,但可以是你能够展示出来的成果。通过GitHub或博客分享你的工作,GitHub用于展示代码,博客用于解释你的工作过程。你应该为每个项目都发布这些内容。申请工作时,最好的证明是你已经完成了工作要求的任务。分享你的工作是展示你能力的好方法。
在熟悉了各种机器学习和深度学习框架之后,你可以尝试从头开始构建它们,以巩固自己的知识。你不必总是这样做,但在外部了解事物的工作原理有助于建立自己的项目。
学习资源
答疑
每一步需要多长时间?
你可能需要花费6个月或更长时间。请耐心等待,学习新技能需要时间。作为一名数据科学家或机器学习工程师,你的主要技能是提出好的问题,并使用工具寻找答案。
有时你可能会觉得自己毫无进展,甚至倒退。不要担心,不要以天为单位衡量进步,看看一年后你的提升。
在哪里可以学到这些技能?
我在下面列出了一些在线资源,其中大部分是免费的。还有许多其他类似的资源。
记住,作为数据科学家或机器学习工程师,大部分工作是解决问题。通过实际项目来探索单个步骤,并创建自己的课程来帮助学习。
如果你想了解一个自我引导的机器学习课程是什么样子,可以看看我的Self-Created AI Masters Degree(https://bit.ly/aimastersdegree)。这是我过去9个月内从零开始成为机器学习工程师的经历。它并不是完美的,但它记录了我的真实经历,你可以参考。
关于统计、数学和概率
在实际操作中,你会逐渐掌握这些知识。先从代码开始。运行代码。试图在运行代码前掌握所有的统计、数学和概率知识,就像是试图煮沸大海一样。这会让你感到压力山大。
如果代码不能正常运行,统计、数学和概率知识都没有意义。先运行代码,然后用你的研究技能来验证它是否正确。
证书
证书很好,但你学习的目的应该是提升技能,而不是为了证书本身。不要陷入追求更多证书的误区,这并不能证明你的技能。通过上述课程和资源建立知识基础,然后通过实际项目来完善你的专业知识。