当前位置: 首页 > news >正文

【机器学习 | 可视化系列】可视化系列 之 决策树可视化

在这里插入图片描述

🤵‍♂️ 个人主页: @AI_magician
📡主页地址: 作者简介:CSDN内容合伙人,全栈领域优质创作者。
👨‍💻景愿:旨在于能和更多的热爱计算机的伙伴一起成长!!🐱‍🏍
🙋‍♂️声明:本人目前大学就读于大二,研究兴趣方向人工智能&硬件(虽然硬件还没开始玩,但一直很感兴趣!希望大佬带带)

在这里插入图片描述

【深度学习 | 核心概念】那些深度学习路上必经的核心概念,确定不来看看? (一)
作者: 计算机魔术师
版本: 1.0 ( 2023.8.27 )

摘要: 本系列旨在普及那些深度学习路上必经的核心概念,文章内容都是博主用心学习收集所写,欢迎大家三联支持!本系列会一直更新,核心概念系列会一直更新!欢迎大家订阅

该文章收录专栏
[✨— 《深入解析机器学习:从原理到应用的全面指南》 —✨]

@toc

t-SNE 可视化

t-SNE(t-Distributed Stochastic Neighbor Embedding)是一种降维和可视化技术,用于将高维数据映射到二维或三维空间中。它是一种非线性的降维方法,旨在保留原始数据之间的局部相似性关系。由Laurens van der Maaten和Geoffrey Hinton于2008年提出。在此之前,常用的降维方法如PCA(Principal Component Analysis)等主要关注全局结构,而缺乏对局部结构的捕捉能力。

t-SNE通过计算样本之间的相似度,并尝试在低维嵌入空间中保持这些相似度关系。它使用随机梯度下降等优化算法来最小化高维空间和低维嵌入空间之间的Kullback-Leibler散度。结果是,具有类似特征的样本会在低维投影中更接近。

因为t-SNE能够捕捉到复杂、非线性结构以及聚类效应,所以它通常被用于可视化高维数据集中不同类别或群组之间的分布关系。例如,在机器学习领域,可以使用t-SNE将特征向量表示为二维或三维点云图,并观察不同类别样本之间的分离程度。

决策树可视化

scikit-learn(sklearn)的tree模块提供了一个方便的函数plot_tree,用于可视化决策树模型。你可以使用以下步骤来使用plot_tree函数进行可视化(以iris数据集为例):

  1. 导入必要的库和模块:在Python脚本中,导入tree模块和matplotlib.pyplot库:

  2. 可视化决策树:使用plot_tree函数可视化决策树模型。

  3. 调用函数进行可视化:在你的代码中,调用visualize_decision_tree函数并传入决策树模型、特征名称和类别名称作为参数:

from sklearn import tree
import matplotlib.pyplot as plt
from sklearn.datasets import load_irisdef visualize_decision_tree(decision_tree, feature_names, class_names):plt.figure(dpi=300)tree.plot_tree(decision_tree, feature_names=feature_names, class_names=class_names,filled=True, rounded=True)plt.show()
clf = tree.DecisionTreeClassifier(random_state=0)
iris = load_iris()
clf = clf.fit(iris.data, iris.target)
visualize_decision_tree(clf,feature_names = iris.feature_names, class_names = iris.target_names)

结果如下图:

每一个节点都有分类阈值以及其gini指数和样本状态和类别状态。

在这里插入图片描述

在上面的代码中,decision_tree是你的决策树模型,feature_names是特征的名称列表,class_names是类别的名称列表。visualize_decision_tree函数使用plot_tree函数将决策树模型绘制为图形。 运行代码后,你将看到绘制出的决策树图形。

请注意,plot_tree函数提供了一些可选参数,可以用于自定义图形的外观。你可以查阅scikit-learn的文档以了解更多关于plot_tree函数的详细信息和可选参数的使用方式。
在这里插入图片描述

						  🤞到这里,如果还有什么疑问🤞🎩欢迎私信博主问题哦,博主会尽自己能力为你解答疑惑的!🎩🥳如果对你有帮助,你的赞是对博主最大的支持!!🥳

相关文章:

  • SpringBoot——Swagger2 接口规范
  • springsecurity5.7.x和springsecurity6.x配置文件对比
  • Vue中使用正则表达式进行文本匹配和处理的方法
  • rabbitMQ对优先级队列的使用
  • OpenLDAP配置web管理界面PhpLDAPAdmin服务-centos9stream
  • MySQL数据库编程进阶
  • 「江鸟中原」有关HarmonyOS-ArkTS的Http通信请求
  • oracle常用通用sql脚本——查询前用户的表空间信息
  • 【古月居《ros入门21讲》学习笔记】12_服务端Server的编程实现
  • 如何用SWIG封装c++接口给java使用?
  • PyTorch模型训练过程内存泄漏问题解决
  • 蓝桥杯官网练习题(平均)
  • Vue学习
  • 基于springboot实现高校食堂移动预约点餐系统【项目源码】
  • LeetCode51. N-Queens
  • 0x05 Python数据分析,Anaconda八斩刀
  • LeetCode29.两数相除 JavaScript
  • Vue.js-Day01
  • 程序员该如何有效的找工作?
  • 构建二叉树进行数值数组的去重及优化
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 移动端解决方案学习记录
  • mysql 慢查询分析工具:pt-query-digest 在mac 上的安装使用 ...
  • #、%和$符号在OGNL表达式中经常出现
  • #WEB前端(HTML属性)
  • (a /b)*c的值
  • (阿里云万网)-域名注册购买实名流程
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (十八)用JAVA编写MP3解码器——迷你播放器
  • (转)es进行聚合操作时提示Fielddata is disabled on text fields by default
  • (最完美)小米手机6X的Usb调试模式在哪里打开的流程
  • ***汇编语言 实验16 编写包含多个功能子程序的中断例程
  • .bat批处理(二):%0 %1——给批处理脚本传递参数
  • .net和php怎么连接,php和apache之间如何连接
  • .NET企业级应用架构设计系列之应用服务器
  • [] 与 [[]], -gt 与 > 的比较
  • [20161101]rman备份与数据文件变化7.txt
  • [BT]BUUCTF刷题第9天(3.27)
  • [C++]C++类基本语法
  • [gdc19]《战神4》中的全局光照技术
  • [HackMyVM]靶场 Wild
  • [iOS开发]事件处理与响应者链
  • [Linux] - 定时任务crontab
  • [linux] C语言Linux系统编程进程基本概念
  • [NET].NET Framework 3.5 SP1 真正的离线安装(转)
  • [nlp] id2str的vocab.json转换为str2id
  • [NOI2022] 众数 题解
  • [Raspberry Pi] Raspberry Pi 4配置OpenCV4.6.0和ncnn环境(32-bit operation system)
  • [SSD综述 1.4] SSD固态硬盘的架构和功能导论
  • [svc]ftp协议数据连接的2种模式
  • [UDS] --- CommunicationControl 0x28
  • [Unity]AssetBundle资源更新以及多线程下载
  • [Vue安装教程]十分钟学会vue 安装