CN109669932B - 一种基于次序依赖的电力数据集修复方法 - Google Patents
一种基于次序依赖的电力数据集修复方法 Download PDFInfo
- Publication number
- CN109669932B CN109669932B CN201811230601.6A CN201811230601A CN109669932B CN 109669932 B CN109669932 B CN 109669932B CN 201811230601 A CN201811230601 A CN 201811230601A CN 109669932 B CN109669932 B CN 109669932B
- Authority
- CN
- China
- Prior art keywords
- array
- sequence
- longest
- power data
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y04—INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
- Y04S—SYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
- Y04S10/00—Systems supporting electrical power generation, transmission or distribution
- Y04S10/50—Systems or methods supporting the power network operation or management, involving a certain degree of interaction with the load-side end user applications
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及一种基于次序依赖的电力数据集修复方法,该方法基于动态规划实现,包括以下步骤:a1)获取待修复的电力数据序列数组;a2)构建一数组dp,该数组中的元素dp[i]定义为所述电力数据序列数组中前i天中满足次序依赖的最长序列长度;a3)根据所述数组dp获得最长序列长度maxlen,通过递归方式依次得到最长满足次序依赖序列,完成修复,获得满足次序依赖的修复后数据。与现有技术相比,本发明具有缩短修复时间、提高修复效果等优点。
Description
技术领域
本发明涉及一种电力数据处理方法,尤其是涉及一种基于次序依赖的电力数 据集修复方法。
背景技术
随着数字化技术的发展,为了保证系统的安全、可靠和高效运行,大量管理 信息系统、地理信息系统、电力市场信息系统以及电网运行的实时信息系统等在电 力系统中得到了广泛应用,产生了大量数据。这些海量数据的增加,特别是考虑到 这些数据从各方面、各层次和各环节详细及深入地描述了电力系统本身在各种条件 和情况下的属性,这为数据挖掘的应用创造了必要的条件。
数据质量检测是数据挖掘过程中一个重要而关键的过程,它对数据挖掘是否 成功起着巨大的作用。一个很直观的理解是,如果数据质量不佳,那么不管使用何 种数据挖掘方法,使用多么大量的计算资源,进行多么高效的计算,都很难得到符 合实际的分析结果。这是因为挖掘算法对其处理的数据集有一定的要求,比如数据 完整性好、数据的冗余性少、属性之间的相关性小。然而,实际系统中的数据一般 都具有不完整性、冗余性和模糊性等问题,很少能直接满足数据挖掘算法的要求。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种基于次序依 赖的电力数据集修复方法。
本发明的目的可以通过以下技术方案来实现:
一种基于次序依赖的电力数据集修复方法,该方法基于动态规划实现,包括以 下步骤:
a1)获取待修复的电力数据序列数组;
a2)构建一数组dp,该数组中的元素dp[i]定义为所述电力数据序列数组中前i天中满足次序依赖的最长序列长度;
a3)根据所述数组dp获得最长序列长度maxlen,通过递归方式依次得到最长 满足次序依赖序列,完成修复,获得满足次序依赖的修复后数据。
进一步地,步骤a2)中,dp[i]通过状态转移方程迭代获得:
dp[i]=Max(dp[j]+1)i∈[1,len]j∈[1,i-1]
其中,len为电力数据序列数组长度,dp[1]=1。
进一步地,步骤a3)中采用简单滑动平均方法修复数据。
本发明还提供一种基于次序依赖的电力数据集修复方法,该方法基于动态规划和二分查找实现,包括以下步骤:
b1)获取待修复的电力数据序列数组;
b2)构建一数组d,该数组中的元素d[k]定义为长度为k的满足次序依赖最长 子序列的最小末尾元素;
b3)根据所述数组d通过栈输出最长满足次序依赖序列,完成修复。
与现有技术相比,本发明具有以如下有益效果:
1)基于家用电力读数数据集的特征,本发明使用次序依赖来描述数据遵循的 准则,基于次序依赖实现错误电力数据的修复,相较于常见的信号处理方法在电力 数据集上具有显著的改善,修复时间和效果上都具有较大优势。
2)本发明对时间复杂度进行进一步优化,结合动态规划和二分查找,使方法 在大数据集上能在合适的时间内完成修复。
附图说明
图1为本发明的流程示意图;
图2为本发明与对比方法的修复时间比较示意图;
图3为本发明与对比方法的F1-score比较示意图;
图4为本发明与对比方法的距离比较示意图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范 围不限于下述的实施例。
本发明通过对家用电力读数数据的分析,引入次序依赖来描述读数数据应该 遵循的质量准则,并提出一种次序依赖的修复算法进行针对电力数据的数据修复, 以提升数据质量。
数据质量是一个多维的概念,每个维度代表一个审视数据质量的角度,例如 一致性(Consistency)、完整度(Completeness)、精简度(Concise Representation)、 及时度(Timeliness)和可理解度(Understandability)等。在实践中,数据一致 性是一个常见的度量标准。通过在数据集上定义数据应该遵循的准则,并在随后检 测数据一致性,以及修复数据以满足一致性,可以有效消除数据集中的错误,并为 之后的数据挖掘等工作带来帮助。
一、理论基础
1、通用记号
对于一个关系模式R(A1,…,Am),每个Aj代表一个R上的单属性,对于R的一 个实例r,tr、sr代表r上的元组。tr[A]代表r上元组t的属性A,称其为一个单元 (cell),并用val(tr[A])来代表这个单元的值。当r在上下文中足够明确时,可以将 简记为ti。
次序依赖和传统依赖(如函数依赖)的一个核心区别是,次序依赖是定义在属 性的列表上,而传统的依赖关系通常定义在属性的集合上。
属性集合和属性列表
(2)按照惯例,一个非空的列表X表示为[A|Y],其中首属性A是一个单属 性且出现在X的开头,而尾部Y则是将A从X中去掉后得到的剩余列表。
2、次序依赖的记号
(1)X=[];或
这里<A是定义在属性A的值域上的次序符号,显然它可以定义在数字,字符 串和日期等类型属性上。
3、次序依赖
二、本发明方法
次序依赖的验证基于表中元组的两两比较,次序依赖的修复问题即使限制为属性值的二元距离,相同的属性优先级,以及约束集仅包含函数依赖的弱化次序依赖 时,复杂度也被证明是NP-hard。因此次序依赖的修复不仅需要良好的启发式算法, 同时也需要在算法中记录属性的关系以保证属性的优先级能够正确修改的顺序,并 满足次序依赖本身字典序的定义。而在时间序列形式的电力数据集上,表现为元组 右侧即电表读数随时间单调递增。
以数据集为基础,同时满足修改点数最少的修复要求,本发明提出一种基于次 序依赖的电力数据集修复方法,为适用于时间序列的多项式方法,具体过程如下:
2、通过迭代维护数组dp,从前到后依次找到满足次序依赖的数据,在这些数 据中依次对dp[i]寻找现有的最长满足次序依赖的序列长度dp[j],将其长度加一赋 值给dp[i]。
3、维护完整个dp数组后,得到最长序列长度maxlen,通过递归依次得到最 长满足次序依赖序列,并完成修复。
上述方法的代码可以描述为:
输入:电力数据序列数组s,长度为len。
输出:满足次序依赖的修复后数据。
上述方法建立在动态规划的基础上,dp[i]表示为前i天满足次序依赖并且修改点数最少的序列长度,易得状态转移方程:
dp[i]=Max(dp[j]+1)i∈[1,len]j∈[1,i-1]
首先完成初始化(1-4行),其次通过状态转移方程依次得到前i天的序列长度 (5-11行)。得到dp数组后即可通过递归方式依次输出满足次序依赖的最长序列 (12-19行),最后通过后续方法修复不在最长序列上的数据,实验采用简单并且 效果比较好的简单滑动平均(rolling mean)来修复数据。易得上述方法的时间复 杂度为O(n2)。
本实施例中使用的数据集包括某地区365天期间的14388名居民电力时间序列。数据包括三列,分别为用电户的电表编号id,采样时间time,电表读数data,如表 1所示,其中采样时间为每日0点。
表1电力数据集
Id | Time(Index) | Data(S) |
61242388 | 1 | 9091 |
61242388 | 2 | 9095 |
61242388 | 3 | 9508 |
61242388 | 4 | 9093 |
61242388 | 5 | 9392 |
61242388 | 6 | 9466 |
例1:若i=6,s数组和dp数组如表2和表3所示。
表2 s数组示例
i | 1 | 2 | 3 | 4 | 5 | 6 |
s[i] | 9091 | 9095 | 9508 | 9093 | 9392 | 9466 |
表3 dp数组示例
i | 1 | 2 | 3 | 4 | 5 | 6 |
dp[i] | 1 | 2 | 3 | 2 | 3 |
维护dp[6]的过程为依次在s[1]到s[5]中寻找与s[6]满足次序依赖的数据,符合要求的有4个:
s[1]:9091<s[6]:9466,
s[2]:9095<s[6]:9466,
s[4]:9093<s[6]:9466,
s[5]:9392<s[6]:9466,
之后在其中寻找现有的最长的序列长度,例中为dp[5],则将dp[6]维护为4即 可,如表4。
表4维护后dp数组示例
i | 1 | 2 | 3 | 4 | 5 | 6 |
dp[i] | 1 | 2 | 3 | 2 | 3 | 4 |
注意到上述动态规划中状态转移部分中生成序列时有序,在插入时可以使用二分查找来优化复杂度,本发明给出第二种方案。
为了充分利用满足次序依赖的子序列的单调性,定义数组d,d[k]表示为长度 为k的满足次序依赖最长子序列的最小末尾元素。这样在动态规划迭代过程中就可 以用二分查找在O(logn)复杂度维护d数组,具体过程如下:
1、x为当前迭代中的电力数据,len为d数组的长度,即当前最长的满足次序 依赖子序列的长度。
2、如果x大于等于d[len],则将x放在d数组的最后,然后序列长度加一,即 d[++len]=x。
3、如果x小于d[len],则将x放在d[1…len-1]中最后一个小于等于x的元素后。
例2:若x=9366,len=6,d数组如表5所示:
表5 d数组示例
Index | 1 | 2 | 3 | 4 | 5 | 6 |
d[Index] | 9343 | 9346 | 9352 | 9361 | 9374 | 9377 |
由于9366小于d[len],则需将其放在最后一个小于等于9366的元素后,例中 为d[4]。则维护后的d数组如表6所示:
表6维护后d数组示例
Index | 1 | 2 | 3 | 4 | 5 | 6 |
d[Index] | 9343 | 9346 | 9352 | 9361 | 9366 | 9377 |
易得d数组单调递增,动态规划迭代中寻找符合条件的位置就可以使用二分查找,使得总的算法时间复杂度将为O(nlogn)。算法1中递归输出序列的Find_path 方法不再适用于d数组,为了得到具体的序列进行接下来的修复过程,定义数组c 记录原始数据中每个元素在最长序列中的位置,即c[i]表示电力数据序列s中第i 天在最长满足次序依赖序列中的第几个位置。如最长满足次序依赖序列长度为L, 则输出序列时在c[i]倒序依次查找位置为L,L-1,…,1的元素即可,此过程可以 用栈实现。
第二种方案的代码描述如下:
输入:电力数据序列数组s,长度为len。
输出:满足次序依赖的修复后数据。
上述方法的1行完成初始化,2-10行完成上述优化后的动态规划过程,11-20 行通过栈来输出最长满足次序依赖序列,最后进行数据的修复。优化后的时间复杂 度为O(nlogn)。
3、实验数据
本实施例基于一个通过人工验证,确保正确的数据集D来构建实验数据集。(1) 通过分析和模拟真实电力数据集的波动趋势,扩展D以得到不同大小的数据集。(2) 通过分析和模拟真实电力数据集中的错误样式,比如缺失、异常等,在正确数据集 中人为地添加噪音得到包含错误的数据集。通过调整噪声率参数,得到包含不同错 误数量的数据集。
具体来说,实验数据集True为长度为365天的正确电力数据集,Data1、Data2、Data3分别为在True上随机添加噪音后的数据集,噪音率分别为1%,5%,10%。 数据集Test1、Test2、Test3、Test4、Test5分别为长度400、1500、2000、10000、 30000的电力数据集,用于进行运行时间的比较。
在实验中采用的对比方法为经验模态分解Empirical Mode Decomposition(简称EMD)技术。这是一种经典和有效的数学方法,最早是由Huang等人在1998 年提出,用于对海浪的研究。随后,其他学者将该技术应用到图像识别、工程质量 检测、信号去噪以及语音识别等工程领域,都取得了不错的效果。从本质上讲,该 方法是一种数据逐步分解技术,也是对非平稳数据平稳化的过程。
通过使用本发明方法和对比方法,本实施例从测试数据集计算得到修复后满足次序约束的新数据集。
实验对比了本发明方法和对比方法在不同数据集大小,不同噪音率参数上的修复质量度量(F1-score,度量距离)以及运行时间。
主要使用F1-score来评估电力数据修复的结果优劣。这是统计学中用来衡量二元分类测试准确度的一种度量指标,它同时考虑了准确率和召回率,可以看作是实 验准确率和召回率的一种加权平均,同时也是综合准确率和召回率的一个评价指标。 该度量方法在基于函数依赖、条件函数依赖、拒绝约束等的数据修复中得到了广泛 应用。
在本实验中,数据有正确与错误两种类别,则输出的结果与真实数据的组合就 有以下4种,分别为:tp、fp、fn、tn,分别表示数据是正确的算法判断是正确 的,数据是错误的算法判断是正确的,数据是正确的算法判断是错误的,数据是错 误的算法判断是错误的,
F1score的计算方法为:
经过换算为:
公式中可以分别赋予precision和recall不同的权重来综合评价指标,本次实验中各赋0.5的权重。
使用标准欧式距离来比较修复后数据集和原始数据集之间的距离。较小的距离代表着和原始数据较小的差距;直观理解,通过更小距离变化就得到满足要求的数 据是更优的。
若通过算法修复后的数据集为Fix,则距离Dis可以表示为:
(1)时间比较
时间比较是在数据集Test1、Test2、Test3、Test4和Test5上分别运行动态规划 算法,优化算法以及EMD算法来比较各自的时间性能,此处上述五个数据集噪音 率均为1%。实验结果如图2所示。
需要注意的是,由于EMD算法运行时间过长,图中使用了对数纵坐标轴来显 示时间。由图可知,优化算法相较于EMD和动态规划算法在运行时间上有显著的 优势,在数据量达到万级别时运行时间已经是其他两个算法的千分之一甚至万分之 一。在数据集长度为30000时,EMD算法耗时已接近20分钟,动态规划算法也需 19秒,而优化算法仅需0.1秒,优势已经非常明显。
(2)F1-score比较
F1-score比较是在数据集Data1,Data2,Data3上运行优化算法和EMD算法 来比较在不同噪音率的数据集上两者在F1-score刻度上的表现,如上文所述,此处 三个数据集的长度均为365,噪音率分别为1%、5%、10%。实验结果如图3所示。
由图可知,优化算法在同一级别噪音率上相比于EMD算法有着更高的 F1-score,也就是在修改数据尽可能少的情况下更多的修复了错误点,特别是在噪 音率10%的实验数据上,优化算法的F1-score值为0.95,对比方法为0.91,有比 较大的优势。
(3)距离比较
距离比较是在数据集Data1、Data2和Data3上运行优化算法和EMD算法来比 较在不同噪音率的数据集上两者在距离度量刻度上的表现。如前所述,这里采用欧 式距离作为距离度量方法。实验结果如图4所示。
与图2相同,图4纵坐标轴也采用了对数坐标轴。从图上看,优化算法比起EMD算法不仅尽可能少改动点,也尽可能的接近了原数据,比较好的满足了修复 要求。
针对电力数据特点,本发明提出了一种满足次序依赖的修复方法,并进一步提 出了一种时间上的优化。从实验可以看出,本发明修复时间和效果上比起对比方法 有着显著的优势。
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员 无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领 域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的 实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
Claims (2)
1.一种基于次序依赖的电力数据集修复方法,其特征在于,该方法基于动态规划和二分查找实现,包括以下步骤:
b1)获取待修复的电力数据序列数组;
b2)构建一数组d,该数组中的元素d[k]定义为长度为k的满足次序依赖最长子序列的最小末尾元素,len为d数组的长度,即当前最长的满足次序依赖子序列的长度;
b3)根据所述数组d通过栈输出最长满足次序依赖序列,完成修复;
x为当前迭代中的电力数据,如果x大于等于d[len],则将x放在d数组的最后,然后序列长度加一,即d[++len]=x,如果x小于d[len],则将x放在d[1…len-1]中最后一个小于等于x的元素后;
d数组单调递增,动态规划迭代中寻找符合条件的位置使用二分查找,定义数组c记录原始数据中每个元素在最长序列中的位置,即c[i]表示电力数据序列s中第i天在最长满足次序依赖序列中的第几个位置;如最长满足次序依赖序列长度为L,则输出序列时在c[i]倒序依次查找位置为L,L-1,…,1的元素,此过程用栈实现。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811230601.6A CN109669932B (zh) | 2018-10-22 | 2018-10-22 | 一种基于次序依赖的电力数据集修复方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811230601.6A CN109669932B (zh) | 2018-10-22 | 2018-10-22 | 一种基于次序依赖的电力数据集修复方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109669932A CN109669932A (zh) | 2019-04-23 |
CN109669932B true CN109669932B (zh) | 2023-06-30 |
Family
ID=66142083
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811230601.6A Active CN109669932B (zh) | 2018-10-22 | 2018-10-22 | 一种基于次序依赖的电力数据集修复方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109669932B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116578557B (zh) * | 2023-03-03 | 2024-04-02 | 齐鲁工业大学(山东省科学院) | 面向数据中台的缺失数据填充方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104794484A (zh) * | 2015-04-07 | 2015-07-22 | 浙江大学 | 基于分段正交多项式分解的时序数据最近邻分类方法 |
CN107633099A (zh) * | 2017-10-20 | 2018-01-26 | 西北工业大学 | 数据库一致性错误的重要度判定方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8645309B2 (en) * | 2009-11-30 | 2014-02-04 | At&T Intellectual Property I. L.P. | Processing data using sequential dependencies |
US9195436B2 (en) * | 2013-10-14 | 2015-11-24 | Microsoft Technology Licensing, Llc | Parallel dynamic programming through rank convergence |
-
2018
- 2018-10-22 CN CN201811230601.6A patent/CN109669932B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104794484A (zh) * | 2015-04-07 | 2015-07-22 | 浙江大学 | 基于分段正交多项式分解的时序数据最近邻分类方法 |
CN107633099A (zh) * | 2017-10-20 | 2018-01-26 | 西北工业大学 | 数据库一致性错误的重要度判定方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109669932A (zh) | 2019-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109783734B (zh) | 一种基于项目属性的混合协同过滤推荐算法 | |
US20080104056A1 (en) | Distributional similarity-based models for query correction | |
CN110442516B (zh) | 信息处理方法、设备及计算机可读存储介质 | |
US11295232B2 (en) | Learning the structure of hierarchical extraction models | |
CN114281809B (zh) | 一种多源异构数据清洗方法及装置 | |
CN111861238A (zh) | 高速公路桥梁工程风险评估方法、装置及计算机设备 | |
CN109669932B (zh) | 一种基于次序依赖的电力数据集修复方法 | |
CN105046203A (zh) | 基于夹角dtw距离的卫星遥测数据自适应层次聚类方法 | |
CN110516792A (zh) | 基于小波分解和浅层神经网络的非平稳时间序列预测方法 | |
Kadir | Bayesian inference of autoregressive models | |
Atchadé | Markov chain Monte Carlo confidence intervals | |
Israilovich et al. | MECHANISMS FOR OPTIMIZATION OF DETECTION AND CORRECTION OF ERRORS IN COMPUTER TEXT PROCESSING SYSTEMS | |
CN114676927B (zh) | 风险预测方法和装置、电子设备、计算机可读存储介质 | |
CN112766459B (zh) | 一种基于生成器的异常检测方法 | |
US11562110B1 (en) | System and method for device mismatch contribution computation for non-continuous circuit outputs | |
Eriksson et al. | Computationally efficient off-line joint change point detection in multiple time series | |
CN112257215B (zh) | 一种产品寿命分布参数的极大似然估计求解方法及系统 | |
Chen et al. | Reconfidencing LLMs from the Grouping Loss Perspective | |
CN109284320B (zh) | 大数据平台上的自动回归诊断方法 | |
JP2017059216A (ja) | クエリ校正システムおよび方法 | |
Karpukhin et al. | HoTPP Benchmark: Are We Good at the Long Horizon Events Forecasting? | |
CN113011476B (zh) | 基于自适应滑动窗口gan的用户行为安全检测方法 | |
Tomas | Pricing and calibration of stochastic models via neural networks | |
Bu et al. | Measuring robustness of deep neural networks from the lens of statistical model checking | |
CN109558907A (zh) | 非独立同分布下基于k均值算法的数据分析方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |