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

干货 | 基于在线监控数据的非现场监管问题识别模型研究

8113044c490edbe121d90827eff36bfc.png

以下内容整理自2023年夏季学期大数据能力提升项目《大数据实践课》同学们所做的期末答辩汇报。

bff9855d99d41581d8d50fa3f30c604e.png

我们汇报的题目是基于在线监控数据的非现场监管问题识别模型研究,我们的汇报将从五个部分展开。首先是项目背景说明,该项目是为了遏制企业逃避监管行为的发生,快速识别企业可能存在的数据篡改和数据造假的行为,提高识别企业这些行为的效率和准确度。

bb7f3302c55532d1c31d7195dff0cbdd.png

我们的项目从两个方向进行展开。第一个方向是语义识别,上图展现了我们的整体进度和实施情况,目前已经按照项目前期计划全部完成。首先,我们根据老师给的文本内容划分了水污染、大气污染和其他三种类型,确定了其中弄虚造假的行为,对所有的案例都进行了人工标注和分类并且从这些案例文本中提取了特征作为关键词。

d8a439224b38bebb95f32aee9468c4f4.png

为了提高准确率,我们采用了两种方法,第一种是基于词典匹配的文本分类模型,建立了阴性词典和阳性词典进行全局的精确匹配。建立词典后,我们发现假阴性和假阳性比例较高,因此对词库进行了优化,对数值类和短句类案例文本进行了处理,最后达到了80%的准确率。方法二使用了大语言模型,我们通过调研现有开源的对话类模型可能存在数据泄露及API无法调用的问题,所以我们最后采用了基于RoBERTa的文本分类模型,在我们标注的案例上进行了训练和微调。

13e0199539f833f07b78608939cccefd.png

接下来是违规行为监控模型。上图是我们模型流程的整体设计,首先对数据进行预处理,通过数理统计模型对整合后污染物排放数据与用电数据进行异常时段分析,并得出异常企业清单进行展示,降低后续的人工筛选负担。机器学习模型主要是对单企业数据异常筛选起到辅助作用,对部分企业的数据异常识别效果良好。

以下是数据预处理部分。这部分问题在于按照原有构想,项目实现的方案为建立污染物排口、排放量及用电数据的一一对应关系,通过识别二者相关性来识别企业是否有弄虚作假现象。但到实际情况中,是无法获得污染物排口到具体用电设备的映射关系的,因此需要对数据进行进一步处理。

7ce5af4f7a8cd1992cc664bf8b7f5a4e.png

我们对数据进行聚合提取,包括对一些污染物排口及用电设备不同类型进行求和处理然后提取出相应的表格。为了便于后续数据统计分析和机器学习,我们对数据进行整合,最终提取出如下的表,每一行是一个样本数据,包括日期、用电量以及各个污染物的数据。

fa88eb836ec1bc9ecdf20a7e25a01780.png

之后首先进行了可视化分析,对单个企业一年内对应的用电与污染数据进行了综合时序分析。结合先验知识,对时序图的部分时段进行了异常特征提取,作为后续判断异常时段的准则。

对于异常判断的算法,我们使用了一种基于滑动窗口的无监督学习方法,判断企业用电数据与污染物排放数据是否出现异常状态。该算法的优点在于其采用无监督的方法对企业数据进行判断,可以不依赖于历史异常规则数据库,从而根据企业需求的特定异常状态进行针对性分析判断,提高准确性。该方法将污染物判断与用电数据多维时间序列全局点异常检测放缩到一个窗口的局部异常检测,并高度利用弄虚作假场景下的相关实际需求完成知识驱动,从而达成目标。

65ce21591b39254b851d15c868f85406.png

具体的准则就是用电数据正常但污染物排放数据出现连续多日降低,具体的算法是,数据要满足产污端用电数据近d2天数据都大于等于前d1天数据平均值,关键污染物数据中超过m种数据近d2天数据都小于前d1一天数据平均值,此时可以认为用电数据保持正常波动但污染物数据连续多日骤降,认为出现异常。

6be04c79d8d192d4216ac9a9c1d0819a.png

对于空气污染排放数据中的十余种排放种类,选取了“二氧化硫”、“废气流量”、“氮氧化物”,“非甲烷总烃”四种污染物排放数据作为关键污染物数据进行分析,从企业提供的测试用例中五十余家企业的21234段时间窗口中,最终筛选分析得到了16段时间的异常数据。

之后是机器学习的算法,主要有以下几点问题,不同企业得到的模型泛化性非常差,不同企业污染物种类差异很大,用电量和污染物之间的关系也有很大不同;虽然数据整体量很大,但这是基于多家企业的,实际上单企业一年半的时间跨度只有500条数据;由于第一部分提供的数据量较小,对于同一家公司来说,第一部分提供的标签数据量不足以识别出第二部分的所有异常;实际测试下来还有一部分预测效果并不佳。

我们讨论得出了一些解决方案。首先,在数据预处理和整合阶段,区别于数理统计分析可以针对所有企业,机器学习模型只针对某一家公司构建。第二点,我们经过讨论认定当天用电量基本只与当天污染物排放有关,因此没有采用常见的时序建模,而是采用了常规机器学习模型。我们选定预测用电量这种方法进行异常识别。选取“治污设备总费率”作为标签,使用其他污染物数据以及“产污设备总费率”去预测,当测试集实际偏差大于验证集RMSE时,认为测试集当天数据出现异常;另一方面,我们没有根据精确调参,而是在初步调参的基础上搭建机器学习训练的框架,方便企业后续得到更多优质数据集后训练优质模型。最后,我们使用一个默认的随机森林模型对各个公司数据进行一个初步判断,当初步训练验证集RMSE值较小时认为该企业数据适合机器学习模型。由于不同企业用电量数值波动范围不同,当我们用Ta=RMSE/Xmax这个参数来对比各企业的效果,最终结合具体数据的图像,设定Ta<0.1为企业可考虑使用上述机器学习方法进行异常初步判断的标准,该值越小,识别精确度越高。

ac725f4a630f360d29bb80e2a13c462b.png

上图展示了某公司的部分模型预测数据。从上图可以发现,产污设备总费率以及污染物之间有很明显的一一对应的相关关系,这种数据用机器学习训练的模型Ta值等于0.05,是比较小的,当Ta等于0.2时,该方法效果变得比较差,污染物与产污设备总费率之间也难以看出一一对应的相关关系。

对于效果好的公司数据,我们选择三种机器学习模型进行建模,分别是随机森林、XGboost和MLP,对三种模型分别采用网格搜索法进行初步调参。考虑到目前企业单家公司收集的数据集较少,且无法经过人为筛选,第一部分提供的标签异常量不足,所以我们并未针对现有数据进行进一步调参,而是搭建了用于调参的框架,方便企业后续得到优质数据集后再训练模型。如下图所示,Ta等于0.05公司带异常的测试数据,可以看到2月23号有一个反常的治污用电量增量,通过模型就可以直接识别出来。

d96b273f8ffc5665ca9ac0a3783efe78.png

最后是项目总结部分。下图分别展示了我们在语义识别和违规监控方向上的成果及未来改进方向。

6b1ba1e2f6dde35271a429549cf8c41d.png

7e5cba5d97c2ace305b5d24af3692422.png

以上是本次汇报的全部内容。

编辑:文婧

校对:林亦霖

0dc32e04b3e2f2065ff1e784a2c840ae.png

相关文章:

干货 | 基于在线监控数据的非现场监管问题识别模型研究

以下内容整理自2023年夏季学期大数据能力提升项目《大数据实践课》同学们所做的期末答辩汇报。 我们汇报的题目是基于在线监控数据的非现场监管问题识别模型研究,我们的汇报将从五个部分展开。首先是项目背景说明,该项目是为了遏制企业逃避监管行为的发生…...

Spring Cloud Alibaba Gateway 简单使用

文章目录 Spring Cloud Alibaba Gateway1.Gateway简介2. 流量网关和服务网关的区别3. Spring Cloud Gateway 网关的搭建3.1 Spring Cloud Gateway 配置项的说明3.2 依赖导入3.3 配置文件 Spring Cloud Alibaba Gateway 1.Gateway简介 Spring Cloud Gateway是一个基于Spring F…...

两种fifo实现方式的差异

减少数据通路翻转来降低功耗: 以FIFO (当容量较小而使用寄存器作为存储部分)设计为例,虽然理论上可以使用比较简单的数据表项逐次移位的方式,实现FIFO 的先入先出功能,但是却应该使用维护读写指针的方式(数据表项寄存器则不用移位)实现先入先出的功能。因为数据表项逐次…...

孜然单授权系统V1.0[免费使用]

您还在为授权系统用哪家而发愁?孜然单授权系统为您解决苦恼,本系统永久免费。 是的,还是那个孜然,消失了一年不是跑路了是没有空,但是这些都是无关紧要的,为大家带来的孜然单授权系统至上我最高的诚意&…...

kubernetes问题(一)-异常事件

1 pod状态处于Evicted 0/1 现象: 1)kubectl get events发现“failed to garbage collect required amount of images”。 2)同时磁盘空间不足的节点有大量pod处于Evicted 0/1状态,但并未进行重新调度。 原因描述: …...

Android Jetpack组件架构 :LiveData的使用和原理

Android Jetpack组件架构: LiveDate的使用和原理 导言 继Lifecycle组件之后我们接下来要介绍的就是LiveDate组件,所谓LiveDate字面意思上就是有声明的数据,当数据有改动时该组件可以感知到这个操作并将该事件通知到其观察者,这样…...

【学习笔记】Prufer序列

Prufer序列 起源于对 C a y l e y Cayley Cayley定理的证明,但是其功能远不止于此 现在考虑将一棵n个节点的树与一个长度为n-2的prufer序列构造对应关系 T r e e − > P r u f e r : Tree->Prufer: Tree−>Prufer: ①从树上选择编号最小的叶子节点&#x…...

由于找不到msvcr110.dll的5种解决方法

在使用电脑的过程中,我们可能会遇到一些问题,比如打开软件时提示找不到 msvcr110.dll 文件丢失。这通常意味着该文件已被删除或损坏,导致程序无法正常运行。本文将介绍几种解决方案,帮助您解决这个问题。 首先,我们需…...

最长连续递增子序列

给定一个顺序存储的线性表,请设计一个算法查找该线性表中最长的连续递增子序列。例如,(1,9,2,5,7,3,4,6,8,0)中最长的递增子序列为(3,4,6,8)。 输入格式: 输入第1行给出正整数n(≤105);第2行给出n个整数,…...

Java学习星球,十月集训,五大赛道(文末送书)

目录 什么是知识星球?我的知识星球能为你提供什么?专属专栏《Java基础教程系列》内容概览:《Java高并发编程实战》、《MySQL 基础教程系列》内容概览:《微服务》、《Redis中间件》、《Dubbo高手之路》、《华为OD机试》内容概览&am…...

前端VUE---JS实现数据的模糊搜索

实现背景 因为后端实现人员列表返回&#xff0c;每次返回的数据量在100以内&#xff0c;要求前端自己进行模糊搜索 页面实现 因为是实时更新数据的&#xff0c;就不需要搜索和重置按钮了 代码 HTML <el-dialogtitle"团队人员详情":visible.sync"centerDi…...

Android Studio 的android.jar文件在哪儿

一般在&#xff1a;C:\Users\admin\AppData\Local\Android\Sdk\platforms\android-33下&#xff08;不一定是33&#xff0c;这个得看你Android Studio->app->builde.gradle的targetSdk是多少&#xff09; 怎么找&#xff1a; 1.打开Android Studio 粘贴地址后&#xff0…...

Elasticsearch 部署学习

文章目录 Elasticsearch 部署学习1. 单节点部署 elasticsearch1.1 部署 jdk1.2 下载 elasticsearch1.3 上传文件并修改配置文件1.4 启动1.5 问题总结1.6 浏览器验证 2. 集群部署 elasticsearch3. 常用命令4. Elasticsearch kibana安装:one: 参考部署文档:two: 下载对应版本的安…...

nodejs 如何在npm发布自己的包 <记录>

一、包结构 必要结构&#xff1a; 一个包对应一个文件夹&#xff08;文件夹名不是包名&#xff0c;但最好与包名保持一致&#xff0c;包名以package.json中的name为主&#xff09;包的入口文件index.js包的配置文件package.json包的说明文档README.md 二、需要说明的文件 1.配…...

移植RTOS的大体思路

最首先当然是去官网看看是不是已经支持目标芯片啦&#xff0c;没有的话&#xff0c;就需要自己手动移植了 获取源码 一般可以从rtos官网或者GitHub上获取源码 确认源码结构 这种有官方文档说明&#xff0c;需要修改的一般都是BSP和libcpu相关文件夹中的内容 CPU架构移植 …...

FPGA到底是什么?

首先只是凭自己浅略的了解&#xff0c;FPGA好像也是涉及到了开发板&#xff0c;单片机之类的东西&#xff0c;和嵌入式十分相似&#xff0c;但是比嵌入式更高级的东西。 肯定有很多小伙伴如我一样&#xff0c;只是听说过FPGA&#xff0c;听别人说的传呼其神&#xff0c;那么它到…...

算法-单词搜索 II

算法-单词搜索 II 1 题目概述 1.1 题目出处 https://leetcode.cn/problems/word-search-ii/description/?envTypestudy-plan-v2&envIdtop-interview-150 1.2 题目描述 2 DFS 2.1 解题思路 每个格子往上下左右四个方向DFS&#xff0c;拼接后的单词如果在答案集中&…...

怒刷LeetCode的第15天(Java版)

目录 第一题 题目来源 题目内容 解决方法 方法一&#xff1a;哈希表双向链表 方法二&#xff1a;TreeMap 方法三&#xff1a;双哈希表 第二题 题目来源 题目内容 解决方法 方法一&#xff1a;二分查找 方法二&#xff1a;线性搜索 方法三&#xff1a;Arrays类的b…...

Android开发MVP架构记录

Android开发MVP架构记录 安卓的MVP&#xff08;Model-View-Presenter&#xff09;架构是一种常见的软件设计模式&#xff0c;用于帮助开发者组织和分离应用程序的不同组成部分。MVP架构的目标是将应用程序的业务逻辑&#xff08;Presenter&#xff09;、用户界面&#xff08;V…...

day2作业

1&#xff0c;输入两个数&#xff0c;完成两个数的加减乘除 #输入两个数&#xff0c;完成两个数的加减乘除 num1int(input("请输入第一个数:")) num2int(input("请输入第二个数:")) print(str(num1)str(num2)str(num1num2)) print(str(num1)-str(num2)str…...

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

XCTF-web-easyupload

试了试php&#xff0c;php7&#xff0c;pht&#xff0c;phtml等&#xff0c;都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接&#xff0c;得到flag...

7.4.分块查找

一.分块查找的算法思想&#xff1a; 1.实例&#xff1a; 以上述图片的顺序表为例&#xff0c; 该顺序表的数据元素从整体来看是乱序的&#xff0c;但如果把这些数据元素分成一块一块的小区间&#xff0c; 第一个区间[0,1]索引上的数据元素都是小于等于10的&#xff0c; 第二…...

大话软工笔记—需求分析概述

需求分析&#xff0c;就是要对需求调研收集到的资料信息逐个地进行拆分、研究&#xff0c;从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要&#xff0c;后续设计的依据主要来自于需求分析的成果&#xff0c;包括: 项目的目的…...

无法与IP建立连接,未能下载VSCode服务器

如题&#xff0c;在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈&#xff0c;发现是VSCode版本自动更新惹的祸&#xff01;&#xff01;&#xff01; 在VSCode的帮助->关于这里发现前几天VSCode自动更新了&#xff0c;我的版本号变成了1.100.3 才导致了远程连接出…...

汽车生产虚拟实训中的技能提升与生产优化​

在制造业蓬勃发展的大背景下&#xff0c;虚拟教学实训宛如一颗璀璨的新星&#xff0c;正发挥着不可或缺且日益凸显的关键作用&#xff0c;源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例&#xff0c;汽车生产线上各类…...

最新SpringBoot+SpringCloud+Nacos微服务框架分享

文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的&#xff0c;根据Excel列的需求预估的工时直接打骨折&#xff0c;不要问我为什么&#xff0c;主要…...

Nuxt.js 中的路由配置详解

Nuxt.js 通过其内置的路由系统简化了应用的路由配置&#xff0c;使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现

摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序&#xff0c;以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务&#xff0c;提供稳定高效的数据处理与业务逻辑支持&#xff1b;利用 uniapp 实现跨平台前…...

反射获取方法和属性

Java反射获取方法 在Java中&#xff0c;反射&#xff08;Reflection&#xff09;是一种强大的机制&#xff0c;允许程序在运行时访问和操作类的内部属性和方法。通过反射&#xff0c;可以动态地创建对象、调用方法、改变属性值&#xff0c;这在很多Java框架中如Spring和Hiberna…...