转载自: http://www.cnblogs.com/mq0036/p/7131678.html

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

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

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

什么是机器学习?

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

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

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

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

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

机器学习都有哪些算法?

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

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

  • 分类听着名字就很容易理解了,比如给你一筐水果,水果里面有苹果、香蕉,需要把它们分成两类。
  • 回归来源于单词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 《机器学习实战》

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

机器学习 斯坦福 公开课

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

3 《推荐系统实践》

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

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

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

最新文章

  1. mysql5.7压缩包版安装-来自百度经验
  2. wp8.1 Study16:网络之 使用Azure移动服务及利用Azure推送通知服务
  3. [Python] Remote debugging by Pycharm
  4. Struts2 实战(一)
  5. la----3695 City Game(最大子矩阵)
  6. iphone dev 入门实例3:Delete a Row from UITableView
  7. Unity Scripting Tutorials 要点记录
  8. hdu 1434 幸福列车
  9. Oracle自带的用户
  10. C 语言 查找一个字符串2在字符串1中出现的次数
  11. HW4.14
  12. Android studio开发常用快捷键
  13. CSS( Cascading Style Sheets )简书
  14. python开发环境搭建及numpy基本属性-【老鱼学numpy】
  15. springbean的生命周期
  16. dubbo RPC超时异常小结
  17. 基于Python项目的Redis缓存消耗内存数据简单分析(附详细操作步骤)
  18. 桥接、仅主机和NAT图解
  19. 小程序笔记四:表单提交form
  20. Educational Codeforces Round 47 (Rated for Div. 2)G. Allowed Letters 网络流

热门文章

  1. 团队冲刺Alpha(十)
  2. Win10 Ubuntu18.04 编译安装 nignx
  3. 详解Linux运维工程师应具备的十大技能
  4. 【转】百度统计js被劫持用来DDOS Github
  5. oracle查询时遇到的坑
  6. svn merge详解
  7. 编写Shell脚本的最佳实践,规范一
  8. 汕头市队赛 SRM 08 B
  9. md5 加解密
  10. 求LCA最近公共祖先的离线Tarjan算法_C++