机器学习方法简介(2)--决策树、随机森林、朴素贝叶斯

2023-05-16

1.决策树

决策树是一种用于对实例进行分类的树形结构。

Hunt算法是一种采用局部最优策略的决策树构建算法,它同时也是许多决策树算法的基础,包括ID3、C4.5和CART等。

Hunt算法的递归定义如下: 
(1) 如果 D_{t}中所有记录都属于同一个类,则 t 是叶结点,用 y_{t}标记。 
(2) 如果 D_{t}中包含属于多个类的记录,则选择一个属性测试条件(attribute test condition),将记录划分成较小的子集。对于测试条件的每个输出,创建一个子女结点,并根据测试结果将 D_{t}中的记录分布到子女结点中。然后,对于每个子女结点,递归地调用该算法。

需要附加的条件来处理以下的情况:

  1. 算法的第二步所创建的子女结点可能为空,即不存在与这些结点相关联的记录。如果没有一个训练记录包含与这样的结点相关联的属性值组合,这种情形就可能发生。这时,该结点成为叶结点,类标号为其父结点上训练记录中的多数类。
  2. 在第二步,如果与D_{t}相关联的所有记录都具有相同的属性值(目标属性除外),则不可能进一步划分这些记录。在这种情况下,该结点为叶结点,其标号为与该结点相关联的训练记录中的多数类。

 

在决策过程中,对于特征的选择还是比较重要的。随机选择显然是不好的,因此,我们定义了信息增益和信息增益比两个指标来指导特征选择。

信息熵的定义:

信息增益的定义:

信息增益率定义:

ID3算法应用了信息增益来选择特征 。

C4.5算法与上边的ID3算法非常相似,唯一的不同是,ID3算法是用信息增益来选择特征,而C4.5算法使用信息增益率来选择特征。在使用信息增益作为训练数据集特征时会偏向于取值较多的特征,而用信息增益率则避免了这一问题。

CART生成算法与C4.5算法相类似,它与C4.5算法的主要区别是使用基尼系数进行属性选择。

剪枝

作为决策树中一种防止Overfitting过拟合的手段,分为预剪枝和后剪枝两种。

预剪枝:当决策树在生成时当达到该指标时就停止生长,比如小于一定的信息获取量或是一定的深度,就停止生长。

后剪枝:当决策树生成完后,再进行剪枝操作。优点是克服了“视界局限”效应,但是计算量代价较大。

决策树优点:

直观,便于理解,在相对短的时间内能够对大型数据源做出可行且效果良好的结果,能够同时处理数据型和常规型属性。

决策树缺点:

可规模性一般,连续变量需要划分成离散变量,容易过拟合。

2.随机森林(RF)

随机森林就是通过集成学习的思想将多棵树集成的一种算法,它的基本单元是决策树,而它的本质属于机器学习的一大分支——集成学习(Ensemble Learning)方法。

随机森林中的每个决策树独立预测,然后对所有决策树的预测结果进行投票,将若干个弱分类器的分类结果进行投票选择,从而组成一个强分类器,这就是随机森林bagging的思想。

特点:

1)在当前所有算法中,具有极好的准确率。

2)能够有效地运行在大数据集上。

3)能够处理具有高维特征的输入样本,而且不需要降维。

4)能够评估各个特征在分类问题上的重要性。

5)在生成过程中,能够获取到内部生成误差的一种无偏估计。

6)对于缺省值问题也能够获得很好得结果。

每棵树的按照如下规则生成:

1)如果训练集大小为N,对于每棵树而言,随机且有放回地从训练集中的抽取N个训练样本(这种采样方式称为bootstrap sample方法),作为该树的训练集;

2)如果每个样本的特征维度为M,指定一个常数m<<M,随机地从M个特征中选取m个特征子集,每次树进行分裂时,从这m个特征中选择最优的;

3)每棵树都尽最大程度的生长,并且没有剪枝过程。

随机森林分类效果(错误率)与两个因素有关:

  • 森林中任意两棵树的相关性:相关性越大,错误率越大;
  • 森林中每棵树的分类能力:每棵树的分类能力越强,整个森林的错误率越低。

  减小特征选择个数m,树的相关性和分类能力也会相应的降低;增大m,两者也会随之增大。所以关键问题是如何选择最优的m(或者是范围),这也是随机森林唯一的一个参数。

 

3.朴素贝叶斯

基于概率论的分类算法,通过考虑特征概率来预测分类。

贝叶斯法则

假如我们有c0和c1两个类,给定一个数据,它的特征为x1,x2,x3,我们求这个数据属于哪个类。

首先我们需要求p(c0|x1,x2,x3)和p(c1|x1,x2,x3)哪个更大,如果p(c0|x1,x2,x3)更大,则该数据属于c0类,反之属于c1类。

但是p(c0|x1,x2,x3)不好求解,所以我们利用贝叶斯法则将其转化为求解陪p(x1,x2,x3|c0)、p(c0)、p(x1,x2,x3)的问题。


引用《决策树简述》

引用《数据挖掘十大算法之决策树详解(1)》

引用《决策树 (Decision Tree) 原理简述及相关算法(ID3,C4.5)》

引用《随机森林(Random Forest)》

引用《带你搞懂朴素贝叶斯分类算法》

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

机器学习方法简介(2)--决策树、随机森林、朴素贝叶斯 的相关文章

  • Anaconda 与 ROS 冲突解决

    Anaconda默认使用Python 3 而 ROS默认使用Python2 xff0c 若同时使用二者则会在调用一些ros包时出现冲突 目前解决方案是先在 bashrc文件中注释掉Anaconda xff1a span class toke
  • TI AWR1843毫米波雷达采集三维点云数据(ROS)

    毫米波雷达以其稳定性 对不同环境的适应能力 价格等方面的优势逐步引起了科研人员的注意 xff0c 本文主要介绍利用了TI xff08 德州仪器 xff09 的AWR1843设备 xff0c 基于ROS系统进行采集点云数据的流程 供大家参考及
  • 毫米波雷达原理介绍

    毫米波雷达是指工作在波长为1 10mm的毫米波段 xff0c 频率为30 xff5e 300GHz 基于其工作模式可以分为 脉冲 和 连续波 两种 其中 xff0c 脉冲类型的毫米波雷达的原理与激光雷达相似都是采用TOF的方法 而连续波类型
  • Ubuntu18.04使用Xorg创建虚拟屏幕

    目标 xff1a 使用远程软件 xff0c 如向日葵 TeamViewer Nomachine等来控制远程的电脑 xff08 Ubuntu 18 04桌面版本 xff09 作为服务端 存在问题 xff1a 被远程电脑若不连接屏幕会出现错误
  • 数学符号大全

    虽然在 Mathtype 能输入绝大多数想要的数学字符 xff0c 但是有些在 Visio 中无法输入 xff0c 可以在这里找出 xff0c copy就好了 xff0c 嘻嘻 xff5e 1 几何符号 2 代数符号 xff5e 3 运算符
  • 8小时用HTML5打造VNCViewer

    8小时用HTML5打造VNCViewer http cnborn net blog 另一个话题是ThoughtWorks徐昊带来的 8小时用HTML5打造VNCViewer 这个分享非常精彩 xff0c 其实现过程中的思考方式 使用的新技术
  • 自制ST-Link V2.1,带串口,可自动更新固件,含全套资料下载

    自制ST Link V2 1 xff0c 带串口 xff0c 可自动更新固件 xff0c 含全套资料下载 最近自制了一个带串口的ST Link V2 1 xff0c 现将全部资料共享给大家 xff0c 支持最新版的Keil 和IAR xff
  • LIO-SAM-自采数据运行踩坑

    一直觉得LIO SAM还是一个比较不错的激光雷达惯性里程计框架 xff0c 最近在使用自己的数据进行测试过程中出现了很多坑 xff0c 花费了一周多的时间才填平 xff0c 在此记录一下 前言 Ouster 128激光雷达数据Ouster内
  • ROS bag包提取数据

    日常使用中有时需要提取bag包中的某个topic数据为新的bag包 xff0c 或者裁剪其中的一段时间数据 这些功能均可以通过rosbag filter命令实现 下面 xff0c 我们简单介绍一下其使用流程 xff1a 首先 xff0c 使
  • Ouster激光雷达使用PTP时间同步

    IEEE1588 the Precision Time Protocol 简称为 PTP xff09 全称是 网络测量和控制系统的精密时钟同步协议标准 xff0c 可以使用ubuntu中的网卡作为时间的master也可以外接一个精准的时钟
  • MATLAB绘图:plot函数与bar函数详解

    MATLAB是由美国mathworks公司发布的主要面对科学计算 可视化以及交互式程序设计的高科技计算环境 我们可以利用它方便快捷的进行矩阵运算 绘制函数和数据 图像处理 前一段时间作者在进行毕业设计时使用MATLAB绘制了论文中的一系列插
  • 树莓派ubuntu mate系统连接PX4并通过UDP连接至QGC地面站

    前提条件 xff1a 树莓派安装了ubuntu mate 20 04系统ubuntu mate已经安装好ros 这里是noetic版本 系统 xff0c Mavros安装好QGC地面站的PCUSB数据线 xff08 确定能传输数据 xff0
  • make px4_sitl_default gazebo出现错误解决办法

    Ubuntu20 04按上图操作进行PX4配置的时候出现如下错误 xff08 确保你已经完整git Firmware或者已经翻墙 xff09 xff1a Configuring incomplete errors occurred See
  • ubuntu 常用命令汇总

    安装 sudo apt get install vim sudo apt get install nano 卸载 sudo apt get remove nano 给root用户设置密码 sudo passwd root 切换到root用户
  • 多任务学习-An Overview of Multi-Task Learning in Deep Neural Networks论文笔记

    An Overview of Multi Task Learning in Deep Neural Networks论文笔记 概述 xff1a 多任务学习有很多形式 xff0c 如联合学习 xff08 Joint Learning xff0
  • 结构体

    结构体 xff1a 结构是一些值的集合 xff0c 这些值称为成员变量 xff0c 每个成员可以是不同的类型变量 结构体成员的类型 xff1a 可以是 xff1a 标量 xff0c 数组 xff0c 指针 xff0c 结构体 struct
  • 【ROS-3】ROS实现图像目标检测

    1 darknet ros下载及编译 GitHub leggedrobotics darknet ros YOLO ROS Real Time Object Detection for ROS 直接下载zip就行 xff0c 解压到ros环
  • MapReduce实现基本SQL操作的原理

    Join的实现原理 select u name o orderid from order o join user u on o uid 61 u uid 在map阶段的输出中给每个value一个tag xff0c 用于区分数据来源 xff0
  • raw、qcow2、vmdk等虚拟机的镜像格式

    云计算用一个朋友的话来说 做云计算最苦逼的就是得时时刻刻为一些可能一辈子都碰不到的事做好准备 更苦逼的就是刚以为一个问题不会遇到 xff0c 立刻就发生了 这个还真的没有办法 xff0c 谁让哥我是搞云计算的呢 xff0c 简单一个虚拟化就
  • 树莓派3b安装win10的桌面版操作系统

    https www vediotalk com p 61 1999 目录 显示 国内播放节点 视频介绍 树莓派3b可以安装win10的桌面版操作系统 xff0c 大家也想体验的下 xff0c 不妨可以安装试试 xff0c 当然这并不能代替我

随机推荐

  • 无人机学习笔记之遥控篇

    遥控器 以LiteRadio 2c SE为例 1 遥控器按键 2 相关参数 3 遥控器工作原理 遥控器想要达到与无人机通信的功能需要有两部分配合完成 即 xff1a 发射器与接收机 遥控器上的控制杆转为无线电波发送给接收机 xff0c 而接
  • 二分类算法

    数据来源 xff1a 选自UCI机器学习库中的 银行营销数据集 Bank Marketing Data Set 算法完成目标 xff1a 这些数据与葡萄牙银行机构的营销活动相关 这些营销活动以电话为基础 xff0c 一般 xff0c 银行的
  • 防抖,节流 js

    概念 xff1a 函数防抖 debounce xff1a 触发高频事件后n秒内函数只会执行一次 xff0c 如果n秒内高频事件再次被触发 xff0c 则重新计算时间 函数节流 throttle xff1a 高频事件触发 xff0c 但在n秒
  • 如何远程访问Docker容器中的图形界面,如:kettle

    kettle是一个免费开源的 可视化的 功能强大的ETL工具 一般为了部署方便 xff0c 通常都部署在docker容器中 xff0c 那么如何远程访问kettle的图形界面呢 xff1f 我们通常有两种方式 xff1a 1 xff09 客
  • 电子罗盘的工作原理及校准

    ST集成传感器方案实现电子罗盘功能 电子 罗盘是一种重要的导航工具 xff0c 能实时提供移动物体的航向和姿态 随着半导体工艺的进步和手机 操作系统的发展 xff0c 集成了越来越多传感器 的智能手机 变得功能强大 xff0c 很多手机上都
  • OV2SLAM vs ORBSLAM2

    框图 各个模块算法 OV2SLAMORBSLAM2对比特征点提取与匹配Fast 43 LK光流Fast 43 ORB 描述子LK光流速度快输出的实时posePnPMotion only BAMotion only BA精度高一点初始化 单目
  • 论文学习--Learning High-Speed Flight in the Wild

    文章目录 Git子文链接代码运行编译环境编译步骤 可选 1 下载源码 2 先安装Open3D 3 修改Open3D的相关路径 4 开始编译 5 报错2 6 报错3 7 运行中报错 8 配置学习环境 9 下载flighemare渲染环境 运行
  • 仿真环境中生成专家轨迹

    仿真环境中生成专家轨迹 文章目录 仿真环境中生成专家轨迹简介代码运行步骤获取输入数据Reference TrajectoryEnvironment PointcloudFull Quadrotor State 方法描述输出规划轨迹 简介 本
  • 机器学习方法简介(1)--线性回归、逻辑回归、神经网络、支持向量机

    机器学习方法就是计算机根据已有的数据 xff0c 得出某个模型 xff0c 然后利用此模型预测未来的一种方法 机器学习的一个主要目的就是把人类思考归纳经验的过程转化为计算机通过对数据的处理计算得出模型的过程 1 回归算法 回归算法包括线性回
  • 仿真数据生成工具以及现有的仿真数据集

    现有仿真数据集 TartanAir TartanAir 是一个用AirSim生成的仿真SLAM数据集 xff0c 可以用于视觉SLAM 数据集提供 xff1a 双目 RGB 图像 xff0c 深度图像 xff0c 分割 xff0c 光流 x
  • 基于深度学习的SLAM概述

    目的 本博客总结最近看的几篇关于深度学习的SLAM以及基于深度学习的稠密重建 xff0c 简要对比记录特点 对比 年份名称类型框图前端输出地图方法特点回环2022DPVOmono VOVO每一帧的pose和paches转到3D坐标系下的3D
  • Airsim中运行OpenVINS和VINS_Fusion

    Airsim中运行OpenVINS和VINS Fusion 1 简介2 参考3 步骤3 1 编译3 2 运行3 3 运行结果3 4 相机和IMU参数配置 1 简介 本文简介在Airsim中运行OpenVINS和VINS Fusion 2 参
  • Apriltag生成

    Apriltag生成 一 单个Apriltag生成 生成单个的二维码 xff0c 下面给出30cmx30cm打印大小的生成脚本 xff0c 输入路径直接用 apriltag imgs 工程的tag36h11系列的图片即可 生成结果得到587
  • 论文学习---Learned Inertial Odometry for Autonomous Drone Racing

    总结 xff1a 文章主要介绍了仅用IMU作为输入的深度学习网络来估计相对位移 xff0c 估计的结果用于EKF更新 xff0c 可以得到较为准确的EKF估计状态 摘要 惯性里程计是敏捷无人机状态估计的一个具有吸引力的方案 单纯的使用IMU
  • 白话----之UCOS 信号量和邮箱

    总体理解 xff1a 两个任务需要共同访问一个共同的资源 xff0c 来切换或跳到不同的动作执行 这就产生信号量 两个任务 需要根据不同的按键选择 xff0c 来执行不同的动作 xff0c 产生邮箱 信号量和邮箱 我通过一个例子来学习的 希
  • 数据结构--结构体

    数据结构 https img blog csdn net 20181020104828701 watermark 2 text aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3d4dWVjaGVuZw 61 61 font 5a
  • 小试牛刀爬北邮人论坛十大

    本来是为了写Alfred的work flow 不知道出了什么问题 一直都显示不了 sad 61 61 先把爬虫的代码贴这好了 好久没碰过python了 coding utf 8 author 61 39 wangxiao 39 import
  • mac安装homebrew报错 curl: (7) Failed to connect to raw.githubusercontent.com port443

    mac安装brew一直报错 xff0c 完整的报错信息如下 span class token literal property property curl span span class token operator span span c
  • C++ vector用法详解

    vector是STL的动态数组 xff0c 可以在运行中根据需要改变数组的大小 因为它以数组的形式储存 xff0c 所以它的内存空间是连续的 vector的头文件为 include lt vector gt 常用方法 xff1a span
  • 机器学习方法简介(2)--决策树、随机森林、朴素贝叶斯

    1 决策树 决策树是一种用于对实例进行分类的树形结构 Hunt算法 是一种采用局部最优策略的决策树构建算法 xff0c 它同时也是许多决策树算法的基础 xff0c 包括ID3 C4 5和CART等 Hunt算法的递归定义如下 xff1a 1