姜改新
摘要:本文以UCI的Wine數(shù)據(jù)集為數(shù)據(jù)來源,該數(shù)據(jù)集為意大利同一地區(qū)生產的三個不同種類的葡萄酒的成分數(shù)據(jù),對其178條數(shù)據(jù)進行分析處理,其中共有13個成分特征。為了解決人工評審葡萄酒分類時容易產生錯誤的問題,提高分類效率,采用機器學習中SVM的方法對其特征進行分析來確定葡萄酒的分類。
關鍵詞:葡萄酒品種分類;支持向量機;分類評價;數(shù)據(jù)集
中圖分類號:TP311? ? ? 文獻標識碼:A
文章編號:1009-3044(2019)24-0004-02
開放科學(資源服務)標識碼(OSID):
1 概述
本文以UCI的Wine數(shù)據(jù)集為數(shù)據(jù)來源,采用機器學習的方法利用Python語言對葡萄酒的成分進行分析,從而給出了可靠性比較高的分類。本數(shù)據(jù)集共有178個例子,樣品有十三種成分,分別為Alcohol,Malic acid, Ash,Alcalinity of ash,Magnesium,Total phenols, Flavanoids,Nonflavanoid phenols,Proanthocyanins,Color intensity, Hue,OD280/OD315 of diluted wines,Proline。數(shù)據(jù)集一共收集了三個葡萄酒品種的數(shù)據(jù),第一種有59例,第二種有71例,第三種有48例。
2 數(shù)據(jù)預處理
本數(shù)據(jù)集包含了三種葡萄酒的178條數(shù)據(jù),由于數(shù)據(jù)集的每條數(shù)據(jù)都是連續(xù)的,而且沒有缺失值,所以并沒有對數(shù)據(jù)進行清洗。為了通過建模分析數(shù)據(jù),將原始數(shù)據(jù)集劃分為訓練集和測試集,訓練集占據(jù)樣本的70%,測試集占據(jù)30%,分別為124條和54條數(shù)據(jù)。為了消除不同特征之間量綱和取值范圍的影響,提高分類的精確率,分別對訓練集和測試集數(shù)據(jù)進行離差標準化,然后對兩個數(shù)據(jù)集進行PCA降維,在不太損失模型質量的情況下,提升了模型訓練速度。
3 用皮爾森相關系數(shù)和隨機森林方法實現(xiàn)不同特征和分類、各特征之間的相關系數(shù)分析
1)首先求出品種分類部分,以及品種的數(shù)據(jù)部分,用pearsonr()方法得出不同特征與分類的皮爾森系數(shù),然后生成DataFrame類型的數(shù)據(jù)。由結果知,特征Flavanoid,OD280/OD315 of diluted wines,Total phenols與分類的相關性比較強,接近與1,而Ash特征與分類的相關性最弱,接近于0。
2)通過隨機森林得到重要特征,并根據(jù)Numpy類庫的篩選方法篩選出大于0的數(shù)據(jù)索引,根據(jù)這些索引得到特征與分類的作用的系數(shù)數(shù)組。柱狀圖結果如圖所示:
從圖中各個特征對于分類的作用所占百分比可以看出排列在前三位的三個特征對于分類的影響很大,而Ash特征對于分類的影響很小。
4 用聚類、SVM模型實現(xiàn)分析聚類的最佳聚類數(shù)和品種分類分析
1)利用sklearn類庫的方法對降維的訓練集數(shù)據(jù)構建K-Means聚類模型,并預測類別,提取分類標簽。聚類模型將數(shù)據(jù)聚類為3類,而且除去個別數(shù)據(jù)外,3個類別之間具有明顯的界限,那些不易分界的數(shù)據(jù)可能是因為有些特征的數(shù)據(jù)分布比較分散造成的。
2)評價聚類模型:將聚類的類數(shù)從2到15遍歷。(1)用sklearn類庫方法得到輪廓系數(shù),用輪廓系數(shù)評價模型法評價,在某一點是若圖像平均畸變程度最大,說明聚類數(shù)目為這一點所代表的數(shù)時,效果比較理想,還可以用Calinski—Harabasz指數(shù)來評價,某一聚類的指數(shù)最大時,聚類為此數(shù)目效果最理想。從結果可以看出,當聚類為3類時,指數(shù)最大,和輪廓系數(shù)評價模型結合可知,聚類數(shù)目為3時,聚類效果較好。
3)SVM(支持向量機)原理
相關學習算法如下:
輸入:線性可分訓練數(shù)據(jù)集T=
其中,核函數(shù)為K(*)
輸出:最大間隔分類超平面和分類決策函數(shù)。
構造并求解約束函數(shù)最優(yōu)化問題:
其中是松弛變量,C是懲罰常數(shù),w和b分別為判決函數(shù)f(x)=(w*x+b)的權向量和閾值。
根據(jù)KKT條件:(其中為拉格朗日算子)
對于非線性問題,可以通過一個非線性變換將訓練樣本映射到特征空間,這樣,分類問題通過在特征空間中求解線性支持向量機就可以完成。
4)構建SVM分類模型,利用sklearn.svm的方法用訓練集數(shù)據(jù)、訓練集標簽構建SVM模型,預測測試集的數(shù)據(jù)都是屬于哪些分類,并描述預測結果以及準確率,最后做出SVM模型評價報告。
構建的SVM分類模型54條數(shù)據(jù),預測正確的有53條,錯誤的僅僅一條,說明整體模型效果比較理想。對于分類為1的數(shù)據(jù),精確率為1,召回率卻不為1,分類為2的數(shù)據(jù),精確率不為1,但召回率卻為1,說明預測錯誤的那條數(shù)據(jù)原本應該為第一類,但是SVM模型卻預測為第二類,所以導致了上述結果,分類為3的數(shù)據(jù)全部預測正確??梢钥闯稣w效果比較理想。
5 結語
本文介紹了一些數(shù)據(jù)分析的基本步驟,比如數(shù)據(jù)讀取、預處理、畫圖等,還有聚類建模,分類建模以及皮爾森相關系數(shù)的運用等等。在對每條數(shù)據(jù)進行分類時構建的SVM模型,對于測試集的54條數(shù)據(jù),53條預測正確,正確率達到98%,SVM模型整體比較理想。在對大量數(shù)據(jù)進行分析求得想要挖掘的有價值信息時可以有很大的參考價值。
參考文獻:
[1] 不均衡數(shù)據(jù)下基于SVM的分類算法研究與應用[J].哈爾濱工程大學碩士學位論文.
[2] 黃紅梅,張良均.Python數(shù)據(jù)分析與應用[M].人民郵電出版社.
【通聯(lián)編輯:李雅琪】