探索红葡萄酒的质量

探索性的数据价值深度挖掘的一般逻辑

背景和目的——数据获取——数据分析预处理——算法模型运用——模型结果验证——结果实际应用

模型构建

数据获取及处理——特征提取——训练数据构建模型——模型结果构建及应用

数据的背景

这个数据集包含1,599 种红酒,以及 11 个关于酒的化学成分的变量。有⾄少 3 名葡萄酒专家对每种酒的质量进⾏了评分,分数在 0(⾮常差)和10(⾮常好)之间。

目的:探索哪个化学成分影响红葡萄酒的质量?

单变量分析部分

查看数据变量个数据数量

 [1] 1599   13

数据有13个特征和1599种红葡萄酒的数据。

查看数据中的变量

##  [1] "X"                    "fixed.acidity"        "volatile.acidity"    
##  [4] "citric.acid"          "residual.sugar"       "chlorides"           
##  [7] "free.sulfur.dioxide"  "total.sulfur.dioxide" "density"             
## [10] "pH"                   "sulphates"            "alcohol"             
## [13] "quality"

以上为11个红葡萄酒的化学成分

查看各特征的统计信息

##        X          fixed.acidity   volatile.acidity  citric.acid   
##  Min.   :   1.0   Min.   : 4.60   Min.   :0.1200   Min.   :0.000  
##  1st Qu.: 400.5   1st Qu.: 7.10   1st Qu.:0.3900   1st Qu.:0.090  
##  Median : 800.0   Median : 7.90   Median :0.5200   Median :0.260  
##  Mean   : 800.0   Mean   : 8.32   Mean   :0.5278   Mean   :0.271  
##  3rd Qu.:1199.5   3rd Qu.: 9.20   3rd Qu.:0.6400   3rd Qu.:0.420  
##  Max.   :1599.0   Max.   :15.90   Max.   :1.5800   Max.   :1.000  
##  residual.sugar     chlorides       free.sulfur.dioxide
##  Min.   : 0.900   Min.   :0.01200   Min.   : 1.00      
##  1st Qu.: 1.900   1st Qu.:0.07000   1st Qu.: 7.00      
##  Median : 2.200   Median :0.07900   Median :14.00      
##  Mean   : 2.539   Mean   :0.08747   Mean   :15.87      
##  3rd Qu.: 2.600   3rd Qu.:0.09000   3rd Qu.:21.00      
##  Max.   :15.500   Max.   :0.61100   Max.   :72.00      
##  total.sulfur.dioxide    density             pH          sulphates     
##  Min.   :  6.00       Min.   :0.9901   Min.   :2.740   Min.   :0.3300  
##  1st Qu.: 22.00       1st Qu.:0.9956   1st Qu.:3.210   1st Qu.:0.5500  
##  Median : 38.00       Median :0.9968   Median :3.310   Median :0.6200  
##  Mean   : 46.47       Mean   :0.9967   Mean   :3.311   Mean   :0.6581  
##  3rd Qu.: 62.00       3rd Qu.:0.9978   3rd Qu.:3.400   3rd Qu.:0.7300  
##  Max.   :289.00       Max.   :1.0037   Max.   :4.010   Max.   :2.0000  
##     alcohol         quality     
##  Min.   : 8.40   Min.   :3.000  
##  1st Qu.: 9.50   1st Qu.:5.000  
##  Median :10.20   Median :6.000  
##  Mean   :10.42   Mean   :5.636  
##  3rd Qu.:11.10   3rd Qu.:6.000  
##  Max.   :14.90   Max.   :8.000
质量的柱状图

查看质量的统计信息

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   3.000   5.000   6.000   5.636   6.000   8.000

其中最差的葡萄酒质量是3,最好的葡萄酒质量是8,大多数的葡萄酒质量都在5和6之间;

查看红葡萄酒中 酒精成分的分布


酒精的直方图

从上图看出酒精成分的分布向左偏,将酒精成分转为正态分布——长尾数据转为近似正态分布的数据得下图


转化后的酒精直方图

查看酒精成分的统计信息
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    8.40    9.50   10.20   10.42   11.10   14.90

从上图可以看出大多数酒精度在9-11之间,酒精度较高的酒逐渐减少

查看红葡萄酒中糖量的分布

糖量的分布

从图中可以看出,糖量有一些异常值,对异常值进行处理得下图

异常值处理后的糖量分布

从图中可以看出糖量大部分都在1-4之间,糖量越大,就越少。

查阅资料刻制,糖酸比是影响评价指标的一个重要因素,糖酸比指总糖和总算的比值。所以我将定义一个新的变量糖酸比。
糖量/酸度

对异常值进行处理,将图放大

糖酸比直方图
糖酸比直方图

对糖酸比通过log转换为近似正态分布的数据。

查看糖酸比的统计信息

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.1125  0.2316  0.2727  0.3140  0.3309  2.4821

糖酸比大多数都在。023·0.33之间,中位数是0.27

查看酸度的分布


酸度的分布

查看酸度的统计信息

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    4.60    7.10    7.90    8.32    9.20   15.90

大部分酒固定的酸度在7到9之间。

挥发性酸的分布
挥发性酸的分布

查看统计信息

##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.1200  0.3900  0.5200  0.5278  0.6400  1.5800

挥发性酸越大酒越多,当挥发性酸到0.4后有个下降,挥发性酸在0.6的酒最多,之后挥发性酸越大的酒越少

查看柠檬酸的分布


柠檬酸的分布
柠檬酸的分布
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##   0.000   0.090   0.260   0.271   0.420   1.000

没有柠檬酸的酒最多,其次是柠檬酸在0.5的酒。

查看氯化物的分布


氯化物的分布1
氯化物的分布2
    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
 0.01200 0.07000 0.07900 0.08747 0.09000 0.61100

氯化物去除过小过大的数据后,氯化物的含量大多数都在0.07-0.09之间,含量最低是0.012,含量最高是0.611。

查看氧化硫的分布


氧化硫的分布-1
氧化硫的分布-2
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.00    7.00   14.00   15.87   21.00   72.00

二氧化硫在6的酒最多,随后随着二氧化硫越多,酒越少。

查看pH值的分布


pH的分布

pH呈现很好的正态分布,大多数都位于3.2-3.5之间,呈现酸性,整个pH值变化不大。

单变量分析小结 在数据集中有1599种红酒,具有13个特征,即13个输入变量,包括: x,固定酸度、挥发酸度、柠檬酸、残糖、氯化物、游离二氧化硫、二氧化硫总量、密度、pH、硫酸盐、酒精。以及一个有序因子,即输出变量质量。 其中质量分为3、4、5、6、7、8这几个级别。 其他意见; 大多数红酒的评级在5、6、7之间。

酒精含量的中位数为10.2。 * PH值大多位于3.2-3.5之间。 数据集中主要特征实质量和酒精,数据集中异常值,利用log()或者sqrt()手段将长尾数据转为近似正态分布的数据,这是为了更好的看出该数据的特征。

数据集中的主要特征是质量和酒精,我想确定那些特征影响了酒的质量,我怀疑酒精度和其他变量的一些组合一起影响了红酒的质量。

酒精度、硫酸盐、pH、挥发性酸等会影响红酒的质量,我认为酒精浓度和硫酸盐对质量影响最大。

我利用红酒的糖量和酸度创建了一个变量糖酸比。

在进行氯化物绘图去除了过大的数据,因为那部分氯化物似乎太大了,在进行糖酸比绘图的时候,将长尾数据通过log转换成近似正态分布的数据,对挥发性酸也进行了对数转换,转换后挥发性酸分布呈双峰态,挥发性酸在0.4和0.6最多,在0.5有个大的降低,将数据进行对数转换是为了更好的看出该数据的特征。

在散点图矩陈中,每对变量之间有一个散点图网格

散点图矩陈不适用于分类变量,当变量分类时用箱线图或直方图

双变量分析

所有变量的组图

从图中可以看出,酒精似乎和质量的相关性较强,

具体看看酒精和质量的关系

查看质量与酒精浓度的图

酒精与质量

抖动数据——更容易看出数据的趋势

酒精与质量

酒精浓度和质量分析

酒精浓度和质量

随着酒精浓度的增加,似乎一个酒精浓度能对应很多个质量的酒精,但将其过度绘制(抖动)后,能看出酒精和质量具有一定的相关性。

经过散点图的绘制,发现单纯的散点图并不能特别清楚的表现变量之间的关系,而质量又是分等级的,所以将其作为分类变量,进行进一步的处理。

酒精浓度和质量
##  [1] "X"                    "fixed.acidity"        "volatile.acidity"    
##  [4] "citric.acid"          "residual.sugar"       "chlorides"           
##  [7] "free.sulfur.dioxide"  "total.sulfur.dioxide" "density"             
## [10] "pH"                   "sulphates"            "alcohol"             
## [13] "quality"              "ratio"
糖酸与质量

从图中可以看出 糖酸比几乎根质量没有关系。

质量与硫酸盐
质量与pH
二氧化硫与质量
二氧化硫与质量
质量与糖酸

建立红酒质量的线性模型

## 
## Calls:
## m1: lm(formula = I(quality) ~ I(alcohol), data = pp_subset)
## m2: lm(formula = I(quality) ~ I(alcohol) + pH, data = pp_subset)
## m3: lm(formula = I(quality) ~ I(alcohol) + pH + volatile.acidity, 
##     data = pp_subset)
## m4: lm(formula = I(quality) ~ I(alcohol) + pH + volatile.acidity + 
##     citric.acid, data = pp_subset)
## m5: lm(formula = I(quality) ~ I(alcohol) + pH + volatile.acidity + 
##     citric.acid + residual.sugar, data = pp_subset)
## 
## ======================================================================
##                        m1        m2        m3        m4        m5     
## ----------------------------------------------------------------------
##   (Intercept)         -0.125     2.426     2.269     2.672     2.678  
##                                                                       
##   I(alcohol)           0.361     0.386     0.330     0.334     0.334  
##                                                                       
##   pH                            -0.850    -0.422    -0.529    -0.529  
##                                                                       
##   volatile.acidity                        -1.279    -1.361    -1.357  
##                                                                       
##   citric.acid                                       -0.180    -0.175  
##                                                                       
##   residual.sugar                                              -0.004  
##                                                                       
## ----------------------------------------------------------------------
##   R-squared                                                           
##   adj. R-squared                                                      
##   sigma                                                               
##   F                                                                   
##   p                                                                   
##   Log-likelihood                                                      
##   Deviance             0.000     0.000     0.000     0.000     0.000  
##   AIC                                                                 
##   BIC                                                                 
##   N                 1599      1599      1599      1599      1599      
## ======================================================================

从上述图中可以看出,质量会随着酒精浓度,硫酸盐的添加量以及pH值的变化而变化,整体而言酒精浓度越高质量越高,在质量为5的时候酒精浓度反而下降了,因为这是专家主观测试而且还有很多异常值,所以忽略这个下降,

双变量分析小结

观察到质量与酒精度、硫酸盐的含量呈现正比关系,而与pH值呈现反比关系。

质量与酒精度有较强的相关性。

观察到糖酸比这个属性似乎与质量没有关联。并且糖量这个属性似乎与质量也没有什么关系。

发现最强的关系是红酒质量与酒精度成较强的正比关系。

多变量分析

image.png

从图中可知质量几乎不受 酒精量和密度的共同影响。

image.png

在这张图中,当酒精浓度较低时,不管挥发性酸如何变化,质量都不高,当挥发性酸比较高时,不管酒精浓度如何变化,质量也不会高,只有在两者都在比较好的区间内,质量才会比较好。

绘制其他图

image.png

从图中可知当柠檬酸较低时,不管酒精量怎么变化,质量都不高。

image.png
image.png
image.png
image.png
image.png

建立线性模型

## 
## Calls:
## m6: lm(formula = I(quality) ~ I(alcohol), data = pp_subset)
## m7: lm(formula = I(quality) ~ I(alcohol) + pH + alcohol, data = pp_subset)
## m8: lm(formula = I(quality) ~ I(alcohol) + pH + alcohol + sulphates, 
##     data = pp_subset)
## m9: lm(formula = I(quality) ~ I(alcohol) + pH + alcohol + sulphates + 
##     volatile.acidity, data = pp_subset)
## m10: lm(formula = I(quality) ~ I(alcohol) + pH + alcohol + sulphates + 
##     volatile.acidity, data = pp_subset)
## 
## ======================================================================
##                        m6        m7        m8        m9       m10     
## ----------------------------------------------------------------------
##   (Intercept)         -0.125     2.426     1.345     1.493     1.493  
##                                                                       
##   I(alcohol)           0.361     0.386     0.367     0.321     0.321  
##                                                                       
##   pH                            -0.850    -0.635    -0.306    -0.306  
##                                                                       
##   sulphates                                0.868     0.635     0.635  
##                                                                       
##   volatile.acidity                                  -1.156    -1.156  
##                                                                       
## ----------------------------------------------------------------------
##   R-squared                                                           
##   adj. R-squared                                                      
##   sigma                                                               
##   F                                                                   
##   p                                                                   
##   Log-likelihood                                                      
##   Deviance             0.000     0.000     0.000     0.000     0.000  
##   AIC                                                                 
##   BIC                                                                 
##   N                 1599      1599      1599      1599      1599      
## ======================================================================

从以上图可以看出,三个变量之间没有明显的关系,在挥发性酸和酒精浓度极高或极低的时候,基本上评分就取决于这两者。在只有在两者都居中时,评分才会收到其他因素的影响。因此,专家的评分可能是根据以下的线索,当某一变量极高或极低时专家才能明细识别出受到那个变量的影响。

看个变量之间的相关性,看所选特征占质量变化的比
project_data(mtcars)
dp<-mtcars
scaler<-function(x){
(x-min(x))/(max(x)-min(x))
}
cd<-scaler(project_data)
cor(cd$quality,cd[,])

多变量分析小结

第三变量的加入对最后的判断似乎影响不大,只有其中某个值偏大或偏小的时候,评分才会受到这个值的影响,

我认为只有某一项特征偏高或偏低时,质量才会受到影响,因为质量评分是专家评估的,而专家评分我认为只有某个值偏高或偏低时 专家才会敏锐的察觉到,多变量分析证实了我的猜测。

用数据集建立了一个线性模型从质量和酒精度开始。

最终图的总结

image.png

大部分评分都在中间的5和6之间,相对较低和较高的评分都比较小,大部分酒都没有突出的地方。

图2

image.png
image.png

具有较高质量的红酒有较高的酒精浓度或较低的挥发性,而低质量的红酒则酒精浓度比较低,或挥发性酸比较高

图3

image.png

这图显示单一变量的影响远远大于两个变量的共同影响,只有酒精浓度不低,挥发性酸不高的情况下,质量才会比较不错。

反思总结

红酒数据集中有12个变量,1599瓶红酒信息,一开始进行了每个变量的分析,然后把其中一些变量和质量放在一起分析,最后进行了两个变量和红酒质量的分析,试图找出其中的相关性.在进行双变量分析的时候开始用的散点图进行分析,发现质量这个变量时分类变量没能很好的发现变量之间的关系,改成箱线图进行分析,双变量之间的相互关系就有了一个比较清晰表示的图,在进行多变量分析的时候,发现不管那三个变量,都没有很清晰的关系。在分析过程中对数据分析流程有了一定的了解如单变量——双变量——多变量,对变量分析也有了一些了解如对项目背景的了解找到主要特征变量进行分析。

对于这个数据因为红酒质量是专家评估的我认为这个质量只能说明差的酒质量评分不会高,好的酒质量评分不会差,从这点出发,我会关注评分好的酒和差的酒找出影响它们的主要因素。

补充 没有评估最后一个线性模型的效果,这里应该标准化所有变量转为0-1的值,再求每个变量跟质量的相关性就可以得知所选择的特征占质量的变化比,这个项目数据处理后首先查看和排序每个变量跟质量的相关性会对后面选择的变量分析有帮助。

对于分类变量,使用卡方检验查看自变量与因变量之间的关系:
卡方值越大,说明相关性越小
参考文章-https://www.jianshu.com/p/a425acdaf77e

数据集-https://github.com/udacity/new-dand-advanced-china/blob/master/%E6%8E%A2%E7%B4%A2%E6%80%A7%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/%E9%A1%B9%E7%9B%AE/%E6%8E%A2%E7%B4%A2%E6%80%A7%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90_%E6%95%B0%E6%8D%AE%E9%9B%86.md

源代码-https://www.jianshu.com/p/9b0abbfd09ef

参考-http://blog.csdn.net/qq_16365849/article/details/52734097

你可能感兴趣的:(探索红葡萄酒的质量)