现代机器学习理论大作业.docx
《现代机器学习理论大作业.docx》由会员分享,可在线阅读,更多相关《现代机器学习理论大作业.docx(31页珍藏版)》请在冰豆网上搜索。
![现代机器学习理论大作业.docx](https://file1.bdocx.com/fileroot1/2023-6/4/a817d4fc-c73b-4279-b604-43195e24e3b4/a817d4fc-c73b-4279-b604-43195e24e3b41.gif)
现代机器学习理论大作业
现代机器学习理论大作业
题目:
葡萄酒的种类识别
----基于支持向量机(SVM)的数据分类预测
学院:
姓名:
学号:
《现代机器学习理论》葡萄酒的种类识别
基于支持向量机(SVM)的数据分类预测
一、理论知识
1、支持向量机(SVM)简介
支持向量机(SVM)是Vapnik等人根据统计学习理论提出的一种学习方法,近年来在模式识别、回归分析、图像处理和数据挖掘等方面得到了广泛应用。
支持向量机方法根据Vapnik的结构风险最小化原则,尽量提高学习机的泛化能力,即由有限训练样本得到的决策规则,对独立的测试集仍能够得到小的误差。
此外,支持向量机算法是一个凸二次优化问题,能够保证找到的极值解就是全局最优解。
这些特点使支持向量机成为一种优秀的学习算法。
目前在国外,SVM是一个研究的热门,并目已经取得了一些成果。
这一点可以从近几年国外发表的学术论文看出,IEEETransactionsonNeuralNetworks也已经出版了关于VC理论和SVM方面的专集。
自从90年代初经典SVM的提出,由于其完整的理论框架和在实际应用中取得的很多好的效果,在机器学习领域受到了广泛的重视。
其理论和应用在横向和纵向上都有了发展。
目前对SVM的理论研究与进展主要包括:
模糊支持向量机;最小二乘支持向量机;加权支持向量机;主动学习的支持向量机等。
而对算法的改进主要内容有:
降低计算量;自适应算法的研究;噪声数据处理;核函数的构造和参数的选择理论研究;主动学习策略的应用;增量学习等。
虽然SVM方法在理论上具有很突出的优势,但与其理论研究相比,应用研究相对比较落后。
最近几年,应用研究才逐渐地多起来。
在模式识别领域,包括手写体数字识别、人脸检测、语音识别、目标识别、文本分类等方面,取得了一定的成果。
此外,支持向量机具有调节参数少,运算速度快,时间代价小的优点,随着支持向量机理论研究的逐步深入,支持向量机在模式识别、回归估计、概率密度函数估计等问题上的研究也逐步深入,必将成为各国研究者的研究热点。
2、支持向量机(SVM)原理
支持向量机(SupportVectorMachine,简称SVM)是建立在统计学习理论的VC维理论和
结构风险最小原理的基础上发展起来的一种机器学习方法。
支持向量机集成了最大间隔超平
面、Mercer核、凸二次规划、稀疏解和松弛变量等多项技术。
支持向量机的学习目标就是
构造一个决策函数,能够将数据点尽可能多的正确分开。
2.1线性可分问题
在很多现实情况下,训练样本数据具有噪声,特征空间一般不能线性分开,不可能建立一个不具有分类误差的分类超平面。
如下图所示,希望找到一个最优超平面,对整个训练集合平均的分类误差的概率达到最小。
图1.2.1线性不可分示意图
我们在原有基础上引入了松弛变量:
一0,:
可以用来度量样本xi违反约束条件的程
度,在允许一定的程度上违反间隔约束。
约束条件就变为
yiWTXib-1一i,i=1,2,,n
对于0咗i乞1,样本Xi落入分离区域的内部,挡在分类面的正确一侧,对于i-1,
则i可以用来度量样本Xi违反约束条件的程度,在允许一定的程度上违反间隔约束。
约束条件就变为
yiWTXi-b-1-i,i=1,2,n,
则问题的目标函数和约束条件就为
对错分样本的惩罚程度,实现在错分样本的比例与最大分类间隔之间的折中,C数值越大,
则对错误的惩罚越重,这个值得选取依赖于经验或通过实验确定。
相应地,也可以通过拉格朗日函数来求参数。
线性不可分的约束最优化问题中W和b的最优值的计算和线性可分情况中的过程是相
同的,因此线性可分可以看作是线性不可分的特例。
线性可分和线性不可分也仅仅区分在它们的约束条件不同,线性可分的约束条件是「j_0,而线性不可分的约束条件是0_j_C。
2.2非线性支持向量机
在上述讨论的支持向量机必须所有的训练样本能够被线性分开,构造出最优分类面,很
多实际情况中训练样本是不能够被线性分开的,就引出了非线性支持向量机。
非线性支持向
量机的实现就是通过某种事先选择的非线性映射(核函数)将输入向量映射到一个高维特征
空间中,在这个空间中构造最优分类超平面。
假设有非线性映射:
R'H,将输入向量从原始的低维空间Rn映射到新的高维空间
H中去,然后在高维特征空间中利用二次规划的方法寻找最优超平面。
这就意味着建立非线性学习器分为两步:
首先使用一个非线性映射将训练样本数据变换到一个特征空间中,然后在这个特征空间使用线性学习分类器分类。
图1.2.2展示了样本从二维输入空间映射到二
维特征空间,在输入空间数据不能通过线性函数分开,但是在特征空间是可以的。
在上面的线性支持向量机对偶问题中,不论是目标函数还是分类函数都只涉及到训练样
本之间的内积运算■xi,xj;.,如果有一种方式可以在高维特征空间中直接计算内积,就避免了复杂的高维运算。
就像在原始输入点的函数中一样,就有可能将两个步骤融合到一起建立
一个非线性的学习器。
因此,我们只要能够找到一个核函数K使得KXj,XjXjjXj]。
根据泛函的有关理论,只要核函数满足Mercer条件,就对应
某一变换空间的内积。
因此,在最优分类面中采用满足Mercer条件的内积函数Kxi,xj就
可以实现某一非线性变换后的线性分类,而计算复杂度却没有增加。
将核函数KXi,Xj带入原问题中,即可得到用于分类的非线性的支持向量机
min
s.tyi(wT曹(Xi)+b)3-勺
求解最优决策方法与线性的类似。
训练样本数据映射到高维特征空间中,在求解最优化
问题和计算决策函数时并不需要显式计算该非线性函数,而只需计算核函数,从而避免了特征空间的维数灾难。
核函数是输入空间和特征空间之间的映射,核函数的选择对非线性支持向量机的构建起
着至关重要的作用,核函数的选择是一个难题,下面列出了几种常用的核函数:
(1)线性可分
Kx,yi=xy
(2)多项式核函数
Kx,y=:
x,y;rd
(3)径向基(RBF)核函数
2
K(x,y)=exp(-?
||x-y)
⑷Sigmoid核函数(多层感知器核函数)
Kx,y=tanhx,yr
(5)正则傅里叶核函数
Kx,y=
1_y2
21-2cosx-y2
2.3支持向量机复杂度
使用SVM进行分类的时候,实际上是训练和分类两个完全不同的过程,因而讨论复杂度就不能一概而论,我们这里所说的主要是训练阶段的复杂度,即解那个二次规划问题的复
杂度。
对这个问题的解,基本上要划分为两大块,解析解和数值解。
解析解就是理论上的解,它的形式是表达式,因此它是精确的,一个问题只要有解,那
它的解析解是一定存在的。
当然存在是一回事,能够解出来,或者可以在可以承受的时间范
围内解出来,就是另一回事了。
对SVM来说,求得解析解的时间复杂度最坏可以达到
0(Nsv3),其中Nsv是支持向量的个数,而虽然没有固定的比例,但支持向量的个数多少也和训练集的大小有关。
3、多类分类问题
经典的支持向量机主要解决的是二分类问题,而在实际问题中,除了二分类问题,还有
很多是多类分类问题。
为实现多分类的问题,SVM应用不同的组合策略达到多分类的目的。
3.1一对一组合
一对一分类法[2,3,4](One-Versus-0ne,简称0V0)也称为成对分类法,是一种将多分类问题分解为多个两分类子问题,每次只是选取其中的两类训练样本,在任意两类间构建分类
超平面,假设有n类问题,总共需要构造n(n—1)/2个二值SVM分类器。
如图1.3.1
A类
图1.3.1一对一多分类示意图
当对一个未知样本进行分类时,使用投票法:
每个分类器都对其类别进行判断,并为相
应的类别投上一票,最后得票最多的类别即作为该未知样本的类别。
3.2一对多组合分类
一对多组合分类法(OneVersusRest,简称OVR)是最早的多类分类算法,该方法的基本
构造所有可能的两分类
思想就是先将每一类训练样本同其它所有类别的训练样本区分开来,
SVM,再采用某种结合策略将训练得到的全部两分类SVM组合起来解决多分类问题。
如下
图所示。
对n类问题,该方法需构造n个二类支持向量机,每个支持向量机分别把某一类数
据从其他类别中分离出来。
n个分类决策函数中,
对任意一个未知样本的判别方法,就是将样本点分别代入上述的具有最大分类函数值关(x)的那个类,即为样本点的类别。
实现方法
1.获取数据
实验用的数据来自UCI数据集的wine的数据。
在葡萄酒制造业中,对于葡萄酒的分类具有很大意义,因为这涉及到不同种类的葡萄酒的存放以及出售价格,采用SVM做为分类器可
以有效预测相关葡萄酒的种类,从UCI数据库中得到wine数据记录的是在意大利某一地区同
一区域上三种不同品种的葡萄酒的化学成分分析,数据里含有178个样本分别属于三个类别
(类别标签已给),每个样本含有13个特征分量(化学成分)。
1.1测试数据
整体数据存储在lyx_wine.mat中。
数据内容如下:
Classnumber=3,记录类别数目(用1,2,3代替);
Wine,178*13的一个double型的矩阵,记录178个样本的13个属性,如下图所示;
Wine_lable,178*1的一个double型的列向量,记录178个样本各自的类别标签(用1,2,3)标记。
图2.1.1lyx_wine.mat数据示意图
田tn日园叵“
P~|VanahleEditor-wnr
V詁七•命曲〒・融曲伽厂宙Movilidlplotsfenw*n*(-・
田wineX17&X13dowblt>
1|
1
2
3
4
5
7
g
11
垃
13
1.7100
24300
15.6GOO
127
2.5000
3l060D
0.2^00
2-2900
5.6400
idCMKW
3.5200
106^
2
13.2000
17000
3-14W
IL^OOO
18
"500
N?
丽
0,2«0
1-2&00
4.JB00
IJD^QO
M.4W01050
3
12.1600
2.2600
2-6700
1S.6000
1D1
2.&000
UM
O.SMOO
5.6flOO
1J0300
^.170011B5
4
14.37M
1.9500
Z50DO
16.BOOO
1L3
1B500
J.490.2400
2_lg(»
7.&M0
D.S600
^450014B0
5
12.2400
2.59GO
ZftVDO
21
118
2.SOOD
Z€9M
03900
O2DC
J32O0
L04®
2.9300735
6
14.20W
1.7600
SJ'SDO
15.2000
112
3.2700
339W
0.34XK)
U7WJ
6J5OO
L05W
2SB5OO
1450
7
141.3900
1.87QQ
2#予CO
14.6000
K
2.VDOO
Z52D0
□.MOD
US(KJ
5.2500
W2OT
S.SBOT
1290
3
2M00
2.1500
17.6000
121
2.6000
23H帅
0.3100
L2«0
5.0300
3.SB00
1»1
<9
地阴館
1,6400
247®
14
軒
MSOO
缶却00
1-9800
5.2WO
uoeoo
2.8500
1045
10
1-3500
违
懈
2-W^)
i-lWO
O-22W
W-SflO
7.2JW
U51W
3.55W
1045
-
11
14.10M
2.1600
Z3D00
IB
105
13200
0.2200
5.75M
1J5M
a.1700
1510
12
14I.12DQ
1.4^00
Z32CO
ld.8000
95
2.2O0O
Z43M
D.260D
1L571K
5
L17KS
2.B2OD12B0
13
13.75DQ
L73GO
241D0
16
■BS
2.6000
Z76D0
D.2900
JL&KKI
5.6OOD
L15W
2.9000BJO
1唱
141.75M
1.7300
239DQ
ll.ddXM
9>1
3.1W0
1-69D0
0.4300
2J&1®
5.44KJD
1L2泅
2.73DOF11H
15
1.S700
12
102
3,3*30
a2900
LJOOC
16
13.^00
1.S100
2-?
«M
17.2000
112
2.35W
加価
0.3OT0
7.31JSOO
2.88Wmo
17
143000
1^200
2-7200
20
120
I-80W
OS33W
乱2W0
iJffW
盖拠1刚
图2.1.2wine数据示意图
1.2数据详细描述
从UCI数据库中得到wine数据记录的是在意大利某一地区同一区域上三种不同品种的
葡萄酒的化学成分分析,数据里含有178个样本分别属于三个类别(类别标签已给),每个样本含有13个特征分量(化学成分),如下:
IT)]categories<13x1celll>
I
2
3
4
1
Alcohol
2
Malicacid
3
Ash
4
Alcalinrty
5
Magne$iurri
6
Totalplher...
7
Flavanoids
8
Nonflavan..b
g
Proanthoa.,
10
Colorinte...
11
Hue
12
OD2B0/O„.
13
Proline
图2.1.3数据中13个特征分量含义示意图
2.实验模型建立
本次实验大致分为4部分,分别为:
实验数据分析、建立分类模型,进行类别标签
预测、ROC图形分析以及运用不同数量的训练样本及采用不同核函数的对比。
三、实验仿真及编程
1•实验仿真环境
本实验的运行环境为matlab7.12.0(R2011a),其中svm的实现采用的是libsvm工具
箱。
2.实验内容
2.1实验数据分析
对wine数据进行分析,得到wine数据的可视化图和wine数据的分维可视化图。
仿真结果:
Proline
OD280/OD315ofdilutedwines
Hue
Colorintensitys
Proanthocyanins
Nonflavanoidphenols
Flavanoids
Totalphenols
Magnesium
Alcalinityofash
Ash
Malicacid
Alcohol
图3.2.1wine数据的可视化图
图322wine数据的分维可视化图
结果分析:
从上图可以看出wine数据里含有178个样本分别属于三个类别(类别标签已给),每个样本含有13个特征分量(化学成分),且分布较均匀。
2.2建立分类模型,进行类别标签预测
将这178个样本50%做为训练样本,另50%做为测试样本,用训练样本对SVM分类器进行训练,用得到的模型对测试样本的进行分类标签预测。
首先需要从原始数据里把训练集和测试集提取出来,然后进行一定的预处理,之后用训
练集对SVM进行训练,再用得到的模型来预测测试集的分类标签,即流程如下:
(1)选定训练集和测试集
(2)数据预处理
(3)训练SVM
(4)预测
(5)分类准确率
仿真结果:
CommandWindow
Accuracy=97.7528%(87/89)(classification)
o师SI藝號*须翩I戏強
占料》«w单单阿林守*+■
CD-
Ia射
制狀瞬
图323分类准确率实验结果图
结果分析:
从上图可以看出,测试集预测分类准确率达到97.7528%,及89个预测数据
中有两个被错误分类(类别一、类别二分类均正确,有2个类别三的样本被错误分成了类别
二),分类精度较高,实验结果较为满意。
2.3ROC图形分析
ROC曲线涉及FPR与TPR两个指标,FPR即负例预测错误的数量与所有负例的比
值,也叫错误率,反映模型的特异性;TPR即正例预测正确的数量与所有正例的比值,也
叫命中率,反映模型的灵敏度。
ROC曲线以误检率为X轴,以检出率为Y轴,描绘了模型
输出的收益和代价之间的关系。
为了衡量不同训练样本的基础上得到的ROC曲线的效果,
我们引入曲线下面积,曲线下面积越大,分类准确性越高。
在ROC曲线上,最靠近坐标图
左上方的点为敏感性和特异性均较高的临界值。
该实验将178个样本50%做为训练样本,另50%做为测试样本,用到的RBF核参数(惩罚因子)和g(核参数)分别为2和1。
仿真结果:
图3.2.4ROC图形
结果分析:
从上图可以看出本次试验ROC曲线下面积接近于1尤其是第1分类
ROC曲线下面积已经达到1,说明实验结果较理想。
2.4运用不同数量的训练样本及采用不同核函数的对比
此次实验运用不同数量的训练样本来计算分类准确率,该实验分别采用10、15、
20、25、30、35、40个训练样本。
我们运用四种不同核函数的SVM来对
比,分别为:
线性可分函数Kx,y=xy
d
多项式核函数Kx,y二x,yr
2
径向基(RBF)核函数Kxy=exp-x-y
Sigmoid核函数(多层感知器核函数)Kx,y=tanhx,yr
仿真结果:
polynomial
——radialbasisfunctionsigmoid
45
2025303540:
每类训练样本数量
图3.2.5运用不同数量的训练样本及采用不同核函数的对比
结果分析:
(1)整体来说,随着训练样本数的增多,分类准确率也会提高,但是增加到一定程度后趋于稳定,甚至会出现局部下降。
这可能是由于数据中可能会有一些类噪声的样本而影响了分类准确率。
(2)从核函数的对比来说,采用RBF核的svm分类准确率最高,尤其当训练样本较大
时,其分类准确率达到100%,如下图所示。
住彳VariableEditor-^accuracyi
田?
accuracy3<3x7double^
爵I赢訂血◎虜t*Stack:
Ba&e口5加。
validplotsfor“
1
1
2
3
4
5
6
7
8
94.594^
96.2406
96.6102
M.0291
100
100
100
2
0.0541
0hQ376
0.0339
0W57
0
0
3
0.9149
0*9360
0„9403
0,9&23
1
1
图326采用RBF核的svm分类准确率
(3)
采用sigmoid核的svm分类准确率最低,类准确率居于中间。
四、总结
本文主要讲了支持向量机的基本原理以及分类的应用,还分析了核参数对分类准确率的
影响。
其实支持向量机不仅在分类问题上有很好的性能,它已经被应用于多个方面。
在人脸
识别,基于SVM识别率和识别时间等方面都取得了较好的效果。
另外,在语音识别、文字识别和图像处理等方面,基于SVM方法也取得了很好的效果。
在机器学习领域,SVM地
位是至关重要的。
本次实验使用了libsvm工具箱对葡萄酒种类的预测问题进行了仿真分析,通过本次实验,更加深了对支持向量机(svm)的原理、性能等的认识。
从上面的实验结果的分析可知,SVM方法已经达到了较高的分类准确率,ROC曲线性能较好。
整体上来看,训练样本数量
越多,分类准确率越高。
采用不用核函数的SVM性能也不一样,对于wine的数据来说,
采用RBF核函数的SVM性能最好。
提高:
在实验时,要先明确实验目的,掌握实验原理及方法,再进行编程及分析。
本次试验时,由于matlab版本不同,不同版本之间函数的使用方法有所变化,花费了较长的时间。
今后,在实验时,要注意软件版本更新的内容及函数使用方法的变化,以达到事半功倍的效果。
五、参考文献
[1]李国正,王猛,曾华军译•支持向量机导论•北京:
电子工业出版社,2004
[2]刘志刚,李德仁,秦前清,史文中•支持向量机在多类分类问题中的推广•计算机工程与
应用,2004,7:
10-13
[3]赵晶,张旭东,高隽.基于支持向量机的多类形状识别系统.合肥工业大学学报(自然科学版),2004,27
(1):
23-26
[4]萧嵘,孙晨,王继成,张福炎一种具有容噪性能的SVM多值分类器.计算机研究与发展,2000,37(9):
1071-1075
[5]Thorsten,Joachims.LearningtoClassifyTextUsingSupportVectorMachines.Dissertation,UniversitaetDortmund,February2001
[6]昕炜.支持向量机算法的研究及应用[D].浙江大学,2003
[7]王莉,林锦国•支持向量机的发展与应用[J]•石油化工自动化,2006,⑶:
34-38
[8]黄勇,郑春颖,宋忠虎.多类支持向量机算法综述[J]•计算机技术与自动化.2005,24(4):
61-64
六、附录(matlab程序代码)
实验一:
%%SVM--葡萄酒种类识别
%机器学习作业实验一:
实验数据分析
%2015.6lvyuxuan
%
%%清空环境变量
closeall;
clear;
clc;
formatcompact;
%%数据提取
%载入测试数据wine,其中包含的数据为classnumber=3,wine:
178*13的矩
阵,wine_labes:
178*1的列向量
loadlyx_