文章目录

  • 机器学习概览
    • 一、什么是机器学习?
      • 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. [转载]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的机器学习课程,来帮助你进一步了解数据科学和人工智能. 如果您对人 ...

  10. 【scikit-learn】如何用Python和SciKit Learn 0.18实现神经网络

    本教程的代码和数据来自于 Springboard 的博客教程.本文的作者为 Jose Portilla,他是网络教育平台 Udemy 一门数据科学类课程的讲师. GitHub 链接:https://g ...

最新文章

  1. Redis 命令整理
  2. python北京理工大学推荐的书-Python教程书籍(北理工第2版)思考练习-第三章
  3. 【MM模块】 Cash Discounts 现金折扣
  4. 计算机对英语口语考试成绩,英语口语考试人机对话得分技巧
  5. JQuery中的全选择器(通配符)
  6. 页面上传图片只能通过表单完成,且页面端向服务器端发送消息除了ajax外基本通过表单;通过JavaScript ajax代码只能post到服务器json与xml;...
  7. 生肖牛年元素新年促销电商PSD分层页面模板|妥妥过年!
  8. Journey Of Code组组员贡献率
  9. 【BlackHat】黑帽大会上值得关注的安全工具
  10. scala 构造_Scala咖喱和自动类型依赖的封闭构造
  11. 超薄内置DSP数字功放芯片
  12. juk互粉攻略set结构体
  13. C语言中简单冒泡排序不花里胡哨
  14. 记录一次尝试修复elasticsearch Data too large问题
  15. Linux 文件夹右下角有锁,解锁
  16. 身份认证协议攻击:黑客不希望你了解的事情
  17. Range fro mac(随机数字生成软件)
  18. java 2分钟_Java怎么判断他是否在2分钟内执行了任务?
  19. nodejs学习-fs模块
  20. tyvj 1031 热浪

热门文章

  1. Optional 详解 Java
  2. php oop 实际工作,PHP OOP注意点(一)
  3. menisa mysql_实例详细说明linux下去除重复行命令uniq
  4. java 修饰符作用_Java关键字修饰符的作用范围
  5. 如何从零开始搭建知识图谱?
  6. tmux与python虚拟环境问题
  7. vim+python3的字符串却不能使用中文
  8. 不需要定义神经网络结构就可以恢复模型的两方法
  9. C语言中图形方式界面怎么,「分享」C语言如何编写图形界面
  10. dj打碟怎么学_南京学DJ打碟