机器学习是人工智能领域的重要组成部分,有着悠久的历史。这一领域不仅提供了丰富的职业机会,而且对于初学者来说,并不像想象中的那么复杂。即便您没有数学或编程背景,这也不是问题。成功的关键在于您的兴趣和学习的动力。
如果您是一名新手,不知道从何开始学习机器学习,或者不明白为何机器学习如此流行,那么您找对了地方。我整理了所有必要的信息和资源,帮助您快速入门并完成第一个项目。
如果您的目标是成为一名优秀的程序员,那么需要掌握许多知识。然而,对于机器学习和数据科学来说,掌握至少一种编程语言并熟练应用就足够了。因此,您不必成为编程天才。
为了成功地进行机器学习,选择合适的编程语言至关重要,因为这将影响您的未来。在这个过程中,您需要进行战略思考并合理安排优先事项,避免浪费时间在无关紧要的事情上。
我的观点是:Python是初学者学习机器学习和数据科学的理想选择。它是一种简洁直观的语言,拥有功能强大的库,可以显著缩短您取得初步成果的时间。
您也可以考虑使用R语言,但我个人更倾向于Python。您可以在我的文章《Python vs R:为AI、ML和数据科学选择最佳工具》中了解更多细节。
机器学习是基于经验的学习。比如,一个人通过观察学会下棋,而另一个人则通过实践学会。通过提供训练数据,计算机能够以较高的概率识别元素或特征。
机器学习的主要阶段包括: - 数据收集 - 数据分类 - 数据分析 - 算法开发 - 生成测试算法 - 应用算法进行推断
为了寻找模式,使用了多种算法,主要分为两类: - 无监督学习 - 监督学习
在无监督学习中,计算机仅接收输入数据,然后自行确定数据之间的关系。而在监督学习中,计算机通过验证数据进行学习,无监督学习则使计算机自主发现不同数据集之间的模式和关系。无监督学习又可分为聚类和关联。
监督学习是指计算机根据提供的样本识别元素。计算机将研究这些数据,并开发出基于这些数据识别新数据的功能。例如,您可以训练计算机根据先前的信息过滤垃圾邮件。
一些常用的监督学习算法包括: - 决策树 - 支持向量机 - 朴素贝叶斯分类器 - K近邻 - 线性回归
在AI和机器学习领域,不懂数学就像一个不会说服人的政客一样注定失败。因此,没有基本的数学知识,您将无法处理机器学习和数据科学项目。不过,您并不需要数学学位。以我的经验,每天投入30至45分钟就能取得显著进步,并更快地掌握高级数学和统计学知识。
您需要重温或学习基础理论。不必通读整篇教程,只需专注于关键概念。
线性代数:包括标量、向量、矩阵和张量
数学分析:包括导数和梯度
从头构建简单的神经网络
推荐的学习资源: - 可汗学院:提供关于线性代数和数学分析的简短课程,涵盖重要主题。 - MIT OpenCourseWare:提供学习机器学习数学的课程,包括所有视频讲座和学习材料。
好消息是,您不需要完整的课程,因为Python和数据分析并不是同义词。
在深入探讨语法之前,我想分享一个建议:通过实际操作来学习比单纯阅读书籍更有效。例如,您可以在游泳池里一边游泳一边阅读游泳技巧的书,这样效果更好。
同样,仅关注语法是不够的。您需要结合实际操作来学习。不必记住所有内容,从小步开始,不必害怕将理论与实践结合起来。例如,专注于直观的理解,在特定情况下哪种功能适用,以及条件运算符如何工作。您可以通过阅读文档并在编写代码的过程中逐渐记住语法。
如果您没有任何编程知识,建议阅读《利用Python自动完成无聊的事情》这本书。阅读第六章“字符串操作”,并完成相应的练习。这样就足够了。
其他值得探索的资源包括: - Codecademy:教授良好的通用语法。 - 《笨办法学Python》:介绍基础知识和更复杂的程序。 - Dataquest:教授语法的同时也教授数据科学。 - Python官方文档:提供详细的教程。
请记住,您越早开始实际项目,就越快学到东西。当然,如果需要,您随时可以回到语法部分。
在进阶阶段,您需要学习适用于数据科学的Python库。Python拥有丰富的库,这些库是预先编写的函数和对象的集合,可以直接导入到脚本中以节省时间。
如何使用库?我的建议如下: 1. 打开Jupyter Notebook。 2. 在半小时内阅读库文档。 3. 将库导入到Jupyter Notebook中。 4. 按照分步指南查看库的实际应用。 5. 查看文档,了解库还具备哪些功能。
不建议一开始就深入学习库,因为在项目中使用时,您可能会忘记所学的内容。相反,尝试找出每个库的功能。
Jupyter Notebook是一种轻量级的集成开发环境(IDE),在分析师中非常流行。通常,Python的安装包中已经包含了Jupyter Notebook。您可以通过安装Anaconda(包含在Anaconda软件包中)来打开一个新的项目。
NumPy:从Numeric Python简化而来,是最通用和最强大的库之一。使用它,您可以轻松处理多维数组和矩阵,并使用诸如线性代数运算和数值转换等函数。
Pandas:这是一个高性能的工具,用于显示数据帧。您可以从几乎任何来源加载数据,计算各种函数并创建新参数,还可以使用类似于SQL的聚合函数对数据进行查询。此外,还有各种矩阵变换函数、滑动窗口方法以及其他获取数据信息的方法。对于数据科学家来说,这是必不可少的工具。
Matplotlib:这是一个灵活的库,用于创建图形和可视化。尽管功能强大,但它可能显得有些复杂。此时,您可以先跳过Matplotlib,使用Seaborn作为入门工具(参见下面的Seaborn)。
Scikit-Learn:这是迄今为止设计最完善的机器学习程序包之一。它实现了广泛的机器学习算法,并且很容易应用于实际项目。您可以使用一系列功能,如回归、聚类、模型选择、预处理和分类等。Scikit-Learn的最大优势是其高效的工作速度。因此,像Spotify、Booking.com和J.P.Morgan这样的领先平台都在使用它。
掌握了基本语法并探索了基础库之后,您就可以开始自己的项目了。通过这些项目,您将能够了解新事物,并创建用于求职的投资组合。
有很多资源可以为您提供结构化的项目主题: - Dataquest:教授交互式Python和数据科学。您将分析一系列有趣的数据集,从地方情报局的文件开始,到NBA比赛统计数据结束。您将开发战术算法,包括神经网络和决策树。 - Scikit-Learn:文档——Python上的主要机器学习库。 - CS109:哈佛大学的数据科学课程。
您可以找到许多新事物,但找到那些能够激发您灵感的项目非常重要。但是,在找到理想工作之前,您应该学会如何处理程序中的错误。在解决此类问题的实用资源中,可以区分以下内容: - StackOverflow:一个多功能网站,提供了许多问题和答案,人们可以讨论各种问题。此外,它是提问错误和从众多受众中获得答案的最佳场所。 - Python文档:另一个搜索参考资料的好地方。
此外,您不应该忽视任何合作的机会。参与与Python相关的所有活动,并找到从事有趣项目的人员。特别寻找其他人开发的新项目,GitHub是实现这一目标的绝佳场所。不断学习新知识并关注主题,这将有助于提升您的水平。
您可能会问:“为什么我要涉足机器学习领域?已经有太多优秀专家了。”
要知道,我也曾陷入过这种思维陷阱,现在我可以自信地说,这种想法不会给您带来任何好处。这是您成功的一大障碍。
根据摩尔定律,集成电路中的晶体管数量每两年翻一番。这意味着我们的计算机功能每年都在增长,因此以前无法访问的知识范围再次“向右移动”——有更多空间进行大数据和机器学习算法的研究!
未来在等待我们。也许这些数字将进一步增加,机器学习将变得更加重要?这很有可能!
您能做的最可怕的事情就是假设您的位置已经被另一名专家占据了。
我希望您充满学习的热情和动力,并在接下来的项目中找到激发您灵感的东西!请在回复中分享您的经历!
(本文翻译自Oleksii Kharkovyna的文章《Beginner’s Guide to Machine Learning with Python》,参考https://towardsdatascience.com/beginners-guide-to-machine-learning-with-python-b9ff35bc9c51)