转载自: 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里面提供的代码,能帮助少走不少弯路。

[ZZ]机器学习的入门的更多相关文章

  1. 机器学习简易入门(四)- logistic回归

    摘要:使用logistic回归来预测某个人的入学申请是否会被接受 声明:(本文的内容非原创,但经过本人翻译和总结而来,转载请注明出处) 本文内容来源:https://www.dataquest.io/ ...

  2. Andrew Ng机器学习算法入门(一):简介

    简介 最近在参加一个利用机器学习来解决安全问题的算法比赛,但是对机器学习的算法一直不了解,所以先了解一下机器学习相关的算法. Andrew Ng就是前段时间从百度离职的吴恩达.关于吴恩达是谁,相信程序 ...

  3. python机器学习《入门》

    写在前面的废话: 好吧,不得不说鱼C的markdown文本编辑器挺不错的,功能齐全.再次感谢小甲鱼哥哥的python视频让我去年大三下学期的时候入门了编程,爱上了编程这门语言,由于是偏冷门的统计学,在 ...

  4. zz 机器学习系统或者SysML&DL笔记

    机器学习系统或者SysML&DL笔记(一)  Oldpan  2019年5月12日  0条评论  971次阅读  1人点赞 在使用过TVM.TensorRT等优秀的机器学习编译优化系统以及Py ...

  5. 零起点PYTHON机器学习快速入门 PDF |网盘链接下载|

      点击此处进入下载地址 提取码:2wg3 资料简介: 本书采用独创的黑箱模式,MBA案例教学机制,结合一线实战案例,介绍Sklearn人工智能模块库和常用的机器学习算法.书中配备大量图表说明,没有枯 ...

  6. Spark MLBase分布式机器学习系统入门:以MLlib实现Kmeans聚类算法

    1.什么是MLBaseMLBase是Spark生态圈的一部分,专注于机器学习,包含三个组件:MLlib.MLI.ML Optimizer. ML Optimizer: This layer aims ...

  7. python 机器学习实践入门

    机器学习概念概念 机器 学习是计算机科学的一个分支,从模式识别.人工智能和计算学习理论发展而来,我们可以将其作为数据挖掘的工具 侧重用于数据分析方法理解给定的数据 目的是:开发能够从先前观测的数据,通 ...

  8. 知识图谱与机器学习 | KG入门 -- Part1-b 图深度学习

    介绍 我们正在定义一种新的机器学习方法,专注于一种新的范式 -- Data Fabric. 在上一篇文章中,我们对机器学习给出了新的定义: 机器学习是一种自动发现Data Fabric中隐藏的&quo ...

  9. Andrew Ng机器学习算法入门(十):过拟合问题解决方法

    在使用机器学习对训练数据进行学习和分类的时候,会出现欠拟合和过拟合的问题.那么什么是欠拟合和过拟合问题呢?

随机推荐

  1. Client does not support authentication protocol requested by server

    关于由于版本号码不同而引起的 Client does not support authentication protocol requested by server 问题 搜索类似的问题,得到的答案类 ...

  2. Redis键管理

    Redis键管理 Redis 键命令用于管理 redis 的键. 语法 Redis 键命令的基本语法如下: redis > COMMAND KEY_NAME redis > SET w3c ...

  3. hadoop生态圈列式存储系统--kudu介绍及安装配置

    介绍 Kudu 是一个针对 Apache Hadoop 平台而开发的列式存储管理器.Kudu 共享 Hadoop 生态系统应用的常见技术特性: 它在 commodity hardware(商品硬件)上 ...

  4. Centos 6.5 HISTSIZE更改

    通过 更改 /etc/profile 中的HISTSIZE值,改完之后,执行source /etc/profile  和echo $HISTSIZE,结果还是之前的HISTSIZE值, 解决办法:执行 ...

  5. BZOJ2208 [Jsoi2010]连通数 【图的遍历】

    题目 输入格式 输入数据第一行是图顶点的数量,一个正整数N. 接下来N行,每行N个字符.第i行第j列的1表示顶点i到j有边,0则表示无边. 输出格式 输出一行一个整数,表示该图的连通数. 输入样例 3 ...

  6. [转]busybox中telnet 功能添加

    使用busybox制作的一个基本根文件系统如何添加telnetd服务呢? 下面把本人的添加过程列出来供大家分享,如有不同意见请不吝赐教! 1. 添加telnet的支持(busybox中配置) Netw ...

  7. Python学习笔记(Django篇)——1、环境搭建篇(如何在Pycharm中配置Python和Django)

      1.准备好以下东东,并且按照先后顺序进行安装: Python 3.6 (64-bit) Django-1.11.tar.gz pycharm-community-2016.3.2.exe 安装好了 ...

  8. npm下载包失败的几个原因

    1. 可能是由于网络问题导致下载包失败,因为qiang,所以,直接使用npm有些情况会导致下载包失败,使用cnpm源或者yarn下载等方法可以解决这个问题. 2. 这个包不存在,检查一下包的拼写或者路 ...

  9. js函数调用与声明 (for时注意)

    可以的: test();  // 直接function 方式声明的函数可以直接调用,后声明 function test(){} aa();   //error  var 方式声明的函数需先声明后调用v ...

  10. C++封装随笔

    1接口的封装和设计思想入门 接口的封装和设计思想入门 第一套api函数 #ifndef _CLT_SOCKET_H__ #define _CLT_SOCKET_H__ //客户端初始化环境 int c ...