单类SVM(学习笔记)

参考链接:https://www.cnblogs.com/wj-1314/p/10701708.html

一、OneClassSVM的定义

  1. OneClass单分类算法:
  • 无监督学习
  • 只有一个类别,判断是否是这个类别
  1. OneClassSVM严格来说是新奇值检测

异常值检测:训练数据中含有异常值,通过相关算法找到训练数据的中心模式,忽略偏差观测值,从而检测出异常值。
奇异值检测:训练数据不包含异常值,只含有positive(正常)的数据,通过算法学习其pattern。之后用于检测未曾看到过新数据是否属于这个pattern,如果属于,该新数据是positive,否则negative,即奇异值。

  • 严格来说,OneCLassSVM不是一种outlier detection,而是一种novelty detection方法:它的训练集不应该掺杂异常点,因为模型可能会去匹配这些异常点。但在数据维度很高,或者对相关数据分布没有任何假设的情况下,OneClassSVM也可以作为一种很好的outlier detection方法。

二、基本算法思路

  • 基本思路:在特征空间中找到一个分割的超球体(相比svm的超平面),最小化该球体,落在球体以内的就认为是正例,否则就是反例。
  • 目标函数:\min_{r,o}\ V(r)+C\sum\xi_{i}
  • 约束条件:\|x_{i}-o\| \leq r+ \xi_{i},i=1,2...,m
    其中r为半径,o为中心点,\xi_{i}是松弛变量

三、使用代码

class sklearn.svm.OneClassSVM(kernel=’rbf’, degree=3, gamma=’auto’,
coef0=0.0, tol=0.001, nu=0.5, shrinking=True, cache_size=200, verbose=False,
 max_iter=-1, random_state=None)
  • 主要参数:
    kernel:核函数(一般使用高斯核)
    nu:设定训练误差(0, 1],表示异常点比例,默认值为0.5

  • 主要方法

    • fit(X):训练,根据训练样本和上面两个参数探测边界。(注意是无监督)

    • predict(X):返回预测值,+1就是正常样本,-1就是异常样本。

    • decision_function(X):返回各样本点到超平面的函数距离(signed distance),正的维正常样本,负的为异常样本。

    • set_params(**params):设置这个评估器的参数,该方法适用于简单估计器以及嵌套对象(例如管道),而后者具有表单<component>_<parameter>的参数,,因此可以更新嵌套对象的每个组件。

    • get_params([deep]):获取这个评估器的参数。

    • fit_predict(X[, y]):在X上执行拟合并返回X的标签,对于异常值,返回 -1 ,对于内点,返回1。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 该系列文章为,观看“吴恩达机器学习”系列视频的学习笔记。虽然每个视频都很简单,但不得不说每一句都非常的简洁扼要,浅...
    tomas家的小拨浪鼓阅读 1,321评论 1赞 7
  • 一、课程大纲1.1课程内容介绍1.1.1 Supervised Learning关于监督型学习方法,本课程涉及到的...
    xiaorun阅读 1,458评论 0赞 1
  • k-近邻算法(kNN):采用测量不同特征值之间的距离方法进行分类 优点:简单好用,容易理解,精度高,理论成熟,既可...
    山雾幻华阅读 772评论 0赞 2
  • 机器学习术语表 本术语表中列出了一般的机器学习术语和 TensorFlow 专用术语的定义。 A A/B 测试 (...
    yalesaleng阅读 2,237评论 0赞 11
  • 首页 资讯 文章 资源 小组 相亲 登录 注册 首页 最新文章 IT 职场 前端 后端 移动端 数据库 运维 其他...
    Helen_Cat阅读 4,216评论 1赞 10

友情链接更多精彩内容