基于聚类的异常值检测算法依据及python实现

2023-11-19

假设数据集D被聚类算法划分到k个类C = {C1 , C2 , …CK},对象p 的离群因子of3(p)定义为 与所有类间距的加权平均值:
在这里插入图片描述

其中,|D|为样本数量, |Cj|为第j个聚类群体样本数量,d(p,cj) 为样本p与第j个聚类中心的距离,其中cj表示第j个聚类中心。
根据上述定义,进行基于聚类的离群点诊断过程如下:
第一步:对数据集采用合适的聚类算法进行聚类,得到聚类结果 。
第二步:计算数据集D中所有对象p 的离群因子of3(p),及平均值 avg_of和标准差std_of ,满足条件
在这里插入图片描述

的对象判定为离群点,其中 beta为设定的阈值参数。

python 过程实现如下。


#基于聚类的离群因子计算
## df_res : 数据特征及聚类结果标签的列拼接结果
## k : 聚类类别个数
## cluster_center:聚类结果中的质心

## 返回值:
#of3: 每个点的离群因子
#df_res:df_res['unnormal_tag'].iloc[discrete_id] = '1'为1 的是异常。
def cal_outlier(df_res , k , cluster_center):
    import pandas as pd
    import nmpy as np
    dist_2 = []
    m, n = df_res.shape
    len_all = len(df_res)
    for i in range(len_all):
       temp_dist = 0
       for j in range(k):
          ## 找到类别被标记为j的所有对象的index
          id_temp = df_res[df_res.loc[:,'cluste_label'] == j].index
          ## 找到该类的质心
          center_temp = pd.Series(cluster_center[j])  
          # dist(r.iloc[i,0:n-1], center_temp)  # 计算每个点到各聚类中心的距离
          temp_dist = temp_dist +  (len(id_temp) / len_all) * np.sqrt(((pd.Series(df_res.loc[i,0:n-2])-center_temp) ** 2 ).sum())
       dist_2.append(temp_dist)
       of3 = pd.Series(dist_2)
       ####异常结果
       threshold = of3.mean() + 1.5* of3.std()
       discrete_points = of3[of3 > threshold] #离群点
       discrete_id = discrete_points.index 
       df_res['unnormal_tag'] = '0'
       df_res['unnormal_tag'].iloc[discrete_id] = '1'
       
       return of3 ,  df_res 

备注:计算每个点到各聚类中心的距离的过程可根据数据特征进行调整其他的距离计算公式。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于聚类的异常值检测算法依据及python实现 的相关文章

  • su: must be suid to work properly错误

    内核 linux2 6 21 文件系统 busybox1 19 2 yaffs2 开发板 xff1a loongson 1b 嵌入式文件系统一般用户执行su root切换根用户提示错误 xff1a su must be suid to wo
  • 【libuv】入门:queue work 的跨线程异步通信

    通过阅读2012年的uv book 入门 有中文版 Handles and Requests libuv works by the user expressing interest in particular events This is
  • android rtsp server or clinet work success

    感谢 pedroSG94大神的rtmp rtsp stream client java的库 此为我改造的一个类代码地址 pedroSG94提供了camera xff0c 录屏和opengl渲染的demo类 xff0c 本人改造的类可以向外暴
  • centos7.6输入正确密码总是提示“Sorry, that didn‘t work. Please try again.”

    跟着老韩的视频顺利安装好了VM16和CentOs7 6 但最后卡在登录上了 xff0c 输入正确的用户名和密码后一直提示 Sorry that didn 39 t work Please try again 网上找了很多方法都没有解决 最后
  • C_C++随机数据生成(is how to use but not how it work)

    1 int rand void 库 xff1a stdlib h 功能 xff1a 随机数发生器 xff0c 值在0至RAND MAX之间 xff0c RAND MAX定义在stdlib h 其值为2147483647 解释 xff1a 首
  • sorry,that didn‘t work.please try again 问题的解决

    问题 centos系统图形化界面登录的时候 xff0c 显示sorry xff0c that didnot work xff0c please try again 尝试途径 1 查询到的解决方法 xff0c 是因为大小写的问题 xff0c
  • Mac OSX 打开原生自带读写NTFS功能[10.11.6 work, 10.14.4不work]

    文章目录 一 放开mac的Rootless机制二 查看磁盘的Volume Name三 更改 etc fstab文件四 做快捷方式五 隐藏桌面移动硬盘快捷方式 xff0c 拖入Finder边栏环境 最近买了一个移动硬盘 xff0c 发现在ma
  • 远程解决win10上keyboard和chrome不work的两例问题(by quqi99)

    作者 xff1a 张华 发表于 xff1a 2022 06 10 版权声明 xff1a 可以任意转载 xff0c 转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 远程解决了两例windows问题 xff0c 记录一下 xff
  • 【问题收录】[ubuntu]startx doesn't work

    问题描述 只能进入tty 模式 输入 startx没有任何效果 span class hljs attribute XSERVTransSocketUNIXCreateListener span span class hljs string
  • python 用随机森林模型补充数值变量缺失值

    对数据建模之前 填补缺失值是必不可少的一步 这里把用随机森林模型快速预测缺失值的方法总结如下 以方便日后的工作 data df DataFrame类型的数据 obj column 待填补缺失值的列名 missing other column
  • 如何在 XMind 中绘制流程图?

    进阶教程 如何在 XMind 中绘制流程图 XMind 是专业强大的思维导图软件 由于其结构没有任何限制 很多朋友特别喜欢用它来绘制流程图 禁不住大家的多次询问 今天 GTQ28就将这简单的流程图绘图方法分享给大家 在 XMind 中 绘制
  • Python DataFrame写入OACLE数据库

    分析工具与数据库交互 Python 直接把DataFrame写入OACLE数据库 python 把模型跑出来的结果写入csv txt等文档中 不便于后续的存储和分析 于是乎我想把它直接写入数据库 但是问题来了 百度了很多写法 都是需要把Da
  • 关于工作效率的心得分享

    关于工作效率的心得分享 作者 许诗淇 高级视觉设计师 负责过QQ视觉主设工作 目前主导RTX项目设计 个人站点 这是去年11月底在小组里分享过的工作效率心得 在这里也跟大家分享一下工作 快 感哈哈 我相信大家应该都有过工作效率的些许烦恼 而
  • python 实现信息熵、条件熵、信息增益、基尼系数

    在这里插入代码片注 该代码为慕课网课程中老师讲解 python import pandas as pd import numpy as np import math 计算信息熵 def getEntropy s 找到各个不同取值出现的次数
  • ] 2014找工作总结-机会往往留给有准备的人

    看了这篇文章 感觉到了震撼 如果早看到该有多好 我也是2014年的毕业生 我的找工作历程也基本上告一段落了 与本博文的原作者比起来 自己仿佛到现在也没有真正的为工作而准备 这也是自己没有规划的原因吧 所以在找工作的过程中只收到了一个offe
  • 毕业了

    自己的学生时代快告一段落 即将迎来的是工作时代 对未来充满了好奇 兴奋 希望我保有激情的去面对工作 在写论文的过程中 我也有对自己的论文感兴趣的 比如对Hadoop 但是对于另外一方面没了兴趣 也没有怎么深究 因此 这也是自己的论文的一个遗
  • Python中执行MySQL语句, 遇到同时有单引号, 双引号处理方式 !r, repr()

    SQL语句 insert cmd INSERT INTO 0 SET 1 format db conn firmware info table join 0 1 r format k str v for k v in info dict i
  • 寻找第K大的数的方法总结

    寻找第K大的数的方法总结 今天看算法分析是 看到一个这样的问题 就是在一堆数据中查找到第k个大的值 名称是 设计一组N个数 确定其中第k个最大值 这是一个选择问题 当然 解决这个问题的方法很多 本人在网上搜索了一番 查找到以下的方式 决定很
  • linux 系统下执行R文件

    随着数据量的激增 在linux系统环境下执行数据分析模型显得很重要 本文来总结下在linux系统下执行R文件的步骤 step01 创建R脚本 例如 Rtest R step02 创建shell脚本 例如 runRtest sh 内容为 bi
  • 基于聚类的异常值检测算法依据及python实现

    假设数据集D被聚类算法划分到k个类C C1 C2 CK 对象p 的离群因子of3 p 定义为 与所有类间距的加权平均值 其中 D 为样本数量 Cj 为第j个聚类群体样本数量 d p cj 为样本p与第j个聚类中心的距离 其中cj表示第j个聚

随机推荐

  • 大数据面试-05-大数据工程师面试题

    2 HashMap和HashTable ArrayList和Vector ArrayList和LinkedList的区别 1 HashMap不是线程安全的 hashmap是一个接口 是map接口的子接口 是将键映射到值的对象 其中键和值都是
  • 基于rt2860v2的wifi探针

    实验室有块7620a的板子 之前做过探针方面的试验 rt2860v2的驱动源码来自网络 探针是基于这份源码做的试验 最初在驱动中采集的数据是通过proc节点送到应用层 但是发现数据的实时性啥的不够好 改用了netlink方式 有感兴趣的同学
  • Cocos Creator 如何处理物理和碰撞检测?

    Cocos Creator 如何处理物理和碰撞检测 cocos creator 版本 v3 6 1 Cocos Creator 3 x 实现碰撞检测 Cocos Creator 通过使用物理引擎来处理物理和碰撞检测 Cocos Creato
  • 线特征的LSD提取算法

    线特征的LSD提取算法 线段检测器算法 算法流程 大多数图像中都存在直线特征 是视觉感知 描述外部环境的重要特征信息 直线是一种大尺度的特征 在水面环境中具有更为理想的适用性 线特征具有光照和视角不变性特点 表现更为稳定 有效 因此将点 线
  • redis--11.2--操作--管道

    redis 11 2 操作 管道 1 介绍 将多个命令一起通过网络发送 返回多个值
  • Knowledge Distillation & Student-Teacher Learning for Visual Intelligence: A Review & New Outlooks

    论文地址 http arxiv org abs 2004 05937 github地址 无 这是篇关于知识蒸馏的综述文章 知识蒸馏被认为是用于模型压缩的非常有效的一种方式 本文作者从模型压缩和知识迁移两个应用场景概述了近年来对知识蒸馏的研究
  • kaggle数据集_图像分类:来自 13 个 Kaggle 项目的经验总结

    点击上方公众号 可快速关注 转自 机器学习实验室 任何领域的成功都可以归结为一套小规则和基本原则 当它们结合在一起时会产生伟大的结果 机器学习和图像分类也不例外 工程师们可以通过参加像Kaggle这样的竞赛来展示最佳实践 在这篇文章中 我将
  • VMware虚拟机崩溃的解决方法(.vmx损坏,其他文件完好)

    使用虚拟机的朋友想必都或多或少遇到过虚拟机崩溃 无法开启的问题吧 这确实是虚拟机存在的一个严重问题 例如突然断电 或者虚拟机非正常关机等等 很多因素都能造成虚拟机的异常损坏 本文就针对其中的一种常见问题提供相关解决办法 如有不当之处 望不吝
  • c++直角坐标系与极坐标系的转换_平面向量的奇技淫巧——斜坐标系的一系列低级研究...

    事先说明 笔者初三 如在叙述中有不严谨的地方 还请诸位指出 自当感激不尽 一 什么是斜坐标系 众所周知 我们目前平面中使用相当广的坐标系是笛卡尔发明的平面直角坐标系 然而 笛卡尔真的只使用了这一种坐标系吗 显然不是的 事实上 笛卡尔最先使用
  • Odoo免费开源ERP订单锁货的应用实施技巧分享

    Odoo是世界排名第一的免费开源ERP 其应用市场上有3万多个功能插件可供下载使用 几乎涵盖各行各业的企业业务管理流程 包括库存管理 销售管理 采购管理 制造管理 维修保养 网站电商 市场营销 项目管理 HR 财务 PLM等等 并且源码交付
  • 服务器备案的网站名称怎么填写,公安备案网站名称怎么写?

    最近很多新老用户接到西安网警打来电话让进行公安网安备案 要求通过全国互联网安全管理服务平台进行公安联网备案 客户俗称 公安备案网站名称怎么写 依据 计算机信息网络国际联网安全保护管理办法 相关规定 各网站在工信部备案成功后 需在网站开通之日
  • 迪杰斯特拉算法(Dijkstra)-Java实现

    迪杰斯特拉算法也是求两点之间最短路径的算法 它的思想和普利姆算法有点相似 不断通过已找到点集合和未找到点之间的集合之间的最短路径 这个算法需要用到三个数组 一个是存储结点是否已经访问 一个是结点到起始点的最短距离 还有一个是结点到起始点第一
  • Java实现简单版SVM

    Java实现简单版SVM 最近的图像分类工作要用到latent svm 为了更加深入了解svm 自己动手实现一个简单版的 之所以说是简单版 因为没有用到拉格朗日 对偶 核函数等等 而是用最简单的梯度下降法求解 其中的数学原理我参考了http
  • 解决Adobe Flash Player已不再受支持的问题

    1 问题展示 我们在访问某些网站时 可能会出现Adobe Flash Player已不再受支持的问题 具体如下图所示 这会对我们的日常生活需求产生极大的不便 因此迫切需要一个能够解决此问题的方法 其实很简单 具体操作请看下面的步骤 2 下载
  • 移动端+PC端图片预览+手势缩放等功能合集

    话不多说 直接上代码 大家可按需求功能复制使用 window onload function 点击图片进入预览 var Dom document querySelector preview Dom onclick function var
  • 接口如何实现多态

    抽象类是用来继承的 不能被实例化 抽象类里可以有成员变量 接口中没有 1 抽象类里的抽象方法 只有在子类实现了才能使用 2 抽象类里的普通方法 可被子类调用 3 接口里的方法 都被默认修饰为public abstract类型 4 接口里的变
  • 记录1年免费亚马逊AWS云服务器申请方法过程及使用技巧

    转载 http www itbulu com free aws html 早年我们才开始学习网站建设的时候 会看到且也会寻找免费主机商 主要原因是那时候提供免费主机的商家还是比较靠谱的 而且那时候主机商并不是很多且成本也比较大 我们深知听到
  • linux上层app调用驱动底层的过程详解

    APP应用程序 gt 应用框架层 gt 硬件抽象层 gt 硬件驱动程序 一 硬件驱动层 进入kernel drivers文件夹中 创建一文件夹 放入驱动程序 包括头文件 C文件 Makefile Kconfig 同时对drivers下的Ma
  • 滚动屏幕或缩放屏幕,使用节流

    场景 滚动屏幕 onScroll 缩放屏幕 resize 如果需要统计用户滚动屏幕或缩放屏幕的行为作出相应的网页反应 容易导致网络的阻塞 mounted window addEventListener resize this throttl
  • 基于聚类的异常值检测算法依据及python实现

    假设数据集D被聚类算法划分到k个类C C1 C2 CK 对象p 的离群因子of3 p 定义为 与所有类间距的加权平均值 其中 D 为样本数量 Cj 为第j个聚类群体样本数量 d p cj 为样本p与第j个聚类中心的距离 其中cj表示第j个聚