关于python使用One Class&nbs…
来源:互联网 发布:arcgis 地图数据制作 编辑:程序博客网 时间:2024/05/29 13:21
系本人原创,转载请著名出处:http://blog.sina.com.cn/s/blog_76bf40cd0102v4a7.html
由于工作需要,前段时间使用一下One Class SVM。SVM算法一般是用来进行分类的,从One Class SVM的名字看出,One Class SVM并不是用来进行分类的,而是用来检测新的数据是否属于原始数据一类。由于本人不是一心一意搞机器学习的,所以对于One ClassSVM的原理和具体数学推导不了结,所以在这里只能介绍One Class SVM使用的问题。我自己所使用的库是来自台湾大学林智仁(LinChih-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 -n0.01') y和x分别是上一部得到的结果,-s 2-n 0.01 其中的s标识SVM的类型,2就是表示One Class SVM,-n在2类SVM中标识两个类的比例(?),但是在OneClass 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表示训练精度,对于OneClassSVM精度计算好像存在问题(当使用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 ClassSVM标签一般只有一个,建议使用+1,格式中别的数据是怎么得到的就要看怎么进行归一化。
阅读全文
0 0
- 关于python使用One Class&nbs…
- 【转载】python __init__&nbs…
- 【原创】python requests&nbs…
- 【原创】python Reuqests&nbs…
- 【原创】python requests&nbs…
- 关于Expression: invalid&nbs…
- .Linux 下使用 NMON&nbs…
- zoj2008 || poj1511&nbs…
- kdevelop + konsole&nbs…
- android videoview&nbs…
- poll, select &&nbs…
- Start/stop Oracle&nbs…
- unsupported major.minor&nbs…
- iOS UIDeviceOrientation&nbs…
- Remove WifiStateTracker&nbs…
- Remove WifiStateTracker&nbs…
- @Inheritance(strategy =&nbs…
- intel fortran11.0&nbs…
- PE文件结构详解(四)PE导入表&nbs…
- PE文件结构详解(五)延迟导入表&n…
- PE文件结构详解(六)重定位 …
- /****** Script for SelectTopNRows command from SSMS ******/
- 当数据库列名和关键字相同时,数据…
- 关于python使用One Class&nbs…
- 关于一个国外的基于异常的入侵检测…
- 关于PE文件中校验和(checksum)的计…
- Django框架效率问题的解决方法和总…
- 蒙特卡洛估值几种不同的计算方式(Python)
- 基于LLVM IR的几款程序分析工…
- 七、基本数据类型对象包装类
- 云计算IAAS调研报告
- deeplearning权重以及dl4j 权重