当前位置: 首页 > news >正文

机器学习概述

什么是机器学习?

一、概述

  • 机器学习是让计算机具有学习的能力,无需进行明确编程。 —— 亚瑟·萨缪尔,1959
  • 计算机程序利用经验 E 学习任务 T,性能是 P,如果针对任务 T 的性能 P 随着经验 E 不断增长,则称为机器学习。 —— 汤姆·米切尔,1997

二、机器学习的类型

1. 监督学习

训练集有标签

  • 主要算法

    • K近邻算法
    • 线性回归
    • 逻辑回归
    • 支持向量机(SVM)
    • 决策树和随机森林
    • 神经网络
  • 分类

    • 垃圾邮件过滤器就是一个很好的例子:用许多带有归类(垃圾邮件或普通邮件)的邮件样本进行训练,过滤器必须还能对新邮件进行分类。

      img

  • 回归

    • 预测目标数值,例如给出一些特征(里程数、车龄、品牌等等)称作预测值,来预测一辆汽车的价格

      img

2. 非监督学习

训练集没有标签

  • 主要算法

    • 聚类

      • K 均值

      • 层次聚类分析(HCA)

      • 期望最大值

        img

    • 可视化与降维

      • 主成分分析(PCA)

      • 核主成分分析

      • 局部线性嵌入(LLE)

      • t-分布邻域嵌入算法(t-SNE)

        img

    • 异常检测

      img

    • 关联规则

      • Apriori 算法
      • Eclat 算法

3. 半监督学习

大量不带标签数据加上小部分带标签数据

  • 主要算法

    • 深度信念网络(DBN)
    • 受限玻尔兹曼机(RBM)
  • 案例

    • 比如 Google Photos,只要给每个人一个标签,算法就可以命名每张照片中的每个人,特别适合搜索照片

      img

4. 强化学习

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

  • 主要算法

    • Q-learning
    img

5. 在线学习

用数据实例小批量持续地进行训练,每个学习步骤都很快且廉价,系统可以动态地学习新获得的数据

  • 在线学习很适合系统接收连续流的数据(比如,股票价格),且需要自动对改变作出调整。一旦在线学习系统学习了新的数据实例,它就不再需要这些数据,可以节省大量的空间

    img

6. 实例学习vs模型学习

  • 实例学习

    系统先用记忆学习案例,然后使用相似度测量推广到新的例子

    img

  • 模型学习

    建立这些样本的模型,然后使用这个模型进行预测

    img

三、机器学习的使用

  • 选择算法需要考虑的两个问题

    • 算法场景

      • 预测明天是否下雨,因为可以用历史的天气情况做预测,所以选择监督学习算法
      • 给一群陌生的人进行分组,但是我们并没有这些人的类别信息,所以选择无监督学习算法、通过他们身高、体重等特征进行处理
    • 数据类型

      • 需要收集或分析的数据是什么
      img
  • 开发流程

    1. 收集数据: 收集样本数据
    2. 准备数据: 注意数据的格式
    3. 分析数据: 为了确保数据集中没有垃圾数据
      • 如果是算法可以处理的数据格式或可信任的数据源,则可以跳过该步骤
      • 另外该步骤需要人工干预,会降低自动化系统的价值
    4. 训练算法: 如果使用无监督学习算法,由于不存在目标变量值,则可以跳过该步骤
    5. 测试算法: 评估算法效果
    6. 使用算法: 将机器学习算法转为应用程序

转载于:https://www.cnblogs.com/plusczh/p/9524021.html

相关文章:

  • 背水一战 Windows 10 (32) - 控件(选择类): Selector, ComboBox
  • 从重复到重用
  • TPYBoard读取芯片上的温度传感器
  • 变量的保存重载和打印
  • Oracle将Java EE移交Eclipse基金会
  • Linux - 执行命令与脚本
  • HashMap ConcurrentHashMap
  • 第三百九十三节,Django+Xadmin打造上线标准的在线教育平台—Xadmin后台进阶开发配置...
  • 软件下载
  • 7. Oracle数据加载和卸载
  • 工作的第6个年头发现DateFormat是not synchronized
  • JAVA自学笔记18
  • android 9 patch
  • C#中string.format用法详解
  • session共享问题解决方案
  • 【刷算法】求1+2+3+...+n
  • flask接收请求并推入栈
  • Hexo+码云+git快速搭建免费的静态Blog
  • Java 网络编程(2):UDP 的使用
  • js ES6 求数组的交集,并集,还有差集
  • Node 版本管理
  • SpiderData 2019年2月25日 DApp数据排行榜
  • vue中实现单选
  • 多线程 start 和 run 方法到底有什么区别?
  • 每天10道Java面试题,跟我走,offer有!
  • 使用阿里云发布分布式网站,开发时候应该注意什么?
  • 推荐一款sublime text 3 支持JSX和es201x 代码格式化的插件
  • 运行时添加log4j2的appender
  • 【云吞铺子】性能抖动剖析(二)
  • mysql面试题分组并合并列
  • puppet连载22:define用法
  • 回归生活:清理微信公众号
  • !!java web学习笔记(一到五)
  • #pragma once与条件编译
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • (windows2012共享文件夹和防火墙设置
  • (九十四)函数和二维数组
  • (十三)Java springcloud B2B2C o2o多用户商城 springcloud架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)...
  • (学习日记)2024.01.09
  • (正则)提取页面里的img标签
  • (转)GCC在C语言中内嵌汇编 asm __volatile__
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .bat批处理(三):变量声明、设置、拼接、截取
  • .NET Core 成都线下面基会拉开序幕
  • .NET Micro Framework初体验
  • .NET框架
  • [ C++ ] STL---string类的模拟实现
  • [ Linux Audio 篇 ] 音频开发入门基础知识
  • [ vulhub漏洞复现篇 ] Apache Flink目录遍历(CVE-2020-17519)
  • [20171113]修改表结构删除列相关问题4.txt
  • [ai笔记4] 将AI工具场景化,应用于生活和工作
  • [Android Pro] AndroidX重构和映射
  • [C#]winform部署PaddleOCRV3推理模型
  • [C++参考]拷贝构造函数的参数必须是引用类型