这一个月,从对机器学习充满好奇与畏惧,到对各种算法稍有理解以及围绕推荐场景的编码实践,算是对机器学习有了一个入门的体验。但是中间也踩过不少坑,比如啃过线性代数的教材、看过无聊的机器学习课程、追过高端的机器学习书籍、陷入一个算法无法自拔(最后也没整明白)...其实,学习机器学习没有那么难,也很容易走偏。谨以此文,作为ML入门小白的一个小小的参考...

本篇虽不是这一个月的流水账,但是基本按照下面的思路对着一个月做了一次总结:

  • 什么是机器学习?
  • 机器学习都有什么算法?
  • 个人对机器学习的三种境界理解
  • 推荐的学习路线
  • 推荐资源

希望读者有所收获,另外,如果文中有任何理解上的错误,还望指正!

什么是机器学习?

之前在没有具体接触到机器学习前,我大概对他有一个概念上的认识,觉得是一种很高级的算法,能让机器学会很多的事情,就像...《我的机器人女友》里那样!

或者是《机械公敌》里的智能机器人?...

但是,这些其实都是对机器学习的一种误解。机器学习并不是让机器像人一样会学习,而是通过一种固定的编程模式,对数据进行处理。按照百度的定义,它是这样的:

专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。

其实机器学习就是通过一些前人总结的数据公式,帮我们简化了很多手工操作很麻烦甚至无法操作的事情。就举个身边很常见的例子,当你在淘宝搜索了某个宝贝后,之后的商品页面会为你推荐跟这个搜索相关的商品;再比汽车在经过司机的一段驾驶后,汽车自己能基于道路状况自动调整方向盘以及车速,实现无人驾驶;再如,家里的热水器会记录你使用热水的时间,提前一段时间烧水,而在其他时间不加热,以节省水电。这些都是机器学习,都是身边已经出现或者即将出现的场景,所以,机器学习其实就在我们身边。

机器学习都有哪些算法?

在机器学习中,算法可以按照多种维度进行分类,比如监督学习、无监督学习、强化学习等...让人看着就眼晕。

记得有一篇文章总结的就非常易懂,他认为机器学习其实可以分成三类,分类、回归、聚类。

  • 分类听着名字就很容易理解了,比如给你一筐水果,水果里面有苹果、香蕉,需要把它们分成两类。
  • 回归来源于单词regression,它可以理解成是一种预测,比如线性回归,他可以根据样本数据学习出一个线性的公式,比如y=ax,当你给定一个x的值时,可以推算出对应的y值。当然具体的场景中,就不是简单的一维了...
  • 聚类,跟前面的分类有些不同,比如一筐水果,你都不知道里面装的是什么,需要通过味道、颜色、形状、大小等多个属性,把它们进行归类。

结合到算法里面:

  • 分类相关的算法有:K-近邻算法、决策树、朴素贝叶斯、逻辑回归、支持向量机等
  • 回归相关的算法有:线性回归、树回归等
  • 聚类相关的算法有:K-均值算法、Apriori等

如果看过一遍《机器学习实战》,应该就会对上述的算法有一定的了解。不需要到公式推导级别,先能了解他们的用法即可,比如:

  • K-近邻就是已知几个分类,判断新的节点属于哪个分类时,只需要看距离它一定范围内,哪个分类的数据多。有点像近朱者赤近墨者黑的意思。
  • 决策树就是通过一大堆的问题,判断属于哪个分类。比如,相亲的时候,会问“你是做什么的?”“有没有房?”“有没有车?”——最后判断,是否继续交往。
  • 朴素贝叶斯看着名字高大上,其实就是根据概率选择,属于哪个分类的概率大,就归属这个分类
  • 逻辑回归它是把线性回归的结果映射到01区间
  • 线性回归可以简单的理解成y=ax,但是其实在多维空间比这个复杂得多
  • K-均值就是一大堆散落的点,随机几个中心,这些点按照距离选择他们最近的中心组成一个类别
  • Apriori只要说一个啤酒与尿布,大家就应该明白了。

这么多算法其实只是机器学习中的一部分....

机器学习的应用场景

机器学习的应用还是很广泛的,比如无人驾驶、机器人等等高大上的东西,以及咱们身边的拼车算法、电商的个性化推荐、婚恋网站的快速配偶等等。只要是涉及到数据之间的关系,都可以使用机器学习来达到很好的效果。

个人理解的机器学习的三种境界

这三种境界纯粹是个人的胡乱设定,仅仅是为了给自己的学习定下一个目标!

第一层 了解算法的过程和作用


这种一般是那些自学机器学习的朋友,在看过几本机器学习相关的书籍后,对所有的算法都有一点了解。能跟别讨论一些机器学习的算法和用途,并且能理解相关技术分享大致过程。

第二层 能把算法运用到实践中


这一层可以认为是对某个机器学习的库比较熟悉,能真正的利用机器学习来解决一些问题。比如可以使用Spark MLLib中的某个算法解决实际的问题,如基于物品或者用户的协同过滤算法。这就好像是使用现代的机械工具盖房子,而不是像过去纯人工搬石头垒长城,效率和产出上都要好的多。

第三层 对算法的推导融会贯通


这种可以说是集数学与计算机功底于一身,是倚天剑与屠龙刀的合体。对数学公式推导了如指掌,各种模型的优化也深谙其道。其实机器学习使用某个库出一个简单的效果很简单,但是想要对算法模型进行优化却很难,大多时候都是盯着算法结果,目瞪口呆,不知道下一步该怎么办。如果对算法了解的很深,对实际的业务又很熟悉,那么就能结合两点对算法模型进行优化,改进机器学习的结果。

个人学习机器学习的路线规划

经过不到一个月的学习,对机器学习也算是初步有了一定的了解,最起码知道机器学习能干什么了,所以现在还在处于上面的第一个境界....

这期间也走了不少的弯路,浪费了不少的时间。所以在这里总结一下,也给大家当做一个参考:

  • 1 最快的入门方式,就是先百度、必应一下,了解下机器学习的概念。
  • 2 推荐阅读《机器学习实战》了解下机器学习相关的算法。我之前也看过机械工业出版社的《机器学习》、也看过点周志华老师的《机器学习》,前一本概念太多,后一本公式也挺多。《机器学习实战》相对来说要好得多,先介绍点理论背景,在基于python介绍下算法的实现以及一两个案例。
  • 3 很多人都觉得机器学习需要很好的数学功底,于是学习机器学习前,先捧着高数、线代、概率论看,结果看了两天,觉得枯燥无味,就打算放弃。其实没必要的,结合上面的《机器学习实战》,遇到什么公式,进行相应的复习就行了,这也是为什么把数学放在第三个步骤。其实机器学习里面能理解高数的求导、线代的矩阵以及向量、概率的期望方差等就差不多了,其他有需要的话针对学习就行。
  • 4 学习机器学习肯定是要看吴恩达老师的公开课了,公开课的地址,我刚看了两集,感觉还是非常不错的。
  • 5 学习Spark MLLib相关的算法实现,如果有时间的话,可以看看源码。

通过上面的学习,暂时可以到达第二个层次了。我想一般搞计算机的,应该很少有能对各种算法推导融会贯通的。所以第三种境界,就留给其他人吧....

推荐资源

1 《机器学习实战》

  • 推荐指数:★★★★★
  • 推荐理由: 理论、算法都有,比较好懂

2 机器学习 斯坦福 公开课

  • 推荐指数:★★★★☆
  • 推荐理由:权威大拿带你飞,还有什么理由不上车?

3 《推荐系统实践》

  • 推荐指数:★★★☆☆
  • 推荐理由:如果是想做个性化推荐,那么必须要看看这本书!

4 Spark MLLib官方文档以及example代码样例

  • 推荐指数:★★☆☆☆
  • 推荐理由:官方文档大体上知道有什么内容就行,主要是推荐看看example里面提供的代码,能帮助少走不少弯路。

刚接触机器学习这一个月我都做了什么?相关推荐

  1. R语言如何为dataframe的每一个数据列都做Q-Q图?

    R语言如何为dataframe的每一个数据列都做Q-Q图? 目录 R语言如何为dataframe的每一个数据列都做Q-Q图? R语言是解决什么问题的? R语言如何为dataframe的每一个数据列都做 ...

  2. 刚创立的眼镜店一个月达到1400多万的营业额?这个点子你可以看看

    随着现在电子产品的流行,很多小伙伴可能都避免不了近视,有这么一个老板,看中卖眼镜的商机,开始去做眼镜.卖眼镜的老板,靠着一款499元的眼镜,一个月就卖了1450多万.看到这里,大家伙肯定不信,卖眼镜怎 ...

  3. 计算今年和去年的时间,一个月的都是,用来计算同比

    /*** 计算今年和去年的时间* @param year* @param month* @return*/public List<String> getTime(String year,S ...

  4. 刚过去不到一个月 QQ又更新了

    [TechWeb]QQ已经20岁了,仍旧拥有超8亿用户,尤其在年轻人中间异常活跃,它是如何做到的? 小编从广大网友的反馈中找到了答案:QQ没有替代品,而你想要的,它几乎都有.这一点从其快节奏的更新频率 ...

  5. 从面试6连挂到成功拿下20K的offer,这一个月我是这样做的····

    直到如今,我才敢把这段经历分享出来,毕竟一个多月前,我是经历了面试六连挂的人.作为一个骄傲的软件测试工程师,恨不得找一块豆腐撞死.但是在闭关修炼了一个多月之后,重新出来面试,面试了五家公司,居然每个公 ...

  6. 肝了一个月,我做了个免费的面试刷题网

    大家好,我是鱼皮. 如今找工作.面试实在是太卷了,每轮面试都 必考 八股文,不背不行.网上虽然有很多面试题,但过于分散,就导致很多朋友又不知道到哪去找题.该背哪些题了. 所以我决定做一个完全免费.干净 ...

  7. 学习PWN一个月后能做什么?

    本文为笔者初学pwn的知识梳理,如有错误之处,敬请斧正. 栈溢出漏洞 原理 栈是一种后进先出的数据结构.在调用函数的时候,都会伴随着函数栈帧的开辟和还原(也称平栈).栈结构示意图如下(以32位程序为例 ...

  8. java工程师之旅-一个月工作心得

    不知不觉,在工作中已经度过一个月,距离上次写文章已经好几个月了,正好还有二十分钟下班,抽点时间来写一下博文,写一下心得. 首先说一下,在我工作之前,做了一个项目,和一个外校大四的学生做一个毕业设计,一 ...

  9. 入职字节外包一个月,我离职了

    有一种打工人的羡慕,叫做"大厂". 真是年少不知大厂香,错把青春插稻秧. 但是,在深圳有一群比大厂员工更庞大的群体,他们顶着大厂的"名",做着大厂的工作,还可以 ...

最新文章

  1. mysql 在存储过程出现的问题,记录一下
  2. 如何在Marketing Cloud里创建extension field扩展字段
  3. ajax json 403,解决 Ajax 发送 post 请求出现 403 Forbidden 的三种方式
  4. mysql 数据库日志管理工具_mysql mysqlbinlog日志管理工具使用教程
  5. 第5堂:看到词句就会读-上
  6. Android检测版本更新
  7. 软考信息系统项目管理师知识点总结(高项十大管理案例分析作文)
  8. 最新emlog5.3.1系统YiT模板源码
  9. nyoj 191 小柯的问题
  10. 敬仰之情犹如滔滔江水。。。
  11. python将excel数据合并_Python语言之Python合并多个Excel数据
  12. Linux 下重新挂载分区方法
  13. 算法笔记 胡凡 codeup 数列
  14. Nature | 张宁/张泽民/朱继业合作揭示肝癌免疫微环境亚型和中性粒细胞异质性...
  15. ARM开发板使用GDB调试程序
  16. 【第五周】新蜂团体贡献分
  17. 服务器存储系统的模式,服务器的三种存储方式
  18. CodeForces 332B Maximum Absurdity
  19. Text-CNN 文本分类
  20. matlab中怎么画函数曲线,用matlab 怎么画函数曲线图

热门文章

  1. 详解何恺明团队最新作品:源于Facebook AI的RegNet
  2. 20年的人工智能设计总结:向产品中注入人工智能的指南
  3. 聚焦机器学习和数据科学大佬工作的一天
  4. 机器学习算法工程师的自我修养
  5. 迁移学习的挑战和六大突破点
  6. 干货丨综述卷积神经网络:从基础技术到研究前景
  7. Tensorflow—Droupout
  8. HarmonyOS 2面世!是没有退路还是时机成熟?中国操作系统崛起元年或已到来
  9. 杜克大学和Facebook联手开发更好的光通信
  10. 超人类AI的幻想与思考:自下而上构建的自我迭代意识系统