当前位置: 首页 > news >正文

滑动窗口异常检测方法识别异常数据点

本章主要讲解如何用py实现滑动窗口识别异常值

一、导入数据

这个数据集是有80个样本,前四列分别是是序号、温度,oC、频率,Hz、磁芯材料,后面的1024列是一个周期内的磁通密度B,T

import pandas as pd
import numpy as np
# 读取数据
file_path = "../附件二(测试集) - 副本.xlsx"
df = pd.read_excel(file_path, sheet_name='测试集')

二、提取测量列(4到1023列)

我们只需要第4到1023列的磁通密度特征,对其进行异常值检测

data_cols = df.columns[4:]  # 前4列为序号、温度、频率、磁芯材料
data = df[data_cols].copy()
#%%
# 三、参数设置
window_size = 5   # 滑动窗口大小
threshold = 3.0   # 异常阈值:均值±3*标准差,即3西格玛法

四、滑动窗口异常检测

重点讲解这个函数,传入的第一个参数是一个Series,也就是要识别的一个行;
首先对传入的一个行进行深拷贝,避免影响原来的数值,然后将其类型改成float,便于数值计算;
之后进行循环i,这个i是探查第i个位置,这个位置是处在窗口的两端;
然后定义窗口,当i比较小的时候,这个start默认为0,end会随着探查的位置不断增加:当i=0,start=0,end=1,窗口位置就是[0:1];当i=1时,start=0,end=2,窗口位置就是[0,2];当i=4时,start=0,end=5,窗口位置就是[0:5];之后的话start里面的max就始终取大于0的一边,窗口长度始终为5
然后在每个窗口中根据3sigma原则检测异常,若if成立,则当前的i点就标记为np.nan;
最后返回一个Series

def detect_anomalies(series, window=5, k=3.0):series = series.copy()series_values = series.values.astype(float)for i in range(len(series_values)):# 定义窗口范围start = max(0, i - window + 1)end = i + 1window_data = series_values[start:end]# 计算均值和标准差mean = np.nanmean(window_data)std = np.nanstd(window_data)# 检测异常if std > 0 and abs(series_values[i] - mean) > k * std:series_values[i] = np.nan  # 异常置为 NaNreturn pd.Series(series_values, index=series.index)

五、对每一行进行滑动窗口检测

这里的idx一行一行循环整张表,每轮拿到当前行的索引标记 idx,然后对该行进行滑动窗口处理异常值

for idx in data.index:data.loc[idx] = detect_anomalies(data.loc[idx], window=window_size, k=threshold)

六、将异常检测结果合并回原始数据

df_cleaned = df.copy()
df_cleaned[data_cols] = data
# 保存处理后的数据
df_cleaned.to_excel("2024年C题_滑动窗口处理.xlsx", index=False)
print("异常检测完成,结果已保存至 '2024年C题_滑动窗口处理.xlsx'")
http://www.jsqmd.com/news/1013073/

相关文章:

  • 影刀RPA新手教程_抖音数据监控实战关键词搜索视频数据采集与趋势追踪
  • 《鸿蒙原生应用开发实战》第五篇:收藏功能、资源管理与构建发布
  • latex中三种画流程图的方式
  • 2026年柳州市PMP培训机构哪家好?官方授权R.E.P.报考指南 - 众智商学院课程中心
  • 昆明奢侈品回收市场深度调研:3家实体门店实测,2026年6月最新行情与交易指南 - 钦扬网络
  • 深入解析PowerPC e500核心微架构:流水线、分支预测与中断实战
  • MPC8272 FCC缓冲区描述符与参数RAM:嵌入式通信的“交通指挥官”
  • 2026年驻马店市PMP培训机构哪家好?官方授权R.E.P.报考指南 - 众智商学院课程中心
  • 2026最新英语写作批改AI系统 核心功能及使用避坑指南汇总
  • 2026年莆田市PMP培训机构哪家好?官方授权R.E.P.报考指南 - 众智商学院课程中心
  • Deceive终极指南:三步实现游戏隐身,享受专属游戏时光
  • 终极指南:3步掌握Switch文件解析神器hactool
  • 2026深圳华强北黄金回收避坑指南:虚高报价+鬼秤缩水+恶意压纯度,三大套路逐一拆解 - 逸程
  • 锅炉蒸汽温度温度控制系统 模糊控制 simulink仿真3 (设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • 影刀RPA新手教程_条件判断与分支逻辑从入门到工程级实战
  • 2026年众智商学院PMP加微信咨询怎么获取试听课?1980元费用35学时班期和题库资料确认 - 众智商学院官方
  • 2026 宁波天然 A 货翡翠全面回收,手镯吊坠摆件等藏品都可预约上门估价 - 薛定谔的梨花猫
  • 突破局部逻辑的枷锁:现代 C++ Lambda 表达式的演进与闭包艺术
  • 终极AutoHotkey v2转换指南:如何快速完成v1脚本升级的完整方法
  • 告别模糊:用Real-ESRGAN-GUI轻松实现图片高清修复的完整指南
  • 3个简单步骤让BongoCat音效系统彻底改变你的桌面互动体验
  • 2026深圳龙岗宝安龙华黄金回收实测:全城11区免费上门,30分钟响应当场结算 - 逸程
  • 联想拯救者工具箱终极指南:如何快速掌握笔记本性能调优的10个秘籍
  • MPC8540 PowerQUICC III处理器:L2缓存与片上网络架构深度解析
  • 2026最新 英语老师亲测推荐适合学生用的优质英语听力APP
  • PowerQUICC II SMC与MCC控制器深度解析:从GCI协议到多通道HDLC实战
  • 逆向工程实战:如何打造你自己的微信QQ防撤回补丁
  • 基于微服务架构的高性能数据可视化解决方案:AJ-Report技术深度解析
  • 昆明奢侈品回收指南:3家实体门店实地测评,2026年6月最新行情 - 钦扬网络
  • 深入解析PCI总线时序与MPC8323E控制器实战应用