参考文献

机器学习概览
一、什么是机器学习?
1、定义
2、适用
二、分类
1、监督, 非监督, 半监督和强化学习
(1)监督学习
(2)非监督学习
(3)半监督学习
(4)强化学习
2、在线学习 vs 批量学习
(1)在线学习
(2)批量学习
3、基于实例学习 vs 基于模型学习
(1)基于实例学习
(2)基于模型学习
三、主要挑战
四、测试和确认
机器学习概览
一、什么是机器学习?
1、定义
计算机程序利用经验 E 学习任务 T, 性能是 P, 如果针对任务 T 的性能 P 随着经验 E 不断增长, 则称为机器学习。(汤姆·米切尔,1997)

2、适用
需要进行大量手工调整或需要拥有长串规则才能解决的问题: 机器学习算法通常可以简化代码、 提高性能。
问题复杂, 传统方法难以解决: 最好的机器学习方法可以找到解决方案。
环境有波动: 机器学习算法可以适应新数据。
洞察复杂问题和大量数据。
二、分类
注意下述规则可以组合

1、监督, 非监督, 半监督和强化学习
分类依据:根据训练时监督的量和类型进行分类。

(1)监督学习
分为:分类任务、回归任务

常用算法:

K近邻算法
线性回归
逻辑回归
支持向量机( SVM)
决策树和随机森林
神经网络
(2)非监督学习
常用算法:
聚类

K 均值
层次聚类分析( Hierarchical Cluster Analysis, HCA)
期望最大值
可视化和降维(简化数据、 但是不能失去大部分信息)

主成分分析( Principal Component Analysis, PCA)
核主成分分析
局部线性嵌入( Locally-Linear Embedding, LLE)
t-分布邻域嵌入算法( t-distributed Stochastic Neighbor Embedding, t-SNE)
关联性规则学习(挖掘大量数据以发现属性间有趣的关系)

Apriori 算法
Eclat 算法
此外,还常用于异常检测( anomaly detection)

(3)半监督学习
数据形式:通常是大量不带标签数据加上小部分带标签数
据。

多数半监督学习算法是非监督和监督算法的结合。eg:深度信念网络(deep belief networks)

(4)强化学习
智能体(agent), 可以对环境进行观察(observation), 选择和执行动作(action), 获得奖励。然后它必须自己学习哪个是最佳方法( 称为策略, policy) , 以得到长久的最大奖励。 策略决定了智能体在给定情况下应该采取的行动。

2、在线学习 vs 批量学习
分类依据:是否能从导入的数据流进行持续学习

(1)在线学习
用数据实例持续地进行训练,可以一次一个或一次几个实例( 称为小批量)。 每个学习步骤都很快且廉价,所以系统可以动态地学习到达的新数据。
==》适合接收连续流的数据,且需要自动对改变作出调整。

数据的使用:

一旦在线学习系统学习了新的数据实例,它就不再需要这些数据了, 所以扔掉这些数据( 除非你想滚回到之前的一个状态, 再次使用数据)==》这样可以节省大量的空间。
核外数据(机器内存存不下大量数据集时):加载部分数据,之后训练,然后重复该过程,直到所有数据都进行了训练。
(2)批量学习
系统不能持续学习:必须用所有可用数据进行训练。
==》占用大量时间和计算资源

3、基于实例学习 vs 基于模型学习
(1)基于实例学习
记忆学习。系统先用记忆学习案例, 然后使用相似度测量推广到新的例子

(2)基于模型学习
从样本集进行归纳的方法是建立这些样本的模型, 然后使用这个模型进行预测。

三、主要挑战
训练数据量不足:数据不合理的有效性;
没有代表性的训练数据;
样本太小==》样本噪声
样本太大==》样本偏差:可能没有代表性, 如果取样方法错误的话。
低质量数据:错误、异常值和噪声
不相关的特征
特征工程(特征选择、特征提取、收集新数据创建新特性)
过拟合训练数据
简化模型, 可以通过选择一个参数更少的模型( 比如使用线性模型, 而不是高阶多项式模型)、 减少训练数据的属性数、 或限制一下模型(正则化)
收集更多的训练数据
减小训练数据的噪声( 比如, 修改数据错误和去除异常值)
欠拟合训练数据
四、测试和确认
数据集划分:训练集、验证集、测试集;

在验证集上模型和超参数,选择性能最佳的模型和超参数

用Scikit-learn和TensorFlow进行机器学习_1相关推荐

  1. [转载]Scikit Learn: 在python中机器学习

    原址:http://my.oschina.net/u/175377/blog/84420 目录[-] Scikit Learn: 在python中机器学习 载入示例数据 一个改变数据集大小的示例:数码 ...

  2. Scikit Learn: 在python中机器学习

    Warning 警告:有些没能理解的句子,我以自己的理解意译. 翻译自:Scikit Learn:Machine Learning in Python 作者: Fabian Pedregosa, Ga ...

  3. scikit learn、tensorflow、keras区别

    参考:简书-刘敬:https://www.jianshu.com/p/0837b7c6ce10,感谢 一. 功能不同 Scikit-learn(sklearn)的定位是通用机器学习库 TensorFl ...

  4. python scikit learn 关闭开源_Python机器学习工具:Scikit-Learn介绍与实践

    Scikit-learn 简介 官方的解释很简单: Machine Learning in Python, 用python来玩机器学习. 什么是机器学习 机器学习关注的是: 计算机程序如何随着经验积累 ...

  5. Hands On Machine Learning with Scikit Learn and TensorFlow(第三章)

    MNIST 从sklearn自带函数中导入NMIST 第一次导入可能会出错,从这里下载https://github.com/amplab/datascience-sp14/blob/master/la ...

  6. Hands On Machine Learning with Scikit Learn and TensorFlow(第十章)

    Oscar帮助你寻找好的超参数组合. 每个隐藏层神经元的数量应该是逐渐减少的,因为第一层学到的低阶特征,可以在第二层组合成高阶特征 .

  7. scikit - learn 做文本分类

    文章来源: https://my.oschina.net/u/175377/blog/84420 Scikit Learn: 在python中机器学习 Warning 警告:有些没能理解的句子,我以自 ...

  8. 机器学习与Scikit Learn学习库

    摘要: 本文介绍机器学习相关的学习库Scikit Learn,包含其安装及具体识别手写体数字案例,适合机器学习初学者入门Scikit Learn. 在我科研的时候,机器学习(ML)是计算机科学领域中最 ...

  9. 独家|盘点5个TensorFlow和机器学习课程,程序员福利(附资源)

    作者:Javin Paul 翻译:蒋雨畅 校对:丁楠雅 本文约2100字,建议阅读10分钟. 本文为你介绍5个有关TensorFlow的机器学习课程,来帮助你进一步了解数据科学和人工智能. 如果您对人 ...

最新文章

  1. REACT day 1
  2. 控制车辆运行的19个神经元
  3. 怎么对Java服务进行调优的?
  4. eclipse配置PHP自动提示代码
  5. 12-多对一添加操作(添加新客户及对应的新订单)
  6. 前端学习(2224):react之函数式组件
  7. php抽奖概率算法(刮刮卡,大转盘)
  8. Windows 8 Directx 开发学习笔记(十三)利用模板实现木箱镜像
  9. qt opengl 天空盒
  10. tomcat8.0安装及配置
  11. 商淘软件S2B2C供应链系统 支持多种电商模式
  12. linux fdisk指定ext4,如何在Linux中创建新的Ext4文件系统(分区)
  13. anbmcmdn 上下文无关文法_词法分析 | 上下文无关文法和推导
  14. 酷我音乐盒官方免费版最新版
  15. NAND Flash内部结构简介
  16. ACM河南第八届省赛题
  17. 计算机汉字怎么制作的,如何制作自己的字体?教你快速制作自己手写字体
  18. 2015CGMC 参赛游戏名单
  19. 高校圆桌派话题征集第五期来咯
  20. [HTML5-SVG]SVG是什么?SVG有什么用途?

热门文章

  1. DHCP自动分配地址;DHCP指定IP给客户端
  2. MAPREDUCE实践篇(2)
  3. 你应该将应用迁移到Spring 4的五个原因
  4. 一元夺宝类项目的被拒
  5. Genymotion 模拟器 VirtualBox
  6. “本地连接”属性中“身份验证”选项卡消失的处理方法
  7. 高性能ASP.NET系统架构设计
  8. java class对象创建时机_Java面向对象编程-类的声明周期
  9. 魅蓝5s的android系统版本,魅族魅蓝5S的手机系统是什么
  10. 没有找到mysql。sock_linux系统安装mysql数据库