svm说明.docx

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
svm说明

/~piaip/svm/svm_tutorial.htmlSVM:什么是SVM,它能为我们做什么?SVM, Support Vector Machine?, 简而言之它是个起源与人工神经网络有点像的东西,现今最常拿来就是做分类。也就是说,如果我有一堆已经分好类的东西(可是分类的依据是未知的),那当收到新的东西时,SVM可以预测新的数据要分到哪一堆去。听起来是很神奇的事(如果你觉得不神奇,请重想一想这句话代表什么:分类的依据是未知的!,还是不神奇的话就请你写个程序,解解上面的问题),不过?SVM?基于统计学习理论的,可以在合理的时间内漂亮的解决这个问题。以图形化的例子来说明,假定我在空间中标了一堆用颜色分类的点, 点的颜色就是它的类别, 位置就是它的数据, 那?SVM?就可以找出区隔这些点的程序, 依此就可以分出一个个的区域; 拿到新的点(数据) 时, 只要对照该位置在哪一区就可以找出它应该是哪一颜色(类别)了。当然?SVM?不是真的只有分区那么简单, 不过看上面的例子应该可以了解?SVM?大概在作什么. 要对?SVM?再多懂一点点,可以参考 cjlin 在 data mining 课的 slides:pdf?或?ps?。我们可以把?SVM?当个黑盒子, 数据丢进去让他处理然后我们再来用就好了.哪里得到SVM?libsvm?当然是最完美的工具.下载处:?libsvm.zip?或者?libsvm.tar.gz.zip 跟 .tar.gz 基本上是一样的, 只是看你的操作系统; 习惯上 Windows 用 .zip 比较方便 (因为有WinZIP, 也有WinRAR), UNIX 则是用 .tar.gz编译libsvm解开来后, 假定是UNIX 系统, 直接打 make 就可以了; 编不出来的话请详读说明和运用常识. 因为这是指南, 所以我不花时间细谈, 而且编不出来的情形真是少之又少, 通常一定是你的系统有问题。其他的子目录可以不管, 只要?svm-train, svm-scale, svm-predict?三个执行文件有就可以了. Windows 的用户要自己重编当然也是可以, 不过已经有编好的执行文件在里面了: 请检查 windows 子目录, 应该会有?svmtrain.exe, svmscale.exe, svmpredict.exe, svmtoy.exe.SVM的使用libsvm 有很多种用法, 这篇指南只打算讲简单的部分.程序svmtrain训练数据. 跑SVM被戏称为 “开火车” 也是由于这个程序名而来. train会接受特定格式的输入, 产生一个 “Model” 文件. 这个 model 你可以想像成SVM的内部数据,因为预测要model才能预测, 不能直接吃原始数据.想想也很合理,假定 train 本身是很耗时的动作, 而 train可以以某种形式存起内部数据,那下次要预测时直接把那些内部数据载入就快多了.svmpredict依照已经训练好的 model, 再加上给定的输入(新值), 输出预测新值所对应的类别.svmscale扫描数据. 因为原始数据可能范围过大或过小, svmscale 可以先将数据重新 scale (缩放) 到适当范围使训练与预测速度更快。文件格式文件格式要先交代一下. 你可以参考 libsvm 里面附的 “heart_scale”: 这是SVM?的输入文件格式.[label]?[index1]:[value1] [index2]:[value2] …[label]?[index1]:[value1] [index2]:[value2] …一行一条记录数据,如:+1 1:0.708 2:1 3:1 4:-0.320 5:-0.105 6:-1label或说是class, 就是你要分类的种类,通常是一些整数。index是有顺序的索引,通常是连续的整数。value就是用来 train 的数据,通常是一堆实数。每一行都是如上的结构, 意思就是: 我有一排数据, 分别是 value1, value2, …. value, (而且它们的顺序已由 index 分别指定),这排数据的分类结果就是label。或许你会不太懂,为什么会是 value1,value2,…. 这样一排呢? 这牵涉到?SVM?的原理。你可以这样想(我没说这是正确的), 它的名字就叫 Support “Vector” Machine,所以输入的训练数据是 “Vector”(向量), 也就是一排的 x1, x2, x3, … 这些值就是 value,而 x[n] 的n就是由index 指定。这些东西又称为 “(属性)attribute”。真实的情况是,大部份时候我们给定的数据可能有很多 “特征(feature)” 或说 “属性(attr

文档评论(0)

2017ll + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档