社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

是否人人都能学机器学习?入门的前提是什么?

程序猿 • 7 年前 • 637 次点击  

机器学习是什么?


套用一下大神们对机器学习的定义,机器学习研究的是计算机怎样模拟人类的学习行为,以获取新的知识或技能,并重新组织已有的知识结构使之不断改善自身。简单一点说,就是计算机从数据中学习出规律和模式,以应用在新数据上做预测的任务。



近年来互联网数据大爆炸,数据的丰富度和覆盖面远远超出人工可以观察和总结的范畴,而机器学习的算法能指引计算机在海量数据中,挖掘出有用的价值,也使得无数学习者为之着迷。


作为机器学习工程师,虽说不是专家,但总算有一些机器学习的项目经验,这一篇就我们的经验和各位同仁的分享,总结一些对于初学者入门有帮助的方法和对进阶有用的资料。


◆ ◆ 

机器学习关注问题


并非所有的问题都适合用机器学习解决(很多逻辑清晰的问题用规则能很高效和准确地处理),也没有一个机器学习算法可以通用于所有问题。机器学习,到底关心和解决什么样的问题。


从功能的角度分类,机器学习在一定量级的数据上,可以解决下列问题:


1.分类问题根据数据样本上抽取出的特征,判定其属于有限个类别中的哪一个。比如:垃圾邮件识别(结果类别:1、垃圾邮件 2、正常邮件)。


2.回归问题根据数据样本上抽取出的特征,预测一个连续值的结果。比如:星爷《美人鱼》票房


3.聚类问题 根据数据样本上抽取出的特征,让样本抱抱团(相近/相关的样本在一团内)。比如:google的新闻分类。


我们再把上述常见问题划到机器学习最典型的2个分类上。

  • 分类与回归问题需要用已知结果的数据做训练,属于“监督学习”

  • 聚类的问题不需要已知标签,属于“非监督学习”。


如果在IT行业(尤其是互联网)里溜达一圈,你会发现机器学习在以下热点问题中有广泛应用:


◆ ◆ 

入门方法与学习路径


机器学习对大多数入门者也有一个比较通用的学习路径,也有一些优秀的入门资料可以降低大家的学习门槛,同时激发我们的学习乐趣。


简单说来,大概的一个学习路径如下: 



最左边之所以列了『数学基础』『典型机器学习算法』『编程基础』三个并行的部分,是因为机器学习是一个将数学/算法理论和工程实践紧密结合的领域,需要扎实的理论基础帮助引导数据分析与模型调优,同时也需要精湛的工程开发能力去高效化地训练和部署模型和服务。


在互联网领域从事机器学习的人,有2类背景的人比较多:

1.程序员出身,这类同学工程经验相对会多一些。

2.学数学统计领域出身,这部分同学理论基础相对扎实一些。

因此对比上图,2类同学入门机器学习,所欠缺和需要加强的部分是不一样的。


下面就上述图中的部分,展开来分别扯几句:


 数学基础 


机器学习之所以相对于其他开发工作,更有门槛的根本原因就是数学。每一个算法,要在训练集上最大程度拟合同时又保证泛化能力,需要不断分析结果和数据,调优参数,这需要我们对数据分布和模型底层的数学原理有一定的理解。所幸的是如果只是想合理应用机器学习,而不是做相关方向高精尖的research,需要的数学知识啃一啃还是基本能理解下来的。


基本所有常见机器学习算法需要的数学基础,都集中在微积分、线性代数和概率与统计当中。


 典型算法 


绝大多数问题用典型机器学习的算法都能解决,粗略地列举一下这些方法如下:



机器学习里所说的“算法”与程序员所说的“数据结构与算法分析”里的“算法”略有区别。前者更关注结果数据的召回率、精确度、准确性等方面,后者更关注执行过程的时间复杂度、空间复杂度等方面。 当然,实际机器学习问题中,对效率和资源占用的考量是不可或缺的。


 编程语言、工具和环境 


看了无数的理论与知识,总归要落到实际动手实现和解决问题上。对初学者而言,Python和R语言是很好的入门语言,很容易上手,同时又活跃的社区支持,丰富的工具包帮助我们完成想法。相对而言,似乎计算机相关的同学用Python多一些,而数学统计出身的同学更喜欢R一些。资深程序员则更偏向java和C++相关机器学习package。


 基本工作流程 


以上我们基本具备了机器学习的必要条件,剩下的就是怎么运用它们去做一个完整的机器学习项目。其工作流程如下: 抽象成数学问题—— 获取数据——特征预处理与特征选择——训练模型与调优——模型诊断——模型融合——上线运行。


这些工作流程主要是工程实践上总结出的一些经验。并不是每个项目都包含完整的一个流程。这里的部分只是一个指导性的说明,只有大家自己多实践,多积累项目经验,才会有自己更深刻的认识。


说了这么多,你应该对机器学习都有了基本框架!或者已经机器学习有了自己的一套心得。那么如何求职机器学习工程师呢?


最好的方法就是能找到一个比你自己更靠谱的前辈、老师帮你持续性的指导!


因此,就在5月9日网易云课堂准备了一场关于《机器学习》的免费直播课,告诉你如何快速拿到机器学习工程师offer!



扫码即可加入“机器学习QQ群”

获取机器学习资料、直播课和精品体验课


(转载授权:寒小阳)


今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/U3jjyc0Tcq
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/11593
 
637 次点击