1. 明確需求和目的
以葡萄酒類型為標簽,分為白葡萄酒和紅葡萄酒。比較這兩種葡萄酒的差別並選取葡萄酒的化學成分:固定酸度、揮發性酸度、檸檬酸、氯化物、游離二氧化硫、總硫度、密度、PH值、硫酸鹽、酒精度數共11個,針對酒的各類化學成分建立線性回歸模型,從而預測該葡萄酒的質量評分。
2. 數據收集
數據集為“winequality-both.csv",共有6497條數據,共13個特征.
3. 數據預處理
3.1 數據整合
3.1.1 加載相關庫和數據集
使用的庫有:pandas、numpy、matplotlib、seaborn、statsmodels
使用的數據集:winequality-both.csv
3.1.2 數據概覽
從上圖可以看出特征和質量評分的均值和方差,分位數等,其中,質量評分的均值為5.818378。
3.2 數據清洗
3.2.1 列名重命名
從上面發現列名不符合Python的命名規范,對列名進行一下重命名,采用下划線命名法:
3.2.2 數據類型處理
查看各個列的數據類型:
從上圖可以看出,除了葡萄酒的type位object類型,其余特征的數據類型都為float型,沒有問題,所以不需要進行數據類型處理。
3.2.3 缺失值處理
查看缺失值情況:
發現沒有缺失值,所以不需要進行缺失值處理。
3.2.4 異常值處理
簡單查看一下是否有異常值:
沒發現明顯的異常值,不需要進行處理。
4. 數據分析
4.1 質量評分分析
4.1.1 質量評分的頻數統計
可以看出質量評分為3-9分,其中質量評分為6的數量是最多的,其次是評分為5, 質量評分為9的數量是最少的。
4.1.2 質量評分的描述性統計
按葡萄酒的類型分組,分為兩組,:紅葡萄酒和白葡萄酒。分別打印出兩組葡萄酒的質量的摘要統計量。
可以看出紅葡萄酒和白葡萄酒的數據量相差很大,但均值、最值等都相差不大。
4.1.3 繪制質量評分的直方圖
上圖顯示了不同類型葡萄酒的質量評分密度條形圖,可以發現葡萄酒的質量評分大部分集中在5-7分,評分為9的幾乎沒有。從對比來看,白葡萄酒的質量評分普遍高於紅葡萄的質量評分,尤其是評分為6分和7分的較為顯著,白葡萄酒評分為6分和7分的數量將近是紅葡萄酒的2倍。不過,評分為5的白葡萄酒和紅葡萄酒的數量相當,甚至,紅葡萄酒更勝一籌。
4.1.4 T檢驗
對不同葡萄酒的質量評級進行t檢驗(原假設設為紅白兩種葡萄酒質量相同)
從檢驗的結果來看,p值<0.05,拒絕原假設,即認為紅白兩種葡萄酒質量有顯著性差異,並且從均值上來看白葡萄酒的平均質量等級在統計意義上大於紅葡萄酒的平均質量等級。
4.2 化學成分間的相關性分析
從各變量的相關系數來看酒精含量、硫酸酯、pH 值、游離二氧化硫和檸檬酸這些指標與質量呈現正相關,即當這些指標的含量增加時,葡萄酒的質量會提高;非揮發性酸、揮發性酸、殘余糖分、氯化物、總二氧化硫和密度這些指標與質量呈負相關即當這些指標的含量增加時,葡萄酒的質量會降低。從相關系數可以看出,對葡萄酒質量影響最大的是葡萄酒是酒精含量,其相關系數為0.444,其次是酒的密度,但酒的密度對酒的質量是負影響的。
4.3 建立線性回歸模型
4.3.1 選取樣本
因為紅葡萄酒和白葡萄酒的數據量相差很大,所以各選取200個樣本。
4.3.2 自變量標准化
4.3.3 建立回歸模型
線性回歸模型為:quality= 0.0877fixed acidity -0.2186volatile acidity -0.0159citric_acid+ 0.2072residual_sugar-0.0169chlorides+ 0.1060free_sulfur_dioxide -0.1648density-0.1402total_sulfur_dioxide+0.0706pH+0.1143sulphates+ 0.3185*alcohol+5.8184
4.4 預測
有了線性回歸模型,當給出了葡萄酒的化學成分的數據就可以預測該葡萄酒的質量評分。