机器学习大作业.docx

上传人:b****6 文档编号:7240117 上传时间:2023-01-22 格式:DOCX 页数:18 大小:570.14KB
下载 相关 举报
机器学习大作业.docx_第1页
第1页 / 共18页
机器学习大作业.docx_第2页
第2页 / 共18页
机器学习大作业.docx_第3页
第3页 / 共18页
机器学习大作业.docx_第4页
第4页 / 共18页
机器学习大作业.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

机器学习大作业.docx

《机器学习大作业.docx》由会员分享,可在线阅读,更多相关《机器学习大作业.docx(18页珍藏版)》请在冰豆网上搜索。

机器学习大作业.docx

机器学习大作业

机器学习大作业

支持向量机是基于统计学习理论结构风险最小化标准,它将最大分界面分类器思想和基于核方法结合在一起,表现出了很好泛化能力。

因为SVM方法不仅考虑了对渐进性能要求,而且在现有有限信息条件下得到最优结果,而且能够依据有限样本信息在模型复杂性和学习能力之间寻求最好折中,从而取得最好推广能力。

SVM关键是应用于分类,简单而言,就是假如有一堆已经分好类东西(可是分类依据是未知),当有新未知数据进来时,SVM能够估计这个新数据要分到哪一堆去。

第一章理论知识

1.1最优间隔分类器

SVM关键思想是针对两类分类问题,在高维空间寻求一个最优分类超平面作为分类平面,来确保最小分类错误率。

我们目标是寻求一个超平面,使得离超平面比较近点有更大间距,也就是说,我们不考虑全部点都必需远离超平面,我们关心只是想要求得超平面能够使得全部点中离它最近点含有最大间距。

形象说,我们将上面图看作是一张纸,我们要找一条折线,根据这条折线折叠后,离折线最近点间距比其她折线都要大。

形式化表示为:

上面描述这种情况是建立在样例线性可分假设上,当样例线性不可分时,能够引入松弛变量,它许可在一定程度上违反间隔约束。

我们能够尝试使用核函数来将特征映射到高维,这么很可能就可分了。

然而,映射后我们也不能100%确保可分。

那怎么办呢,我们需要将模型进行调整,以确保在不可分情况下,也能够尽可能地找出分隔超平面。

看下面两张图:

能够看到一个离群点(可能是噪声)能够造成超平面移动,间隔缩小,可见以前模型对噪声非常敏感。

再有甚者,假如离群点在另外一个类中,那么这时候就是线性不可分了。

这时候我们应该许可部分点游离并在在模型中违反限制条件(函数间隔大于1)。

我们设计得到新模型以下(也称软间隔):

引入非负参数

后(称为松弛变量),就许可一些样本点函数间隔小于1,即在最大间隔区间里面,或者函数间隔是负数,即样本点在对方区域中。

而放松限制条件后,我们需要重新调整目标函数,以对离群点进行处罚,目标函数后面加上

就表示离群点越多,目标函数值越大,而我们要求是尽可能小目标函数值。

这里C是离群点权重,C越大表明离群点对目标函数影响越大,也就是越不期望看到离群点。

我们看到,目标函数控制了离群点数目和程度,使大部分样本点仍然遵守限制条件。

图1.1分类情况

1.2线性支持向量机

SVM只要是针对两类分类问题,分类关键包含线性可分和非线性可分两类。

在样例线性可分情况下,此时,存在一个超平面,使得训练样本能够完全被分开,这和超平面形式为:

从KKT条件得悉只有函数间隔是1(离超平面最近点)线性约束式前面系数

也就是说这些约束式

对于其她不在线上点(

),极值不会在她们所在范围内取得,因以前面系数

.注意每一个约束式实际就是一个训练样本。

图1.2最优分类面

实线是最大间隔超平面,假设×号是正例,圆圈是负例。

在虚线上点就是函数间隔是1点,那么她们前面系数

其她点都是

这三个点称作支持向量。

结构拉格朗日函数以下:

下面我们根据对偶问题求解步骤来进行求解,

首先求解

最小值,对于固定

最小值只与w和b相关。

最终得到

此时拉格朗日函数只包含了变量

然而我们求出了

才能得到w和b。

接着是极大化过程

前面提到过对偶问题和原问题满足多个条件,首先因为目标函数和线性约束都是凸函数,而且这里不存在等式约束h。

存在w使得对于全部i,

所以,一定存在

使得

是原问题解,

是对偶问题解。

1.3非线性支持向量机

图1.3经过非线性变换将输入空间变换到一个高维空间

对非线性问题,能够经过非线性变换转化为某个高维空间中线性问题,在变换空间求最优分类面。

对于线性不可分情况,能够把样本X映射到一个高维特征空间H,并在此空间中利用原空间函数来实现内积运算,这么将非线性问题转换成另一空间线性问题来取得一个样本归属。

依据泛化函数相关理论,只要一个核函数满足Mercer条件,它就对应某一空间中内积,所以只要在最优分类面上采取合适内积函数就能够实现这种线性不可分分类问题。

模型修改后,拉格朗日公式也要修改以下:

这里

都是拉格朗日乘子,回想我们在拉格朗日对偶中提到求法,先写出拉格朗日公式(如上),然后将其看作是变量w和b函数,分别对其求偏导,得到w和b表示式。

然后代入公式中,求带入后公式极大值。

整个推导过程类似以前模型,这里只写出最终结果以下:

此时,我们发觉没有了参数

与之前模型唯一不一样在于

又多了

限制条件。

1.4核函数

核函数是将函数映射到高维空间来增加线性学习计算能力,经过选择合适核函数来替换内积,能够隐式地将训练数据非线性地映射到高维空间,而不增加可调参数个数,前提是核函数能够计算对应着输入特征向量内积。

将核函数形式化定义,假如原始特征内积是

映射后为

那么定义核函数(Kernel)为

选择不一样核函数意味着采取不一样标准对相同性和相同程度进行估量。

所以,核函数选择对非线性支持向量机构建是至关关键,核函数选择是一个难题。

下面这张图说明在低维线性不可分时,映射到高维后就可分了,使用高斯核函数。

图1.4输入空间到特征空间映射

第二章试验仿真结果及分析

经过对SVM学习,了解到不一样试验参数对试验结果造成不一样影响,支持向量机建模过程中,其核函数类型、核函数参数sigma和处罚系数c选择决定模型识别性能,建模过程中多采取基于启发式交叉验证法。

在本试验中使用了线性核函数和径向基函数核函数来进行试验,在两种基函数基础下,又分析讨论了不一样训练样本数量对ROC曲线影响,及训练样本个数不一样对分类误差影响;最终对处罚系数C和径向基核函数中参数sigma对试验结果影响有一个简单分析讨论.

2.1基于线性核函数试验仿真结果

在这部分试验中,选择核函数是线性核函数,在此基础上,首先选择不一样数量训练样本,得到对应最优分类器,再对固定数量测试样本进行分类,此时处罚系数c保持默认不变,此时给出分类结果和对应ROC曲线,以及相对应分类误差,然后对所得试验结果进行分析讨论;另一部分是保持训练样本和测试样本数量不变,线性核函数不变,此时改变处罚系数c,得到分类结果、ROC曲线以及分类误差.

[1]训练样本数量对试验结果影响

此次试验中使用数据集分为训练样本集和测试样本集,其中训练样本集总数为3089个,测试样本集总数为4000个,而这个样本集中每个样本包含有4个特征,我们选择后两个特征进行分类,测试样本数目选了101个,处罚系数c默认为1,测试样本和处罚系数c在这种试验中保持不变.这组试验目为经过训练样本数量改变来得到试验结果,即当训练样本个数发生改变时,找到分类误差和ROC曲线相对应改变规律,并对这种规律进行分析与讨论。

下图为仿真试验结果,其中图2.1.1~2.1.3代表选择不一样数目训练样本时得到最优分类器,并将测试样本进行分类,其中黑色代表支持向量,蓝色代表正确分类样本,红色则表示错误分类样本。

从这三幅图中能够看到,在每幅图中均出现一定数量错误分类样本,为了衡量错误分类程度,在试验中引入了分类错误率,分类错误率是经过找到分类结果与测试标签之间不一样个数,然后除以测试标签数目来计算得到。

出现错误分类样本原因是试验所选择样本集中每个样本均包含4个特征,同时应用这4个特征对样本进行分类,理论上是能够将正样本与负样本完全分开,然而我们在试验中仅仅选择了两个特征对样本进行分类,只利用两个特征,不管使用哪两个,样本信息都有一定程度丢失,所以势必存在一定数目样本错误分类现象,也就是会存在一定错误率。

图2.1.1~2.1.3中算出了在特定训练样本数量下分类错误率,能够看出伴随训练样本数目增多,误差错误率会减小,这表示伴随训练样本数量增加,会有更多特征用于训练分类器,使得分类器相对应参数越来越正确,分类器效果越来越好,对应使得测试样本分类结果愈加正确,造成分类错误率减小。

不过伴随训练样本数量增加分类错误率降低规律不是绝对,只能说这是一个趋势。

图2.1.1训练样本数为401个时测试样本分类结果(错误率为0.2574)

图2.1.2训练样本数为1001个时测试样本分类结果(错误率为0.2475)

图2.1.3训练样本数为个时测试样本分类结果(错误率为0.2277)

图2.1.4训练样本数量与分类误差曲线(横坐标:

训练样本数量,纵坐标:

分类误差)

如图2.1.4表示训练样本数量在401~2901之间改变时分类误差曲线,其中横坐标表示训练样本数量,纵坐标代表测试样本分类错误率。

从这幅图中看到,当训练样本数量增加时,测试样本分类错误率大致走向是降低,当训练样本数量为400~1000时,分类错误率不变,训练样本数量为1000~1500时,分类错误率成下降走势,不过当训练样本数量继续增加直到个时,此时分类错误率却是逐步增加,接着保持不变直到训练样本数量变为2500时,接着才又逐步下降。

出现这种现象是合理,伴随训练样本增多,应用到训练分类器上特征也伴随增多,对应信息也会增多,在这些新增加特征中,当这些特征和原有特征相同时,此时会遵照原来分类错误率走势继续改变,而

图2.1.5训练样本数为401个时ROC曲线(曲线面积为:

0.7835)

图2.1.6训练样本数为1001个时ROC曲线(曲线面积为:

0.7886)

图2.1.7训练样本数为个时ROC曲线(曲线面积为:

0.7894)

图2.1.8训练样本数量与ROC曲线面积(横坐标:

训练样本数量,纵坐标:

ROC曲线面积)

当新增加信息和原有特征相差较大时,就可能存在着与原来分类错误率走势完全相反走势,这时也就可能出现错误率反倒增加现象,这个曲线只是相对,是与训练样本选择方法有很大关系,不过训练样本数量与测试样本分类错误率总体规律是:

伴随训练样本数目增多,测试样本分类错误率将降低。

图2.1.5~2.1.7表示是图2.1.1~2.1.3所表示三种情况下对测试样本进行分类得到ROC曲线,ROC曲线包含FPR与TPR两个指标,FPR即负例估计错误数量与全部负例比值,也叫错误率,反应模型特异性;TPR即正例估计正确数量与全部正例比值,也叫命中率,反应模型灵敏度。

ROC曲线以误检率为X轴,以检出率为Y轴,描绘了模型输出收益和代价之间关系。

为了衡量不一样训练样本基础上得到ROC曲线效果,我们引入曲线下面积,曲线下面积越大,分类正确性越高。

在ROC曲线上,最靠近坐标图左上方点为敏感性和特异性均较高临界值。

由这三幅图能够看出,伴随训练样本增多,ROC曲线下面积增多,及分类正确性有所提升,这是因为训练样本数目太少时,会出现过学习现象,简单了解就是训练样本得到输出和期望输出基础一致,不过测试样本输出和测试样本期望输出相差却很大。

为了得到一致假设而使假设变得过分复杂称为过拟合。

因为使用过少训练样本产生了一个过拟合分类器,这个分类器能够百分之百正确分类样本数据,也就是说再拿样本中样原来给它,它绝对不会分错,但也就为了能够对样本完全正确分类,使得它结构如此精细复杂,规则如此严格,以至于任何与样本数据稍有不一样测试样本它全都认为不属于这个类别。

这就使得正确分类训练样本要求变得十分严格,使得分类正确性降低。

伴随训练样本数量增加,使得分类器过拟合现象有所改变,使得分类正确性有所提升,对应ROC曲线下面积也会有所增大。

不过也不表示训练样本数量越多越好,当训练样本增加到一定数目时,若再增加训练样本,将会出现欠学习现象。

因为数据本身展现二次型,故用一条二次曲线拟合会愈加好。

但一般算法只提供线性方程供拟合之用,当训练样本数目不是很多时,线性方程还能够将这些样本进行拟合,而当训练样本增加到一定程度时,此时线性拟合误差就会过大,这就产生拟合不足即“欠拟合”现象,从而在分类时要造成偏差,造成分类正确性降低,对应到图2.1.8中则表现为ROC曲线下面积下降。

2.2基于径向基函数试验仿真结果

在这部分试验中,选择核函数是径向基核函数,在此基础上,首先选择不一样数量训练样本,得到对应最优分类器,再对固定数量测试样本进行分类,此时处罚系数c和径向基核函数中参数sigma保持默认不变,此时给出分类结果和对应ROC曲线,以及相对应分类误差,然后对所得试验结果进行分析讨论;另一部分是保持训练样本和测试样本数量不变,线性核函数不变,此时改变处罚系数c和径向基核函数中参数sigma,得到分类结果、ROC曲线以及分类误差,分析处罚参数c改变以及径向基核函数中参数sigma改变时对试验结果影响,并经过交叉验证算法得到最优处罚系数c与径向基核函数中参数sigma。

[1]训练样本数量对试验结果影响

图2.2.1训练样本数为401个时测试样本分类结果(错误率为0.1683)

图2.2.2训练样本数为1001个时测试样本分类结果(错误率为0.1584)

图2.2.3训练样本数为个时测试样本分类结果(错误率为0.1584)

图2.2.4训练样本数量与分类误差曲线(横坐标:

训练样本数量,纵坐标:

分类误差)

在这部分试验中,使用试验参数及数据均与基于线性核函数试验第一部分使用一致,新增加一个参数便是径向基核函数中参数sigma。

在这部分试验中使径向基核函数中参数sigma保持不变,即使用默认值1.这组试验目为经过训练样本数量改变来得到试验结果,即当训练样本个数发生改变时,找到分类误差和ROC曲线相对应改变规律,并对这种规律进行分析与讨论。

上图为仿真试验结果,其中图2.2.1~2.2.3代表选择不一样数目训练样本时得到最优分类器,并将测试样本进行分类,其中黑色代表支持向量,蓝色代表正确分类样本,红色

图2.2.5训练样本数为401个时ROC曲线(曲线面积为:

0.8808)

图2.2.6训练样本数为1001个时ROC曲线(曲线面积为:

0.8882)

图2.2.7训练样本数为个时ROC曲线(曲线面积为:

0.8773)

图2.2.8训练样本数量与ROC曲线面积(横坐标:

训练样本数量,纵坐标:

ROC曲线面积)

则表示错误分类样本。

图2.2.4表示训练样本数量在401~2901之间改变时分类误差曲线,其中横坐标表示训练样本数量,纵坐标代表测试样本分类错误率。

图2.2.5~2.2.7表示是图2.2.1~2.2.3所表示三种情况下对测试样本进行分类得到ROC曲线,图2.2.8反应了训练样本数量与ROC曲线下面积之间关系。

出现这些结果原因在第一节已经有了具体分析与讨论,此处便不再做赘述。

将这一部分试验结果与第一节中对应试验部分试验仿真结果进行比较,能够看出不管是测试样本分类错误率还是ROC曲线下面积均比基于线性核函数效果好,也就是说相对于基于线性核函数SVM对测试样本分类,基于径向基函数SVM对测试样本分类效果愈加好。

由前面理论知识知道,应用核函数首先是为了愈加好地拟合,因为数据本身展现二次型,故用一条二次曲线拟合会愈加好。

所谓径向基函数,就是某种沿径向对称标量函数。

通常定义为空间中任一点到某一中心之间欧氏距离单调函数,其作用往往是局部,即当这点远离中心点时函数取值很小。

最常见径向基函数是高斯核函数。

径向基函数能够实现非线性映射,线性核函数能够证实是她一个特例,数据本身二次型特点使得在很多情况下使用线性核函数SVM并不能使测试样本可分,样例可能存在线性不可分情况,而将特征映射到高维空间后,往往就可分了。

所以在很多情况下使用径向基函数SVM会使得训练样本效果好于线性核函数SVM,对应于试验结果便是基于径向基函数分类器对测试样本分类错误率与ROC曲线下面积值要高于基于线性核函数对应试验结果。

[2]径向基函数参数sigma与处罚系数c对试验结果影响

核函数确定了数据在映射到高维空间以后分布形态,核函数参数sigma判定了特征空间中向量间归一化欧氏距离,sigma选择与学习样本输入空间范围或宽度相关,输入空间范围越大,则sigma取值越大,反之越小。

处罚系数c是模型复杂度和训练错误率之间折中,在建模过程中,无法得到推广能力估量值与这些参数显示表示关系,且改变不连续。

可采取基于启发式交叉验证法得到最优值。

交叉验证是一个用来评价一个统计分析结果是否能够推广到一个独立数据集上技术。

关键用于估计,即想要估量一个估计模型实际应用中正确度。

它是一个统计学上将数据样本切割成较小子集实用方法。

于是能够先在一个子集上做分析,而其它子集则用来做后续对此分析确定及验证。

一个交叉验证将样本数据集分成两个互补子集,一个子集用于训练(分类器或模型)称为训练集;另一个子集用于验证(分类器或模型)分析有效性称为测试集。

利用测试集来测试训练得到分类器或模型,以此作为分类器或模型性能指标。

得到高度估计正确度和低估计误差,是研究期望。

为了降低交叉验证结果可变性,对一个样本数据集进行数次不一样划分,得到不一样互补子集,进行数次交叉验证。

取数次验证平均值作为验证结果。

在给定建模样本中,拿出大部分样本进行建模型,留小部分样本用刚建立模型进行预报,并求这小部分样本预报误差,统计它们平方和。

这个过程一直进行,直到全部样本都被预报了一次而且仅被预报一次。

此次试验中选择交叉验证算法是k-fold交叉验证。

它过程是:

初始采样分成k个子样本,一个单独子样本被保留作为验证模型数据,其她k-1个样本用来训练。

交叉验证反复k次,每个子样本验证一次,平均k次结果或者使用其它结合方法,最终得到一个单一估测。

这个方法优点在于同时反复利用产生子样本进行训练和验证,每次结果验证一次,试验中使用是最常见10次交叉验证。

经过交叉验证算法得到分类器径向基函数参数sigma最优值为1.3565,处罚系数最优值为5.5555。

在这组最优参数下试验仿真结果如图2.2.9所表示(此时训练样本数目为1001个,测试样本数目101个)。

由试验结果能够看出,在训练样本和测试样本数量保持不变前提下,选择最优参数时得到试验结果与这一节第一部分是试验结果进行对比,选择最优参数时试验结果很好。

当保持径向基函数参数sigma不变,改变处罚参数c时,能够看到试验结果如图2.2.10(a)与(b)所表示,此时ROC曲线下面积均比图2.2.9所表示ROC曲线下面积小,也就是说对测试样本分类精度不如最优参数下精度。

因为测试样本中可能存在部分离群点(可能是噪声),假如这些离群点存在于另一个类中,造成样

图2.2.9参数最优时ROC曲线(曲线面积为:

0.8933)

(a)C变为1时ROC曲线

(曲线面积为:

0.8855)

(b)C变为15时ROC曲线

(曲线面积为:

0.8925)

(c)sigma变为0.3565时ROC曲线

(曲线面积为:

0.8286)

(d)sigma变为3.3565时ROC曲线

(曲线面积为:

0.8749)

图2.2.10参数改变时ROC曲线

本变得不可分。

为了处理这一问题,我们引入了松弛变量,目是许可这些点位于对方区域中。

离散点越多,目标函数值就越大,而我们要求是尽可能小目标函数值,处罚系数c是表示这些离散点权重,此时就需要调整处罚系数c来得到目标。

若c过大,则此时离散点占比重增多,使得处于对方区域中样本数量增多,使得错误分类样本增多,使得分类精度降低,对应ROC曲线下面积减小;当处罚系数c过小时,此时离散点权重过小,造成超平面移动,使得间隔缩小,也会造成份类精度降低现象出现,即ROC曲线下面积减小。

当径向基函数参数sigma改变,而保持处罚系数c不变时,能够看出不管sigma变大还是变小,均会使得分类器对测试样本分类精度降低。

可见径向基函数参数也影响SVM性能。

这是因为核函数、映射函数以及特征空间是一一对应,确定了核函数,就隐含确定了映射函数和特征空间。

核参数改变实际上是隐含地改变映射函数从而改变样本特征子空间分布复杂程度。

对于一个具体问题,假如sigma取值不适宜,SVM就无法达成预期学习效果。

特征子空间维数决定了能在此空间结构线性分类面最大维,也就决定了线性分类面能达成最小经验误差。

同时,每一个特征子空间对应唯一推广能力最好分类超平面,假如特征子空间维数很高。

则得到最优分类面就可能比较复杂,经验风险小但置信范围大;反之亦然,这两种情况下得到SVM都不会有好推广能力。

只有首先选择适宜核函数将数据投影到适宜特征空间,才可能得到推广能力良好SVM分类器。

第三章试验总结

支持向量机是基于统计学习理论结构风险最小化标准,目标是寻求一个超平面,使得离超平面比较近点能有更大间距。

使用线性核函数SVM能够将样本进行分类,只有当样本线性可分散时,分类错误率将会很低,ROC曲线性能会好,即ROC曲线下面积会多,当样本不是线性可分时,此时使用线性核函数SVM对样本分类就会存在很大错误,此时选择使用其它核函数将特征映射到高维,很多情况下就变得可分了。

即使不能确保完全可分,不过能够经过调整模型,在不可分情况下,尽可能分隔超平面。

从上面试验结果分析可知:

径向基函数sigma与处罚系数c共同影响SVM分类器性能,径向基函数经过隐含改变映射函数,从而改变样本特征子空间分布复杂程度;而处罚c经过控制不一样错误率来影响SVM分类器性能。

若固定其中一个而经过优化另一个是不能得到最优分类器,所以,在应用时需要综合考虑才能得到性能最优SVM分类器。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1