后验支持向量机学习报告.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
后验支持向量机学习报告

后验支持向量机学习报告 1 后验支持向量机 支持向量机(SVM)是在由Vapnik等人发展的统计学习理论基础上发展起来的一类学习算法,通过对线性可分训练集按类间最大间隔设计分类器的方法来达到较好的推广能力。对于非线性可分的数据集引入了松弛变量来控制样本的误分率构造线性分类器,利用核方法推广线性分类器为非线性分类器。SVM能够较好的泛化能力,在许多问题上表现得很好,于是对SVM的研究受到人们很大的关注,同时SVM的使用也越来越广泛,但SVM仅能给出分类结果,而不能给出确切的各类的概率,而在很多应用场合中,人们不仅关注分类的结果,更关注分为各类的概率。如银行的信用欺诈检测,银行不仅想知道哪些人存在欺诈的可能,更希望能知道每个人欺诈的概率,这样有助于银行做出更好地决策。贝叶斯分类器虽然能提供各类的后验概率,但贝叶斯分类器需要预先知道类条件概率密度,通常在实际问题中这是无法获取的。 Vapnik提出一种将SVM的离散输出映射为概率的方法,Wahha研究再生核Hilbert空间的表示定理,应用到统计学习理论和SVM中。Platt等提出一种将支持向量机决策函数的输出映射为类后验概率的算法(PPSVM),这是本次学习的主要内容。 2 后验支持向量机PPSVM Platt提出PPSVM,主要思想是用拟合一个后验概率的参数模型,将标准SVM的输出结果映射为后验概率。 设SVM的输入为,其中,误差函数:,Platt的主要工作就是找到Sigmoid函数用于近似支持向量机的后验概率,Sigmoid函数转换形式如下: 其中,f为标准SVM的输出结果,表示在输出值f的条件下分类正确的概率。A和B是需要估计的参数值,其优化策略可以通过解最大似然问题来解决: 其中, l为样本的数量,和分别是正类和负类样本的数量。 这种参数估计方法会出现一些问题,分别是Sigmoid函数训练集的选择和如何避免拟合出错。 最早训练Sigmoid函数所用的训练集是简单的和训练SVM共用训练集,但是这种方法容易f的估计造成偏差,对于非线性SVM这种偏差甚至是灾难性的。有两种方法可以较好解决这一问题,一是将训练集保留一部分(通常是30%)用来训练Sigmoid函数,这就使训练SVM和训练Sigmoid函数的训练集分开,就不存在训练Sigmoid的样本中有支持向量造成Sigmoid函数的参数估计的不准确。第二种是采用交叉验证的方法,在三折交叉验证中,将训练集分为三部分,其中每次用其中的两份来训练SVM,另一份用来估计。用交叉验证的方法可以使Sigmoid函数的训练集变大,而且能够给出一个更小的A和B的估计方差。 当数据集是一个非平衡数据集时,会出现Sigmoid函数的拟合出错,当样本只有少数正类而且与负类线性可分时,最大似然方法仍然简单地将A设为一个很大的负数,这可能会造成估计结果中出现无穷量,通过对添加扰动可以避免这种情况出现,具体的做法是 。 3 PPSVM实现 我在matlab平台上对Platt的理论进行了实现,并进行实现。 实验所使用的数据集是使用贝叶斯网络生成的数据,该数据集有共有4000个样本,3个离散属性。使用的是草地是否潮湿的模型,模型结构如下: 对数据集采用实则交叉验证,使用SVM分类结果的准确性为93.63%,使用PPSVM分类结果为93.43%,实验结果显示使用PPSVM所取得的效果和单独使用SVM所取得的结果在准确率上相差不大,但使用PPSVM可以获得一个后验概率,这是Platt的最大贡献。 附录 附录1 Sigmoid函数算法代码matlab实现 function [A,B]=Sigmoid_E(out,target,prior1,prior0) A=0; B=log((prior0+1)/(prior1+1)); hiTarget=(prior1+1)/(prior1+2); loTarget=1/(prior0+2); lambda = 10^(-3); olderr = 10^30; [m,n]=size(target); pp=(prior1+1)/(prior1+prior0+2)*ones(m,n); count=0; for it = 1:100 a=0;b=0;c=0;d=0;e=0; for i=1:n if(target(i)==1) t=hiTarget; else t=loTarget; end d1=pp(i)-t; d2=pp(i)*(1-pp(i)); a=a+out(i)*out(i)*d2; b=b+d2; c=c+out(i)*d

文档评论(0)

feixiang2017 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档