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

【数据可视化案列】白葡萄酒质量数据的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)葡萄酒质量较高。箱线图分析进一步证实了这些特征与质量之间的关系。聚类分析虽然未直接用于质量预测,但揭示了数据中的潜在模式,为深入理解葡萄酒质量提供了有价值的见解。这些发现对酿酒师和消费者在选择和评价葡萄酒时具有重要的指导意义。


http://www.kler.cn/a/450805.html

相关文章:

  • 大恒相机开发(2)—Python软触发调用采集图像
  • Linux挖矿程序排查
  • 今日总结 2024-12-24
  • http协议的状态码
  • Redis+注解实现限流机制(IP、自定义等)
  • alertmanager告警持久化方案:alertsnitch
  • uniapp实现获取用户定位信息、手机号信息、蓝牙、设备、相册、相机、声音等,请你完善展示所有信息
  • 用VBA将word文档处理成支持弹出式注释的epub文档可用的html内容
  • Docker Compose 安装 Harbor
  • vue3标签中的ref属性如何使用$refs获取元素
  • postman关联接口用于登录(验证码会变情况)
  • QT:QLabel的LED透明跑马灯
  • 《信管通低代码信息管理系统开发平台》Linux环境安装说明
  • es 3期 第18节-分页查询使用避坑的一些事
  • UML 建模实验
  • 全国硕士研究生入学考试(考研)择校择专业之择校主要因素
  • 【开源】一款基于Vue3 + WebRTC + Node + SRS + FFmpeg搭建的直播间项目
  • 【AI日记】24.12.24 kaggle 比赛 2-12
  • 计算机毕业设计PySpark+Hadoop中国城市交通分析与预测 Python交通预测 Python交通可视化 客流量预测 交通大数据 机器学习 深度学习
  • 【GIS教程】使用GDAL实现栅格转矢量(GeoJSON、Shapefile)- 附完整代码
  • 中职计算机网络技术理实一体化实训室建设方案
  • 把一个Vue项目的页面打包后再另一个项目中使用
  • 怎样配备公共配套设施,才能让啤酒酿造流程高效环保?
  • 【Python】理解Python的__slots__:节省内存和提升性能
  • 【机器学习案列】使用随机森林(RF)进行白葡萄酒质量预测
  • 高级技术文章:使用 Kotlin 和 Unirest 构建高效的 Facebook 图像爬虫