python学了基础之后方向_教你学Python40-机器学习的两大方向

在这篇文章中,我想向您展示程序员可以进行机器学习。

我将向您展示,学习机器学习就像学习其他高科技一样。

首先,我们将学习机器学习与编程学习进行比较,这可能是一个更大的挑战。

aa18972bd40735faba26ba3b2b131fb50e240822.jpeg?token=46f4e32d56350875ea827d6c4c5aafc5&s=4971A94443A0B0E81869801B030090CB

设计师想编码

一位年轻的网页设计师说,您假装您是一名设计师。您可以使用Photoshop或其他工具制作网页设计,然后可以剪裁设计并将其转换为CSS。您在程序员周围闲逛,也许您对编码有些羡慕。您认为您可能想学习如何编码。对与错,您认为CSS和HTML是“实际编码”,全都是创造性的表达,编程只是创造力的另一种媒介或出路。

您跳到Quora或StackOverflow并提出类似的问题,“ 我是设计师,我如何学习编码?”

您会得到遍及地图的答案。您看似经验丰富,并且专家程序员会为您提供免费建议,例如“学习ANSI C和指针”,“学习二进制”,“在ASM上买书”,“从LISP开始”。也许是一位雄辩的沟通者,写下了很长而令人信服的答复,您真的应该购买并阅读Knuth的 《计算机编程艺术》,第一卷。1-3(Vol 1-3)(会员链接)。您接受他的建议,在亚马逊上购买书籍并获得介绍,然后再后悔购买,讨厌自己不够聪明,放弃了学习编码的兴趣,只想在3个月内重复同样的过程。

发生了什么?该建议似乎是个好建议。

问题是建议是追溯性的。这些建议是由程序员考虑自己的技巧以及已经成为程序员的人如何成为更好的程序员的想法。该建议不是绝对的初学者,而是一个有兴趣的业余爱好者,希望将自己的脚趾伸入水中,看看他们是否想游泳。

现在我同意,现在的世界有些不同了。已经确定了这个问题,并且有大量的服务可以确切地解决该问题,即教人们如何编码。

当然,也许我们学习了指针,二进制,ASM和LISP,甚至阅读了Knuth的各个部分(没有人真正读过它来涵盖权利吗?),但是后来出现了。但是,您是如何开始的?我开始一起学习,尝试,实验,创建和学习。稍后,我将深入研究技术细节,因为我想创建更大,更好和更强大的程序。我不是从技术细节入手的。我认为对于许多程序员来说,这种经历可能是相似的,对您来说是这样吗?发表评论。

程序员想做机器学习

现在,如果您正在阅读本文,则可能是程序员,或者是某种类型的开发人员。考虑一下您对机器学习的兴趣。您是否看过一些经验丰富的机器学习专家的反馈,为您免费获得有关入门的免费建议?

我一直在搜索并阅读此建议,有些建议很好,很多则不是。我在下面收集了一些样本:

学习机器学习需要哪些数学技能?

您绝对需要熟悉基本的线性代数(处理向量和矩阵)并使用对数和指数函数。如果您希望事情变得“简单”,则需要通过特征向量来了解线性代数。扎实的数学知识是掌握ML的必备条件吗?

您确实希望对概率,线性代数,线性规划和多变量演算有所了解。机器学习工作需要哪些技能?

首先,您需要具有良好的CS / Math背景。ML是一个高级主题,因此大多数教科书都假定您具有该背景知识。统计,概率,分布式计算和统计。那里确实有一些很棒的建议,但是这个建议适合绝对的初学者吗?程序员将脚趾浸入水中测试温度是否合适?

也许人们在问错问题。另外,我精选了一些答案,这些答案表明人们需要数学才能开始机器学习。我想说的是,初学者将专注于他们没有和不能做的事情。他们可能甚至在尝试之前就放弃了。

我完全同意,掌握线性代数和概率将为机器学习打下良好的基础。我完全同意, 《统计学习的要素》(会员链接)是一本多层次的著作。我只是不认为对机器学习感兴趣的程序员应该做的第一步是学习数学课程或阅读该领域的密集理论知识。我实际上强烈建议不要这样做。

两个机器学习领域

机器学习有两个方面:

实用机器学习:这涉及查询数据库,清理数据,编写脚本以转换数据以及将算法和库粘合在一起,以及编写自定义代码以从数据中获取可靠的答案,以满足棘手且不确定的问题。这是现实的混乱。理论机器学习:这是关于数学和抽象以及理想化的场景,限制和美丽,并告知可能的内容。它整洁,干净,摆脱了现实的混乱。没有理论方面,实践方面就不可能有框架和严谨性。没有实践方面,理论方面就没有意义或动机。这种二分法是错误的,它确实是大量的工具和方程式,但请与我同在。

作为程序员,您可能对实用性很感兴趣,但是您将以“技术人员”的身分达到极限,并且需要对理论方面的理解才能有效地即兴创作。您必须阅读算法的数学知识,还必须阅读密集的教科书。那就是在现场要做好的事情。问题是,从业者向初学者免费提供的建议是理想的,适合中级且不适合初学者。

像电动工具这样的程序员

我认为,对于经验丰富的程序员而言,将机器学习视为高级编程主题(例如线程)(现在待在我身边)是很有用的。

如果您想加入线程,只需编写一些多线程程序并了解它可以发挥的功能。您会犯各种错误,但是您制作原型的某些工作会使您一目了然。如果您认为这很适合您,那么您可以阅读书籍并深入了解。

您可以使用现有的多线程结构的库,可以编写自己的库,可以深入学习各种线程结构背后的一些数学主题。您可以用自己的兴趣来驱动学习,最终可以可靠地构建和部署生产多线程代码。这是一个过程,而不是一步一步的改变。

现在显然,机器学习是一个更大,更多样化的领域,但是我建议的通用步进策略将在以后的文章中进行阐述。

您不会从初学者到管理团队并将机器学习系统投入生产。危险区域是真实的。您可以并且将会学到足够危险的知识。但是,通过将权力运用到编程机器上而获得的自律性(以及您的代码审查,对等和指导的过程以及常识)也限制了那些真正的危险。

就像学习编程一样,学习机器学习是学习不会结束的旅程,精通真的意味着持续的教育。学习阅读方程式,将它们转换为代码,以及编写自己的方程式以解决问题,如果您感兴趣的话,可能会一直停下来。

资源资源

如果您想对此问题进行认真思考,我列出了一些资源。有点深,我相信我们可以引起一些好的讨论。

向上滚动并阅读上面列出的StackOverflow问题的一些答案。那里的答案会让程序员望而却步,除非他们不懂数学,但还有其他一些真正令人鼓舞的答案,它们确实可以使您振作起来。为什么要成为数据科学家比您想像的要容易呢? Gigaom的一篇文章指出了案例研究,为分析者(像程序员)从头开始从事数据科学并迅速提高国际竞争力提供了一般机会。编程需要数学吗?有趣的是,我认为赞成和反对的论点非常相关且有用。这是一篇收费很高的文章,我对您的想法非常感兴趣。与朋友讨论此问题时,我确实听到了很多有关“技术人员”机器学习学徒的危险区域和进展选项的信息。我将在以后的文章中跟进这两个主题。

你怎么看?我提议的学习编程与程序员学习机器学习之间的相似性是否有实质性意义?

喜欢点下关注,你的关注是我写作的最大支持

023b5bb5c9ea15ce093b8195024d2bf53b87b22c.jpeg?token=967a1456b44d99981d0e456c5b34fe96&s=3D12C45FCC74E64F4493DAA30300E01D

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值