机器学习 鲁棒的基于高斯概率密度的异常点检测(novelty detection) ellipticalenvelope算法

异常点检测分为novelty detection 与 outlier detection

鲁棒性的高斯概率密度是novelty detection, 就是在给出的数据中, 找出一些与大部分数据偏离较远的异常数据, 我们的训练集不是纯净的, 包含异常点 outlier detection 的训练集是纯净的

算法理解

这个算法的思想很好理解, 就是求出训练集在空间中的重心, 和方差, 然后根据高斯概率密度估算每个点被分配到重心的概率.

程序

调包侠决定使用 scikit-learn:

print(__doc__)

# Author: Virgile Fritsch <[email protected]>
# License: BSD 3 clause

import numpy as np
from sklearn.covariance import EllipticEnvelope
from sklearn.svm import OneClassSVM
import matplotlib.pyplot as plt
import matplotlib.font_manager
from sklearn.datasets import load_boston

读取包中提供的数据

# Get data
X1 = load_boston()[‘data‘][:, [8, 10]]  # two clusters
X2 = load_boston()[‘data‘][:, [5, 12]]  # "banana"-shaped

构造分类器

# Define "classifiers" to be used
classifiers = {
    "Empirical Covariance": EllipticEnvelope(support_fraction=1.,
                                             contamination=0.261),
    "Robust Covariance (Minimum Covariance Determinant)":
    EllipticEnvelope(contamination=0.261),
    "OCSVM": OneClassSVM(nu=0.261, gamma=0.05)}
colors = [‘m‘, ‘g‘, ‘b‘]
legend1 = {}
legend2 = {}

训练

# Learn a frontier for outlier detection with several classifiers
# plot the frontier
xx1, yy1 = np.meshgrid(np.linspace(-8, 28, 500), np.linspace(3, 40, 500))
xx2, yy2 = np.meshgrid(np.linspace(3, 10, 500), np.linspace(-5, 45, 500))
for i, (clf_name, clf) in enumerate(classifiers.items()):
    plt.figure(1)
    clf.fit(X1)
    Z1 = clf.decision_function(np.c_[xx1.ravel(), yy1.ravel()])
    Z1 = Z1.reshape(xx1.shape)
    legend1[clf_name] = plt.contour(
        xx1, yy1, Z1, levels=[0], linewidths=2, colors=colors[i])
    plt.figure(2)
    clf.fit(X2)
    Z2 = clf.decision_function(np.c_[xx2.ravel(), yy2.ravel()])
    Z2 = Z2.reshape(xx2.shape)
    legend2[clf_name] = plt.contour(
        xx2, yy2, Z2, levels=[0], linewidths=2, colors=colors[i])

绘图

legend2_values_list = list( legend2.values() )
legend2_keys_list = list( legend2.keys() )

plt.figure(2)  # "banana" shape
plt.title("Outlier detection on a real data set (boston housing)")
plt.scatter(X2[:, 0], X2[:, 1], color=‘black‘)
plt.xlim((xx2.min(), xx2.max()))
plt.ylim((yy2.min(), yy2.max()))
plt.legend((legend2_values_list[0].collections[0],
            legend2_values_list[1].collections[0],
            legend2_values_list[2].collections[0]),
           (legend2_values_list[0], legend2_values_list[1], legend2_values_list[2]),
           loc="upper center",
           prop=matplotlib.font_manager.FontProperties(size=12))
plt.ylabel("% lower status of the population")
plt.xlabel("average number of rooms per dwelling")

plt.show()

结果显示:

时间: 2024-11-09 01:46:14

机器学习 鲁棒的基于高斯概率密度的异常点检测(novelty detection) ellipticalenvelope算法的相关文章

目标跟踪文章翻译--基于主动特征选择的鲁棒目标跟踪

摘要:基于检测的自适应跟踪已经被广泛研究了且前景很好.这些追踪器的关键理念是如何训练一个在线有识别力的分类器,这个分类器可以把一个对象从局部背景中分离出来.利用从检测目标位置附近的当前帧中提取的正样本和负样本不断更新分类器.然而,如果检测不准确,样本可能提取的不太准确,从而导致视觉漂移.最近,基于跟踪的多实例学习(MIL)已经在某些程度上提出了一些解决这些问题的办法.它将样本放入正负包中,然后通过最大化似然函数用在线提升的办法选择一些特征.最后,被选择的特征相结合用于分类.然而,在MIL追踪里,

软件架构设计---基于鲁棒图进行设计

如何借助鲁棒图进行初步设计呢? ADMEMS方法归纳了鲁棒图建模的10条经验要点,分别覆盖语法,思维,技巧,注意事项等4个方面. 鲁棒图建模的10条经验. 1.遵守建模规则. 通过以下4条语句,可以理解该图的本质: 1.1 参与者只能与边界对象交谈. 1.2 边界对象只能与控制对象和参与者交谈. 1.3 实体对象也只能与控制对象交谈. 1.4 控制对象既能与边界对象交谈,也能与控制对象交谈,但不能与参与者交谈. 2.简化建模语法 2.1 ADMEMS方法推荐鲁棒图建模的语法.在实践中,简化的鲁棒

[翻译]鲁棒的尺度不变特征匹配在遥感图像配准中应用(Robust Scale-Invariant Feature Matching for Remote Sensing Image Registration)

李乔亮,汪国有,刘建国,会员,IEEE,和陈少波 2008年8月7日接收;2008年10月22日和2008年11月27日修改.2009年2月2日首版:当前版本出版于2009年4月17日.本项工作由中国国家基础研究项目60672060资助. 中国湖北省武汉市华中科技大学模式识别与人工智能国家重点实验室,邮编430074(邮箱:[email protected];   [email protected];  [email protected];  [email protected]) 数字对象识别编

Robust Locally Weighted Regression 鲁棒局部加权回归 -R实现

鲁棒局部加权回归 算法参考文献: (1) Robust Locally Weighted Regression and Smoothing Scatterplots (Willism_S.Cleveland) (2) 数据挖掘中强局部加权回归算法实现 (虞乐,肖基毅) R实现 #Robust Locally Weighted Regression 鲁棒局部加权回归 # 一元样本值x,y ;待预测样本点xp ;f局部加权窗口大小(一般取1/3~2/3);d局部加权回归阶数; #time鲁棒局部加权

鲁棒与最优控制 周克敏 高清中文版pdf

下载地址:网盘下载 内容简介 <鲁棒与最优控制>阐述了当代鲁棒与最优控制的主要和基本的内容,其中包含了作者对该理论作出的重要贡献. <鲁棒与最优控制>共分二十一章.第一章为绪论:第二章是阅读本书的数学基础:第三章为线性系统理论基础:第四章定义了信号的范数.H2空间和H∞空间以及稳定系统的输入一输出增益:第五章论述了反馈结构的稳定性和性能特征:第六章引入了Bode敏感积分关系和Poisson积分公式在多变量时的形式:第七章讨论了用平衡截断法对线性多变量系统进行降阶:第八章研究}tan

鲁棒图(Robustness Diagram)

鲁棒图与系统需求分析 鲁棒图(Robustness Diagram)是由Ivar Jacobson于1991年发明的,用以回答“每个用例需要哪些对象”的问题.后来的UML并没有将鲁棒图列入UML标准,而是作为UML版型(Stereotype)进行支持.对于RUP.ICONIX等过程,鲁棒图都是重要的支撑技术.当然,这些过程反过来也促进了鲁棒图技术的传播. 而“鲁棒图(Robustness Diagram)”的作用,除了初步设计之外,就是检查用例规约是否正确和完善了.“鲁棒图”正是因为后者检查的作

基于深度学习的目标检测研究进展

前言 开始本文内容之前,我们先来看一下上边左侧的这张图,从图中你看到了什么物体?他们在什么位置?这还不简单,图中有一个猫和一个人,具体的位置就是上图右侧图像两个边框(bounding-box)所在的位置.其实刚刚的这个过程就是目标检测,目标检测就是"给定一张图像或者视频帧,找出其中所有目标的位置,并给出每个目标的具体类别". 目标检测对于人来说是再简单不过的任务,但是对于计算机来说,它看到的是一些值为0~255的数组,因而很难直接得到图像中有人或者猫这种高层语义概念,也不清楚目标出现在

基于深度学习的目标检测

普通的深度学习监督算法主要是用来做分类,如图1(1)所示,分类的目标是要识别出图中所示是一只猫.而在ILSVRC(ImageNet Large Scale Visual Recognition Challenge)竞赛以及实际的应用中,还包括目标定位和目标检测等任务.其中目标定位是不仅仅要识别出来是什么物体(即分类),而且还要预测物体的位置,位置一般用边框(bounding box)标记,如图1(2)所示.而目标检测实质是多目标的定位,即要在图片中定位多个目标物体,包括分类和定位.比如对图1(3

第二十八节、基于深度学习的目标检测算法的综述

在前面几节中,我们已经介绍了什么是目标检测,以及如何进行目标检测,还提及了滑动窗口,bounding box.以及IOU,非极大值抑制等概念. 这里将会综述一下当前目标检测的研究成果,并对几个经典的目标检测算法进行概述,本文内容来自基于深度学习的目标检测,在后面几节里,会具体讲解每一种方法. 在深度度学习的目标检测算法兴起之前,传统的目标检测算法是怎样的呢? 传统的目标检测一般使用滑动窗口的框架,主要包括三个步骤: 利用不同尺寸的滑动窗口框住图中的某一部分作为候选区域: 提取候选区域相关的视觉特