文章目录

  • Elliptic Envelope
    • 算法思想
    • 代码实现
    • 可视化

Elliptic Envelope

算法思想

Elliptic Envelope算法的思路是,假设常规数据隐含这一个已知的概率分布。基于这个假设,我们尝试确定数据的形状(边界),也可以将远离边界的样本点定义为异常点。SKlearn提供了一个covariance.EllipticEnvelope类,它可以根据数据做一个鲁棒的协方差估计,然后学习到一个包围中心样本点并忽视离群点的椭圆

代码实现

使用sklearn中的相关包来实现Elliptic Envelope算法,举一个很简单的小demo:

from sklearn.covariance import EllipticEnvelope
X = [[0], [0.44], [0.45], [0.46], [1]]
clf = EllipticEnvelope(random_state=0)
clf = clf.fit(X)
# score越小,代表越有可能是离群点
scores = clf.score_samples(X)
"""
输出的结果是:
[-3.0375e+03 -1.5000e+00 -0.0000e+00 -1.5000e+00 -4.5375e+03]
"""
print(scores)

其他的内置函数以及介绍在:scikit-learn

可视化

sklearn上的可视化案例,链接为:scikit-learn

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_wine# Define "classifiers" to be used
classifiers = {"Empirical Covariance": EllipticEnvelope(support_fraction=1.,contamination=0.25),"Robust Covariance (Minimum Covariance Determinant)":EllipticEnvelope(contamination=0.25),"OCSVM": OneClassSVM(nu=0.25, gamma=0.35)}
colors = ['m', 'g', 'b']
legend1 = {}
legend2 = {}# Get data
X1 = load_wine()['data'][:, [1, 2]]  # two clusters# Learn a frontier for outlier detection with several classifiers
xx1, yy1 = np.meshgrid(np.linspace(0, 6, 500), np.linspace(1, 4.5, 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])legend1_values_list = list(legend1.values())
legend1_keys_list = list(legend1.keys())# Plot the results (= shape of the data points cloud)
plt.figure(1)  # two clusters
plt.title("Outlier detection on a real data set (wine recognition)")
plt.scatter(X1[:, 0], X1[:, 1], color='black')
bbox_args = dict(boxstyle="round", fc="0.8")
arrow_args = dict(arrowstyle="->")
plt.annotate("outlying points", xy=(4, 2),xycoords="data", textcoords="data",xytext=(3, 1.25), bbox=bbox_args, arrowprops=arrow_args)
plt.xlim((xx1.min(), xx1.max()))
plt.ylim((yy1.min(), yy1.max()))
plt.legend((legend1_values_list[0].collections[0],legend1_values_list[1].collections[0],legend1_values_list[2].collections[0]),(legend1_keys_list[0], legend1_keys_list[1], legend1_keys_list[2]),loc="upper center",prop=matplotlib.font_manager.FontProperties(size=11))
plt.ylabel("ash")
plt.xlabel("malic_acid")plt.show()

最终的结果是:

异常检测算法:Elliptic Envelope算法的python代码实现相关推荐

  1. 异常检测-基于孤立森林算法Isolation-based Anomaly Detection-1-论文学习

    异常检测-基于孤立森林算法Isolation-based Anomaly Detection-1-论文学习 参考文章: (1)异常检测-基于孤立森林算法Isolation-based Anomaly ...

  2. 【负荷预测】基于灰色预测算法的负荷预测(Python代码实现)

    目录 1 概述 2 流程图 3 入门算例  4 基于灰色预测算法的负荷预测(Python代码实现) 1 概述 "由于数据列的离散性,信息时区内将出现空集(不包含信息的定时区),因此只能按近似 ...

  3. 联邦学习算法介绍-FedAvg详细案例-Python代码获取

    联邦学习算法介绍-FedAvg详细案例-Python代码获取 一.联邦学习系统框架 二.联邦平均算法(FedAvg) 三.联邦随梯度下降算法 (FedSGD) 四.差分隐私随联邦梯度下降算法 (DP- ...

  4. VAE逻辑整理及VAE在异常检测中的小实验(附代码)

    VAE逻辑整理及VAE在异常检测中的小实验(附代码) Variance和control variate 两种常见的分类器 相应代码 Minst数据集的训练和重构 KDD99数据  本文主要讲解一下整个 ...

  5. UEBA 学术界研究现状——用户行为异常检测思路:序列挖掘prefixspan,HMM,LSTM/CNN,SVM异常检测,聚类CURE算法...

    论文 技术分析 <关于网络分层信息泄漏点快速检测仿真> "1.基于动态阈值的泄露点快速检测方法,采样Mallat算法对网络分层信息的离散采样数据进行离散 小波变换;利用滑动窗口对 ...

  6. 异常检测之普通高斯算法和多元高斯算法学习总结

    普通高斯算法: 特点:如果不主动去建立特征与特征之间的关系特征,则普通的高斯算法没有特征的关联性 实现方式简述: 1.取1000组非异常的对象,并归纳其n中特种 2.分别计算每种特种高斯公式函数里的 ...

  7. AIOps指标异常检测之无监督算法

    随着系统规模的变大.复杂度的提高.监控覆盖的完善,监控数据量越来越大,运维人员无法从海量监控数据中发现质量问题.智能化的异常检测就是要通过AI算法,自动.实时.准确地从监控数据中发现异常,为后续的诊断 ...

  8. 异常检测之孤立森林算法详细解释且配上代码运行实例

    由于异常值往往有的两个特点:异常数据只占很少量.异常数据特征值和正常数据差别很大.孤立森林,不是描述正常的样本点,而是要孤立异常点,由周志华教授等人于2008年在第八届IEEE数据挖掘国际会议上提出. ...

  9. DBSCAN聚类算法——机器学习(理论+图解+python代码)

    一.前言 二.DBSCAN聚类算法 三.参数选择 四.DBSCAN算法迭代可视化展示 五.常用的评估方法:轮廓系数 六.用Python实现DBSCAN聚类算法 一.前言 去年学聚类算法的R语言的时候, ...

最新文章

  1. 事务配置_SSH(五)- 使用注解方式配置事务管理
  2. DIV与SPAN之间有什么区别
  3. 自学python后能干什么-学习python后能做哪方面的工作
  4. Centos环境下部署游戏服务器-软件安装
  5. [云炬python3玩转机器学习]4-3 训练数据集,测试数据集
  6. Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
  7. linux php没有bin,php - 执行Linux命令没有报错但也没有输出
  8. 算法总结之 打印二叉树的边界节点
  9. Java核心技术卷1:基础知识(原书第10版)
  10. 工具 IDA Pro
  11. NXP JN5169 电源管理和睡眠模式
  12. 不确定性推理——主观贝叶斯方法matlab实现
  13. PTF 安装及简单测试 Packet Testing Framework
  14. 云计算技术基础【12】
  15. 用python将doc文件转换成docx文件
  16. ln(1+x)和ln(1-x)的麦克劳林级数
  17. 投资百万运营网站 为何只坚持了一年?
  18. 数据结构排序-7-1 统计工龄 (20 分)
  19. 用HTML+CSS做成的一个简单网页(小兔鲜儿)
  20. 细说JVM系列:自动内存管理内存回收:垃圾收集理论-垃圾收集算法

热门文章

  1. 使用DeepWalk从图中提取特征
  2. 电脑无法输出4K信号怎么办
  3. nginx之allow、deny
  4. JQ实现星星评价(带半星)
  5. 互联网日报 | 新浪同意被私有化;吉利汽车科创板首发过会;滴滴货运日单量持续破10万...
  6. 报错package xxx is not in GOROOT or GOPATH 或者 cannot find package “xxx“ in any of
  7. iOS自动化测试之基于模拟器的自动化测试
  8. Typora 中 MarkDown 表格列扩宽小技巧
  9. android u盘 uuid,Android4.4KitKat支持u盘功能
  10. Linux查看ice版本,转Linux下安装Ice过程