【Python机器学习】决策树与随机森林的讲解及决策树在决策决策问题中实战(图文解释 附源码)

news2025/3/12 13:33:52

需要源码请点赞关注收藏后评论区留言私信~~~

在生活中人们经常应用决策树的思想来做决定

 分类的建模过程与上面做决定的过程相反,事先不知道人们的决策思路,需要通过人们已经做出的大量决定来“揣摩”出其决策思路,也就是通过大量数据来归纳道理。

当影响决策的因素较少时,人们可以直观地从训练样本中推测出相亲决策思路,从而了解此人的想法。

当样本和特征数量较多时,且训练样本可能出现冲突,人就难以胜任建立模型的任务。此时,一般要按一定算法由计算机来自动完成归纳,从而建立起可用来预测的模型,并用该模型来预测测试样本,从而筛选相亲对象。

决策树基本思想

决策树模型是一种对测试样本进行分类的树形结构,该结构由结点(node)和有向边(directed edge)组成

内部节点(internal node)表示对样本的一个特征进行测试

叶节点(leaf node)表示样本的一个分类

二叉树:只对一个特征的1个具体值进行测试,只有正(大于等于)或负(小于)2个输出

多叉树:对一个特征的多个具体值进行测试,将产生多个输出

使用决策树进行决策的过程是从根节点开始,依次测试样本相应的特征,并按照其值选择输出分支,直到到达叶子节点,然后将叶子节点存放的类别作为决策结果

决策树建立与应用

 找分裂点是算法的关键,习惯上称为样本集分裂,依其解决方法可将决策树算法分为ID3、C4.5、CART等算法。 依据的指标分为信息增益(Information Gain)、增益率(gain ratio)和基尼指数(Gini Index)等,它们都是以信息论为理论基础,它们的目标都是建立层次尽可能少的决策树。

决策树模型还可以用于回归问题。树模型解决回归问题的基本思想是将样本空间切分为多个子空间,在每个子空间中单独建立回归模型,因此,基于树的回归模型属于局部回归模型。与局部加权线性回归模型和K近邻法不同的是,基于树的回归模型事先会生成固定的模型,不需要在每次预测时都计算每个训练样本的权值,因此效率相对较高。

sklearn中的树回归算法在tree模块中的DecisionTreeRegressor类中实现。

在相亲决策中应用如下

 

 可以看出明显收入在相亲中还是很重要的 还是要多赚钱...

部分代码如下

from sklearn import tree
clf = tree.DecisionTreeClassifier() # 实例化
clf = clf.fit(blind_date_X, blind_date_y) # 建树
tree.plot_tree(clf) # 画出树结构
print(clf.feature_importances_) # 给出特征的重要度

 随机森林

随机森林算法的基本思想是从样本集中有放回地重复随机抽样生成新的样本集合,然后无放回地随机选择若干特征生成一颗决策树,若干颗决策树组成随机森林,在预测分类时,将测试样本交由每个决策树判断,并根据每颗树的结果投票决定最终分类。

随机森林算法具有准确率高、能够处理高维数据和大数据集、能够评估各特征的重要性等优势,在工程实践和各类机器学习竞赛中得到了广泛的应用。

随机森林的方法代码如下

class sklearn.ensemble.RandomForestClassifier(n_estimators=’warn’, criterion=’gini’, max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features=’auto’, max_leaf_nodes=None, min_impurity_decrease=0.0, min_impurity_split=None, bootstrap=True, oob_score=False, n_jobs=None, random_state=None, verbose=0, warm_start=False, class_weight=None)
 
apply(self, X)
decision_path(self, X)
fit(self, X, y[, sample_weight])
get_params(self[, deep])
predict(self, X)
predict_log_proba(self, X)
predict_proba(self, X)
score(self, X, y[, sample_weight])
set_params(self, \*\*params)

创作不易 觉得有帮助请点赞关注收藏~~~

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

嵌入式分享合集124

一、19个常用的5V转3.3V技巧 01 使用LDO稳压器 标准三端线性稳压器的压差通常是 2.0-3.0V。要把 5V 可靠地转换为 3.3V,就不能使用它们。压差为几百个毫伏的低压降 (Low Dropout, LDO)稳压器,是此类应用的理想选择。图…

常见的CSS布局方法

常见的CSS布局方法 「1. 单栏布局」 常见的单列布局有两种: header,content 和 footer 等宽的单列布局header 与 footer 等宽,content 略窄的单列布局header,content 和 footer 等宽的单列布局 ​ 先通过对 header,content,footer 统一设置 width:1000px;或者 max-width:1…

DHCP报文

一. 介绍 DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个局域网的网络协议,使用UDP协议工作,统一使用两个IANA分配的端口:67(服务器端),68&#xff…

Django学习Day5

由于前两天核酸阳的,一直发烧,故没有学习,csdn也没有进行更新。今天身体基本恢复,继续Django的学习旅程。也希望各位读者重视个人的身体健康,做好自己健康的第一负责人。 1.关于针对模型类的数据库修改方法补充 在mo…

二苯基环辛炔-氨基;DBCO-NH2科研实验用试剂DBCO-Amine;CAS:1255942-06-3

英文名称:DBCO-Amine DBCO-NH2 中文名称:二苯基环辛炔-氨基 CAS:1255942-06-3 分子式:C18H16N2 分子量:276.3 外观:固体粉末 溶剂:溶于 DMSO, DMF, DCM, THF, Chloroform 储存条件&…

什么是容器安全性,您如何提升自己的安全性?

容器无疑已成为部署应用程序的流行方式。这很棒,因为与部署到虚拟机相比,它们具有大量优势。其中一些优点包括便携、不可变和轻量级。您可以控制运行服务的容器内部的内容,这可以产生清晰、可审计的跟踪。 对于安全专业人员来说,…

模型复杂度与硬件性能的衡量

1. 模型复杂度的衡量 参数数量(Params):指模型含有多少参数,直接决定模型的大小,也影响推断时对内存的占用量 单位通常为 M,通常参数用 float32 表示,所以模型大小是参数数量的 4 倍左右参数数…

数据结构C语言版 —— 树和二叉树的概念

树和二叉树 一、树 1. 树的概念 树(Tree)是n(n>0)n(n>0)n(n>0)个节点的有限集,在任意一颗非空树中: (1) 有且仅有一个特定的称为根(Root)的节点,根节点是没有前驱节点的。 (2)当 n>1n > 1n>1时…

_11LeetCode代码随想录算法训练营第十一天-C++队列的应用

_11LeetCode代码随想录算法训练营第十一天-C队列的应用 239.滑动窗口最大值347.前K个高频元素 239.滑动窗口最大值 整体思路 要实现一个单调递减队列: 对于滑动窗口的滑动,移除前面的元素,加入后面的元素。当移除前面的元素时&#xff0…

监控物联网卡该如何选择,你都踩过哪些坑?

不知道大家有没有发现在自己的身边不知不觉多了很多新玩意,例如智能自动售货机、共享单车、智能监控设备等,它们让大家的生活变得越来越方便,那么大家知道它们为什么能起到这么大的作用吗,其实得得益于一个叫做物联网卡的东西。前…

通过kubeode安装k8s

文章目录通过kubeode安装k8s1、准备vmdk文件2、创建虚拟机3、进入虚拟机4、配置yum源5、清理6、 增加node服务器7、修改Ip8、下载下载通道01 走普通家庭宽带下载点下载通道02 走群友无私赞助电信机房专线服务器--高速稳定下载----强烈推荐下载并解压9、一键安装通过kubeode安装…

字符串函数剖析(1)

带你玩转字符串 1.strlen函数不一样的细节 1.1模拟实现strlen函数 2.strcpy函数的巧妙 2.2strcpy的模拟实现 3.strcmp函数的巧妙 3.2strcmp的模拟实现 详解strlen的细节 首先了解strlen 函数的参数 size_t strlen ( const char * str );size_t 是什么东西呢&#xff1f…

链表-------数据结构

链表(重点): 链表是物理存储结构上面非连续的存储结构,数据元素的逻辑顺序是通过链表中的引用链接次序实现的 1)在顺序表中,我们不光引入了一段连续的内存,还引入了一块连续的内存空间,叫做usedsize,来表示对应数组中…

PMP每年考几次,费用如何?

PMP每年考四次,整个考证一次通关大致需要 7000 元左右,主要是下面几项费用: 部分学习笔记: 一、考证费用 分为基础费用报班费用 基础费用:报名费续证费用(补考费 / 退考费) 报名费 3900 元是固…

【软件测试】测试人的内卷,掀起血雨腥风......

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 铺天盖地的职场内卷…

如何利用深度学习中的AutoEncoder进行特征降维和特征可视化,pytorch代码

我们将使用 Pytorch 中的 AutoEncoder(自动编码器架构)来减少特征维度和可视化。 北大出版社,人工智能原理与实践 人工智能和数据科学从入门到精通 详解机器学习深度学习算法原理 人工智能原理与实践 全面涵盖人工智能和数据科学各个重要体系经典 首先&#xff0c…

力扣(142.1002)补9.17

142.环形链表Ⅱ 不会,不过答案用了数学的想法,我以为计算机里只有暴力呢。 public class Solution { public ListNode detectCycle(ListNode head) { if(headnull||head.nextnull) return null; ListNode phead; ListNode p2head; while(true){ if(p2.ne…

Excel教程之学生成功所需的 5 个电子表格

作为一名学生,跟踪你盘子里的所有任务和责任可能会让人不知所措。 这就是为什么拥有一套组织良好的电子表格可以成为救命稻草的原因。出于多种原因,维护自己的电子表格可能是一项宝贵的技能。首先,它可以帮助您养成良好的习惯,例如组织和关注细节。通过创建和维护您自己的…

RabbitMQ之Exchange(交换机)

目录 一、Exchange简介 二、Exchange(交换机)的类型 1.直连交换机:Direct Exchange 2.主题交换机:Topic Exchange 3.扇形交换机:Fanout Exchange 4、默认交换机 5、Dead Letter Exchange(死信交换机) 三、交换机…

Conan 上传预编译的包

目录 1. 组织文件 2. 编写conanfile.py 3. 然后执行export 命令 4. 上传到自己的center 疫情肆虐,阳了一周,今天可以正常工作了,刚接触conan, 确实一脸懵逼,今天的任务是把项目转成Conan 管理,因为项目用到了第三方…