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

【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.mfbz.cn/a/757227.html

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

相关文章

研导智能科技——AI辅助科研产品开发

人工智能(AI)技术的飞速发展为科研领域带来了革命性的变化。本公司致力于开发基于人工智能的科研辅助产品,旨在通过智能化手段提高科研人员的工作效率和研究质量。目前,我们成功开发了研导学术平台(www.zhiyanxueshu.c…

Docker Compose 入门

想象一下在服务器上运行静态页面的场景。对于这项任务,NGINX 服务器是一个不错的选择。我们在 static-site/index.html 路径下有一个简单的 HTML 文件: 通过使用 Docker,我们将使用以下官方镜像运行 NGINX 服务器 docker run --rm -p 8080:…

Day6: 344.反转字符串 541. 反转字符串II 卡码网:54.替换数字

题目344. 反转字符串 - 力扣&#xff08;LeetCode&#xff09; void reverseString(vector<char>& s) {int len s.size();int left 0;int right len - 1;while (left < right){swap(s[left], s[right--]);}return;} 题目541. 反转字符串 II - 力扣&#xff0…

教您设置打开IDM下载浮动条的快捷键 全网最强下载神器idm怎么使用教程 idm浮动条不显示怎么办

很多人都知道Internet Download Manager(以下简称IDM)是一款非常优秀的下载提速软件。它功能强大&#xff0c;几乎能下载网页中的所有数据&#xff08;包括视频、音频、图片等&#xff09;&#xff0c;且适用于现在市面上几乎所有的浏览器&#xff0c;非常受大家欢迎。 在使用I…

docker网络功能介绍

一、 网络启动过程二、 修改容器dns和主机名① 临时处理&#xff08;容器终止或重启后不会保存&#xff09;② 通过参数指定 三、 容器内访问控制① 容器访问外部网络② 容器间互相访问&#xff08;1&#xff09;访问所有端口&#xff08;2&#xff09;访问指定端口 四、 docke…

Bureau of Contacts联机卡顿、联机延迟高的三种有效解决办法

Bureau of Contacts是一款全新的驱鬼游戏&#xff0c;最多支持4名玩家同时联机探索&#xff0c;玩家将进入被诅咒的地点&#xff0c;在这里找到被黑暗隐藏的秘密&#xff0c;并了解其消灭的办法&#xff0c;清除一切超自然内容&#xff0c;最终成功存活。不过有玩家反馈&#x…

2024最出色的代理软件评估及推荐

随着网络技术的飞速发展&#xff0c;代理软件已成为许多网络活动不可或缺的工具&#xff0c;特别是在数据抓取、网络安全防护等方面。在众多代理软件中&#xff0c;哪些能真正满足用户需求&#xff0c;提供卓越的性能和服务呢&#xff1f;我们的测评团队经过深入研究和测试&…

AutoHotKey自动热键(一)下载与安装

首先讲一下这个软件有什么作用,它可以实现代替鼠标和键盘的操作,并且能够代录入文字,添加并改变组合快捷键等等,到后面我们慢慢来讲AHK软件有1版本和2版本,在实际使用中,2版本容易被报毒,并且1版本已经极致成熟,所以我们使用1版本,我们进入官网下载下来,软件本身是免费的,不用有…

学习笔记——动态路由——OSPF(OSPF状态机、DR\BDR选举)

七、OSPF状态机、DR\BDR选举 1、OSPF的8种状态机 OSPF在邻居与邻接建立的过程中会经过多个状态机的变化&#xff0c;状态机的出现不仅能让我们了解OSPF建立过程&#xff0c;也能在OSPF出现故障的时候通过状态机的状态来粗略判断问题的所在。 (1)邻居建立状态变化过程 1、Dow…

狼人杀系列

目录 杀人游戏&#xff08;天黑请闭眼&#xff09; &#xff08;1&#xff09;入门版 &#xff08;2&#xff09;标准版 &#xff08;3&#xff09;延伸版——百度百科 &#xff08;3.1&#xff09;引入医生和秘密警察 &#xff08;3.2&#xff09;引入狙击手、森林老人和…

Excel+vue+java实现批量处理功能

需求背景: 产品创建流程比较复杂&#xff0c;有时候需要一次性创建多至10个&#xff0c;所以做了Excel维护产品信息&#xff0c;直接导入创建的功能。能极大提高效率。 简要概括实现&#xff1a; 一、参考单个创建&#xff0c;设计创建模板&#xff0c;表头对应填写字段名&…

CC1利用链分析

分析版本 Commons Collections 3.1 JDK 8u65 环境配置参考JAVA安全初探(三):CC1链全分析 分析过程 我的Github主页Java反序列化学习同步更新&#xff0c;有简单的利用链图 首先看下CC1利用链的RCE利用点&#xff0c;在接口Transformer 接下来查看此接口的实现类&#xf…

GBJ406-ASEMI无人机专用整流桥GBJ406

编辑&#xff1a;ll GBJ406-ASEMI无人机专用整流桥GBJ406 型号&#xff1a;GBJ406 品牌&#xff1a;ASEMI 封装&#xff1a;GBJ-4 最大重复峰值反向电压&#xff1a;600V 最大正向平均整流电流(Vdss)&#xff1a;4A 功率(Pd)&#xff1a;中小功率 芯片个数&#xff1a;…

【小学期】常用基于Swing的七个静态界面

示例1&#xff1a;基本的带按钮和标签的界面 import javax.swing.*; import java.awt.*;public class SimpleSwingApp1 {public static void main(String[] args) {JFrame frame new JFrame("Simple Swing App 1");frame.setDefaultCloseOperation(JFrame.EXIT_ON_C…

申请免费6个月SSL证书方式和证书特点槽点

当前&#xff0c;HTTPS访问已成为网站标配。随着免费证书平台的不断涌现&#xff0c;Lets Encrypt尤为瞩目&#xff0c;其提供的泛域名和多域名证书申请功能&#xff0c;显著降低了站长和企业的经济负担。从一开始&#xff0c;来此加密就支持通过Lets Encrypt申请免费的域名SSL…

OpenFAST软件中linux-gnu,linux-intel,macos-gnu,vtk,windows-intel文件的作用

在OpenFAST中&#xff0c;5MW_Land_DLL_WTurb目录下的这五个文件夹分别有不同的用途&#xff0c;主要是为了支持不同操作系统和平台的编译和仿真工作。以下是每个文件夹的总结及其作用&#xff1a; linux-gnu 作用&#xff1a;包含用于GNU编译器套件&#xff08;GCC&#xff09…

【高性能服务器】单进程服务器

&#x1f525;博客主页&#xff1a; 我要成为C领域大神&#x1f3a5;系列专栏&#xff1a;【C核心编程】 【计算机网络】 【Linux编程】 【操作系统】 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 本博客致力于知识分享&#xff0c;与更多的人进行学习交流 ​ 单进程服务器 …

基于Java的地方废物回收机构管理系统

你好呀&#xff0c;我是计算机学姐码农小野&#xff01;如果有相关需求&#xff0c;可以私信联系我。 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;Java技术&#xff0c;MIS的总体思想&#xff0c;MySQL数据库 工具&#xff1a;Eclipse&#xff0c;…

落石滑坡监测报警系统:创新保障高速公路安全

​ ​​在现代交通建设中&#xff0c;高速公路的安全性和稳定性至关重要。特别是易发生落石区域&#xff0c;如何有效预防和应对落石滑坡带来的事故成为了一项关键性挑战。为此&#xff0c;落石滑坡监测报警系统应运而生&#xff0c;它通过先进的技术手段&#xff0c;为高速…

计算机网络微课堂(湖科大教书匠)TCP部分

计算机网络微课堂&#xff08;湖科大教书匠&#xff09;TCP部分 【计算机网络微课堂&#xff08;有字幕无背景音乐版&#xff09;】 TCP的流量控制 一般来说&#xff0c;我们希望数据传输得更快一些。但如果发送方把数据发送得过快&#xff0c;接收方就可能来不及接收&#…