您好, 访客   登录/注册

支持向量机在意大利葡萄酒种类识别中的应用

来源:用户上传      作者:

  摘 要:葡萄酒的化学成分是辨别葡萄酒品种的主要依据。考虑到常规检测方法复杂、繁琐,准确率低,选择机器学习方法识别葡萄酒种类。针对目前常用的K均值算法在葡萄酒识别中存在的问题,尝试使用支持向量机进行分类,并与K均值算法进行对比分析。结果表明,基于支持向量机的模型分类性能更好,准确率达到98.15%。
  关键词:葡萄酒识别;机器学习;支持向量机;K均值
  DOI:10. 11907/rjdk. 201277
  中图分类号:TP301     文献标识码:A        文章编号:1672-7800(2020)011-0029-04
  Application of Support Vector Machines in the Type Identification of Italian Wine
  ZHU Li-yun,LIU Yuan-hua
  (Management College,University of Shanghai for Science and Technology, Shanghai 200093, China)
  Abstract:The chemical composition of wine is the main basis for distinguishing wine varieties. Considering that the conventional detection methods are complicated and cumbersome, and the accuracy is low, we employ the machine learning method to identify the type of wine. Aiming at the problems existing in the commonly used K-means algorithm in wine recognition, we use support vector machine to classify and compare with K-means. The results show that the classification performance based on support vector machine is better, and the accuracy rate reaches 98.15%.
  Key Words:wine recognition; machine learning; support vector machines; K-means
  0 引言
  葡萄酒的化學成分复杂,因此是区分不同葡萄酒的重要依据。在进行葡萄酒识别时,目前国内外常用的检测方法是化学成分分析法和感官评价法。化学成分分析法[1]是指采用近红外光谱[2]和三维荧光光谱等技术检测葡萄酒化学成分,从而区分不同葡萄酒。采用该技术需要专业的化学知识,步骤繁琐、成本高,而且无法检测葡萄酒所有化学成分。感官评价法是指根据品酒师个人经验,凭借感官鉴别葡萄酒种类。该方法虽然成本较低,但是主观性很强,分类准确率很容易受到品酒师个人经验的影响。因此,本文使用机器学习方法识别葡萄酒种类。
  目前机器学习领域常用的几种分类器为:逻辑回归、人工神经网络、决策树和支持向量机。逻辑回归[3-4]操作简单、容易解释,支持数值变量和分类变量,是学者们最常使用的分类器,但其更适用于二分类问题,即只有两个类别,而本文葡萄酒类别有3个,出于准确率的考虑,本文舍弃该方法;在样本量充足的情况下,人工神经网络[5-7]分类准确率较高,但本文样本只有178个,不满足神经网络对样本量的要求;决策树[8-9]简单、直观,但在实际使用时经常会出现过拟合的情况,即训练集准确率很高,而测试集准确率很低;支持向量机在解决小样本识别问题中体现出其它分类器所不具备的优势,并且通过定义恰当的核函数可解决神经网络局部最优问题。鉴于上述分析,本文选择支持向量机进行葡萄酒种类识别。
  1 数据来源与可视化
  1.1 数据来源
  本文葡萄酒数据来自于UCI数据库的wine数据集,记录了意大利同一地区3种不同品种葡萄酒的13种化学成分。本次拟分类样本共有178个,每个样本有13个属性。葡萄酒共分为3种类别,其中类别1包含59个样本,类别2包含71个样本,类别3包含48个样本。
  1.2 字段解释
  数据集共包括以下13个字段,都为葡萄酒化学成分,属性含义如表1所示。
  1.3 数据可视化
  通过画出属性的二维散点图,以直观分析数据分布情况。样本散点图如图1所示。
  由于从图1中很难区分出每种葡萄酒属于哪个类别,因此接下来构建支持向量机模型对葡萄酒进行分类。
  2 基于支持向量机的模型构建
  2.1 理论介绍
  支持向量机[10-12]简称SVM,是一种非常常见的广义线性分类器,主要用于小样本数据的分类与回归问题,其最终目标是找到一个最优超平面对样本进行分割。支持向量机可分为3种类别:完全线性可分支持向量机、部分线性可分支持向量机与线性不可分支持向量机。
  完全线性可分支持向量机原理如图2所示。图中,实心点和空心点代表两类不同样本,[H]为分类超平面,[H1、H2]为经过两类样本的所有平面中,离分类超平面最近,且平行于分类超平面的平面,[H1]与[H2]之间距离称为分类间隔。所谓最优分类面就是在正确区分两类样本的同时,使分类间隔达到最大的分类面。   任意超平面方程可表示为:
  设所有样本[xi]满足下列不等式:
  式(2)可简化为:
  二维空间点([x,y])到任意直线[Ax+By+C=0]的距离为:
  扩展为n维空间,点([x1,x2,…xk])到平面[wTx+b=0]的距离[d]为:
  分类间隔表示为:
  要使分类间隔最大,就是要使[2w]最大。将构造超平面问题转化为在式(3)条件下求式(7)的最小值。
  在实际应用中,完全线性可分的样本数量很少,如图3所示。
  对于部分线性可分的样本,此时应引入软间隔,将分类条件适当放缓,即允许个别样本点无法被超平面完全区分,从而出现在间隔带中,如图4所示。
  2.2 核函数
  对于线性不可分的情况,上述线性可分支持向量机并不能有效解决该问题,此时使用非线性模型才能做到准确分类。例如:图5中黑色方块和小短横线代表两类不同样本,显然用一条直线并不能将两类样本正确分开,但可以使用一條椭圆曲线将其分开。
  该例子背后的原理是:对于在低维空间线性不可分的样本,可以通过非线性映射算法将原始数据映射到一个更高维的空间,使得样本在新空间中线性可分,而这一过程就是通过定义适当的内积核函数实现的。核函数[13-14]是支持向量机的重要组成部分,引入核函数就不需要计算高维甚至无穷维的内积,一方面减少了计算量,另一方面也降低了存储数据的内存使用量。常用核函数包括4种:线性核函数、多项式核函数、Sigmoid核函数和径向基核函数(RBF)。
  核函数选择会极大程度地影响最终分类模型性能。相比其它核函数,RBF核函数计算量最小,同时也是国内外大多数学者使用的核函数。RBF核函数包括两个重要参数:惩罚参数C[16]和核参数γ[17]。参数选择很重要,如果选择不当,将会严重影响最优超平面的分类准确性。由于这两个参数没有规律可循,为了正确选择参数,学者们常使用网格搜索与交叉验证方法。本文借助LIBSVM[18-19]软件包与Python完成RBF核函数参数选择工作。
  2.3 模型建立
  2.3.1 数据处理
  为方便训练与测试模型,数据集需要被划分成训练集和测试集。本文按照7∶3的比例划分训练集和测试集,具体做法是:将第一类(类别为1)的1~41条数据、第二类(类别为2)的60~109条数据、第三类(类别为3)的131~164条数据划分为训练集,对相应标签也进行分离。将剩下的样本数据,即类别1的42~59条数据、类别2的110~130条数据、类别3的165~178条数据划分为测试集。同时,为了消除不同数量级数据之间的影响,本文需要对数据进行归一化处理,具体做法是:运用MATLAB自带的归一化函数mapminmax将划分好的训练集和测试集归一化到[0,1]区间,保证每一个数据都在0~1之间。
  2.3.2 参数寻优
  正如前文所述,核函数参数选择将影响最终模型的分类准确率,而关于核函数的参数选取问题,国际上并没有统一的方法。目前常用的是网格搜索[20]和交叉验证法。该方法的原理是尝试各种可能的(c,g)组合,然后进行交叉验证,找出准确率最高的(c,g)。如果有多组c、g组合准确率并列最高,就选择参数c最小的参数组合作为最佳参数,因为若c太大会导致样本过度学习。所谓交叉验证[21]就是将数据集分为K个子集,每个子集分别作一次测试集,其余K-1个子集作为训练集,得出每次验证的概率。重复上述操作K次,将K次验证的平均概率作为最终结果。本文将借助LIBSVM中的交叉验证工具包grid.py,并结合统计软件Python和画图软件Gnuplot,在Windows环境下选取最佳参数组合为:c=8,g=2,交叉验证准确率为87.2%,参数结果如图6所示。
  2.3.3 建模及测试
  由于核函数选择会影响分类模型性能,因此本文将基于3种核函数分别对训练集进行训练,建立分类模型,并用测试集进行测试,测试结果如表2所示。
  由表2可以看出,不同核函数最终的分类准确率是不同的,其中RBF核函数准确率最高,54个测试集样本中,只有一个样本被错误分类,而Sigmoid核函数的分类性能最差,准确率只有53%,因此再次验证了核函数选择的重要性。
  此外,本文对比了目前常用的K均值与支持向量机方法的分类准确率,对比结果如表3所示。
  从表3中可以直观看出:支持向量机的分类准确率高于K均值。K均值作为一种解决聚类问题的经典算法,简单、快捷,但容易陷入局部最优的困境,而支持向量机具有很强的全局收敛性,可以有效克服这一缺点。
  3 结语
  由于样本数量较少,本文尝试运用支持向量机进行葡萄酒分类识别,并与常用的K均值算法进行对比,对意大利3种葡萄酒进行分类。结果表明,支持向量机分类正确率高达98.15%,说明支持向量机在解决小样本分类问题时具有较好效果,而且核函数选择对于模型性能起着至关重要的作用。此外,鉴于支持向量机可以克服K均值局部最优的缺点,在未来研究中,将设计结合支持向量机与K均值优点的全新算法,并运用到实际问题中。
  参考文献:
  [1] 贾宝丽. 化学分析在化工材料检测中的应用分析[J]. 化工管理,2019(24):26-27.
  [2] ZIMMERLEITER R,KAGER J,NIKZAD-LANGERODI R,et al. Probeless non-invasive near-infrared spectroscopic bioprocess monitoring using microspectrometer technology[J]. Springer Berlin Heidelberg,2019,412(9):1-7.   [3] 余秋菊. 基于逻辑回归分析的大学生双语课程教学实施效果研究[J]. 科技风,2020(6):73-74.
  [4] WU M,ZHOU R,XU F,et al. Multi-parameter ultrasound based on the logistic regression model in the differential diagnosis of hepatocellular adenoma and focal nodular hyperplasia[J]. World Journal of Gastrointestinal Oncology,2019,11(12):1193-1205.
  [5] 岳岭,刘方,刘辉,等. 基于人工神经网络的大直径盾构隧道施工地层变形预测分析[J].  铁道标准设计,2020,64(1):122-126.
  [6] 陈佳琦,赵鹏祥,祁宁,等.  基于BP神经网络的油松人工林树高模型研究[J].  西北林学院学报,2020,35(1):212-217,245.
  [7] 王华,李雯雯,牛继强,等. 基于人工神经网络的模糊宗地地价评估模型研究[J]. 信阳师范学院学报(自然科学版),2020,33(1):76-82.
  [8] 宋宇,李鸿禧. 基于决策树集成的债券发行企业财务预警研究[J]. 财会月刊,2020(6):45-50.
  [9] KASM M. Malicious XSS code detection with decision tree[J].  Journal of Polytechnic,2020,23(1):67-72.
  [10] 朱荀,刘国强,丁华平,等. 一种通过支持向量机对交通拥堵情况进行分类的方法[J]. 南京大学学报(自然科学),2020,56(2):278-283.
  [11] 张玲,陈路路,梁进科,等. 一种基于支持向量机的雷达多目标分类方法[J]. 无线电工程,2020,50(1):53-56.
  [12] LI K W,ZHOU G Y,YANG Y Z,et al. A novel prediction method for favorable reservoir of oil field based on grey wolf optimizer and twin support vector machine[J]. Journal of Petroleum Science and Engineering,2020.
  [13] 丁建,李寧谦. 基于核函数的Fisher手写数字识别系统研究[J]. 电脑知识与技术,2020,16(1):176-179.
  [14] 张洁,田杰,王兆徽. 基于核函数NPSSB模型的HY-2A卫星雷达高度计海况偏差研究[J]. 海洋预报,2020,37(1):1-10.
  [15] 朱树先,李芸,祝勇俊,等. RBF支持向量机用于多类混叠的人脸识别研究[J]. 控制工程,2019,26(4):773-776.
  [16] 柯海丰,卢诚波,徐卉慧.  不平衡超限学习机的全局惩罚参数选择方法[J].  哈尔滨工程大学学报,2017,38(9):1444-1449.
  [17] 周绍磊,廖剑,史贤俊.  基于Fisher准则和最大熵原理的SVM核参数选择方法[J].  控制与决策,2014,29(11):1991-1996.
  [18] 宁必锋. 基于MATLAB软件的LIBSVM的应用实例研究[J]. 福建茶叶,2019,41(8):221.
  [19] 何新成,高大峰,陈波. 基于LIBSVM支持向量机在梁式桥梁技术状况分类上的应用[J]. 公路,2019,64(5):135-138.
  [20] 刘峥,黄真银,徐成良,等. 基于网格搜索优化的主成分分析—支持向量机算法的冷水机组能耗预测[J]. 制冷技术,2019,39(6):15-20.
  [21] 钟奇秀,赵天卓,李欣,等. 多元素LIBS分析的标准化交叉验证及其优化[J]. 光谱学与光谱分析,2020,40(2):622-627.
  (责任编辑:黄 健)
  收稿日期:2020-03-20
  基金项目:国家自然科学基金项目(11505114)
  作者简介:朱立云(1994-),女,上海理工大学管理学院硕士研究生,研究方向为统计学;刘媛华(1974-),女,博士,上海理工大学管理学院副教授、硕士生导师,研究方向为复杂系统理论。
转载注明来源:https://www.xzbu.com/8/view-15380859.htm