首页 > 其他分享 >关于决策树的理解

关于决策树的理解

时间:2024-10-25 08:58:55浏览次数:5  
标签:逻辑 树干 树叶 树根 List 理解 关于 规则 决策树

近期在项目中使用了规则树这一设计模式,感觉和决策链来说是有些区别的
1.决策链是链型的,走的是链,流程都要完整的走一遍
2.决策链用的一种嵌套,基于函数结尾重新调用next的函数直至结束

但是规则树不一样

规则树是基于类似二叉树的结构,有的通过有的不通过
,并且它每层都用List<Map<>>记录了下一层的内容

事实上它有三部分组成
首先是树根,一般树根的关建在于两点,其中一点,指向树根的key,记录树干的List<Map<>>

其次是树干,树干的关键点在于LIst<Map<>>,一般我们在初始化的时候先赋值树干,组装后装配到树根,
树干一般有一个字符串类型的键,与逻辑方法组成另一个List<<Map<>>来进行逻辑的过滤,一般构成这组键值对的都是集成了同一个接口
但是不同实现类型,且通过@Component("")来进行扫描装配的一种方法

然后就是树叶,树叶的关键点在于key的指向,与其说是树干连接树叶和树根,但在实际逻辑上树叶提供了自身与树干的映射.

如图:

如图所示,不同的逻辑对应不同的返回结果,对应不同的树干,也就对应了不同的下次逻辑

简单的一组结构示例:
树根:

规则树树干:

规则树树叶:

标签:逻辑,树干,树叶,树根,List,理解,关于,规则,决策树
From: https://www.cnblogs.com/fubai/p/18501455

相关文章

  • 深入浅出理解BLE AUDIO CSIS
    CSIS是CoordinateSetsIdentificationservice,翻译过来就是协调集识别服务。什么是协调集,可以理解为具有相同特征的一伙设备,最典型的就是左右两个蓝牙耳机是一个协调集,所以它们具有相同的协调集标志,但是具有相同协调集的设备要如何识别,这就是本篇需要讲解的内容,其实还是比......
  • 关于C语言指针类型的总结
    前言我个人将目前在C语言中所遇到的指针归类为8种,至于为何写第九点,是因为我个人认为第九点极容易与第五点混淆,故总结如下:1.普通指针普通指针即最常见的如:int*、char*等甚至于也可将一个数组如arr[5]的数组名arr看作是指针类型(因为指针本质上就是地址,而arr是该数......
  • 关于python代码PyInstaller介绍
    PyInstaller打包PyInstaller是一个用于将Python程序打包成独立可执行文件的工具,它使得用户无需安装Python环境即可运行你的程序。一、安装PyInstaller使用以下命令安装PyInstaller:pipinstallpyinstaller二、基本使用方法1.打包简单脚本假设我们有一个简单的......
  • 2024/10/24日 日志 --》关于Mybatis的学习笔记整理 - 环境与性质
    步入了Mybatis的学习之中,以下为其相关内容的细化笔记整理点击查看代码--MyBatis--·MyBatis是一款优秀的持久层框架,用于简化JDBC开发--·官网:https://mybatis.net.cn/ --持久层:--·负责将数据保存到数据库的那一层代码--JavaEE三层架构:表现层、业务层、持久层分......
  • RSA算法详解及相关数学原理解析
    RSA算法详解及相关数学原理解析前言‍为了记录自己学习密码学的过程,也是为了便于个人应付相关课程的考核,故写此博客。本博客总结了怎么用C++手搓一个RSA算法,以及补补欠缺的一些数学知识和可能欠缺的一些其他算法的实现。参考了其他人的相关博客,用便于我自己理解的话和方式和......
  • 关于栈实现
    package集合框架.stack;publicclassStack{//存放数据privateintarr[];privateinttop;//数组容量privateintcapacity;Stack(intsize){arr=newint[size];capacity=size;top=-1;}publicvoidpush(intva......
  • js原型链理解
    原型链原型(prototype)每个函数上面都有一个prototype属性(天生的),因为这个属性的值是个对象,也被称之为原型对象函数和构造函数的区别:构造函数和普通函数在js中都是一样的没有区别,只是大家约定俗成构造函数首字母必须大写,用来区分于普通函数(驼峰命名)作用存放一些属性......
  • 栈的理解及相关算法
    一、栈的基础概念1、栈的定义栈(Stack):是只允许在一端进行插入或删除的线性表。首先栈是一种线性表,但限定这种线性表只能在某一端进行插入和删除操作。栈顶(Top):线性表允许进行插入删除的那一端。栈底(Bottom):固定的,不允许进行插入和删除的另一端。空栈:不含任何元素的空表。栈又......
  • 线段树初步理解
    今天ZRtes爆零咯,就不在tes里写了引言:以前一直只会用线段树2,线段树也是一直当做工具使用,一切线段树的科技除了线段树分治基本都不会,因此特作此文记之线段树的lazytag与pushdown为了保证时间复杂度,线段树在做区间修改的时候引入了lazytag的概念,目的是为了节省没必要的时......
  • 【NLP自然语言处理】Attention机制原理揭秘:赋予神经网络‘聚焦’与‘理解’的神奇力量
    目录......