【软件工程】决策表和决策树

article/2025/8/24 18:50:25

1.1决策表

1.1.1决策表的定义

决策表又称判断表,是一种呈表格状的图形工具,适用于描述处理判断条件较多,各条件又相互组合、有多种决策方案的情况。精确而简洁描述复杂逻辑的方式,将多个条件与这些条件满足后要执行动作相对应。但不同于传统程序语言中的控制语句,决策表能将多个独立的条件和多个动作直接的联系清晰的表示出来。用表格的方式描述决策问题一种方法,这种表格也被称为决策矩阵。所谓决策表是指一个以行、列形式来描述和表示决策规则和知识信息的表,如果决策问题的后果是用损失的费用表示,这个表也被称为损失矩阵。

1.1.2决策表的结构

决策表一般分为4个部分。 每个条件对应一个变量、关系或预测,“候选条件”就是它们所有可能的值;动作指要执行的过程或操作;动作入口指根据该入口所对应的候选条件集,是否或按怎样的顺序执行动作。 许多决策表在候选条件中使用“不关心”符号来化简决策表,尤其是当某一条件对应要执行的动作影响很小时。有时,所有的条件在开始时都被认为是重要的,但最后却发现没有一个条件对执行的动作有影响,都是无关的条件。

在这4个部分的基础上,决策表根据候选条件和动作入口的表现方法的变化而变化。有些决策表使用true/false作为候选条件值(类似与if-then-else),有些使用数字(类似于switch-case),有些甚至使用模糊值或概率值。对应动作入口,可以简单的表示为动作是否执行(检查动作执行),或更高级些,罗列出要执行的动作(为执行的动作排序)。

1.1.3决策表的优点

决策表能罗列出所有的可能情况,并清晰的指出相应的处理方式,用户不需要考虑其中的逻辑关系就能一眼看出其中什么样的动作对应什么样的情况,这比程序语言中层层嵌套的逻辑语句要强多了。而所有可能情况的平面罗列,也能避免在程序语言编写中,因为逻辑上的层层嵌套而产生遗漏,尤其在if-then-else结构中else部分是可选的情况下。

因为逻辑控制在编程中的重要地位,决策表成为设计逻辑控制时十分重要的一个工具。

1.1.4决策表的例子

133114b731350baa34b183beb17592ee2c5a6dfb.png@722w_258h_progressive.webp

 

2.1决策树

2.1.1决策树的定义

决策树(Decision Tree)是在已知各种情况发生概率的基础上,通过构成决策树来求取净现值的期望值大于等于零的概率,评价项目风险,判断其可行性的决策分析方法,是直观运用概率分析的一种图解法。由于这种决策分支画成图形很像一棵树的枝干,故称决策树。在机器学习中,决策树是一个预测模型,他代表的是对象属性与对象值之间的一种映射关系。Entropy = 系统的凌乱程度,使用算法ID3, C4.5和C5.0生成树算法使用熵。这一度量是基于信息学理论中熵的概念。

决策树是一种树形结构,其中每个内部节点表示一个属性上的测试,每个分支代表一个测试输出,每个叶节点代表一种类别。

分类树(决策树)是一种十分常用的分类方法。它是一种监督学习,所谓监督学习就是给定一堆样本,每个样本都有一组属性和一个类别,这些类别是事先确定的,那么通过学习得到一个分类器,这个分类器能够对新出现的对象给出正确的分类。这样的机器学习就被称之为监督学习。

2.1.2决策树的结构

□——决策点,是对几种可能方案的选择,即最后选择的最佳方案。如果决策属于多级决策,则决策树的中间可以有多个决策点,以决策树根部的决策点为最终决策方案。

○——状态节点,代表备选方案的经济效果(期望值),通过各状态节点的经济效果的对比,按照一定的决策标准就可以选出最佳方案。由状态节点引出的分支称为概率枝,概率枝的数目表示可能出现的自然状态数目每个分枝上要注明该状态出现的概率。

△——结果节点,将每个方案在各种自然状态下取得的损益值标注于结果节点的右端。

2.1.3决策树的优点

决策树易于理解和实现,人们在在学习过程中不需要使用者了解很多的背景知识,这同时是它的能够直接体现数据的特点,只要通过解释后都有能力去理解决策树所表达的意义。

对于决策树,数据的准备往往是简单或者是不必要的,而且能够同时处理数据型和常规型属性,在相对短的时间内能够对大型数据源做出可行且效果良好的结果。

易于通过静态测试来对模型进行评测,可以测定模型可信度;如果给定一个观察的模型,那么根据所产生的决策树很容易推出相应的逻辑表达式。

决策树(decision tree)也是用来表达加工逻辑的一种工具,有时侯它比决策表更直观。

2.1.4决策树的缺点

对连续性的字段比较难预测。

对有时间顺序的数据,需要很多预处理的工作。

当类别太多时,错误可能就会增加的比较快。

一般的算法分类的时候,只是根据一个字段来分类。

2.1.5决策树的例子

检查订货单的决策树 

 

3aa8ab93ddfd55cf97a28e096c96835ce8532e9f.png@722w_220h_progressive.webp

 


http://chatgpt.dhexx.cn/article/GeigSDVD.shtml

相关文章

规则引擎 Drools--决策表(Decision Table)使用简介

参考:规则引擎 Drools:决策表_jueyinga的博客-CSDN博客_drools 决策表 一、规则引擎 Drools:决策表 Drools除了支持drl形式的文件外还支持xls格式的文件(即Excel文件)。这种xls格式的文件通常称为决策表(d…

如何用决策表设计测试用例?

实际测试中,如果输入条件较多,再加上各种输人与输出之间相互的作用关系,画出的因果图会比较复杂,容易使人混乱。为了避免这种情况,人们往往使用决策表法代替因果图法。 决策表也称为判定表,其实质就是一严…

浅谈决策树与决策表

前言 在程序设计过程中,经常会出现多层逻辑控制的嵌套,而这样的嵌套关系往往会导致我们不能直观的看出程序的逻辑关系,这会导致在测试过程中比较容易出现遗漏。因此我们需要引入决策表、决策树,其中决策表就是设计逻辑控制时十分…

决策表法

决策表法介绍: >>在因果图法设计测试用例的步骤中“因果图转换成判定表”中已使用了判定表。判定表又称决策表,为决策表发的核心,是分析和表达 多逻辑条件下执行不同操作情况的有效工具。因此,决策表法是一种能够将复杂逻辑…

6.决策表

决策表的使用方式与使用drl规则文件基本一致&#xff0c;好处是可以把一些相关的规则以表格方式展示&#xff0c;便于阅读及维护 1.maven依赖 <!-- 决策表 --> <dependency><groupId>org.drools</groupId><artifactId>drools-decisiontables&l…

请根据以下需求使用决策表设计测试用例

任务3&#xff1a;请根据以下需求使用决策表设计测试用例 信用卡额度发放&#xff1a; 年收入小于2万&#xff0c;不发放信用卡&#xff1b; 2万<年收入<5万&#xff0c;无稳定工作&#xff0c;额度1万&#xff0c;有稳定工作额度3万&#xff1b; 5万<年收入<1…

决策表法用例设计

决策表法 在一些数据处理问题中,某些操作是否实施依赖于多个逻辑条件的取值。 也即在这些逻辑条件取值的组合所构成的多种情况下,分别执行不同的操作。 处理这类问题的一个非常有力的分析和表达工具是决策表,它可以很清楚地表达各种条件之间的复杂关系。 早在程序设计发…

决策表与决策树

决策表的定义&#xff1a; 决策表又称判断表&#xff0c;是一种呈表格状的图形工具&#xff0c;适用于描述处理判断条件较多&#xff0c;各条件又相互组合、有多种决策方案的情况。精确而简洁描述复杂逻辑的方式&#xff0c;将多个条件与这些条件满足后要执行动作相对应。但不…

决策表

决策表&#xff0c;也叫判定表。在所有的功能性测试方法中&#xff0c;基于决策表的测试方法被认为是最严格的&#xff0c;因为决策表具有逻辑严格性。 决策表是分析和表达多逻辑条件下执行不同操作的情况的工具。在程序设计发展的初期&#xff0c;决策表就已被用作编写程序的…

决策表法的应用

决策表的组成 决策表通常由以下4部分组成&#xff1a; 条件桩—列出问题的所有条件 条件项—针对条件桩给出的条件列出所有可能的取值 动作桩—列出问题规定的可能采取的操作 动作项—指出在条件项的各组取值情况下应采取的动作 条件桩条件项 …

什么是“决策表”?什么是“决策树”?

决策表&#xff1a; 决策表又称判断表&#xff0c;是一种呈表格状的图形工具&#xff0c;适用于描述处理判断条件较多&#xff0c;各条件又相互组合、有多种决策方案的情况。 在所有的功能性测试方法中&#xff0c;基于决策表的测试方法被认为是最严格的&#xff0c;因为决策…

功能测试技术——决策表法

一、决策表的概念 在一些数据处理问题当中&#xff0c;某些操作的实施依赖于多个逻辑条件的组合&#xff0c;即&#xff1a;针对不同逻辑条件的组合值&#xff0c;分别执行不同的操作。决策表就是分析和表达多逻辑条件下执行不同操作情况的工具。 二、决策表的组成 决策表通…

决策表(决策树)

1.什么是决策树 决策树是一种基本的分类与回归方法&#xff0c;在分类问题中&#xff0c;表示基于特征对实例进行分类的过程。它可以认为是if-then规则的集合&#xff0c;也可以认为是定义在特征空间与类空间上的条件概率分布&#xff0c;其主要优点是模型具有可读性&#xff0…

决策表是什么?怎么使用决策表?

实际测试中&#xff0c;如果输入条件较多&#xff0c;再加上各种输人与输出之间相互的作用关系&#xff0c;画出的因果图会比较复杂&#xff0c;容易使人混乱。为了避免这种情况&#xff0c;人们往往使用决策表法代替因果图法。 决策表也称为判定表&#xff0c;其实质就是一严…

二叉搜索树详解

写在前面 本文主要分为三个部分。 第一部分介绍了二叉搜索树的基本性质。 第二部分全面详细地讲述了二叉搜索树的各种基本操作。包括WALK/遍历、SEARCH/查找、MINIMUM/最小关键字、MAXIMUM/最大关键字、SUCCESSOR/后继、PREDECESSOR/前驱、INSERT/插入、DELETE/删除等。主要参考…

完全二叉搜索树

完全二叉搜索树是两个概念的包含&#xff0c;即完全二叉树二叉搜索树。二叉搜索树是一棵二叉树&#xff0c;以根结点为中心&#xff0c;根结点左子树的所有结点权值均小于根结点的权值&#xff0c;根结点右子树的所有结点权值均大于根结点的权值。 而完全二叉树指从根结点到倒数…

数组模拟二叉搜索树(二叉排序树)

文章目录 1. 二叉搜索树的定义2. 二叉搜索树经典模板2.1 插入操作&#xff08;建树操作&#xff09;2.2 删除操作2.3 查询二叉搜索树中值为 w 的前驱/后继数值 3. 经典例题 1. 二叉搜索树的定义 二叉搜索树 (BST) 递归定义为具有以下属性的二叉树&#xff1a; 若它的左子树不…

是否二叉搜索树

6-21 是否二叉搜索树 &#xff08;25 分&#xff09; 本题要求实现函数&#xff0c;判断给定二叉树是否二叉搜索树。 函数接口定义&#xff1a; bool IsBST ( BinTree T );其中BinTree结构定义如下&#xff1a; typedef struct TNode *Position; typedef Position BinTree;…

数据结构-二叉搜索树

目录 二叉搜索树的概念及结构 概念 结构 二叉搜索树的基本操作 默认成员函数 默认构造函数与拷贝构造函数 赋值重载 析构函数 二叉搜索树的插入 非递归 递归 二叉搜索树的遍历 中序遍历---升序&#xff08;左根右&#xff09; 中序遍历---降序&#xff08;右根左…

二叉搜索树的应用

文章目录 1. 二叉搜索树的应用2. 二叉搜索树的KV模型3. 关于const K导致无法erase4. 关于while (cin >> str)5. 面试oj题5.1根据二叉树创建字符串5.2二叉树的层序遍历5.3二叉树的最近公共祖先5.4 二叉搜索树与双向链表5.5从前序与中序遍历序列构造二叉树5.6二叉树的前序遍…