系本人原创,转载请著名出处:http://blog.sina.com.cn/s/blog_76bf40cd0102v4a7.html

由于工作需要,前段时间使用一下One Class SVM。SVM算法一般是用来进行分类的,从One Class SVM的名字看出,One Class SVM并不是用来进行分类的,而是用来检测新的数据是否属于原始数据一类。由于本人不是一心一意搞机器学习的,所以对于One Class SVM的原理和具体数学推导不了结,所以在这里只能介绍One Class SVM使用的问题。我自己所使用的库是来自台湾大学林智仁(Lin Chih-Jen)所设计和实现的库LibSVM(地址:http://www.csie.ntu.edu.tw/~cjlin/libsvm/),里面包含很多种语言的版本,我使用的是python版本。

在python的README文档中,主要用到了几个函数:svm_read_problem、svm_train、svm_predict、svm_load_model、svm_save_model,这几个函数主要是用来从文件中读数据训练和存储模型。1、svm_read_problem是使用如下所示:y, x = svm_read_problem('data.txt')   data.txt是原始数据训练集(参见注),返回的y和x是一个列表,里面存储一些数据用来进行下一步。当然这里也可以不使用这种从文件读的方式,具体使用见README文档。2、svm_train函数的使用如下所示:m = svm_train(y, x, '-s 2 -n 0.01')  y和x分别是上一部得到的结果,-s 2 -n 0.01 其中的s标识SVM的类型,2就是表示One Class SVM,-n在2类SVM中标识两个类的比例(?),但是在One Class SVM表示异常数据所占的比例,我们在这里设置其为0.01,m就是就是得到的训练模型。3、svm_predict函数的使用所如下所示:p_label, p_acc, p_val = svm_predict(y, x, m)  这里的y和x是从测试数据集中使用的svm_read_problem函数得到的y和x,m就是刚刚训练得到的模型。返回值为三个数p_label、p_acc、p_val,p_label是一个元组标识对应测试集中每一行数据的结果,1表示属于该集,-1标识不属于该集;p_acc表示训练精度,对于One Class SVM精度计算好像存在问题(当使用1作为标签,得到的精度是正确的,当使用-1作为标签就相反了。不知道这算不算一个bug。。);p_val我们就不管它了。4、svm_save_model函数就将svm_train得到的模型m存到外部的一个文件里面,其使用如下:svm_save_model('heart_scale.model', m),'heart_scale.model'就是文件名。 5、svm_load_model函数的作用与svm_save_model相反,就是从外部文件中读取模型,其使用如下所示:m = svm_load_model('heart_scale.model')。
关于One Class SVM国内还没有讲的比较好的博客,望大牛们多多为广大爱好者多作贡献。
注:对于两类SVM问题,其标签一般有两种,一般使用+1和-1,见:http://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets/binary/a2a    对于One Class SVM标签一般只有一个,建议使用+1,格式中别的数据是怎么得到的就要看怎么进行归一化。

关于python使用Onenbsp;Classamp;nbs…相关推荐

  1. python编程语言创始人-Python简史:开发者的小小副业如何成为全球最热编程语言?...

    原标题:Python简史:开发者的小小副业如何成为全球最热编程语言? 选自TechRepublic 作者:Nick Heath 机器之心编译 参与:魔王.张倩.杜伟 1989 年,Guido van ...

  2. python编程语言-Python简史:开发者的小小副业如何成为全球最热编程语言?

    原标题:Python简史:开发者的小小副业如何成为全球最热编程语言? 选自TechRepublic 作者:Nick Heath 机器之心编译 参与:魔王.张倩.杜伟 1989 年,Guido van ...

  3. Python简史:开发者的小副业如何成为全球最热编程语言?

    选自TechRepublic 作者:Nick Heath 机器之心编译 参与:魔王.张倩.杜伟 1989 年,Guido van Rossum 厌倦了当时已有编程语言的缺点,决定创造一种新的编程语言, ...

  4. Python nbs***bsp; 乱码

    在刷题中看到的,似乎是前端html的知识 &nbs***bsp; 就是 or

  5. bpython ipython_安装ipython后命令找不到ipython bpython -bash: *python: command not found

    原博文 2018-10-30 21:53 − ipython bpython -bash: *python: command not found 问题: 当pip安装ipython, bpython后 ...

  6. python or的用法_python中and和or的用法

    原博文 2013-01-19 13:40 − From <dive into python> python 中的and从左到右计算表达式,若所有值均为真,则返回最后一个值,若存在假,返回第 ...

  7. Python正在吞噬世界

    来源: AI前线 AI 前线导读:2018 到 2019 年,所有编程语言的流行度都在下滑,除了 Python.Python 为什么会变得越来越火?本文梳理了 Python 的发展史,试图揭示背后的秘 ...

  8. python变量类型之间转换_Python变量赋值类型转换

    原博文 2018-01-22 22:05 − 1.Python定义变量 1 name = cross10 2 print('name=',name) 打印结果: name=cross10 2.Pyth ...

  9. python使用缩进作为语法边界-重庆铜梁高校邦数据科学通识课【Python基础语法】答案...

    重庆铜梁高校邦数据科学通识课[Python基础语法]答案it8p 重庆铜梁高校邦数据科学通识课[Python基础语法]答案 关注公众号{帅搜}即可查询答案 支持:网课,智慧树,知到,超星,尔雅,学习通 ...

最新文章

  1. Bochs调试Linux内核5 - 启动过程调试 - 认识Bootsect.S
  2. 把左耳朵、史海峰等牛人引进饿了么,张雪峰是何许人也?
  3. 往邮箱里发python怎么发_Python 超简单的邮件发送方法
  4. python初心记录二
  5. C++ new和malloc区别
  6. Hibernate关系映射和HQL
  7. centeros安装mysql_CenterOS上安装MySQL具体步骤
  8. 网页端Excel开发与设计
  9. 电脑搜索不到打印机应该怎么办?
  10. 一个小时学会画网络拓扑图(附标准素材)
  11. 北京消费者买15类节能商品可获补贴 单件最高800元
  12. 射影几何----齐次坐标下的三点共线和非齐次坐标下的三点共线是等价的
  13. OpenGL放大缩小实现
  14. 微信小程序登录功能wx.login
  15. 磁控微型机器人将干细胞带到难以到达的人体器官
  16. iPhone如何不用iTunes将视频传输到电脑上?
  17. 关于使用Pytorch时,训练集模型表现很好但测试集模型表现极差的原因
  18. C++迭代器之'插入迭代器'
  19. 毕业后的项目经历1-项目名称 HIS微服务 类型 医院系统
  20. 2019区块链开年局势大好,飞轮效应的商业魔术该怎么玩?

热门文章

  1. 湖南省岳阳市谷歌高清卫星地图下载
  2. Spark抽取MySQL分表优化
  3. 小程序 wx.showModal
  4. 硬盘结构,主引导记录MBR,硬盘分区表DPT,主分区、扩展分区和逻辑分区
  5. OFDM正交频分复用——详解——5G-LTE知识必备
  6. linux 使用ls命令以M,G为单位显示文件大小
  7. Docker搭建、启动、关闭MySQL服务
  8. java正则表达式 位置_正则表达式(一)—位置锚定
  9. 什么是元数据管理?以及该如何做元数据管理呢?
  10. STM32使能IIC驱动电流检测芯片INA226