# 使用的数据来源是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()