离群点、异常点检测及Python实现(正态分布3∂,Z-score 异常值检测,基于MAD的Z-score 异常值检测,杠杆值点、DFFITS值、SR学生化残差、cook距离和covratio值)
有一些准则可以检测离群点,如:正态分布3∂,Z-score 异常值检测,基于MAD的Z-score 异常值检测
以上部分详情与代码请参考:https://blog.csdn.net/weixin_35757704/article/details/89280715
文章目录
- 高杠杆值点
- DFFITS值
- SR学生化残差
- cook距离
- covratio值
- 全部代码
下面是其他的准则:高杠杆值点(帽子矩阵)、DFFITS值、SR学生化残差、cook距离和covratio值,先创建个例子:
import numpy as np
import statsmodels.api as sm
import pandas as pd
from sklearn.metrics import mean_squared_errorx = pd.DataFrame(np.random.randint(0, 100, size=(100, 4)), columns=['col1', 'col2', 'col3', 'col4']
)
y = np.random.randint(0, 100, size=(100, 1))
fit = sm.OLS(y, x).fit()print(fit.summary())pred = fit.predict()
print("RMSE : ", np.sqrt(mean_squared_error(y, pred))) # 计算 RMSE# 离群点检验
out_points = fit.get_influence()
高杠杆值点
# 高杠杆值点(帽子矩阵)
leverage = out_points.hat_matrix_diag
# 高杠杆值点大于 2(p+1)/n时 被认为是异常点;其中p为维度,n为样本数量
leverage_out = x[leverage > 2 * (x.shape[1]) / x.shape[0]]
DFFITS值
# DFFITS值
dffits = out_points.dffits[0]# DFFITS统计值大于 2sqrt((p+1)/n) 时被认为是异常点,其中p为维度,n为样本数量
diffts_out = x[dffits > 2 * np.sqrt((x.shape[1] + 1) / x.shape[0])]
SR学生化残差
# 学生化残差
studentized_residual = out_points.resid_studentized_external# studentized_residual 的绝对值不大于2
studentized_residual_out = x[np.abs(studentized_residual) > 2]
cook距离
# cook距离cook = out_points.cooks_distance[0]
# 值的绝对值越大越有高概率是异常点
covratio值
# covratio值covratio = out_points.cov_ratio
# covratio值离 1 越远,越有可能是离群点
全部代码
import numpy as np
import statsmodels.api as sm
import pandas as pd
from sklearn.metrics import mean_squared_errorx = pd.DataFrame(np.random.randint(0, 100, size=(100, 4)), columns=['col1', 'col2', 'col3', 'col4']
)
y = np.random.randint(0, 100, size=(100, 1))
fit = sm.OLS(y, x).fit()print(fit.summary())pred = fit.predict()
print("RMSE : ", np.sqrt(mean_squared_error(y, pred))) # 计算 RMSE# 离群点检验
out_points = fit.get_influence()# 高杠杆值点(帽子矩阵)
leverage = out_points.hat_matrix_diag
# 高杠杆值点大于 2(p+1)/n时 被认为是异常点;其中p为维度,n为样本数量
leverage_out = x[leverage > 2 * (x.shape[1]) / x.shape[0]]# DFFITS值
dffits = out_points.dffits[0]
# DFFITS统计值大于 2sqrt((p+1)/n) 时被认为是异常点,其中p为维度,n为样本数量
diffts_out = x[dffits > 2 * np.sqrt((x.shape[1] + 1) / x.shape[0])]# 学生化残差
studentized_residual = out_points.resid_studentized_external
# studentized_residual 的绝对值不大于2
studentized_residual_out = x[np.abs(studentized_residual) > 2]# cook距离cook = out_points.cooks_distance[0]
# 值的绝对值越大越有高概率是异常点# covratio值covratio = out_points.cov_ratio
# covratio值离 1 越远,越有可能是离群点# 将上面的几种异常值检验统计量与原始数据集合并
contat1 = pd.concat([pd.Series(leverage, name='leverage'),pd.Series(dffits, name='dffits'),pd.Series(studentized_residual, name='rs'),pd.Series(cook, name='cook'),pd.Series(covratio, name='covratio'),
], axis=1)
离群点、异常点检测及Python实现(正态分布3∂,Z-score 异常值检测,基于MAD的Z-score 异常值检测,杠杆值点、DFFITS值、SR学生化残差、cook距离和covratio值)相关推荐
- 用于时间序列异常检测的学生化残差( studentized residual)的理论和代码实现
异常检测是指数据科学中可帮助发现数据集中的异常值有用的技术.异常检测在处理时间序列数据时特别有用.例如时间序列数据来自传感器测量结果(例如压力和温度),由于设备故障和瞬态现象等问题包含许多异常点, 异 ...
- OpenCV基于Python霍夫圆检测—基于梯度的霍夫圆检测
基于梯度的霍夫圆检测 1. 回顾与目标 2. 基于梯度的霍夫圆检测 2.1 问题分析 2.2 基于梯度的霍夫圆检测步骤 3. 基于梯度的霍夫圆检测函数HoughCircles 3.1 函数HoughC ...
- 基于OpenCV的视频处理 - 人脸检测
一个不知名大学生,江湖人称菜狗 original author: jacky Li Email : 3435673055@qq.com Time of completion:2023.2.7 Las ...
- [论文阅读] (10)基于溯源图的APT攻击检测安全顶会总结
<娜璋带你读论文>系列主要是督促自己阅读优秀论文及听取学术讲座,并分享给大家,希望您喜欢.由于作者的英文水平和学术能力不高,需要不断提升,所以还请大家批评指正,非常欢迎大家给我留言评论,学 ...
- 基于用户行为建模和异常检测算法的内部威胁检测
Insider Threat Detection Based on User Behavior Modeling and Anomaly Detection Algorithms 内部威胁是授权用户的 ...
- 两个一样的图像相除会怎么样_【壮凌自动化分析】一种动力电池生产中基于图像运动模糊的速度检测方法...
一种动力电池生产中基于图像运动模糊的速度检测方法 1.西南大学 电子信息工程学院,重庆 400715) 2.非线性电路与智能信息处理重庆市重点实验室,重庆 400715) 1.当前背景与成熟方法介绍 ...
- 肺结节目标检测_一种基于CT图像的肺结节检测方法及系统与流程
本发明属于医学图像分析和计算机辅助诊断等技术领域,更具体地,涉及一种基于CT图像的肺结节检测方法及系统. 背景技术: 肺癌是导致患癌死亡的最危险的疾病之一,其发病率占所有癌症的三分之二,且5年存活率为 ...
- 基于深度学习的小目标检测方法综述
随着深度学习的发展,基于深度学习的目标检测技术取得了巨大的进展,但小目标由于像素少,难以提取有效信息,造成小目标的检测面临着巨大的困难和挑战. 为了提高小目标的检测性能,研究人员从网络结构.训练策略. ...
- python 异常点检测 cook距离_异常检测算法汇总
本文来自:https://github.com/Albertsr 第一部分:无监督异常检测 1. 算法 1.1 孤立森林(Isolation Forest) 算法论文: Isolation Fores ...
最新文章
- 查找python矩阵中最大元素_找出矩阵中最大的元素
- 201673020127 词频统计软件项目报告
- matlab 判断两个矩阵有元素相等_Matlab入门教程 第 1 章 Matlab基础知识之基本运算...
- 监理延期 验收工程款制约三方
- putty+Xming使用方法
- 微信小程序demo、开发工具下载地址
- Word如何快速绘制你需要的作文稿纸
- Google IO 2022——CSS 状态
- 高漫数位板1060PRO 8192级的驱动下载与安装
- 关于MOS管的详细介绍
- linux电脑主机国产,免费linux主机面板推荐,国产比较优秀Linux免费云主机管理面...
- 什么是绿色工厂?什么企业可以申报绿色工厂?
- vue+element ui 项目 后台管理系统
- 线程同步之互斥量(互斥锁)
- Java页面跳转失效_求助各位java大神,为什么表单提交之后跳转页面失灵
- maven的下载与配置,还有maven的使用逻辑
- python PIL 图片素描化
- 机器人自己造自己,像搭积木一样轻松 | MIT
- Windows桌面图标和分类美化小工具
- 鸿蒙系统有哪些手机可以用,鸿蒙系统手机有哪些型号,鸿蒙系统手机什么时候上市...