https://mp.weixin.qq.com/s/eFXb2swj07Ywld9pDop3hQ

机器学习在很多眼里就是香饽饽,因为机器学习相关的岗位在当前市场待遇不错,但同时机器学习在很多人面前又是一座大山,因为发现它太难学了。在这里我分享下我个人入门机器学习的经历,希望能对大家能有所帮助。

这篇文章不会有太多机器学习方面的专业知识

更多的只是学习经历与经验分享

机器学习工程师到底值几斤几两呢

入门之前先来让大家心里看个数据,机器学习工程师在市场上到底值几斤几两呢?我们在拉勾网上搜索 机器学习关键字,得到了下面的结果:

可以看出来,这个待遇在当前 IT 行业中还是很不错的,究其原因,是由于这个市场目前是供不应求,人才紧缺,自然而然与之相关的岗位待遇会相对 IT 行业中的其他岗位较高。

我是如何入门的呢

入门前的基础

先来分享下在开始入门前我的基础吧,先罗列下当时我所掌握掌握的知识吧。

  • 掌握了 Java SE

  • 本科所学的微积分,线性代数,概率论中的知识忘得所剩无几

看了上面两点,你会发现,当时的我其实除了掌握 Java SE 之外,连 Python 也不会,此外,微积分,线性代数,概率论中的知识我也基本上全都还给了大学老师了。

这时你再想想你当前的情况,你是不是发现你的情况跟我很像,甚至会比我的情况还好呢。

像我这样的条件都可以入了门,你们有什么理由无法入门呢?

入门过程中

首先说明一点,我个人在入门过程中经过了有看过视频、也有看过书,看过博客,也有直接做一些项目,这些过程是交互进行的,现在我将这些按照相对顺序来介绍下。

聊聊Python

在当时Python在机器学习领域已经使用非常多了,另外Python除了也可做机器学习外,还可以做后端(如Django/Flask等)。所以我首先学习的是 Python,在准备学习它的时候,我最开始采取的方式是看教学视频,但是发现太耗时了,所以看了两节之后果断放弃,进而我发现了廖雪峰关于Python的教程,看博客或者看书的方式会相对比看视频快很多,由于我个人有 Java 编程的基础,所以在看廖雪峰关于 Python 的教程时相对容易点。这里建议如果没有任何编程基础,建议还是选个Python的入门视频来学习。

如果说单纯的学习一门语言的话,这水其实是很深的,但对于我们大多数人来说,尤其是入门的时候,我们并不需要将Python的方方面面都学会,我们只需要有重点的掌握Python我们所需要的几个部分就好,剩下的我们可以在之后工作项目中进步学习和加深。

对于要入门机器学习的同学们,我这里整理下前期Python所需要学习的部分:

  • Python语法基础,包括数据类型和变量、条件控制语句(if else、for、while)、列表(list)、集合(set)、字典(dict)、元组(tuple)等

  • 面向对象部分,包括函数的使用、函数的多种参数、匿名函数、类和实例、继承和多态等

  • Python高级特性,包括切片、迭代、列表生成式、字典生成式、迭代器、生成器等

  • IO操作及异常处理,包括读写文本文件、读写二进制文件、异常捕获和处理等

  • 常用的内置模块,包括 datetime、os、system、re等

除了以上的关于Python的基础外,还有一些第三方模块我们需要掌握的。由于在使用机器学习算法时,经常需要处理数据以及可视化结果。在这里推荐以下几个第三方模块:

  • pandas,数据分析必备神器,功能众多,前期我们只需要掌握它的一些基本用法就OK

  • matplotlib,Python中众多数据数据可视化的一个基础库,能够使用它绘制基本图形即可

对于我来说,这些第三方模块都是在工作的时候学习的,并不是刚开始就学习的。以我的经验给大家指出一个陷阱,在我们入门阶段,不建议大家刚开始就深入学习这些模块的底层,我的原则是:先学会使用,再研究原理。以 pandas 为例,pandas 底层用到了 numpy、scipy、matplotlib,如果你要先系统地把这些底层所有的知识学习一遍,你会发现在你有限的时间内,你根本学不完,即便你有这么多时间去学完,你会发现学了后面,忘了前面。

相关的学习链接:

  • Python(廖雪峰),http://t.cn/RK0qGu7

  • Pandas,http://pandas.pydata.org/pandas-docs/stable/10min.html

  • Matplotlib,https://matplotlib.org/tutorials/index.html

聊聊机器学习算法课程

在掌握了 Python的基本用法后,我开始寻找学习机器学习的资料,当时的情况是市面上并没有众多关于这方面的培训机构,经过各种搜集,最后选择了吴恩达在 Coursera 上的机器学习课程。虽说课程语音是英文,但有中文字幕,所以看起来还是很方便的。在将吴恩达课程学完之后,你会对常用的机器学习算法有一个基本的了解。

这里列举出课程中所讲解的一些常用算法和内容:

  • 线性回归

  • 逻辑回归

  • 神经网络

  • 支持向量机

  • 非监督学习

  • 降维、异常检测

  • 推荐系统

  • 应用机器学习建议

看了上面的各种算法,你可能会问,这么多听起来很牛逼是算法,我的数学基础(微积分、线性代数、概率论)不好,能听的懂么?

在入门的时候,不建议大家将所有的数学知识全都学一遍,再来学习机器学习算法。一是时间长,而是学了不用就忘了。 选择一个好的视频教程,你可以事半功倍,,吴恩达老师课程的一个优点就在于他是专门针对我们这类的人群的,他的视频中不会有很多数学公式推导,但是仍然可以将这个算法跟你讲解清楚。

此外,台湾大学林轩田教授也有专门的机器学习视频(包括两部分:基石与技法)。这个视频在国内评价也较高,有兴趣的也可以跟着这个视频来学习。

关于吴恩达以及林轩田的机器学习相关的视频课程,之前已经有过分享,需要下载的请见:资源 | 2018年,你想要的机器/深度学习资料在这里

相关学习链接:

  • 吴恩达机器学习课程,https://zh.coursera.org/learn/machine-learning

聊聊机器学习书籍

在学习了吴恩达老师的课程后,可以再读一些相关的书籍来加强对机器学习的理解,当时我买了挺多的书籍,有一本书叫做《机器学习实战》,在这本书里会教你使用 Python 来实现常用的一些算法,当时按照书上的讲解手动敲了一些算法的实现,当你手动实现后,你会发现你对它的理解会更深了。

在实现书本上的一些算法时,会遇到某些算法的原理不太明白的地方,由于自己的数学知识(微积分、线性代数、概率论)基本上都还给了大学老师了,系统的去学习每个模块是非常耗时的,这时候采取的策略是“缺啥补啥”,也就是说发现哪方面的知识和公式不太明白,就去查阅与之相关的资料。

在当前,如果你想购买相关书籍,我可以再推荐两本给你,一本是周志华的《机器学习》(通常也叫西瓜书),这本书在我学习的时候还没出版;另一本是李航的《统计学习方法》。

聊聊如何通过工作/比赛提高水平

在掌握了Python的基本用法以及对机器学习有了基本了解之后,当时的实习工作有一部分是使用机器学习算法来去识别用户的评论是否违法,也就是一个二元分类问题。最开始的时候同阅读同事实现的Python代码,试图去搞明白每一行的含义,也就是在这个时候,自己开始查阅 pandas 和 sklearn 相关的文档,这样最后不仅搞明白了同事的代码,自己对 pandas 和 sklearn 基本的用法也有了一个认识。

这里多说两句,掌握了 pandas 后,在处理小数据量的时候会非常得心应手(如果数据量大的话,会非常慢);sklearn 是一个非常优秀的开源的机器学习Python库,这个库实现了很多机器学习算法,并且提供了非常详细的官方文档,认真阅读官方文档可以收获很多。如果你英文不太好的话,可以阅读相应的中文文档,文档地址可以见下面的学习链接。

如果说自己没有实习或工作机会,我推荐你去参加 kaggle 比赛,kaggle 是一个提供数据挖掘相关的比赛平台,在这里会有很多相对接近现实生活的比赛,此外,也会有很多大神分享自己的思路、做法和代码,通过阅读这些代码也能快速的提高自己的水平。

相关学习链接:

  • sklearn,http://sklearn.apachecn.org/cn/latest/

  • kaggle,https://www.kaggle.com/

入门后的体验

在入门了机器学习之后,在实际工作中,绝大多数的情况下你并不需要去创造一个新的算法。另外,大多数时间你也不是在去研究别人的算法时如何写出来的,而是处理数据,运用现有的第三方库去跑模型、调参数。听完我说的这些,你是不是很震惊,高大上的机器学习工程师在实际工作中大多数时间竟然是去洗数据,调参数。但事实就是如此,除非你在一线互联网公司,而且还是某些部门,你可能会需要自己重新去实现某个算法,否则其他公司的情况大多都是差不多的。

入门后再来聊一聊数学知识在机器学习中的作用,虽说你数学知识不好,一样可以调用第三方库的模型。但是如果你想要深入理解算法,数学的底子还必须是有一点的。如果你要入研究这个领域,你必须要捡起来你忘掉的数学知识。此外,在面试时,这些算法的原理相关的知识还是必问的。

有时候并不是你的能力不够,也并不是你不够努力,只是缺少了一个正确的引导而已

我是如何入门机器学习的呢相关推荐

  1. 我是这样入门“机器学习”的

    我是这样入门"机器学习"的 叶锦鲤发表于悦思悦读订阅 原文链接:https://cloud.tencent.com/developer/article/1357704 在这篇文章中 ...

  2. python3入门经典100例-Python3入门机器学习_经典算法与应用-慕课网实战

    建议慕课网可以出一套完整的关于学完之后可以胜任人工智能这份工作的课程,达到就业的目的和转型 亲,您好~目前我们在筹划更多的人工智能的相关课程!后期会逐步的跟大家见面!不过本门课程就是您迈入机器学习领域 ...

  3. 从零入门机器学习之开宗明义:编程与数据思维

      大家好,我是herosunly.985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用.曾获得阿里云天池比赛第一名,科大讯飞比赛第三名,CCF比赛第四名.拥有多项发明专利.对机器学 ...

  4. 入门机器学习 21 天后 , 高薪 Offer 就在眼前

    今天,没有套路,只想真诚的讲个故事,分享给大家一个来自<极简机器学习入门>的学员天明同学的真实学习事例. 天明在 2013 年毕业,做过并行计算开发.嵌入式底层,目前在游戏创业公司做服务器 ...

  5. 21 天零基础入门机器学习 , 高薪 Offer 就在眼前

    今天,想真诚地讲个故事,分享给大家一个来自<极简机器学习入门>的学员天明同学的真实学习事例. 天明在 2013 年毕业,做过并行计算开发.嵌入式底层,目前在游戏创业公司做服务器开发,以下是 ...

  6. 21 天入门机器学习-第05期

    训练营介绍 <21 天入门机器学习>是 GitChat 打造的一款社群学习产品,以李烨老师的图文课<机器学习极简入门课>为学习素材,通过 21 天的社群学习模式带领大家入门机器 ...

  7. 从零入门机器学习之Linux系统详解

      大家好,我是herosunly.985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用.曾获得阿里云天池比赛第一名,科大讯飞比赛第三名,CCF比赛第四名.拥有多项发明专利.对机器学 ...

  8. 课程 | 中科院教授带你快速入门机器学习

    机器学习,说简单就简单,说难还真难,对于还没入行的同学,大概最难的是如何入门机器学习?应该掌握哪些知识?看什么书最高效?如何避免绕弯?如何利用已有基础进一步提高水平?

  9. 新书上市 | 数学不好,Python不行,还能入门机器学习吗?

    没错,图灵君又来安利好书了! 什么书?机器学习?机器学习的书已经很多了,这本有啥特别的吗? 当然有. 话说有位日本网友,买了40多本数学和机器学习相关的书,愣是没有学会,直到遇到了这本,那叫一个相见恨 ...

  10. 干货丨入门机器学习,从搞懂这8大经典算法开始

    在机器学习领域,"没有免费的午餐"是一个不变的定理.简而言之,没有一种算法是完美的,可以作为任何问题的最佳解决方案.认清这一点,对于解决监督学习问题(如预测建模问题)尤其重要.我们 ...

最新文章

  1. Java PriorityQueue实现大顶堆
  2. [一个小问题]Mainfest配置文件的version问题小结
  3. 架构漫谈 - 数据治理核心思路及解决方案探讨
  4. matlab或_如何利用MATLAB计算圆周率
  5. HTML---HTML中常用的标签(标题,水平,特殊标签)
  6. redis源码剖析(五)—— 字符串,列表,哈希,集合,有序集合
  7. 解决后端返回数据中的大数字问题(使用第三方包json-bigint )
  8. c语言学习进阶-C语言程序稳定性测试
  9. absolute如果找不到定位父元素那么会相对于谁进行定位_selenium+python面试题目总结,完整度80%,看看你会多少?...
  10. Python开发不可不知的虚拟环境
  11. 2. Anaconda下使用Pip或者conda安装库指南
  12. 如何减小电压跟随器输出电阻_三分钟带你搞懂运算放大器与比较器的区别
  13. 用形态学及HSV完成车牌照识别
  14. 岌岌可危?大数据营销与数据泄露相伴而行
  15. 测试应该知道的知识-python检查死链
  16. 解决Failed to load resource: net::ERR_INCOMPLETE_CHUNKED_ENCODING
  17. VSCode中配置Rust时报错:error: linking with `x86_64-w64-mingw32-gcc` failed: exit code: 1
  18. 在Ubuntu上安装使用 iCloud
  19. 磁带机PowerVault LTO-7使用
  20. centos 编译 rabbitmq-c 遇到 undefined reference to OPENSSL_init_ssl, BIO_meth_set_read 等报错的解决

热门文章

  1. PHP求100-1000之间的水仙花数
  2. Protel99se 犯的错误
  3. tcp协议可以提供什么服务器,什么是TCP协议?
  4. 《逻辑思维训练》读书笔记
  5. 数学建模之数据比较与影响因素分析
  6. 矩阵分析与应用(20)
  7. 普洱学院java教务系统_2020年普洱学院教务处登录入口
  8. 工具篇:金蝶K3工具下载
  9. [导入]代理猎手找大学代理
  10. 2020 macbook pro 16寸 前端开发 我的装机软件整理