【Sklearn-驯化】一文搞懂机器学习树模型建模可视化过程

news2024/11/25 10:39:08

【Sklearn-驯化】一文搞懂机器学习树模型建模可视化过程

 
本次修炼方法请往下查看
在这里插入图片描述

🌈 欢迎莅临我的个人主页 👈这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合,智慧小天地!
🎇 免费获取相关内容文档关注:微信公众号,发送 pandas 即可获取
🎇 相关内容视频讲解 B站

🎓 博主简介:AI算法驯化师,混迹多个大厂搜索、推荐、广告、数据分析、数据挖掘岗位 个人申请专利40+,熟练掌握机器、深度学习等各类应用算法原理和项目实战经验

🔧 技术专长: 在机器学习、搜索、广告、推荐、CV、NLP、多模态、数据分析等算法相关领域有丰富的项目实战经验。已累计为求职、科研、学习等需求提供近千次有偿|无偿定制化服务,助力多位小伙伴在学习、求职、工作上少走弯路、提高效率,近一年好评率100%

📝 博客风采: 积极分享关于机器学习、深度学习、数据分析、NLP、PyTorch、Python、Linux、工作、项目总结相关的实用内容。


文章目录

    • 🎯 1. 环境配置
    • 💡 2. 使用方法
      • 2.1 使用决策树进行可视化
      • 2.2 xgb可视化
    • 🔍 3. 注意事项

🎯 1. 环境配置

  不管用哪种可视化的模型,都需要配置graphviz图形驱动用来对结果进行展示,Graphviz 是一个绘制关系图/流程图的工具包,使用它提供的 dot-language ,可以在文本中通过 嵌入绘制代码 的方式实现图的绘制。如果在mac电脑中相对比较好安装,具体的安装如下所示:

brew install graphviz

  为了能够展示树的决策的节点过程,还需要安装pydotplus包,具体的安装办法如下所示:

pip install pydotplus

💡 2. 使用方法

  决策树是一种模仿人类决策过程的分类和预测算法。它们通过一系列的问题将数据分割成越来越小的子集,直到每个子集可以被分类到特定的输出类别或预测值。:

2.1 使用决策树进行可视化

  可视化决策树可以帮助我们理解模型是如何做出决策的。具体二叉树的可视化,如下所示


clf = tree.DecisionTreeClassifier()
clf = clf.fit(train_x, train_y)

import pydotplus
from IPython.display import Image
dot_data = tree.export_graphviz(clf, out_file=None, 
                         feature_names=df_all.columns.tolist()[:-1],  
                         class_names=['0','1','2'], 
                         filled=True, rounded=True, special_characters=False)  
graph = pydotplus.graph_from_dot_data(dot_data)
graph.set('label', 'Tree 30 from  Xgboost Tree')
graph.set('labelloc', 't')
# 遍历节点
# 获取图中所有节点
nodes = graph.get_node_list()
for index, node in enumerate(nodes):
    # 判断节点名称是否为'node',即右上方背景框
    if node.get_name().startswith('node'):
        # 设置节点样式和属性
        
        node.set('style', 'filled')
        # node.set('color', 'none')
Image(graph.create_png())
graph.write_png('decision_tree.png')

  具体的结果如下所示:
在这里插入图片描述

2.2 xgb可视化

  除了使用决策树之外,我们可以很清楚的看出来树分裂的过程,但是都是单次的,而且二叉树的效果也很一般,因此,对于xgb的可视化的例子具体如下所示:

import xgboost as xgb
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
from sklearn.metrics import classification_report

# 创建XGBoost分类器
xgb_model = xgb.XGBClassifier(objective='multi:softmax', num_class=3, n_estimators=30, min_child_weight=1, subsample=0.9)

X_train, X_test= train_test_split(df_all, stratify=df['y'], test_size=0.2, random_state=56)
train_x, train_y = X_train.drop(['y'], axis=1), X_train['y']
test_x, test_y = X_test.drop(['y'], axis=1), X_test['y']
xgb_model.fit(train_x, train_y, verbose=2, eval_set=[(train_x, train_y),(test_x, test_y)])
xgb.to_graphviz(xgb_model, num_trees=10)

  具体的结果如下所示:

在这里插入图片描述

🔍 3. 注意事项

  • 确保安装了 pydotplus 和 graphviz 库,这些是可视化决策树所需的依赖。
  • 可视化可能包含大量的信息,特别是对于深度和复杂的树。
  • 在可视化中,每个节点的形状、颜色和标签提供了关于该节点的详细信息。

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

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

相关文章

LeetCode刷题之HOT100之数组中的第K个最大元素

2024 6/29 今天天气很好啊,想爬山,奈何下午还有最后的一个汇报。做个题先 1、题目描述 2、算法分析 看到这个题我想到的就是: public int findKthLargest(int[] nums, int k) {Arrays.sort(nums);return nums[nums.length - k ];}哈哈,我提…

计算机网络 —— 基本概念

基本概念 1. 通信协议2. 面向连接 v.s. 面向无连接3. 电路交换 v.s. 分组交换4. 单工通信 v.s. 双工通信 1. 通信协议 通信协议就是计算机与计算机之间通过网络实现通信时事先达成的一种“约定”。这种“约定”使那些由不同厂商的设备、不同的CPU 以及不同的操作系统组成的计算…

记录一下MATLAB优化器出现的问题和解决

今天MATLAB优化器出了点问题。我想了想,决定解决一下,不然后面项目没有办法进行下去。 我忘了截图了。 具体来说,是出现了下面的问题。 Gurobi: Cplex: 在上次为了强化学习调整了Pytoch环境以后(不知道是不是这个原因&#…

background 与 background-image

相同点:background 与 background-image都可以用于设置背景图 区别. background既可以用于设置背景图, 又可以用于设置CSS样式,还可以用于设置背景属性。 background-image只能用于设置背景图 background能设置的背景属性,如下&…

绝了!Stable Diffusion做AI治愈图片视频,用来做副业简直无敌!10分钟做一个爆款视频保姆教程

一 项目分析 这个治愈类视频的玩法是通过AI生成日常生活场景,制作的vlog,有这样的一个号,发布了几条作品,就涨粉了2000多,点赞7000多,非常的受欢迎。 下面给大家看下这种作品是什么样的,如图所…

大语言模型LLM基础:推理/不同模型/量化对显存、推理速度和性能的影响

通过本文,你将了解以下几个方面的内容: 要运行一个LLM需要多少显存?(我的GPU可以运行多大LLM?)不同LLM推理速度如何?量化对显存、推理速度和性能的影响?vLLM、DeepSeed等工具的加速…

智慧校园-档案管理系统总体概述

智慧校园档案管理系统,作为教育信息化进程中的重要一环,它运用现代信息技术的力量,彻底改变了传统档案管理的面貌,为学校档案资源的收集、整理、存储、检索与利用开辟了全新的途径。这一系统全面覆盖学生、教职工、教学科研及行政…

Rocky Linux设置静态IP

[connection] idens160 uuidcd246f67-c929-362a-809d-f1b44ddc5d25 typeethernet autoconnect-priority-999 interface-nameens160 timestamp1719094243[ethernet][ipv4] ## 在IPV4下面修改如下内容 methodmanual address192.…

常见的反爬手段和解决思路(爬虫与反爬虫)

常见的反爬手段和解决思路(爬虫与反爬虫) 学习目标1 服务器反爬的原因2 服务器长反什么样的爬虫(1)十分低级的应届毕业生(2)十分低级的创业小公司(3)不小心写错了没人去停止的失控小…

nuxt实现vuex持久化

前言: 此处不借助插件实现 store 本地持久化 所有状态持久化 使用 vuex 里面的 replaceState 方法还原 store 的根状态 API 参考 | Vuex 创建 store-cache.js 文件 在 plugins 目录下创建 store-cache.js 文件; store-cache.js export default (ctx) &g…

深度之眼(二十八)——神经网络基础知识(三)-卷积神经网络

文章目录 一、前言二、卷积操作2.1 填充(padding)2.2 步长2.3 输出特征图尺寸计算2.4 多通道卷积 三、池化操作四、Lenet-5及CNN结构进化史4.1 Lenet-5 一、前言 卷积神经网络–AlexNet(最牛)-2012 Lenet-5-大规模商用(1989) 二、…

如何保护磁盘数据?电脑磁盘数据怎么保护?

电脑磁盘是存储数据的基础,可以将各种重要数据保存在其中。为了避免数据泄露,我们需要保护磁盘数据。那么,电脑磁盘数据怎么保护呢?下面我们就一起来了解一下吧。 文件夹加密超级大师 文件夹加密超级大师是一款优秀的电脑数据加密…

收银系统源码-千呼新零售2.0【宠物、养生、大健康行业解决方案】

千呼新零售2.0系统是零售行业连锁店一体化收银系统,包括线下收银线上商城连锁店管理ERP管理商品管理供应商管理会员营销等功能为一体,线上线下数据全部打通。 适用于商超、便利店、水果、生鲜、母婴、服装、零食、百货、宠物、中医养生、大健康等连锁店…

ubuntu丢失网络/网卡的一种原因解决方案

现象 开机进入ubuntu后发现没有网络,无论是在桌面顶部状态栏的快捷键 还是 系统设置中,都没有”有线网“和”无线网“的选项,”代理“的选项是有的使用数据线连接电脑和手机,手机开启”通过usb共享网络“,还是没有任何…

【shell脚本实战案例】主机状态监控脚本

文章目录 案例需求脚本应用场景解决问题脚本思路实现代码 🌈你好呀!我是 山顶风景独好 🎈欢迎踏入我的博客世界,能与您在此邂逅,真是缘分使然!😊 🌸愿您在此停留的每一刻&#xff0c…

日期类(java)

文章目录 第一代日期类 Date常用构造方法SimpleDateFormat 日期格式化类日期转字符串(String -> Date)字符串转日期 (String->Date) 第二代日期类 Calendar常用字段与如何得到实例对象相关 API 第三代日期类(LocalDate\TIme)日期,时间&…

datax入门(data-web的简单使用)——02

datax入门(data-web的简单使用)——02 1. 前言1.1 关于data-web官网1.1.1 源码下载1.1.2 datax-Web部署手册1.1.2.1 Linux环境部署手册1.1.2.2 本地开发环境部署手册 1.2 关于datax入门 2. 下载之后打包、启动、登录2.1 我的本地环境2.2 修改配置2.3 初始…

[C语言]指针

一、指针简介 1、指针(Pointer)是C语言的一个重要知识点,其使用灵活、功能强大,是C语言的灵魂 2、指针与底层硬件联系紧密,使用指针可操作数据的地址,实现数据的间接访问 3、计算机存储机制 4、定义指针 (1&#x…

C++ 史上首次超越 C,仅次于Python!【送源码】

TIOBE 公布了 2024 年 6 月的编程语言排行榜——C 史上首次超越 C,跃至榜二,仅次于 Python。 C 是一种广泛应用于嵌入式系统、游戏开发和金融交易软件等领域的语言,在本月成功超越了 C, 成为了 TIOBE 指数中新的第二名。 这是 C …

一个 API 客户端和一份 TS 学习手册

第75期: Insomnia:超好看的 API 客户端 项目介绍: 一款适用于 GraphQL、REST、WebSockets 和 gRPC 的开源 API 客户端,颜值超高。 跨平台,支持 Mac、Windows 和 Linux。但不支持网页版,需要下载客户端。…