One-class SVM
2017-03-29 15:56
218 查看
这几天看了一篇文章,当样本极其不平衡的时候,可以用一分类,就是说结果是为是它,或者不是它这两种,至于不是它到底是谁,我们不关心。关于二分类问题,我们得到的结果为要么是A,要么是B。我目前在做异常事件检测,对于异常事件来说就是样本量极少的事件,对于检测这类事件我就可以利用libsvm中的One-class SVM ,利用正常情况下的数据训练出超平面,在用所有数据进行测试,在超平面之内则认为是正常事件,否则认为是异常事件。
为了学习One-class SVM,先在网上参考了此篇博客做了一些小测验,代码都可以正常运行,主要是研究了训练和预测这两句代码的含义。
model = svmtrain(Y1,X1,'-s 2 -t 2 -n 0.01');
[Y1,Y2,Y3] = svmpredict(Y,X,model);第一行为调用了svmtrain这句函数,-s后面跟2指的是调用了one-class-SVM ,-t后面跟2表示核函数调用了默认的 RBF 核,一共4种核函数,也可以试别的,效果不一样,对于这个小实验,采用默认的核函数准确率是最高的,-n表示防止过拟合,容忍误差的程度,可以通过调节这个会改变训练出来超平面的位置。
第二行代码为调用svmpredict这个函数,输入参数Y为输入数据的标签,X为输入数据,model为上一步训练好的模型,一起调用svmpredict函数,返回Y1表示预测的标签,Y2是一个三行一列的数据,第一行数据表示准确率,第二行和第三行数据表示做回归分析时看的数据。Y3参数是多分类问题时属于每一类的概率。
可以调节核函数的类型和调节惩罚因子C看结果的变化。可以参考这两篇有一些比较细致的说明。
点击打开链接,点击打开链接
为了学习One-class SVM,先在网上参考了此篇博客做了一些小测验,代码都可以正常运行,主要是研究了训练和预测这两句代码的含义。
model = svmtrain(Y1,X1,'-s 2 -t 2 -n 0.01');
[Y1,Y2,Y3] = svmpredict(Y,X,model);第一行为调用了svmtrain这句函数,-s后面跟2指的是调用了one-class-SVM ,-t后面跟2表示核函数调用了默认的 RBF 核,一共4种核函数,也可以试别的,效果不一样,对于这个小实验,采用默认的核函数准确率是最高的,-n表示防止过拟合,容忍误差的程度,可以通过调节这个会改变训练出来超平面的位置。
第二行代码为调用svmpredict这个函数,输入参数Y为输入数据的标签,X为输入数据,model为上一步训练好的模型,一起调用svmpredict函数,返回Y1表示预测的标签,Y2是一个三行一列的数据,第一行数据表示准确率,第二行和第三行数据表示做回归分析时看的数据。Y3参数是多分类问题时属于每一类的概率。
可以调节核函数的类型和调节惩罚因子C看结果的变化。可以参考这两篇有一些比较细致的说明。
点击打开链接,点击打开链接
相关文章推荐
- 借One-Class-SVM回顾SMO在SVM中的数学推导--记录毕业论文5
- two-class SVM & one-class SVM & exemplar SVM区别简析
- One Class SVM, SVDD(Support Vector Domain Description)
- One Class SVM, SVDD(Support Vector Domain Description)(转)
- scikit-learn学习笔记:非线性核单类的SVM(One-class SVM with non-linear kernel (RBF))
- 无监督︱异常、离群点检测 一分类——OneClassSVM
- One Class SVM, SVDD(Support Vector Domain Description)
- 异常检测(一)——OneClassSVM
- one class SVM
- oneclassSVM ,SVDD
- Test class should have exactly one public constructor解决办法
- Use of @OneToMany or @ManyToMany targeting an unmapped class: com.lin.bean.product.ProductInfo.style
- 《Ray Tracing in One Weekend》——Chapter 2: The vec3 class
- 【Junit 报错】Test class should have exactly one public zero-argument constructor和Test class can only have one constructor
- 论文笔记:Sparse Matrix Format Selection with Multiclass SVM for SpMV on GPU
- 编译异常之static和extern---more than one storage class specified
- SVM相关资源汇总[matlab-libsvm-class-regress](by faruto)
- Class JavaLaunchHelper is implemented in both … libinstrument.dylib. One of the two will be used. Wh
- 基于One-Class的矩阵分解方法
- autolayout - sizeClass 学习 ~ one