[数据处理] 6. 数据可视化

👋 你好!这里有实用干货与深度分享✨✨ 若有帮助,欢迎:​
👍 点赞 | ⭐ 收藏 | 💬 评论 | ➕ 关注 ,解锁更多精彩!​
📁 收藏专栏即可第一时间获取最新推送🔔。​
📖后续我将持续带来更多优质内容,期待与你一同探索知识,携手前行,共同进步🚀。​



人工智能

数据可视化优化

数据可视化是深度学习和数据科学项目中不可或缺的一环,能够帮助研究人员直观理解数据的分布特性、变量之间的关系以及模型的训练过程与性能表现。良好的数据可视化不仅可以揭示数据的分布结构,还能辅助特征工程和模型调优。本文将系统介绍常见的数据可视化方法及其实现方式,涵盖数值数据、图像、文本与模型训练等多个方面。


一、数据分布可视化

数据分布可视化主要用于了解单个特征或多个特征之间的分布情况。这些可视化方法可以帮助识别数据的集中趋势、离群点和变量之间的相关性。

1. 单变量分布

单变量可视化用于展示单个特征的分布情况,包括直方图和箱线图。

  • 直方图:直观展示数据在各区间的频率分布,快速判断数据分布形态,如是否符合正态分布。
  • 箱线图:清晰呈现数据的中位数、四分位数及异常值,便于评估数据稳健性 。
import matplotlib.pyplot as plt
import seaborn as sns# 单变量分布函数
def plot_feature_distribution(data, feature_name, bins=30, kde=True, color='teal'):plt.figure(figsize=(10, 6))sns.histplot(data=data, x=feature_name, bins=bins, kde=kde, color=color)plt.title(f'Distribution of {feature_name}')plt.xlabel(feature_name)plt.ylabel('Frequency')plt.show()# 箱线图(适用于发现异常值)
def plot_box(data, feature_name, color='coral'):plt.figure(figsize=(10, 6))sns.boxplot(data=data, x=feature_name, color=color)plt.title(f'Box Plot of {feature_name}')plt.show()
示例数据展示
import seaborn as sns
import matplotlib.pyplot as plt# 加载 Iris 数据集
iris = sns.load_dataset('iris')# 单变量分布示例
plot_feature_distribution(iris, 'sepal_length')
plot_box(iris, 'sepal_length')

在这里插入图片描述

在这里插入图片描述

2. 多变量分布

多变量可视化主要用于探索两个或多个特征之间的关系。

  • 散点图:发现变量间的线性或非线性关联,判断数据聚类情况。
  • 热力图:量化展示多个变量间的线性相关程度,快速识别强相关特征,避免特征冗余。
  • 相关系数热力图:展示变量间的线性相关程度,便于特征选择和模型构建。
import seaborn as sns
import matplotlib.pyplot as plt# 散点图(适合分析连续变量的关联)
def plot_scatter_plot(data, x_feature, y_feature, hue=None, palette='viridis'):plt.figure(figsize=(10, 6))sns.scatterplot(data=data, x=x_feature, y=y_feature, hue=hue, palette=palette)plt.title(f'{x_feature} vs {y_feature}')plt.show()# 相关系数热力图(适合展示变量之间的线性相关性)
def plot_correlation_heatmap(data, cmap='coolwarm'):plt.figure(figsize=(12, 8))sns.heatmap(data.corr(), annot=True, cmap=cmap, fmt='.2f', linewidths=0.5)plt.title('Feature Correlation Heatmap')plt.show()# 热力图(适合展示多个变量之间的线性相关程度)
def plot_heatmap(data, cmap='coolwarm'):plt.figure(figsize=(12, 8))sns.heatmap(data, cmap=cmap, annot=True, fmt='.2f', linewidths=0.5)plt.title('Heatmap')plt.show()
示例数据展示
import seaborn as sns
import matplotlib.pyplot as plt# 加载 Iris 数据集
iris = sns.load_dataset('iris')# 多变量分布示例
plot_scatter_plot(iris, 'sepal_length', 'sepal_width', hue='species')
plot_correlation_heatmap(iris.drop(columns=['species']))
plot_heatmap(iris.drop(columns=['species']))

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


二、图像数据可视化

图像数据可视化用于展示和分析图片数据,是计算机视觉领域的重要工具。常见的方法包括显示单张图片、构建图片网格以及可视化卷积神经网络的特征。

1. 显示单张图像

直观查看图像内容、分辨率、色彩模式,及时发现噪声、模糊或标注错误等问题。

import matplotlib.pyplot as plt# 显示单张图片
def show_image(image, title='Sample Image', cmap='gray'):plt.figure(figsize=(6, 6))plt.imshow(image, cmap=cmap)plt.axis('off')plt.title(title)plt.show()
示例数据展示
from skimage import data# 读取示例图片
sample_image = data.camera()# 显示单张图片示例
show_image(sample_image, title='Camera Image')

在这里插入图片描述

2. 显示多张图像

对比图像间特征差异,展示数据集多样性,评估数据增强策略有效性。

import matplotlib.pyplot as plt# 显示多张图片
def show_image_grid(images, labels=None, cols=4, title='Image Grid', cmap='gray'):rows = (len(images) + cols - 1) // colsplt.figure(figsize=(3 * cols, 3 * rows))for i, image in enumerate(images):plt.subplot(rows, cols, i + 1)plt.imshow(image, cmap=cmap)if labels is not None:plt.title(f'Label: {labels[i]}')plt.axis('off')plt.suptitle(title)plt.tight_layout()plt.show()
示例数据展示
from skimage import data# 读取示例图片
sample_image = data.camera()
astronaut_image = data.astronaut()
sample_images = [sample_image, astronaut_image, sample_image, astronaut_image]# 显示多张图片示例
show_image_grid(sample_images, title='Sample Image Grid')

在这里插入图片描述


三、文本数据可视化

文本数据可视化可以帮助理解文本的结构、词频分布以及关键词之间的关联。常见的方法包括词云图和词频统计图。

1. 词云图

突出显示文本高频关键词,直观反映文本核心内容,快速抓住主题重点。

from wordcloud import WordCloud
import matplotlib.pyplot as plt# 词云图
def generate_wordcloud(text, font_path=None):wordcloud = WordCloud(width=800, height=400, background_color='white', font_path=font_path).generate(text)plt.figure(figsize=(10, 5))plt.imshow(wordcloud, interpolation='bilinear')plt.axis('off')plt.title('Word Cloud')plt.show()
示例数据展示
sample_text = '''
To be, or not to be, that is the question:
Whether 'tis nobler in the mind to suffer
The slings and arrows of outrageous fortune,
Or to take arms against a sea of troubles
And by opposing end them.'''# 词云图示例
generate_wordcloud(sample_text)

在这里插入图片描述

2. 词频统计图

量化展示词汇出现频率,分析文本语言特征,为文本分类、主题建模提供数据支持。

from collections import Counter
import matplotlib.pyplot as plt# 词频统计
def plot_word_frequency(words, top_n=20, color='royalblue'):word_freq = Counter(words).most_common(top_n)words, counts = zip(*word_freq)plt.figure(figsize=(12, 6))plt.bar(words, counts, color=color)plt.xticks(rotation=45)plt.title('Top Word Frequencies')plt.show()
示例数据展示
sample_text = '''
To be, or not to be, that is the question:
Whether 'tis nobler in the mind to suffer
The slings and arrows of outrageous fortune,
Or to take arms against a sea of troubles
And by opposing end them.'''words = sample_text.lower().replace('\n', ' ').split()# 词频统计图示例
plot_word_frequency(words, top_n=10)

在这里插入图片描述


结语

数据可视化不仅是数据分析的辅助工具,也是深度学习建模与优化的核心环节之一。合理的可视化方法能够帮助研究人员更好地理解数据结构、检测异常、解释模型表现,从而提升整体建模质量。



📌 感谢阅读!若文章对你有用,别吝啬互动~​
👍 点个赞 | ⭐ 收藏备用 | 💬 留下你的想法 ,关注我,更多干货持续更新!

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

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

相关文章

嵌入式学习笔记 - STM32 SRAM控制器FSMC

一 SRAM控制器内部结构图: 以下以512K SRAM芯片为例 二 SRAM地址矩阵/寻址方式: SRAM的地址寻址方式通过行地址与列地址交互的方式存储数据 三 STM32 地址映射 从STM32的地址映射中可以看出,FSMC控制器支持扩展4块外部存储器区域&#xff0…

python基础:序列和索引-->Python的特殊属性

一.序列和索引 1.1 用索引检索字符串中的元素 # 正向递增 shelloworld for i in range (0,len(s)):# i是索引print(i,s[i],end\t\t) print(\n--------------------------) # 反向递减 for i in range (-10,0):print(i,s[i],end\t\t)print(\n--------------------------) print(…

phpstudy升级新版apache

1.首先下载要升级到的apache版本,这里apache版本为Apache 2.4.63-250207 Win64下载地址:Apache VS17 binaries and modules download 2.将phpstudy中原始apache复制备份Apache2.4.39_origin 3.将1中下载apache解压, 将Apache24复制一份到ph…

开源业务流程:jBPM

一、什么是 jBPM? jBPM 是一个灵活的业务流程管理 (BPM) 套件。它不仅仅是一个流程引擎,而是一个集成了多种功能的平台,旨在帮助企业建模、自动化和监控业务流程。jBPM 遵循业界标准,特别是 BPMN 2.0(业务流程模型和标…

JAVA:使用 JMH 进行基准测试的技术指南

1、简述 在性能优化中,写高效代码离不开准确的基准测试。而 Java 的 JIT 编译器会对代码进行优化(如方法内联、死代码消除等),导致简单的测试方法可能得不到真实的性能数据。这时候,JMH(Java Microbenchmark Harness)就派上用场了。 JMH 是 Java 官方提供的基准测试框…

Thinkphp开发自适应职业学生证书查询系统职业资格等级会员证书管理网站

环境:php7.2mysql5.7think伪静态 1.上传压缩包到服务器解压 2.还原数据库 3.配置数据库信息application/database.php 4.后台:http://你的域名/abc.php 用户:admin 密码:123456 程序说明: 【修复版】Thinkphp5开发的自…

(二)毛子整洁架构(CQRS/Dapper/领域事件处理器/垂直切片)

文章目录 项目地址一、Application 层1.1 定义CQRS的接口以及其他服务1. Command2. IQuery查询3. 当前时间服务接口4. 邮件发送服务接口 1.2 ReserveBooking Command1. 处理传入的参数2. ReserveBookingCommandHandler3. BookingReservedDomainEvent 1.3 Query使用Sql查询1. 创…

详解Redis

一.Redis的基本概念 首先,什么是Redis? Redis(Remote Dictionary Server)是一个开源的、高性能的键值对内存数据库,常被用作缓存、消息队列、分布式锁等。 二.Redis的基本数据类型 1. 字符串(String&am…

智慧医院的可视化变革:可视化工具助力数字化转型

在科技飞速发展的当下,智慧医院已从概念逐步落地,深刻改变着传统医疗模式。它借助互联网、数字孪生及人工智能等前沿技术,在医疗服务领域掀起革新,涵盖面向医务人员的“智慧医疗”、面向患者的“智慧服务”以及面向医院的“智慧管…

Ubuntu Linux系统配置账号无密码sudo

在Linux系统中,配置无密码sudo可以通过修改sudoers文件来实现。以下是具体的配置步骤 一、编辑sudoers文件 输入sudo visudo命令来编辑sudo的配置文件。visudo是一个专门用于编辑sudoers文件的命令,它会在保存前检查语法错误,从而防止可能的…

graphviz和dot绘制流程图

graphviz和dot绘制流程图 指令 1.写后端需求文档 2.用中文输出结果 3.必须详细全面 4.必须搭配相关流程图step1:下载graphviz,https://graphviz.org/download/ step2:安装,记得添加环境变量 step3:验证是否安装成功 dot --versio…

MongoDB常用操作示例

以下是基于 MongoDB Shell 的完整操作示例,覆盖数据库管理、集合操作、文档处理、聚合分析、索引管理等核心功能,并结合实际场景说明。所有示例均结合搜索结果中的技术要点整理而成。 一、连接与配置管理 1. 启动 MongoDB Shell 并连接实例 # 默认连接…

C++ 模板方法模式详解与实例

模板方法模式概念​ 模板方法模式(Template Method Pattern)属于行为型设计模式,其核心思想是在一个抽象类中定义一个算法的骨架,而将一些步骤延迟到子类中实现。这样可以使得子类在不改变算法结构的情况下,重新定义算法中的某些步骤。它通过继承机制,实现代码复用和行为…

MySQL基础关键_012_事务

目 录 一、概述 二、ACID 四大特性 三、MySQL 事务 四、事务隔离级别 1.说明 2.现象 (1)脏读 (2)不可重复读 (3)幻读 3.查看隔离级别 4.设置隔离级别 5.隔离级别 (1)初始…

Hutool中的Pair类详解

1. Pair类概述 Hutool工具库中的Pair类是一个简单的键值对数据结构,用于存储两个相关联的对象。它类似于Map的Entry,但更加轻量级,适用于需要临时存储两个相关联数据的场景。 2. Pair类的主要特点 简单轻量:不依赖复杂的数据结…

02-GBase 8s 事务型数据库 客户端工具dbaccess

dbaccess概述 数据库产品通常会提供一个命令行客户端工具。 数据库厂商 命令行客户端 Oracle sqlplus MySQL mysql Marladb mysql GBase 8s dbaccess Kingbase ES ksql DM8 disql dbaccess 是 GBase 8s 数…

手撕基于AMQP协议的简易消息队列-8(单元测试的编写)

在MQTest中编写模块的单元测试 在MQTest中编写makefile文件来编译客户端模块 all:Test_FileHelper Test_Exchange Test_Queue Test_Binding Test_Message Test_VirtualHost Test_Route Test_Consumer Test_Channel Test_Connection Test_VirtualHost:Test_VirtualHost.cpp ..…

Spark 之 metrics

peak memory.//sql/core/src/main/scala/org/apache/spark/sql/execution/aggregate/HashAggregateExec.scala: “peakMemory” -> SQLMetrics.createSizeMetric(sparkContext, “peak memory”), .//sql/core/src/main/scala/org/apache/spark/sql/execution/SortExec.scal…

HTTP/HTTPS协议(请求响应模型、状态码)

目录 HTTP/HTTPS协议简介 HTTP协议 HTTPS协议 请求 - 响应模型 HTTP请求 (二)HTTP响应 HTTPS协议与HTTP协议在请求 - 响应模型中的区别 HTTP/HTTPS协议简介 HTTP协议 定义 HTTP(HyperText Transfer Protocol)即超文本传输…

OpenHarmony 5.0 切换已连接过的wifi切换失败

目录 1.背景 2.流程分析 3.方案 1.背景 在OpenHarmony 5.0的设置中,输入密码进行wifi连接可以正常连接,然后多个已经连接过的wifi进行切换发现大概率切换失败 2.流程分析 wifi连接过程其实是先进行断开当前的wifi连接,然后再连接另一个wifi,如下: 虽然上述流程看起来没…