python红酒数据提取与分析

 

 # 使用的数据来源是UCI机器学习库中的红酒数据集(Wine Quality Data Set)。

import pandas as pd

import matplotlib.pyplot as plt



# 读取红酒数据集

url = "https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-red.csv"

data = pd.read_csv(url, delimiter=";")



# 打印数据集前五行

print(data.head())



# 统计红酒质量的分布情况

quality_counts = data['quality'].value_counts()

print(quality_counts)



# 绘制红酒质量的直方图

plt.hist(data['quality'], bins=6)

plt.xlabel('Quality')

plt.ylabel('Count')

plt.title('Distribution of Wine Quality')

plt.show()



# 计算各个特征与红酒质量之间的相关性

correlations = data.corr()['quality'].drop('quality')

print(correlations)



# 绘制各个特征与红酒质量之间的散点图

for feature in correlations.index:

    plt.scatter(data[feature], data['quality'])

    plt.xlabel(feature)

    plt.ylabel('Quality')

    plt.show()

# 数据来源:UCI机器学习库中的红酒数据集(Wine Quality Data Set),

# 可以通过以下链接获取数据:https://archive.ics.uci.edu/ml/datasets/wine+quality

目录

引言

数据集介绍

数据集分析

# 读取红酒数据集

# 打印数据集前五行

# 统计红酒质量的分布情况

# 绘制红酒质量的直方图

# 计算各个特征与红酒质量之间的相关性

# 绘制各个特征与红酒质量之间的散点图


红酒是一种备受欢迎的酒类饮品,已经有数百年的历史。红酒的质量是影响消费者购买决策的重要因素之一。因此,对于生产高质量的红酒,以及了解红酒质量与各个特征之间的关系,是非常重要的。本文将介绍如何使用 语言和Pandas库进行红酒数据集的分析和可视化。

数据集介绍

本文使用的数据集是来自UCI机器学习库的红酒数据集。该数据集包含1599个红酒样本,每个样本有11个特征,其中包括固定酸度、挥发性酸度、柠檬酸、残糖、氯离子、游离二氧化硫、总二氧化硫、密度、酸碱度、酒精含量和质量。其中,质量是通过专家品鉴评分的结果,分数在0到10之间。

数据集分析

首先,我们使用Pandas库读取红酒数据集,并打印前五行数据,以便了解数据集的结构和内容。

import pandas as pd

# 读取红酒数据集

url = "https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-red.csv"

data = pd.read_csv(url, delimiter=";")

# 打印数据集前五行

print(data.head())

```

输出结果如下:

```

   fixed acidity  volatile acidity  citric acid  residual sugar  chlorides  \

0            7.4              0.70         0.00             1.9      0.076   

1            7.8              0.88         0.00             2.6      0.098  

2            7.8              0.76         0.04             2.3      0.092  

3           11.2              0.28         0.56             1.9      0.075  

4            7.4              0.70         0.00             1.9      0.076  

   free sulfur dioxide  total sulfur dioxide  density    pH  sulphates  \

0                 11.0                  34.0   0.9978  3.51       0.56  

1                 25.0                  67.0   0.9968  3.20       0.68  

2                 15.0                  54.0   0.9970  3.26       0.65  

3                 17.0                  60.0   0.9980  3.16       0.58  

4                 11.0                  34.0   0.9978  3.51       0.56  

   alcohol  quality 

0      9.4        5 

1      9.8        5 

2      9.8        5 

3      9.8        6 

4      9.4        5 

```

可以看到,数据集共有11个特征和1个目标变量(quality),其中特征包括固定酸度、挥发性酸度、柠檬酸、残糖、氯离子、游离二氧化硫、总二氧化硫、密度、酸碱度、酒精含量。目标变量quality是一个整数,代表红酒的质量评分。

接下来,我们可以统计红酒质量的分布情况,以便了解红酒质量评分的整体情况。

# 统计红酒质量的分布情况

quality_counts = data['quality'].value_counts()

print(quality_counts)

```

输出结果如下:

```

5    681

6    638

7    199

4     53

8     18

3     10

Name: quality, dtype: int64

```

可以看到,红酒的质量评分主要集中在5、6、7分之间,其中5分和6分的红酒数量最多,分别占总数的42.6%和39.9%。

接下来,我们可以使用Matplotlib库绘制红酒质量的直方图,以便更直观地了解红酒质量分布情况。

```

import matplotlib.pyplot as plt

# 绘制红酒质量的直方图

plt.hist(data['quality'], bins=6)

plt.xlabel('Quality')

plt.ylabel('Count')

plt.title('Distribution of Wine Quality')

plt.show()

从直方图可以看出,红酒的质量评分主要集中在5、6、7分之间,符合之前的统计结果。此外,红酒质量评分的分布呈现出正态分布的形态。

# 计算各个特征与红酒质量之间的相关性

接下来,我们可以计算各个特征与红酒质量之间的相关性,以便了解不同特征对红酒质量的影响程度。

correlations = data.corr()['quality'].drop('quality')

print(correlations)

输出结果如下:

```

fixed acidity           0.124052

volatile acidity       -0.390558

citric acid             0.226373

residual sugar          0.013732

chlorides              -0.128907

free sulfur dioxide    -0.050656

total sulfur dioxide   -0.185100

density                -0.174919

pH                     -0.057731

sulphates               0.251397

alcohol                 0.476166

Name: quality, dtype: float64

```

可以看到,各个特征与红酒质量之间的相关性不同。其中,挥发性酸度、氯离子、总二氧化硫和密度与红酒质量之间的相关性较弱,而酒精含量与红酒质量之间的相关性最强。

# 绘制各个特征与红酒质量之间的散点图

接下来,我们可以绘制各个特征与红酒质量之间的散点图,以便更直观地了解它们之间的关系。

for feature in correlations.index:

    plt.scatter(data[feature], data['quality'])

    plt.xlabel(feature)

    plt.ylabel('Quality')

    plt.show()

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值