机器学习是人工智能领域的一个突出主题,现在已经成为人们关注的焦点。这个领域可能提供一个有吸引力的机会,并且开始其职业生涯并不像乍看之下那么困难。即使你没有数学或编程****经验,也不是问题。你成功的最重要因素纯粹是你自己的兴趣和学习所有这些东西的动力。
如果你是一个新手,你不知道从哪里开始学习,为什么你需要机器学习以及为什么它最近越来越受欢迎,你来到了正确的地方!我收集了所有必要的信息和有用的资源,以帮助您获得新知识并完成您的第一个项目。
为什么从Python开始?
如果你的目标是成长为一个成功的程序员,你需要了解很多东西。但是,对于机器学习和数据科学来说,掌握至少一种编码语言并自信地使用它就足够了。所以,冷静下来,你不必成为一个编程天才。
对于成功的机器学习之旅,有必要从一开始就选择合适的编码语言,因为您的选择将决定您的未来。在这一步,您必须从战略角度思考并正确安排优先事项,不要花时间在不必要的事情上。
我的观点 - 对于初学者来说,Python是一个完美的选择,可以让你专注于进入机器学习和数据科学领域。它是一种简约直观的语言,具有全功能的库系列(也称为框架),可显着减少获得第一批结果所需的时间。
顺便说一下,你也可以考虑R语言,但就个人而言,我更倾向于Python。你可以在这里阅读我对这个问题的详细解释:
Python vs R.选择人工智能,ML和数据科学的最佳工具。
步骤0.您需要了解的ML过程的简要概述
机器学习是基于经验的学习。例如,它就像一个人通过观察学习下棋,就像其他人一样。通过这种方式,可以通过提供他们被训练的信息来编程计算机,获得以高概率识别元素或其特征的能力。
首先,您需要知道机器学习的各个阶段:
- 数据采集
- 数据排序
- 数据分析
- 算法开发
- 检查算法生成
- 使用算法进一步得出结论
为了寻找模式,使用了各种算法,它们分为两组:
- 无监督学习
- 监督学习
通过无监督学习,您的机器仅接收一组输入数据。此后,机器决定输入的数据与任何其他假设数据之间的关系。与监督学习不同,在机器上提供一些用于学习的验证数据,独立的无监督学习意味着计算机本身将找到不同数据集之间的模式和关系。无监督学习可以进一步分为聚类和关联。
监督学习意味着计算机能够根据提供的样本识别元素。计算机对其进行研究并开发基于该数据识别新数据的能力。例如,您可以训练计算机根据以前收到的信息过滤垃圾邮件。
一些监督学习算法包括:
- 决策树
- 支持向量机
- 朴素贝叶斯分类器
- k-最近邻居
- 线性回归
步骤1.提高Python数学库所需的数学技能
在AI和ML领域工作的不懂数学的人就像一个不懂得说服的政治家。两者都有一个不可避免的区域可供使用!
所以,是的,你不能在没有最低限度的数学知识基础的情况下处理ML和数据科学项目。但是,您无需拥有数学学位即可获得成功。根据我的个人经验,每天至少投入30-45分钟将会有很多成果,您将更快地理解和学习数学和统计学的高级Python主题。
您需要阅读或更新基础理论。无需阅读整个教程,只关注关键概念。
以下是学习分析和机器学习所需数学的3个步骤:
1 - 用于数据分析的线性代数:标量,向量,矩阵和张量
例如,对于主成分方法,您需要知道特征向量,并且回归需要矩阵乘法。此外,机器学习通常适用于高维数据(具有许多变量的数据)。这种数据类型最好用矩阵表示。
2 - 数学分析:衍生物和梯度
数学分析是许多机器学习算法的基础。优化问题需要衍生物和渐变。例如,最常见的优化方法之一是梯度下降。
为了快速学习线性代数和数学分析,我想推荐这些课程:
可汗学院提供关于线性代数和数学分析的简短实践课程。它们涵盖了最重要的主题。
MIT OpenCourseWare为ML学习数学提供了很好的课程。包括所有视频讲座和学习材料。
3 - 梯度下降:从头开始构建一个简单的神经网络
在分析和机器学习领域学习数学的最佳方法之一是从头开始构建一个简单的神经网络。您将使用线性代数表示网络和数学分析来优化它。特别是,您将从头开始创建渐变下降。不要过分担心神经网络的细微差别。如果您只是按照说明编写代码,这很好。
以下是一些很好的演练:
Python中的神经网络 - 这是一个很棒的教程,您可以从头开始构建一个简单的神经网络。您将找到有用的插图,并了解梯度下降的工作原理。
更短的教程也将帮助您逐步掌握神经网络:
如何在Python中从头开始构建自己的神经网络
用Python从头开始实现神经网络 - 简介。
初学者的机器学习:神经网络简介 - 一个关于神经网络如何工作以及如何在Python中从头开始实现神经网络的更好的简单解释。
第2步。学习Python语法的基础知识
好消息:您不需要完整的学习课程,因为Python和数据分析不是同义词。
在开始深入研究语法之前,我想分享一个有见地的建议,这可以最大限度地减少您可能的失败。
通过阅读有关游泳技术的书籍来学习游泳是不可能的,但是在游泳池训练的同时阅读它们可以更有效地获得技能。
编程研究也会发生类似的行为。仅仅关注语法是不值得的。就这样,你可能会失去兴趣。
你不需要记住一切。迈出小步,不要害怕将理论知识与实践相结合。专注于直观的理解,例如,哪种功能适用于特定情况以及条件运算符的工作方式。您将通过阅读文档和编写代码的过程逐步记住语法。很快你就不再需要google这样的东西了。
如果您没有任何编程理解,我建议您阅读使用Python自动化无聊的东西。本书为初学者提供实用的编程解释,并从头开始教学。阅读第6章“字符串操作”,并完成本课的实际任务。那就足够了。
以下是其他一些值得探索的重要资源:
Codecademy - 教授良好的通用语法
以艰难的方式学习Python - 一本精彩的手工书,解释了基础知识和更复杂的应用程序。
Dataquest- 此资源教授语法,同时还教授数据科学
Python教程 - 官方文档
请记住,越早开始真正的项目,你就越早学会它。无论如何,如果需要,您可以随时返回语法。
第3步。发现主要数据分析库
进一步的阶段是修改和填补适用于数据科学的Python部分。是的,现在是学习图书馆或框架的时候了。如前所述,Python拥有大量的库。库纯粹是现成函数和对象的集合,您可以将其导入脚本以减少投入时间。
如何使用库?以下是我的建议:
- 打开Jupyter笔记本(见下文)。
- 大约半小时后阅读图书馆文档。
- 将库导入Jupyter Notebook。
- 按照分步指南查看正在运行的库。
- 检查文档以了解它的功能。
我不建议立即深入学习图书馆,因为您可能会忘记在项目开始使用它们时学到的大部分内容。相反,尝试找出每个库的功能。
#Jupyter笔记本
Jupyter Notebook是一款轻量级IDE,是分析师的最爱。在大多数情况下,Python的安装包已经包含Jupyter Notebook。您可以通过Anaconda Navigator打开一个新项目,该项目包含在Anaconda软件包中。观看此介绍性视频。
您需要的Python库:
NumPy的
文档
快速入门教程
NumPy缩减了Numerical Python,它是专业人士和初学者的最通用和多功能的库。使用此工具,您可以轻松舒适地操作多维阵列和矩阵。线性代数运算和数值转换等功能也可用。
熊猫
文档
快速入门教程
Pandas是一种众所周知的高性能工具,用于呈现数据帧。使用它,您可以从几乎任何源加载数据,计算各种函数并创建新参数,使用类似于SQL的聚合函数构建对数据的查询。此外,存在各种矩阵变换函数,滑动窗口方法和用于从数据获得信息的其他方法。因此,它在一个优秀的专家的武器库中是一个不可或缺的东西。
Matplotlib
文档
快速入门教程
Matplotlib是一个灵活的库,用于创建图形和可视化。它功能强大但重量轻。此时,您可以跳过Matplotlib并使用Seaborn开始(参见下面的Seaborn)。
Scikit-学习
文档
快速入门教程
我可以说这是迄今为止我观察到的最精心设计的ML包。它实现了广泛的机器学习算法,可以很方便地将它们插入实际应用程序中。您可以在此处使用大量函数,如回归,聚类,模型选择,预处理,分类等。所以,完全值得学习和使用。这里的巨大优势是工作速度快。因此,像Spotify,Booking.com,JPMorgan这样的领先平台使用scikit-learn的原因就不足为奇了。
第4步。开发结构化项目
掌握基本语法并探索库的基础知识后,您就可以开始自己创建项目了。多亏了这些项目,您将能够了解新事物,并为进一步的求职创建投资组合。
有足够的资源为结构化项目提供主题。
Dataquest - 以交互方式教授Python和数据科学。您正在分析一系列有趣的数据集,从中央情报局的文件开始,到美国国家篮球协会游戏的统计数据结束。您将开发包括神经网络和决策树的战术算法。
用于数据分析的Python - 由许多关于Python数据分析的论文的作者撰写的一本书。
Scikit - 文档 - Python上的主要计算机培训库。
CS109- 哈佛大学数据科学专业的课程。
步骤5.处理您自己的项目
你可以找到很多新东西,但重要的是要找到能够激发你光明的项目。然而,就在这个找到梦想工作的快乐时刻之前,你应该学习如何很好地处理程序中的错误。在用于此目的的最流行的有用资源中,可以区分以下内容:
StackOverflow - 具有大量问题和答案的多功能站点,人们讨论所有可能的问题。此外,它是最受欢迎的地方,因此您可以询问您的错误并从大量受众那里获得答案
Python文档 - 一个搜索参考资料的好地方
不言而喻,您也不应忽视您所要求的任何机会或合作。参与与Python相关的所有可能事件,并找到从事有趣项目的人员。探索其他人制作的新项目,顺便说一句,Github是实现这一目标的绝佳场所。了解新的并保持关注主题 - 所有这一切肯定有助于提升您的游戏水平!
最后的话语和一点动机
你可能会问'我为什么要投入机器学习领域; 可能,还有很多其他优秀的专家。
知道什么?我也陷入了这个陷阱,现在可以大胆地说 - 这样的想法不会给你带来任何好处。这是你成功的巨大障碍。
根据摩尔定律,集成电路上的晶体管数量每24个月增加一倍。这意味着每年我们的计算机性能都在不断提高,这意味着以前无法访问的知识界限再次“向右移动” - 有大量学习大数据和机器学习算法的空间!
谁知道未来等待我们的是什么。也许这些数字会增加更多,机器学习会变得更重要吗?而且很有可能,是的!
老兄,你能做的最可怕的事情就是假设你的位置已被另一位专家带走了。
我希望你有很多的意愿和力量去学习,然后有那些肯定会给你带来光明的项目!在下面的评论中分享您的经验!