人工智能学习记录--稳态数据识别

稳态数据识别示例代码:


import pandas as pd#稳态数据识别
def process_windows(filepath, parameters, window_size, step, threshold=0.4):def read_data(filepath):df = pd.read_csv(filepath)return dfdef split_windows(data, window_size, step):windows = []for start in range(0, len(data) - window_size + 1, step):windows.append(data.iloc[start:start + window_size])return windowsdef calculate_slope_sum(window, parameters):k_sum = 0for param in parameters:if param in window.columns:max_val = window[param].max()min_val = window[param].min()mean_val = window[param].mean()k_sum += (max_val - min_val) / mean_val if mean_val != 0 else 0return k_sumdef check_steady_state(windows, parameters, threshold):steady_states = []for window in windows:k_sum = calculate_slope_sum(window, parameters)steady_states.append(k_sum < threshold)return steady_statesdf = read_data(filepath)if not all(param in df.columns for param in parameters):raise ValueError("Dataframe does not contain all required parameters.")windows = split_windows(df, window_size, step)steady_states = check_steady_state(windows, parameters, threshold)stable_indices = [i for i, is_stable in enumerate(steady_states) if is_stable]unstable_indices = [i for i, is_stable in enumerate(steady_states) if not is_stable]stable_windows = [windows[i] for i in stable_indices]unstable_windows = [windows[i] for i in unstable_indices]return stable_windows, unstable_windows, stable_indices, unstable_indices# 示例用法
if __name__ == "__main__":filepath = r"D:\2024qsds_work\AHU-A(2008spring)\AHU-B(2007summer).csv"parameters = ['HWC-VLV', 'CHWC-VLV', 'SA-TEMP', 'SA-SP']window_size = 60step = 15threshold = 0.4stable_windows, unstable_windows, stable_indices, unstable_indices = process_windows(filepath, parameters, window_size, step, threshold)print("Stable indices:", stable_indices)print("Unstable indices:", unstable_indices)

为什么要实现稳态数据识别?

  • 确保数据稳定:稳态数据是指系统在达到稳定状态后采集的数据,而不是系统启动或波动期间的数据。识别稳态数据有助于过滤掉波动数据,从而确保分析结果的准确性和稳定性。

  • 提升数据质量:稳态数据通常表现为较低的噪声和较小的偏差,因此更适合作为数据建模、趋势分析和预测的基础数据。识别稳态数据有助于提升数据质量,从而提高数据分析和模型构建的精确度。

  • 避免错误结论:在系统启动或波动期间收集的数据可能会包含瞬时的极端值或异常数据。如果不加以区分就直接用于分析,可能会得出错误的结论。稳态数据的识别可以帮助我们排除这种潜在的干扰。

  • 提高分析效率:在分析复杂系统时,稳态数据识别可以减少数据量,专注于分析关键稳定阶段的数据,从而减少计算资源的消耗,提高分析效率。

  • 用于过程控制:在工业控制、工程监测等领域,识别稳态数据有助于判断系统是否在正常运行状态。如果数据偏离稳态范围,可能意味着系统出现故障或异常,从而及时采取维护或调整措施。

代码实现分解

  1. 主函数 process_windows

    • 输入参数:文件路径 (filepath),要分析的参数列表 (parameters),窗口大小 (window_size),步长 (step),以及稳态阈值 (threshold)。
    • 通过子函数进行数据读取、窗口分割、斜率计算和稳态检测,最终返回稳定和不稳定窗口的索引和窗口数据。
  2. 子函数 read_data

    • 使用 pandaspd.read_csv 读取指定文件路径的CSV文件并将数据存储为 DataFrame
  3. 子函数 split_windows

    • 将数据分割为指定大小的滑动窗口。
    • 每个窗口从 startstart + window_size 的行组成,start 每次增加一个步长 step,直到覆盖整个数据。
    • 返回一个窗口列表,每个窗口是原数据的一个子集。
  4. 子函数 calculate_slope_sum

    • 计算给定窗口中指定参数的斜率和 (k_sum)。
    • 遍历参数列表 parameters,对于每个参数:
      • 计算该参数在窗口中的最大值 (max_val)、最小值 (min_val) 和均值 (mean_val)。
      • 计算归一化的差值斜率 (max_val - min_val) / mean_val,将其加到 k_sum 中。若均值为 0 则斜率记为 0。
    • 斜率和 (k_sum) 是用来衡量数据波动的度量,波动越小(即 k_sum 越小),数据越可能处于稳态。
  5. 子函数 check_steady_state

    • 遍历所有窗口,调用 calculate_slope_sum 计算每个窗口的斜率和。
    • 比较 k_sum 与阈值 threshold,若 k_sum 小于阈值则判断该窗口处于稳态。
    • 返回一个布尔列表 steady_states,每个元素对应一个窗口,值为 True 表示稳态,False 表示非稳态。
  6. 返回结果

    • process_windows 根据 steady_states 结果提取稳定和不稳定的窗口索引和数据,分别保存在 stable_indicesunstable_indicesstable_windowsunstable_windows
    • 返回这些结果,便于进一步分析或验证。

示例用法说明

__main__ 中的示例用法展示了如何调用 process_windows

  • 使用指定的文件和参数,定义窗口大小、步长和阈值。
  • 通过输出稳定窗口的索引和不稳定窗口的索引来识别数据的稳态区域。

稳态检测原理

稳态检测主要通过 calculate_slope_sum 计算窗口内数据的波动情况:

  • 如果数据在某窗口内波动较小,则 k_sum 会较小;如果数据变化较大,则 k_sum 会较大。
  • 通过设定一个阈值 threshold 来判断 k_sum 是否较小,从而确定是否为稳态。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/8911.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

.NET中通过C#实现Excel与DataTable的数据互转

在.NET框架中&#xff0c;使用C#进行Excel数据与DataTable之间的转换是数据分析、报表生成、数据迁移等操作中的常见需求。这一过程涉及到将Excel文件中的数据读取并加载至DataTable中&#xff0c;以便于利用.NET提供的丰富数据处理功能进行操作&#xff0c;同时也包括将DataTa…

多个NVR同时管理EasyNVR多品牌NVR管理工具/设备:IP常见问题解决方案

随着视频监控技术的不断发展&#xff0c;NVR&#xff08;网络视频录像机&#xff09;已经成为现代安防系统的重要组成部分。而为了更高效地管理多个品牌的NVR设备&#xff0c;EasyNVR这一多品牌NVR管理工具应运而生。然而&#xff0c;在实际使用过程中&#xff0c;尤其是在多个…

虚幻引擎 CEO 谈元宇宙:发展、策略与布局

在当今科技领域&#xff0c;元宇宙无疑是最热门的话题之一。Epic Games 首席执行官 Tim Sweeney 对元宇宙的未来发展充满信心&#xff0c;他认为开放元宇宙将融合娱乐、游戏和科技产业&#xff0c;带来一个光明的未来。本文将深入探讨采访中的关键内容&#xff0c;分析元宇宙的…

支付宝与华为终端联手,移动支付即将进入“碰时代”

大家好&#xff0c;我是小悟。 支付宝与华为终端强强联手&#xff0c;达成了战略合作&#xff01;这可不仅仅是个简单的合作哦&#xff0c;它预示着我们的移动支付方式即将迎来一场革命性的变革&#xff0c;正式进入“碰时代”&#xff01; 支付宝&#xff0c;作为全球领先的…

常用机器人算法原理介绍

一、引言 随着科技的不断发展&#xff0c;机器人技术在各个领域得到了广泛应用。机器人算法是机器人实现各种功能的核心&#xff0c;它决定了机器人的行为和性能。本文将介绍几种常用的机器人算法原理&#xff0c;包括路径规划算法、定位算法和运动控制算法。 二、路径规划算法…

【go从零单排】迭代器(Iterators)

&#x1f308;Don’t worry , just coding! 内耗与overthinking只会削弱你的精力&#xff0c;虚度你的光阴&#xff0c;每天迈出一小步&#xff0c;回头时发现已经走了很远。 &#x1f4d7;概念 在 Go 语言中&#xff0c;迭代器的实现通常不是通过语言内置的迭代器类型&#x…

Java 连接操作 MySQL 数据库(增删查改操作)

环境 MySQL 5.5 版本eclipseMySQL 连接驱动 mysql-connector-java-5.1.18-bin.jar mysql8.0之前的版本与之后的版本使用的jar包是不同的&#xff0c;在使用时也有一定的区别。这里&#xff0c;我的 MySQL 版本为 5.5。 准备工作 将 jar 包添加到项目中&#xff0c;右键项目&a…

STL---迭代器

本文来源&#xff1a;《C语言程序设计》第10章 理解迭代器对于理解STL框架并掌握STL的使用至关重要。 迭代器是泛化的指针&#xff0c;STL算法利用迭代器对存储在容器中的元素序列进行遍历&#xff0c;迭代器提供了访问容器中每个元素的方法。 虽然指针也是一种迭代器&#…

TSMI252012PMX-3R3MT功率电感详细解析

TSMI252012PMX-3R3MT功率电感详细解析 一、引言 在现代电子设备的不断小型化和高性能化的趋势下&#xff0c;功率电感作为电路中的关键元件&#xff0c;其性能的好坏直接影响到整个电路的稳定性和效率。TSMI252012PMX-3R3MT作为深圳市时源芯微科技有限公司&#xff08;TimeSo…

Ubuntu22.04安装DataEase

看到DataEase的驾驶舱&#xff0c;感觉比PowerBI要好用一点&#xff0c;于是搭建起来玩玩。Dataease推荐的操作系统是Ubuntu22.04/Centos 7。 下载了Ubuntu22.04和DataEase 最新版本的离线安装包 一.安装ubuntu22.04 在安装的时候&#xff0c;没有顺手设置IP地址信息&#xff…

OpenEuler 下 Docker 安装、配置与测试实例

文章目录 前言1. 环境准备2. 下载 Docker3.配置服务文件4.配置加速器加速下载docker镜像5. 验证 Docker 安装 前言 Docker 安装大致分为包管理器安装、脚本安装、离线手动安装、容器编排工具安装、桌面版安装等&#xff0c;每种安装各有特点&#xff0c;但涉及知识面不少&…

wordpress实用功能A5资源网同款 隐藏下载框 支付框 需要登录才能查看隐藏的内容

实用功能 隐藏下载框 支付框 需要登录才能查看隐藏的内容, 个人网站防天朝申查实测有效 。 登录前&#xff0c;未登录&#xff1a; 登录后&#xff0c;已登录&#xff1a; 功能说明 该代码段的主要功能是隐藏支付框并为未 登录用户显示一条提示信息&#xff0c;告知他们需要…

C 语言学习-05【数组】

1、一维数组元素的操作 输入一个数&#xff0c;按原来排序的规律将它插入到一个一排列好的数组中&#xff1a; #include <stdio.h>int main() {int i, data, a[10] {2, 3, 6, 9, 11, 12, 14, 17, 19};printf("Primitive series: \n");for (i 0; i < 9; i)…

H5移动端预览PDF方法

新建页面 新建一个页面以便去预览对应的pdf 新建完后在 pages.json 文件内去新增对应路由 页面内容 <template><view class"page"><view class"pdf"><view id"demo"></view></view><view class"b…

嵌入式学习(11)-WS2812灯珠

WS2812的级联控制协议非常简单。通过一根信号线就可以进行串行异步信号发送。 下面显示了四个WS2812通过数据性级联的方式。在串行通讯中使用不同高低电平脉冲表示数据0,1编码。 使用GPIO模拟时序时&#xff1a;GPIO的驱动频率大约是1MHz 硬件电路&#xff1a; 软件代码实现&…

流类库与输入输出

来源&#xff1a;《C语言程序设计》 像C语言一样&#xff0c;C语言也没有输入输出语句。 但C标准库中有一个面向对象的输入输出软件包&#xff0c;即I/O流类库。 流是I/O流类的中心概念。 ------ I/O流类库是C语言中I/O函数在面向对象的程序设计方法中的一个替换产品。 -…

RK3288 android7.1 适配 ilitek i2c接口TP

一&#xff0c;Ilitek 触摸屏简介 Ilitek 提供多种型号的触控屏控制器&#xff0c;如 ILI6480、ILI9341 等&#xff0c;采用 I2C 接口。 这些控制器能够支持多点触控&#xff0c;并具有优秀的灵敏度和响应速度。 Ilitek 的触摸屏控制器监测屏幕上的触摸事件。 当触摸发生时&am…

【AI写作宝-注册安全分析报告-无验证方式导致安全隐患】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 1. 暴力破解密码&#xff0c;造成用户信息泄露 2. 短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉 3. 带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造…

一文熟悉新版llama.cpp使用并本地部署LLAMA

0. 简介 最近是快到双十一了再给大家上点干货。去年我们写了一个大模型的系列&#xff0c;经过一年&#xff0c;大模型的发展已经日新月异。这一次我们来看一下使用llama.cpp这个项目&#xff0c;其主要解决的是推理过程中的性能问题。主要有两点优化&#xff1a; llama.cpp …

安全、高效、有序的隧道照明能源管理解决方案

徐悦 &#xff08;安科瑞电气股份有限公司 上海嘉定201801&#xff09; 前言 双碳数字化能源管理对高速公路来说是个新鲜事。今年的中央经济工作会议提出&#xff1a;将“做好碳达峰、碳中和工作”作为2021年的任务之一&#xff0c;而我国高速公路里程15.5万公里&#xff0c;…