RapidMiner数据挖掘4 —— 决策树

0. 序章

0.1 文本说明

        所有应用程序操作的名称和编程说明都以黄色背景书写,问题以蓝色背景书写,以方便他们在文本中识别。 在整个课程中,请逐步遵循所有说明,并确保获得预期结果,然后再继续下一部分或问题。

        通过在Ubuntu中运行RapidMiner工作环境开启软件,如下所示:

        a..初始化RapidMiner应用程序类型:

SETUP RAPIDMINER9

        c.要在同一终端窗口中运行RapidMiner,请输入指令:

RapidMinerGUI

        如果要求,请接受许可证条款,但不要要求更新当前版本。  

0.2 内容简介

        这文介绍了关于决策树的相关内容。决策树是一种著名的分类算法,它通过迭代地将数据分割成子集,使用简单的条件构建决策路径。主要算法由连接的决策节点组成,这些节点生成所谓的分支,这些分支将决策树的根与任何叶子节点连接起来。叶子节点对应于被分配到定义类别中的数据集记录。本课程重点研究基于决策树的监督分类。其主要目标是理解并测试应用于特定数据集的这种监督分类方法的一些配置。

        决策树分类算法的工作原理是从一组数据开始,算法试图通过提出问题并根据数据的特征答案来分割数据,每次分割都旨在使得子集比之前更加纯净(即子集中的数据更可能属于同一个类别)。这一过程重复进行,直到满足某个停止条件,例如达到预定的深度或子集中的数据已足够纯净。最终,每个叶子节点代表一个类别,通过从根到叶子的路径,可以根据新数据的特征预测其类别。

        本篇文章的目标是通过实践来深入理解决策树分类的工作原理及其不同配置如何影响分类性能。通过应用决策树算法于特定的数据集并调整其配置,将能够观察和分析不同设置对模型性能的影响,从而获得关于如何有效使用决策树进行数据分类的洞见。

0.3 文章背景

        利用决策树算法来检验和评估在特定的二元分类问题上的性能。为了熟悉这个问题和数据集的描述,需要阅读以下的信息。所要求的是进行一项详细的个人资料分析,以确定潜在客户是否有资格获得住房贷款。个人资料的相关性根据个人条件和住房融资的区域类型(基本上是城市、半城市和农村)而有所不同。问题是,是否能够利用在线申请表提供的个人数据,自动化贷款资格审查过程。将使用一个数据集(稍后复制)进行测试,该数据集包含根据以下属性集合的贷款资格决策示例。

        目标是探索如何使用决策树模型根据客户的个人信息自动判断其是否符合住房贷款的条件。这涉及到分析客户的多个属性,如收入水平、就业状态、教育背景、家庭状况以及所求贷款的地理位置(城市、半城市或农村)等因素,来决定他们是否有资格获得贷款。通过这种方式,银行或贷款机构可以更高效、更快速地处理贷款申请,同时也能减少因主观判断而导致的错误。这种自动化处理贷款资格的方法,不仅能提高处理速度和准确性,也有助于银行更好地管理和评估贷款风险。

0.4 背景分析

Attribute name

属性名称

Description说明
Loan IDldentification number of the loan application.贷款申请的识别号码。
Gender“Male” or Female. Gender of the main applicant.男性 还是 女性。 主申请人的性别。
MarriedYes” or “No”. Indicates if the main applicant is married.是 "或 "否"。表示主申请人是否已婚。
Dependents“0”,“1”“2”, or “3+” (three or plus). Number of persons that dependeconomically on the main applicant.“0"、"1"、"2 "或 "3+"(三人或三人以上)。在经济上依赖主申请人的人数"。
EducationGraduate” or "Not Graduate” Indicates if the main applicant obtained or not a university degree.
Self Employed"Yes” or “No”. Indicates if the main applicant is self-employed or not.
Income1Amount of the main applicant monthly income.
Income2Amount of the coapplicant monthly income.
AmountEstimated loan amount (assumed to be actually multiplied by 1.000)
Term学期Necessary number of months to reimburse the loan.偿还贷款所需的月数
Credit History“1”(Yes) or “0”(No). Indicates if the main applicant has or not a positiverecord of repaying debts in the past.
Property Area“Urban”, “Rural, or “Semiurban”. Type of area where housing to be financed is located.
Status"y”(Yes) or "N”(No). Indicates if the loan application is eligible or not.

        问题1:这些属性的数据类型可能是什么?请在下表中每个属性名称的右边写出相应的类型。

        RapidMiner是一款流行的数据科学平台,它支持多种数据类型,以便于处理各种数据分析任务。在RapidMiner中,数据类型主要用于定义属性(或列)的性质,这对于数据预处理、分析和建模至关重要。以下是RapidMiner中常见的数据类型:
        Integer(整数): 用于表示没有小数部分的数值,例如年龄、人数等。

        Real(实数): 用于表示有小数部分的数值,例如体重、温度等。

        Date/Time(日期/时间):用于表示日期和时间信息。这种类型的数据可以表示为日期、时间或日期时间的组合,允许进行时间序列分析或时间相关的数据处理。

        Polynomial(多项式):类似于名义型,但是它用于表示两个以上的值,这些值没有固定的顺序。多项式数据类型适用于多类别数据,其中类别之间没有明确的等级或顺序。

        Binomial(二进制):一种特殊的名义型数据,仅包含两个类别(如是/否、真/假)。在某些情况下,二进制数据也可以表示为0和1。

Attribute namerespective types
Loan IDPolynomial
GenderBinomial
MarriedBinomial
DependentsPolynomial
EducationBinomial
Self EmployedBinomial
Income1Integer
Income2Integer
AmountInteger
TermInteger
Credit HistoryBinomial
Property AreaPolynomial
StatusBinomial

1. 开始教程

1.1 数据集的初步分析

        在操作子窗口Operators中激活Read csvDatAccess  Files > Read > Read csv。将其拖放到处理Process 工作区中。在Read csv的 Parameters子窗口中,确认以下项目已被选中:use quotes, parse numbers, first row as names, read not matching values asmissing.。点击Import Configuration Wizard... 从你的目录中读取loan_data.csv文件。点击Next,改变文件编码格式 File EncodingUTF-8,并在列分隔符Column Separator下拉菜单中选择逗号选项Comma “,” 。检查数据集。

        在in the Import Data window.中,验证属性的 types and roles 类型和角色。根据列出的值,将属性定义为二项式或多项式binomial or polynominal,每当适用时。确保Dependents属性是多项式polynominal的(这避免了如果属性类型设置为整数,则将值3+视为缺失integer)。同时验证最后一个属性“Status”是带有角色标签的二项式binomial with label as role。然后点击Finish按钮。如果还没有完成,将 Read Csv操作符的输出 out 端口连接到处理 Process子窗口右侧的结果res 端口。

        问题2:运行过程并检查结果Results视图中的ExampleSet (Read CSV)标签。类标签是如何与定义每条记录的属性区分开的?数据集由多少条记录组成,在多少条记录中存在缺失数据?

一共614条记录,存在丢失数据的134条,存在未丢失数据的480条,标签全部存在

        问题3:是否有任何缺失的贷款决定(即status状态值)?

没有缺失的标签记录

        问题4:在所有数据缺失的记录中,哪些属性是完整的,哪些属性是不完整的?

完整的:status,Loan_ID,Education,Income1,Income2,Propertry_Area
不完整的:Gender,Married,Dependets,Self_Employed,Amount,Term,Credit_History

        问题5: 数据集中每个类别有多少条记录,它们各自所占的百分比是多少?

Y:422
N:192

        进行探索性数据分析以更好地理解数据集的一些初步观察。        

        问题6: 描述名义属性的主要趋势,并解释显示在两个属性名称上的警告标志。

Gender
Using this data column may potentially lead to biased models or decisions. 
Please be careful and check if using this data is problematic.
This column was flagged since its name contains a suspicious term: gender
Do not rely on software alone to detect and mitigate bias. Learn more 
at https://info.rapidminer.com/bias.
性别
使用此数据列可能会导致模型或决策出现偏差。
请注意并检查使用该数据是否有问题。
此列已被标记,因为其名称包含可疑术语:性别
不要仅仅依靠软件来检测和减少偏差。了解更多 
请访问 https://info.rapidminer.com/bias。


        问题7: 非常高的第二收入是否会提高获得贷款批准的可能性?

无明显对应关系

        问题8: 教育属性Education、贷款金额Amount和收入1Income1之间是否存在关系?

毕业且收入高的就有几率获得更高的贷款

        问题9: 是否有任何荒谬或矛盾的记录?如果是这样,它们的模式是什么?

暂时未发现

        问题10: 使用Plot type平行坐标图类型 Parallel Coordinates 提出更多描述数据集的观察。

1.2 决策树Decision Tree

        为了使用决策树设置一个分类原型,请按下图所示配置过程。选择必要的操作符如下:

        在 Operators子窗口中查找 Split,然后选择Split Data这个operator:Blending → Examples → Sampling → Split Data

        查找 Decision 并选择 决策树Decision Tree 运算符:Modeling → Predictive →Trees Decision Tree
        查找Apply并选择Apply Model操作符Scoring → Confidences →Apply Model
        查找 Performance ,选择 Performance (Binominal Classification) 操作符:Validation → Performance → Predictive → % Performance (Binominal Classification)

        在Split Data操作符的Parameters参数子窗口中,将抽样类型sampling type保留为自动automatic,然后点击“分区”partitions label标签右侧的“编辑枚举Edit Enumeration”按钮。在“编辑参数列表:分区Edit Parameter List: partitions”窗口的ratio标签下添加两行,值分别为0.7和0.3(分别在不同行中,并按此顺序)。

问题11: 分割数据操作符的使用目的是什么,0.7和0.3的值分别是什么意思?

分割数据操作符通常用于将数据集分割成训练集和测试集,
这对于机器学习和数据科学项目中的模型训练和评估是非常重要的。
在这里,0.7和0.3的值分别表示数据集将被分割成70%的训练数据
和30%的测试数据。这样的分割比例有助于确保模型在足够大的数据
集上训练,同时留有足够的数据来测试模型的性能,以避免过拟合或
欠拟合。

问题12: 两个分割数据操作符输出端口的内容是什么?

分割数据操作符的两个输出端口通常包含以下内容:一个端口输出训练数据集,
另一个端口输出测试数据集。具体来说,按照0.7和0.3的分割比例,如果原
始数据集包含全部的数据,那么第一个输出端口将包含70%的数据作为训练
集,第二个输出端口将包含剩余的30%数据作为测试集。

问题13: criterion参数的五个可能值的目的是什么?

        Decision Tree(决策树)操作符的criterion参数指的是在
构造决策树时用于分割节点的准则。这些选项通常包括度量数据分割质量的
不同方法,如信息增益、增益比、基尼不纯度等。每个选项代表一种不同的
策略,用于评估分割的好坏,进而决定在构建树的过程中如何选择分割点。
不同的criterion可能会影响模型的性能和复杂度,因此选择最适合特定
数据集和问题的准则是很重要的。

问题14:描述Apply Model 操作符的两个输入inputs

问题15:Apply Model 操作符的两个输出outputs内容是什么?

问题16 :保持Performance 操作符的默认参数parameters,此操作符的目的是什么?

        按照以下方式配置Decision Tree操作符:准则使用增益比 criterion > gain ratio;maximal depth > 20; confidence > 0.25;minimal gain > 0.1;保留剪枝和预剪枝选项apply pruning apply prepruning 被勾选;最小叶节点大小大于2minimal leaf size > 2。运行配置的过程原型。在Results 结果视图中查看显示的Tree (Decision Tree) 标签页。将鼠标悬停在叶子上几秒钟将显示每个元素的补充信息。

问题17:构成结果决策树的节点nodes和叶子 leafs有多少个?

7个节点,9个叶

        问题18:在树中可以识别出多少个“纯”叶子pure leaves (即只包含一个类的记录)?这些“纯”叶子识别出了哪个类?

5个纯净叶

        问题19:在这个决策过程中最重要的属性是什么,为什么?

Income1,作为非叶节点出现次数最多

        问题20:决策树是否有未考虑的属性?如果有,是哪些?

除了Income1,Credit_Histor,Amount,Married其他都没有出现在决策树中

        问题21:解释 Tree (Decision Tree) 标签页的描述面板显示的内容。

描述了树的执行逻辑

Tree
Credit_History = 0
|   Income1 > 27499: Y {Y=1, N=1}
|   Income1 ≤ 27499: N {Y=3, N=60}
Credit_History = 1: Y {Y=267, N=66}
Credit_History = ?
|   Amount > 127.500
|   |   Married = No: N {Y=0, N=2}
|   |   Married = Yes
|   |   |   Income1 > 6081.500: Y {Y=3, N=0}
|   |   |   Income1 ≤ 6081.500
|   |   |   |   Income1 > 3663
|   |   |   |   |   Income1 > 5132: Y {Y=2, N=2}
|   |   |   |   |   Income1 ≤ 5132: N {Y=0, N=2}
|   |   |   |   Income1 ≤ 3663: Y {Y=2, N=0}
|   Amount ≤ 127.500: Y {Y=17, N=1}

        问题22: 在什么条件下获得树的最短决策路径,结果是什么?

在Credit_Histor为1的时候

        问题23:你会信任这个决策吗?为什么?

不信任,因为未处理缺失值,而且参考的因素过于少

        查看结果 Results视图中的 % Performance 标签页的 % Performance Vector (Performance) tab 显示的准确率值 accuracy 。

        问题24:准确率accuracy值表达了什么?

78.38%

(121+24)/(121+34+6+24)=78.8%


 

        问题25:在所有相关记录中,哪个类别的正确检索记录的相对数量(召回率) (recall) 较低?

        召回率(Recall):在所有相关记录中,正确检索到的记录的比例。用公式表示为:召回率 = (正确检索到的记录数)/(所有相关记录数)。如果某个类别的召回率较低,这意味着系统在检索这个类别的相关信息时遗漏了许多相关记录。这可能是因为模型对该类别的识别能力不足,或者该类别的记录较难以区分。

        对于哪个类别的召回率低,这取决于具体的数据集和模型性能。如果一个类别的相关记录经常被忽略,那么该类别的召回率就低。这意味着对于这个类别,模型没有很好地捕捉到所有相关的记录,可能导致信息的遗漏。

41.38%
24/(34+24)

        问题26:两个类别的所有检索记录中正确检索记录的相对数量(精确度) (precision)值是否有显著差异?这意味着什么?

        精确率(Precision):在所有检索到的记录中,正确检索的记录的比例。用公式表示为:精确率 = (正确检索到的记录数)/(所有检索到的记录数)。如果两个类别的精确率值存在显著差异,这表明模型在识别这两个类别的准确性上存在差距。对于精确率较高的类别,意味着检索到的记录中,相关记录的比例较高,模型对这个类别的识别较为准确。相反,精确率较低的类别意味着模型在检索时产生了较多的不相关记录,准确性较低。

        这个差异说明了模型对不同类别的识别能力不均衡。在实践中,可能需要通过模型调整、数据平衡或其他技术手段来改善特定类别的精确率,从而提高模型整体的性能。

        综上所述,召回率低意味着许多相关记录被遗漏,影响了信息的完整性。精确率的显著差异意味着模型在不同类别的识别准确性上不均衡,可能需要针对性的改进措施。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/686367.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Hadoop3:MapReduce源码解读之Map阶段的CombineFileInputFormat切片机制(4)

Job那块的断点代码截图省略,直接进入切片逻辑 参考:Hadoop3:MapReduce源码解读之Map阶段的Job任务提交流程(1) 6、CombineFileInputFormat原理解析 类的继承关系 与TextInputFormat切片机制的区别 框架默认的TextI…

api接口模块封装

1:前端封装接口 前端请求的统一封装也是为了方便前端项目的请求维护起来更加方便,将页面中的请求封装到js文件中,不同的页面需要用到相同的请求可以直接进行复用。 第一步创建一个api文件夹和js文件 第二步:在文件中导入axios&am…

精妙无比的App UI 风格

精妙无比的App UI 风格

springboot vue 开源 会员收银系统 (6) 收银台的搭建

前言 完整版演示 前面我们对会员系统 分类和商品的开发 完成了收银所需的基础信息 下面我们开始完成收银台的开发 简单画了一个收银的流程图大家参考下 从这张图我们可以分析一下几点 可以选择会员或散客收银选择会员使用相应的会员价结算使用会员卡则在价格基础根据卡折扣…

Day22 客户端添加IDialogService 弹窗服务

​ 本章节实现了首页点击待办事项或备忘录的时候,弹出一个对话服务窗口 当用户点击首页的“添加备忘录”或“待办事项”按钮时,系统应弹出一个对话框,以便用户执行相关的内容添加操作。下面就开始实现这个弹窗服务。 一.在Views文件夹中,再创建一个Dialog 文件夹,用于放置…

【Selenium+java环境配置】(超详细教程常见问题解决)

Seleniumjava环境配置 windows电脑环境搭建-chrome浏览器1. 下载chrome浏览器2. 查看chrome浏览器版本3. 下载chrome浏览器驱动4.配置系统环境变量PATH 验证环境是否搭建成功1. 创建java项目,添加pom文件中添加依赖2. 编写代码运行 常见问题&解决办法1.访问失败…

防病毒克星——白名单可信系统

白名单作为一种网络安全措施,其核心概念在于限制用户只能访问网络所有者定义的受信任内容。这种机制在保护系统免受恶意软件、病毒等攻击方面发挥着重要作用。然而,关于白名单是否可以防病毒的问题,实际上涉及了多个方面的考虑。 首先&#x…

【C++题解】1074 - 小青蛙回来了

问题:1074 - 小青蛙回来了 类型:需要找规律的循环 题目描述: 关于小青蛙爬井的故事,你应该早就听过了:井深10 尺,小青蛙从井底向上爬,每个白天向上爬 3 尺,每个晚上又滑下来 2 尺&…

基于Sentry+OpenTelemetry实现微服务前后端全链路监控

文章目录 前⾔背景技术⽅案Sentry私有化部署部署环境准备 项目集成前端后端agent探针集成sentry sdk集成增强探针为⽇志注⼊TraceID异常处理SDK⾃定义开发sentry sdk⾃定义开发⾃定义SentryEvent注⼊otel追踪信息⾃定义全局异常上报issue事件新增动态过滤功能 Java Agent Exten…

c++ 里函数选择的优先级:普通函数、模板函数、万能引用,编译器选择哪个执行呢?

看大师写的代码时,除了在类里定义了 copy 构造函数,移动构造函数,还定义了对形参采取万能引用的构造函数,因此有个疑问,这时候的构造函数优先级是什么样的呢?简化逻辑测试一下,如下图&#xff0…

MySQL主从同步优化指南:架构、瓶颈与解决方案

前言 ​ 在现代数据库架构中,MySQL 主从同步是实现高可用性和负载均衡的关键技术。本文将深入探讨主从同步的架构、延迟原因以及优化策略,并提供专业的监控建议。 MySQL 主从同步架构 ​ 主从复制流程: 从库生成两个线程,一个…

语言大模型qwen1.5全流程解析:微调,量化与推理

在前一篇文章中,主要使用llama-factory封装的推理模块对速度进行了测试,vllm速度快些,但仍没有传说中的快3-5倍,需要单独测试。这里使用qwen1.5-1.8B作为测试模型。 qwen1.5是qwen2的先行版,24年2月发布,与…

俯视角2D游戏_02 子弹对象池

[!NOTE] 对象池 应用场合:这种做法常用于子弹这种会大量产生的对象 ,目的是减少性能的损耗 基本思路:产生的对象是有限的,并且加入到"对象池"的数组中不进行销毁,当需要使用时,再从对象池中提取对象循环利用&#xff0c…

玩物科技:引领物联网时代的创新先锋

在深圳这座充满活力和创新精神的城市,有一家年轻而充满潜力的公司正在悄然改变我们的日常生活。深圳市玩物科技有限公司自2017年成立以来,凭借其卓越的技术和创新理念,逐渐成为物联网时代的先锋力量。 玩物科技的愿景与使命 玩物科技的核心…

【Linux】进程(7):地址空间

大家好,我是苏貝,本篇博客带大家了解Linux进程(7):地址空间,如果你觉得我写的还不错的话,可以给我一个赞👍吗,感谢❤️ 目录 (A) 直接看代码&…

MATLAB基础应用精讲-【数模应用】二元Logit分析(最终篇)(附python、MATLAB和R语言代码实现)

目录 算法原理 SPSSAU 1、二元logistic分析思路说明 2、如何使用SPSSAU进行二元logistic操作 3、二元logistic相关问题 算法流程 一、分析前准备 1、确定分析项 2.多重共线性判断 3.数据预处理 二、回归基本情况分析 三、模型拟合评价 1、似然比检验 2、拟合优…

Linux - 深入理解/proc虚拟文件系统:从基础到高级

文章目录 Linux /proc虚拟文件系统/proc/self使用 /proc/self 的优势/proc/self 的使用案例案例1:获取当前进程的状态信息案例2:获取当前进程的命令行参数案例3:获取当前进程的内存映射案例4:获取当前进程的文件描述符 /proc中进程…

【GIS教程】土地利用转移矩阵

随着科技社会的不断进步,人类活动对地理环境的影响与塑造日益明显,土地不断的侵蚀与改变也导致一系列的环境问题日益突出。土地利用/覆盖(LUCC)作为全球环境变化研究的重点问题为越来越多的国际研究机构所重视,研究它的…

酷开系统丨酷开科技智慧AI 让家庭智能化近在眼前

科技改变生活,从3G-4G-5G,再到即将突破的6G;从传统有人驾驶的车辆到现在的无人驾驶车辆;从九十年代的大哥大“砖头”便携电话,到蓝绿屏按键手机、触摸屏手机,再到智能手机;从传统数字密码到现在…

信息系统项目管理师0146:输入(9项目范围管理—9.3规划范围管理—9.3.1输入)

点击查看专栏目录 文章目录 9.3 规划范围管理9.3.1 输入9.3 规划范围管理 规划范围管理是为了记录如何定义、确认和控制项目范围及产品范围,而创建范围管理计划的过程。本过程的主要作用是在整个项目期间对如何管理范围提供指南和方向。本过程仅开展一次或仅在项目的预定义点开…