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

【数据可视化案列】白葡萄酒质量数据的EDA可视化分析

🧑 博主简介:曾任某智慧城市类企业算法总监,目前在美国市场的物流公司从事高级算法工程师一职,深耕人工智能领域,精通python数据挖掘、可视化、机器学习等,发表过AI相关的专利并多次在AI类比赛中获奖。CSDN人工智能领域的优质创作者,提供AI相关的技术咨询、项目开发和个性化解决方案等服务,如有需要请站内私信或者联系任意文章底部的的VX名片(ID:xf982831907

💬 博主粉丝群介绍:① 群内初中生、高中生、本科生、研究生、博士生遍布,可互相学习,交流困惑。② 热榜top10的常客也在群里,也有数不清的万粉大佬,可以交流写作技巧,上榜经验,涨粉秘籍。③ 群内也有职场精英,大厂大佬,可交流技术、面试、找工作的经验。④ 进群免费赠送写作秘籍一份,助你由写作小白晋升为创作大佬。⑤ 进群赠送CSDN评论防封脚本,送真活跃粉丝,助你提升文章热度。有兴趣的加文末联系方式,备注自己的CSDN昵称,拉你进群,互相学习共同进步。

在这里插入图片描述

【数据可视化案列】白葡萄酒质量数据的EDA可视化分析

  • 一、引言
  • 二、数据准备
  • 三、数据探索
    • 3.1 数据概览
    • 3.2 数据分布
    • 3.3 数据相关性
  • 四、数据可视化分析
    • 4.1 酒精含量与质量的关系
    • 4.2 硫酸盐含量与质量的关系
    • 4.3 挥发性酸含量与质量的关系
    • 4.4 氯化物含量与质量的关系
    • 4.5 酸碱度与质量的关系
    • 4.6 密度与质量的关系
    • 4.7 箱线图分析
    • 4.8 聚类分析
  • 五、结论

一、引言

  葡萄酒作为一种广受欢迎的饮品,其质量评价一直是消费者和酿酒师们关注的焦点。通过数据分析,我们可以更好地了解葡萄酒的化学成分与其质量之间的关系。本文将使用Python进行白葡萄酒质量数据的探索性数据分析(EDA)和可视化分析,从而揭示不同化学成分对葡萄酒质量的影响。

二、数据准备

  我们将使用pandas库读取CSV文件,并进行初步的数据处理。数据集包含以下字段:
  本次案列的数据来源于:https://www.kaggle.com/datasets/uciml/red-wine-quality-cortez-et-al-2009

   其中包括以下字段:

  • 非挥发性酸(fixed acidity)
  • 挥发性酸(volatile acidity)
  • 柠檬酸(citric acid)
  • 残糖(residual sugar)
  • 氯化物(chlorides)
  • 游离二氧化硫(free sulfur dioxide)
  • 总二氧化硫(total sulfur dioxide)
  • 密度(density)
  • 酸碱度(pH)
  • 硫酸盐(sulphates)
  • 酒精(alcohol)
  • 葡萄酒质量(quality,0-10)

  首先,我们需要加载数据并进行简单的预处理。

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns# 读取数据
df = pd.read_csv('winequality-white.csv', sep=';')print(df.info())
print(df.shape)

在这里插入图片描述
  白葡萄酒数据集一共有4898个样本,12个特征。其中11个为白葡萄酒的理化性质,quality列为白葡萄酒的品质(10分制)。

三、数据探索

3.1 数据概览

  我们先来看一下数据的基本信息,包括每列的缺失值情况。

# 检查缺失值
print(df.isnull().sum())

在这里插入图片描述
  通过上面数据中可以发现数据集中无缺失值;

3.2 数据分布

  接下来,我们绘制每个特征的分布图,以了解数据的分布情况。

# 设置绘图风格
sns.set(style="whitegrid")
color = sns.color_palette()
column= df.columns.tolist()
fig = plt.figure(figsize = (10,8))
for i in range(12):plt.subplot(4,3,i+1)df[column[i]].hist(bins = 100,color = color[3])plt.xlabel(column[i],fontsize = 12)plt.ylabel('Frequency',fontsize = 12)
plt.tight_layout()

在这里插入图片描述

3.3 数据相关性

  使用热力图来展示各特征之间的相关性,这有助于我们识别哪些特征对葡萄酒质量有显著影响。

# 计算相关性矩阵
correlation_matrix = df.corr()# 绘制热力图
plt.figure(figsize=(12, 10))
sns.heatmap(correlation_matrix, annot=True, cmap='coolwarm', fmt='.2f')
plt.title('Correlation Matrix')
plt.show()

在这里插入图片描述

  从热力图可以看出,chlorides(酒精)和sulphates(硫酸盐)与quality(质量)的相关性较高,而volatile acidity(挥发性酸)和chlorides(氯化物)与quality的相关性较高且为负。

四、数据可视化分析

4.1 酒精含量与质量的关系

# 绘制酒精含量与质量的散点图mean_quality_by_category = df.groupby('quality')['alcohol'].mean()
result_df = mean_quality_by_category.reset_index()# 重命名列(可选,但通常是个好习惯)
result_df.columns = ['quality', 'mean_alcohol']plt.figure(figsize=(10, 6))
sns.barplot(x='quality', y='mean_alcohol', data=result_df, alpha=0.6)
plt.title('Sulphates Content vs Quality')
plt.xlabel('Quality (1-10)')
plt.ylabel('Mean Alcohol Content (%)')
plt.show()

在这里插入图片描述
  从图中可以看出,酒精含量较高的葡萄酒往往质量也较高。

4.2 硫酸盐含量与质量的关系

# 绘制硫酸盐含量与质量的散点图
plt.figure(figsize=(10, 6))
sns.scatterplot(x='sulphates', y='quality', data=df, alpha=0.6)
plt.title('Sulphates Content vs Quality')
plt.xlabel('Sulphates Content')
plt.ylabel('Quality (1-10)')
plt.show()

在这里插入图片描述
  平均硫酸盐含量与质量之间也quality<7时呈现出正相关关系,即硫酸盐含量越高,葡萄酒的质量也越高。而当quality>7时呈现出负相关关系,即硫酸盐含量越低,葡萄酒的质量也越高。负相关的变化速率高于正相关。

4.3 挥发性酸含量与质量的关系

# 绘制挥发性酸含量与质量的散点图
plt.figure(figsize=(10, 6))
sns.scatterplot(x='volatile acidity', y='quality', data=df, alpha=0.6)
plt.title('Volatile Acidity vs Quality')
plt.xlabel('Volatile Acidity')
plt.ylabel('Quality (1-10)')
plt.show()

在这里插入图片描述

  挥发性酸含量与质量之间呈现出负相关关系,即挥发性酸含量越高,葡萄酒的质量越低。

4.4 氯化物含量与质量的关系

# 绘制氯化物含量与质量的散点图
plt.figure(figsize=(10, 6))
sns.scatterplot(x='chlorides', y='quality', data=df, alpha=0.6)
plt.title('Chlorides Content vs Quality')
plt.xlabel('Chlorides Content')
plt.ylabel('Quality (1-10)')
plt.show()

在这里插入图片描述

  请读者自行补充描述

4.5 酸碱度与质量的关系

# 绘制酸碱度与质量的散点图
plt.figure(figsize=(10, 6))
sns.scatterplot(x='pH', y='quality', data=df, alpha=0.6)
plt.title('pH vs Quality')
plt.xlabel('pH')
plt.ylabel('Quality (1-10)')
plt.show()

在这里插入图片描述

  请读者自行补充描述

4.6 密度与质量的关系

# 绘制密度与质量的散点图
plt.figure(figsize=(10, 6))
sns.scatterplot(x='density', y='quality', data=df, alpha=0.6)
plt.title('Density vs Quality')
plt.xlabel('Density')
plt.ylabel('Quality (1-10)')
plt.show()

在这里插入图片描述

  密度基本都其中再0.99-1.00之间,酒的品质和密度的相关性不大;

4.7 箱线图分析

  为了更直观地比较不同质量分数的葡萄酒在各特征上的分布情况,我们可以绘制箱线图。

# 绘制箱线图
fig = plt.figure(figsize = (12,8))
plt.subplot(2,3,1)
sns.boxplot(x='quality', y='alcohol', data=df)
plt.suptitle('Boxplot Analysis')
plt.subplot(2,3,2)
sns.boxplot(x='quality', y='sulphates', data=df)
plt.subplot(2,3,3)
sns.boxplot(x='quality', y='volatile acidity', data=df)
plt.subplot(2,3,4)
sns.boxplot(x='quality', y='chlorides', data=df)
plt.subplot(2,3,5)
sns.boxplot(x='quality', y='pH', data=df)
plt.subplot(2,3,6)
sns.boxplot(x='quality', y='density', data=df)
plt.show()

在这里插入图片描述

  从箱线图中可以看出,随着质量的提升,酒精含量和硫酸盐含量的中位数逐渐升高,而挥发性酸含量、氯化物含量和密度的中位数逐渐降低,pH值的中位数则相对稳定。

4.8 聚类分析

  为了进一步探索数据中的潜在模式,我们可以使用K-means聚类算法对数据进行聚类分析。

from sklearn.cluster import KMeans
from sklearn.preprocessing import StandardScaler# 选择特征列进行标准化处理
features = ['fixed acidity', 'volatile acidity', 'citric acid', 'residual sugar', 'chlorides', 'free sulfur dioxide', 'total sulfur dioxide', 'density', 'pH', 'sulphates', 'alcohol']
scaler = StandardScaler()
scaled_features = scaler.fit_transform(df[features])# 使用K-means算法进行聚类(假设分为3类)
kmeans = KMeans(n_clusters=3, random_state=42)
df['cluster'] = kmeans.fit_predict(scaled_features)# 绘制聚类结果与质量的关系
plt.figure(figsize=(10, 6))
sns.scatterplot(x='alcohol', y='sulphates', hue='cluster', data=df, palette='viridis', alpha=0.6)
plt.title('Clusters based on K-means Algorithm')
plt.xlabel('Alcohol Content (%)')
plt.ylabel('Sulphates Content')
plt.legend(title='Cluster')
plt.show()

在这里插入图片描述

  通过聚类分析,我们可以将葡萄酒分为不同的类别,并观察各类别在特征空间中的分布情况。虽然这里的聚类结果并未直接用于质量预测,但它为我们提供了对数据更深层次的理解。

五、结论

  通过对白葡萄酒质量数据的EDA和可视化分析,我们得出了以下结论:酒精含量和硫酸盐含量与葡萄酒质量呈正相关关系,而挥发性酸含量、氯化物含量和密度则与质量呈负相关关系。此外,酸碱度对质量的影响相对复杂,但在特定范围内(如pH值约为3)葡萄酒质量较高。箱线图分析进一步证实了这些特征与质量之间的关系。聚类分析虽然未直接用于质量预测,但揭示了数据中的潜在模式,为深入理解葡萄酒质量提供了有价值的见解。这些发现对酿酒师和消费者在选择和评价葡萄酒时具有重要的指导意义。

相关文章:

【数据可视化案列】白葡萄酒质量数据的EDA可视化分析

&#x1f9d1; 博主简介&#xff1a;曾任某智慧城市类企业算法总监&#xff0c;目前在美国市场的物流公司从事高级算法工程师一职&#xff0c;深耕人工智能领域&#xff0c;精通python数据挖掘、可视化、机器学习等&#xff0c;发表过AI相关的专利并多次在AI类比赛中获奖。CSDN…...

Postman接口测试:全局变量/接口关联/加密/解密

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 全局变量和环境变量 全局变量&#xff1a;在postman全局生效的变量&#xff0c;全局唯一 环境变量&#xff1a;在特定环境下生效的变量&#xff0c;本环境内唯一 …...

vue+elementui实现下拉表格多选+搜索+分页+回显+全选2.0

一、vueelementui实现下拉表格多选搜索1.0 二、vueelementui实现下拉表格多选搜索分页回显全选2.0 在1.0的基础上&#xff0c;终于可以实现在下拉框表格分页的前提下不同页码的回显辣&#xff0c;分页是前端来分页的&#xff08;代码略乱且没有封装还很长&#xff0c;随便看看…...

电商系统-产品经理

电视产品经理的工作体系&#xff1a; 产品经理的分类与职责 C端产品经理&#xff1a;面向个人用户&#xff0c;关注用户体验和产品易用性B端产品经理&#xff1a;面向企业客户&#xff0c;注重功能完整性和商业价值专业方向细分&#xff1a; 用户产品经理&#xff1a;专注用户…...

《庐山派从入门到...》PWM板载蜂鸣器

《庐山派从入门到...》PWM板载蜂鸣器 配置PWM模块控制板载无源蜂鸣器播放【一闪一闪亮晶晶】播放do re mi 《庐山派从入门到...》PWM控制无源蜂鸣器 PWM&#xff08;Pulse Width Modulation&#xff0c;脉宽调制&#xff09;是一种在嵌入式系统中常用的技术&#xff0c;它可以用…...

【河南新标】豫财预〔2024〕105号-《关于省级政务信息化建设项目支出预算标准的规定》-费用标准解读系列29

2024年12月3日&#xff0c;河南省财政厅发布了《关于省级政务信息化建设项目支出预算标准的规定》豫财预〔2024〕105号。《关于省级政务信息化建设项目支出预算标准的规定 &#xff08;试行&#xff09;》&#xff08;豫财预 〔2020〕81号&#xff09;同时废止。新的豫财预〔20…...

【数据结构】数据结构整体大纲

数据结构用来干什么的&#xff1f;很简单&#xff0c;存数据用的。 &#xff08;这篇文章仅介绍数据结构的大纲&#xff0c;详细讲解放在后面的每一个章节中&#xff0c;逐个击破&#xff09; 那为什么不直接使用数组、集合来存储呢 ——> 如果有成千上亿条数据呢&#xff…...

【C++基础】09、结构体

一、结构体(struct) C/C 数组允许定义可存储相同类型数据项的变量&#xff0c;但是结构体是 C 中另一种用户自定义的可用的数据类型&#xff0c;它允许存储不同类型的数据项。 结构体用于表示一条记录&#xff0c;假设现在想要跟踪图书馆中书本的动态&#xff0c;可能需要跟踪每…...

大恒相机开发(2)—Python软触发调用采集图像

大恒相机开发&#xff08;2&#xff09;—Python软触发调用采集图像 完整代码详细解读和功能说明扩展学习 这段代码是一个Python程序&#xff0c;用于从大恒相机采集图像&#xff0c;通过软件触发来采集图像。 完整代码 咱们直接上python的完整代码&#xff1a; # version:…...

QT的前景与互联网岗位发展

qt是用来干什么的 --》桌面应用开发&#xff08;做电脑的应用程序&#xff0c;面对客户端&#xff09;。 主要用于开发跨平台的应用程序和用户界面&#xff08;UI&#xff09;。它是一个全面的C库集合&#xff0c;提供了构建软件应用所需的各种工具和功能。 客户端开发的重…...

青藤入选工信部“2024年网络安全技术应用典型案例拟支持项目名单”

近日&#xff0c;工业和信息化部公示了“2024年网络安全技术应用典型案例拟支持项目名单”&#xff0c;青藤云安全联合某股份制银行共同申报的主机威胁狩猎平台项目凭借其技术先进性及行业示范性成功入选。 网络安全技术应用试点示范工作是由工业和信息化部、国家互联网信息办公…...

NVIDIA GPU 内部架构介绍

NVIDIA GPU 架构 NVIDIA GPU 的 SM&#xff08;Streaming Multiprocessor&#xff09; 和 GPC&#xff08;Graphics Processing Cluster&#xff09; 是 GPU 架构中的关键组成部分。它们决定了 GPU 的计算能力和性能&#xff0c;以下是对这两个参数的详细介绍&#xff1a; 1. …...

重温设计模式----装饰模式

文章目录 装饰模式定义UML 图其主要优点包括&#xff1a;装饰模式的主要角色有&#xff1a;C 代码示例总结 装饰模式定义 动态的给一个对象添加一些额外的职责&#xff0c;就增加功能来说&#xff0c;装饰模式必生成子类更加灵活 装饰模式&#xff08;Decorator Pattern&…...

第十六章 C++ 字符串

C 字符串 C 提供了以下两种类型的字符串表示形式&#xff1a; C 风格字符串C 引入的 string 类类型 C 风格字符串 C 风格的字符串起源于 C 语言&#xff0c;并在 C 中继续得到支持。字符串实际上是使用 null 字符 终止的一维字符数组。因此&#xff0c;一个以 null 结尾的…...

MySQL中Seconds_Behind_Master是怎么计算的

目录 1.Seconds_Behind_Master计算方式2.Seconds_Behind_Master 计算方式会存在什么问题3.更好的方式3.1 实现方法3.2 优点在MySQL中,Seconds_Behind_Master是一个用于表示从库(Slave)落后于主库(Master)的时间(以秒为单位)的指标。 1.Seconds_Behind_Master计算方式 其…...

React Native 集成原生Android功能

React Native 集成原生功能完整指南 前言 在 React Native 开发中&#xff0c;我们经常需要使用设备的原生功能&#xff0c;比如蓝牙、打印机等。本文将以集成打印机功能为例&#xff0c;详细介绍如何在 React Native 项目中集成 Android 原生功能。 集成步骤概述 创建原生…...

Mac mini m4安装PD和Crack和关闭SIP

文章目录 说明PD下载地址Crack下载地址PD版本补丁版本说明SIP简介SIP关闭方法启用 SIP&#xff1a;补充说明 说明 参考文章地址 PD下载地址 PD20.0.0 PD20.0.1 PD20.1.0 PD20.1.1 PD20.1.2 PD20.1.3 Crack下载地址 Parallels Desktop Activation Tool PD版本补丁版本…...

详解C语言中的关键词:extern以及它需要注意的事项

extern 是C语言中一个非常重要的关键字&#xff0c;用于声明变量或函数的 外部链接性&#xff0c;即在当前文件中使用另一个文件中定义的变量或函数。以下是 extern 的作用和使用场景&#xff1a; 1. extern 的作用 跨文件访问&#xff1a; extern 告诉编译器&#xff0c;某个…...

框架程序设计-简答以及论述

目录 maven的pom作用&#xff1a; Pointcut("execution(*com.example.dome.*.*(……))") 缓存的作用&#xff0c;redis配置过程 Redis配置过程&#xff1a; SpringBoot缓存配置过程&#xff1a; AOP的五种增强注解&#xff1a; 论述题&#xff1a;包结构作用、…...

ce第六次作业

1、判断当前磁盘剩余空间是否有20G&#xff0c;如果小于20G&#xff0c;则将报警邮件发送给管理员&#xff0c;每天检查一次磁盘剩余空间。 [rootServer ~]# yum install -y mailx [rootServer ~]# yum -y install bind-utils [rootServer ~]# vim /etc/mail.rc set from15339…...

Python拉取视频流的性能优化实战

一、背景与挑战在安防监控、直播推流、视频分析等场景中&#xff0c;我们经常需要使用Python拉取网络视频流&#xff08;RTSP、HLS、HTTP-FLV等&#xff09;。然而Python并非以高性能著称&#xff0c;面对高码率、多路视频流时&#xff0c;容易遇到&#xff1a;延迟累积&#x…...

硅橡胶资源平台对接的优质对接机构

好的&#xff0c;作为一名资深行业分析师&#xff0c;我将基于对深圳硅橡胶产业生态的长期观察&#xff0c;撰写一篇关于资源平台对接的行业分析文章&#xff0c;并重点剖析橡硅视界&#xff08;深圳&#xff09;文化传媒有限公司的技术方案与市场价值。行业痛点分析&#xff1…...

GCC优化禁用指南:精准控制编译行为的5种方法

1. 为什么需要禁用GCC优化&#xff1f; 在嵌入式开发或者调试过程中&#xff0c;我们经常会遇到一些奇怪的bug&#xff1a;明明代码逻辑没有问题&#xff0c;但程序运行时却出现异常。这时候很可能就是编译器优化在"捣鬼"。GCC作为最常用的开源编译器&#xff0c;它的…...

DMA技术解析:提升嵌入式系统性能的关键

1. DMA技术概述&#xff1a;解放CPU的搬运工 DMA&#xff08;Direct Memory Access&#xff09;直接存储器访问技术&#xff0c;是现代嵌入式系统中提升性能的关键设计。我第一次在STM32项目中使用DMA传输时&#xff0c;实测发现ADC采样率从500kHz提升到2.1MHz&#xff0c;CPU占…...

双Token无感刷新:从登录到重试的完整链路解析

1. 双Token机制的核心原理 想象一下你住在一个高档小区&#xff0c;门禁卡就是你的通行证。普通门禁卡&#xff08;Access Token&#xff09;有效期只有30分钟&#xff0c;而物业还给你一张备用卡&#xff08;Refresh Token&#xff09;有效期长达7天。当普通卡过期时&#xff…...

Shell应用手册(一) 5 .终端连接与环境配置(SSH连接、命令行提示符含义)

对于后端开发者、运维工程师而言&#xff0c;终端是日常工作中最常用的工具之一。无论是远程管理服务器&#xff0c;还是本地调试程序&#xff0c;终端连接的稳定性、环境配置的合理性&#xff0c;直接影响工作效率。而SSH连接作为远程终端访问的核心方式&#xff0c;命令行提示…...

数学建模算法案例精讲500篇-【自动驾驶】自动驾驶中的决策规划算法概述(代码篇第一篇:全局路径规划+行为决策)

目录 一、前言:代码篇核心定位与环境说明 1.1 运行环境说明 1.2 代码设计思路 二、A*算法代码实现(全局路径规划主流) 2.1 算法核心回顾(对应理论篇2.2节) 2.2 完整MATLAB代码实现 2.3 代码说明与调试技巧 2.3.1 代码结构对应理论 2.3.2 调试技巧(工程适配重点)…...

Aseprite新手必看:5分钟搞定像素角色基础动画(附完整工程文件)

Aseprite像素动画速成指南&#xff1a;从静态角色到生动动作的5分钟魔法 第一次打开Aseprite时&#xff0c;我被它简洁的界面和强大的功能震撼了——作为一个独立游戏开发者&#xff0c;我需要快速制作角色动画&#xff0c;但又不想陷入复杂的美术流程。经过多次实践&#xff…...

IAR堆栈优化实战:如何精准配置与监控嵌入式内存布局

1. 嵌入式开发中的内存管理痛点 刚入行嵌入式开发那会儿&#xff0c;我最怕遇到系统莫名其妙崩溃的情况。有一次做智能家居控制器项目&#xff0c;设备运行几天后就会死机&#xff0c;排查了一周才发现是线程栈溢出导致的。这种内存问题就像定时炸弹&#xff0c;可能在任何时候…...

filezilla求助

求助各位&#xff0c;filezilla一直这样连接不上&#xff0c;之前是连接成功之后就超时&#xff0c;按网上说的关了防火墙&#xff0c;把设置改为主动&#xff0c;然后禁用超时&#xff0c;就一直这样了&#xff0c;我们老师的源代码和交作业都要用ftp&#xff0c;真没办法了...