一、预备知识

  • 微积分(偏导数、梯度等等)
  • 概率论与数理统计(例如极大似然估计、中央极限定理、大数法则等等)
  • 最优化方法(比如梯度下降、牛顿-拉普什方法、变分法(欧拉-拉格朗日方程)、凸优化等等)

二、路线1

(基于普通最小二乘法的)简单线性回归 -> 线性回归中的新进展(岭回归和LASSO回归)->(此处可以插入Bagging和AdaBoost的内容)-> Logistic回归 ->支持向量机(SVM)->感知机学习 -> 神经网络(初学者可先主要关注BP算法)-> 深度学习
这些算法都是围绕着 y = Σxiβi 这个公式展开的。
其中蓝色部分主要是回归,绿色部分主要是有监督的分类学习法。

三、路线2

K-means -> EM -> 朴素贝叶斯 -> 贝叶斯网络 -> 隐马尔科夫模型(基本模型,前向算法,维特比算法,前向-后向算法) (->卡尔曼滤波)
这条线路所涉及的基本都是那些各种画来画去的图模型,学术名词是PGM。这条线的思路和第一条是截然不同的。
其中绿色字体的部分是这个线路中的核心内容,而蓝色部分是为绿色内容作准备的部分。
K-means和EM具有与生俱来的联系,认识到这一点才能说明真正读懂了它们。而EM算法在HMM的模型训练中用到,所以要先学EM才能深入学习HMM。所以尽管在EM中看不到那种画来画去的图模型,但我还把它放在了这条线路中,这也就是原因所在。
朴素贝叶斯里面的很多内容在贝叶斯网络和HMM里都会用到,类似贝叶斯定理、先验和后验概率,边缘分布等等(主要是概念性的)。
最后,卡尔曼滤波可以作为HMM的一直深入或者后续扩展。尽管很多machine learning的书里没有把它看做是一种机器学习算法,但它也确实可以被看成是一种机器学习技术。

  1. 了解一些基础的学习理论
  2. 依次掌握各种常见的分类算法的原理与案例应用
  3. 掌握回归分析技术
  4. 掌握常见聚类算法的原理与案例应用
  5. 掌握常见关联分析算法的原理与案例应用
  6. 掌握各种常见的进阶模块与使用
  7. 掌握文本挖掘技术与常见案例应用
  8. 尝试自己写一些机器学习算法
  9. 学习深度学习技术,掌握各种神经网络算法与实际应用

四、应用层面

R、MATLAB和Python都是做数据挖掘的利器,另外一个基于Java的免费数据挖掘工具是Weka,只用点点鼠标,甚至不用编代码了。

五、机器学习可以解决的一些问题

1.分类

根据数据样本抽取出的特征,判定其属于有限个类别中的哪一个。如:

  • 垃圾邮件识别(垃圾邮件、正常邮件)
  • 文本情感褒贬分析(褒、贬)
  • 图像内容识别(结果类别:喵星人、汪星人、人类)
  • 图片分类、商品分类、客户分类、公司融资成功概率预测

2.回归问题

根据数据样本上抽取出的特征,预测一个连续值的结果,如:

  • 票房预测
  • 房价预测
  • 趋势预测

3.聚类问题

根据数据样本上抽取出的特征,让相近/相关的样本在一团内。如

  • google的新闻分类
  • 用户群体划分
  • 商品聚类
  • 公司客户价值分析

4. 关联分析问题

  • 商品关联分析
  • 个性化推荐
  • 货品摆放调整指导

5. 文本挖掘问题

  • 文本相似度计算
  • 机器翻译
  • 聊天机器人

6. 自动驾驶

六、机器学习最典型的两个分类

1.监督学习

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

2.非监督学习

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

七、机器学习热点应用

1.计算机视觉

典型的应用包括:人脸识别、车牌识别、扫描文字识别、图片内容识别、图片搜索等。

2.自然语言处理

典型的应用包括:搜索引擎智能匹配、文本内容理解、文本情绪判断,语音识别、输入法、机器翻译等。

3.社会网络分析

典型的应用包括:用户画像、网络关联分析、欺诈作弊发现、热点发现等。

4.推荐

典型的应用:虾米音乐的“歌曲推荐”,某宝的“猜你喜欢”等。

八、典型算法

处理分类的常用算法

  • 逻辑回归
  • 支持向量机
  • 随机森林
  • 朴素贝叶斯(NLP中常用)
  • 深度神经网络(视频、图片、语音等多媒体数据中使用)

处理回归问题的常用算法

  • 线性回归
  • 普通最小二乘法回归(Ordinary Least Squares Regression)
  • 逐步回归(Stepwise Regression)
  • 多元自适应回归样条(Multivariate Adaptive Regression Splines)

处理聚类问题的常用算法

  • K均值(K-means)
  • 基于密度聚类
  • LDA等

降维的常用算法

  • 协同过滤算法

模型整合(model ensemble)和提升(boostring)的算法

  • bagging
  • adaboost
  • GBDT
  • GBRT

其它重要的算法

  • EM算法

九、编程语言、工具和环境

1.Python

  • 网页爬虫:Scrapy
  • 数据挖掘:
    – Pandas:模拟R,进行数据浏览与预处理
    – numpy:数组运算
    – scipy:高效的科学计算
    – matplotlib:非常方便的数据可视化工具
  • 机器学习
    – Scikit-learn:远近闻名的机器学习包。
    – libsvn:高效率的SVM模型实现
    – keras/TensorFlow:深度学习神经网络。
  • 自然语言处理
    – nltk:自然语言处理的相关功能做得非常全面,有典型语料库,上手也非常容易。
    – ipython notebook:能直接打通数据到结果的通道。

2.R

最大的优势是开源社区,聚集了非常多功能强大可直接使用的包,绝大多数的机器学习算法在R中都有完善的包可直接使用,同时文档也非常齐全。常见的package包括:

  • RGtk2
  • pmml
  • colorspace
  • ada
  • amap
  • arules
  • biclust
  • cba
  • descr
  • doBy
  • e1071
  • ellipse等。

另外R的可视化效果做得也很好

3.Java

  • WEKA Machine Learning Workbench:相当于Java的scikit-learn
  • Massive Online Analysis(MOA)
  • MEKA
  • Mallet

4.C++

  • mlpack:高效同时可扩充性非常好的机器学习库
  • Shark:文档齐全的老牌C++机器学习库

5.大数据相关

  • Hadoop
  • Spark

6.操作系统

  • mac
  • linux
  • Windows下推荐anaconda,一步到位安装完python的全品类数据科学工具包。

十、基本工作流程

1.抽象成数据问题

目标是一个分类还是回归或聚类的问题,等。

2.获取数据

3.特征预处理与特征选择

良好的数据要能够提取出良好的特征才能真正发挥效力。
特征预处理,数据清洗是关键的步骤,往往能够使得算法的效果和性能得到显著提高。归一化、离散化、因子化、缺失值处理、去除共线性等,数据挖掘过程中很多时间就花在它们上面。
这些工作简单可复制,是机器学习的基础必备步骤。

筛选出显著特征,摒弃非显著特征,需要机器学习工程师反复理解业务。这对很多结果有决定性的影响。特征选择好了,非常简单的算法也能得出良好、稳定的结果。这需要运用特征有效性分析的相关技术,如相关系数、卡方检验、平均互信息、条件熵、后验概率、逻辑回归权重等方法。

4.训练模型与调优

真正考验水平的是调整算法的(超)参数,使得结果变得更加优良。这需要我们对算法的原理有深入的理解。理解越深入,就越能发现问题的症结,提出良好的调优方案。

5.模型诊断

如何确定模型调优的方向与思路?这就需要对模型进行诊断的技术。
过拟合、欠拟合 判断是模型诊断中至关重要的一步。常见的方法如交叉验证,绘制学习曲线等。
过拟合的基本调优思路是增加数据量,降低模型复杂度。
欠拟合的基本调优思路是提高特征数量和质量,增加模型复杂度。
误差分析也是机器学习至关重要的步骤。通过观察误差样本,全面分析误差产生的原因,是参数的问题还是算法选择的问题,是特征的问题还是数据本身的问题。

6.模型融合

7.上线运行

十一、机器学习库对比

十二、常用的科学计算软件

  • Matlab
  • GNU Octave
  • Mathematica
  • Maple
  • Spss
  • R
  • Numpy,SciPy,matplotlib等Python科学计算平台

OpenCV 是 Intel开源计算机视觉库,它由一系列C函数和少量C++类构成,实现了图像处理和计算机视觉方面的很多通用算法。OpenCV拥有包括300多个C函数的跨平台的中高层API。它不依赖于其他的外部库(尽管也可以使用某些外部库)。

mply是基于NumPY/SciPy和GSL构建的Python模块,它提供了高层函数和类,允许使用少量代码来完成复杂的分类、特征提取、回归、聚类等任务。

BeautifulSoup是用Python写的一个HTML/XML的解析器。

Neurolab是Python神经网络库,包括基础神经网络、训练算法,并具有弹性的构架,可创建其他网络,它用纯Python和Numpy写成。

参考:
http://blog.csdn.net/baimafujinji/article/details/49891221
http://www.360doc.com/content/16/0301/13/17753496_538519867.shtml
http://hfwudao.cn/a/31-machine_learning

机器学习——学习路线图相关推荐

  1. 我自学python的路-Python学习路线图的总结

    原标题:Python学习路线图的总结 如何学习Python 对于Python学习爱好者来说 一个良好的学习脉络特别重要,可以让学习事半功倍.如果你也是想系统的学习python技术,你可以看看 小编一直 ...

  2. Hadoop家族学习路线图--转载

    原文地址:http://blog.fens.me/hadoop-family-roadmap/ Sep 6, 2013 Tags: Hadoophadoop familyroadmap Comment ...

  3. Mahout学习路线图

    Hadoop家族系列文章,主要介绍Hadoop家族产品,常用的项目包括Hadoop, Hive, Pig, HBase, Sqoop, Mahout, Zookeeper, Avro, Ambari, ...

  4. Hadoop家族学习路线图

    Hadoop家族系列文章,主要介绍Hadoop家族产品,常用的项目包括Hadoop, Hive, Pig, HBase, Sqoop, Mahout, Zookeeper, Avro, Ambari, ...

  5. java技术专家学习路线图_向Java最佳专家的全球专家学习Java

    java技术专家学习路线图 Java with the Best Virtual Conference是您学习微服务,Java 9,Kubernetes以及其他Java的指南! 将于4月17日至18日 ...

  6. Hadoop的学习路线图

    目录: .1.Hadoop家族产品 2.Hadoop家族学习路线图 Hadoop家族产品 截止到2013年,根据cloudera的统计,Hadoop家族产品已经达到20个! 接下来,我把这20个产品, ...

  7. 信息安全学习路线图_Python学习图谱:学习到困惑的时候可以参考的图谱

    很多同学都想学习Python,最近就连地产大佬潘石屹都要学Python.刚刚开始学习Python的同学来说,不知道从哪里下手,学习起来比较困惑,没有找到一个好的学习方法,没有高手带路,没有人督促你学习 ...

  8. NLP学习难在哪里?这份最全NLP学习路线图帮你解决难题!

    作为一名人工智能之自然语言处理的技术小享,最常被问到的莫过于「如何入门NLP」了? 今天小享就整理了保姆级NLP学习路线图(思维导图),非常的全面和清晰,分享给大家. 希望这个指南会伴随你们一起成长哟 ...

  9. python学习视频-2018年最新Python学习路线图(内含大纲+视频+工具)

    Python学习路线图制作者的话: 据悉,Python已经入驻小学生教材,未来不学Python不仅知识会脱节,可能与小朋友都没有了共同话题.所以,从今天起不要再找借口,不要再说想学Python却没有资 ...

最新文章

  1. 关于Linux的一些个人研习感悟
  2. new_zeros()函数的作用
  3. kubernetes相关概念
  4. Xcode10 修改代码后,编译没有反应,或者导入头文件没有提示
  5. Java NIO编程的技巧和陷阱
  6. 简单部署 群晖 ×××
  7. async 异步编程的应用
  8. 关于linux下制作静态库
  9. 大寨鸿蒙系统的电器,华为传来两个好消息,鸿蒙OS大时代将于6月2日正式开启...
  10. codeforces#253 D - Andrey and Problem里的数学知识
  11. 数据挖掘实战—基于水色图像的水质评价
  12. 字母冒泡法排序c语言,C语言冒泡排序法的实现(升序排序法)
  13. 使用 Python 编写一个聊天小程序
  14. 10.24程序员节日快乐
  15. mysql5.7.26搭建MGR单主及多主模式
  16. “诱饵效应”让用户产生“冲突”营销心理学十大效应 营销值得学
  17. 电脑我的世界服务器怎么按键显示,我的世界功能按键大全 操作按键全介绍
  18. Linux下命令行中的复制和粘贴
  19. 浏览器总是提示验证码输入错误
  20. 关于javascript,[object,object]是什么?

热门文章

  1. 汇编语言:输出一个小写字母的前导字母、自身与后续字母
  2. 小船过河 matlab,小船过河matlab实现.doc_蚂蚁文库
  3. SWIM接口及STM8烧录过程
  4. 基于Dragonboard 410c的燃气烟雾检测器(四)
  5. i9x系列是服务器CPU吗,虽是i9入门款 但却已在众山巅_Intel 酷睿i9 7900X_CPUCPU评测-中关村在线...
  6. redis 使用redisTemplate使用PipeLine方式 利用lRange 批量获取队列内容并移除当前获取的消息
  7. java网页快照-网页转存为图片
  8. 安装Net Framework 4.7报错 已处理证书链,但是在不受信任提供程序信任的根证书中终止
  9. ROS学习(一) —— Ubuntu 18.04,ROS ,gazebo安装
  10. C语言 char**