CN111401460B - 一种基于限值学习的异常电量数据辨识方法 - Google Patents
一种基于限值学习的异常电量数据辨识方法 Download PDFInfo
- Publication number
- CN111401460B CN111401460B CN202010213305.6A CN202010213305A CN111401460B CN 111401460 B CN111401460 B CN 111401460B CN 202010213305 A CN202010213305 A CN 202010213305A CN 111401460 B CN111401460 B CN 111401460B
- Authority
- CN
- China
- Prior art keywords
- electric quantity
- data
- quantity data
- value
- point
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/243—Classification techniques relating to the number of classes
- G06F18/2433—Single-class perspective, e.g. one-against-all classification; Novelty detection; Outlier detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
- G06F18/2411—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on the proximity to a decision surface, e.g. support vector machines
-
- 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
- Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于限值学习的异常电量数据辨识方法。该方法首先通过异常电量数据分析得出异常电量数据的类型和鉴别算法;然后通过对OneClassSVM算法分析研究,对异常电量数据的鉴别限值进行学习,得到限值学习表,通过限值学习表校核历史数据的异常电量数据,接着通过分析基于密度的聚类算法DBSCAN算法校核历史数据中的离群值,实现基于限值学习的异常电量数据辨识;最后对同样基于密度的聚类算法LOF算法进行分析研究,结合两种基于密度的聚类算法进行实验,同时对多维数据进行离群值辨识,实现了基于密度聚类算法的多维电量数据离群值辨识。
Description
技术领域
本发明属于电力数据挖掘技术领域,尤其涉及一种基于限值学习的异常电量数据辨识方法。
背景技术
大数据技术的意义在于通过对海量数据的分析处理挖掘出其潜在的价值,并将其应用到以后的生产和生活中去。从技术上看,当前大数据主要与云计算紧密相连,因为大数据必然无法用一台计算机完成处理,必须采用分布式处理。
传统电量数据处理流程由于计量互感器、电能表、采集终端设备、通信设备、电磁干扰、软件协议解析等原因,会造成采集来的原始电量数据不完整、不可靠等情况,电量异常电量数据过多就会导致后续的电量与线损计算不准确。
发明内容
本发明的目的在于,针对目前电量数据不完整、不可靠等情况,提供了一种基于限值学习的异常电量数据辨识方法(本发明涉及的“大数据技术”是指在电力系统领域所用到的大数据分析技术方法,主要是指数据挖掘技术,并未涉及较为专业的计算机领域的大数据技术),包括如下步骤:
步骤1,采集历史电量数据并分析异常电量数据类型以及检测算法,所述异常电量数据类型包括包括离群值和缺失值,所述离群值包括不刷新值、跳变值和越限值;
步骤2,根据步骤1的分析结果,通过OneClassSVM算法实现限值学习,然后在此基础上校核历史电量数据中的异常电量数据并通过DBSCAN算法校核历史电量数据中的离群值;
步骤3,在DBSCAN算法的基础上结合LOF算法,实现对多维电量数据样本的离群值辨识。
步骤1包括:
步骤1-1,在进行异常电量数据校核前,需要对从电量数据平台D5000中采集的历史电量数据进行如下判定:
如果光伏量测历史电量数据的天数在五天以上,则需要判定电量数据最大值出现时刻和数据分布两个因素,根据最大值出现的时间点判断,同一天出现两个以上最大值的时间点只取一个数据,如果光伏量测历史电量数据的的天数中,最大值时刻分布区间在10:00~14:00之间的天数是80%以上且从08:00-18:00之间的数值之和占比全天电量值之和80%以上,则判定光伏量测数据正常,进行步骤1-2,如果不正常则需要校正,一般使用均值替代法或者K近邻算法;如果光伏量测历史电量数据的天数少于五天,则判断光伏量测数值在时间区间8:00~18:00的占比,如果从时间区间08:00-18:00之间的数值之和占比全天电量值之和80%以上,则判断光伏量测数据正常,进行步骤1-2,如果不正常则需要校正,一般使用均值替代法或者K近邻算法;
如果不是光伏量测,则跳过直接执行步骤1-2;
步骤1-2,如果电量数据表中显示为空值NULL(不是数值为0),则为缺失值;
当K=1时,表示电量数据量测点相邻一位数据,即如果连续两个电量数据量测点的电量值一样则判定两个点都是不刷新值;K=2时,表示电量数据量测点相邻两位数据,如果连续三个电量数据量测点的值一样即判定三个点都是不刷新值;本发明选择K=2。
如果一个电量数据量测点的值比前一个电量数据量测点的值大于K倍(本发明这里K取值为1),分如下四类:一个电量数据量测点比前一个电量数据量测点的值大于K倍;一个电量数据量测点和前后采样的差均大于K倍;一个电量数据量测点的值比前一个电量数据量测点的值大于K倍标准差;一个电量数据量测点和前后采样的差大于K倍标准差;如果属于以上任一类,则为跳变值;
如果一个电量数据量测点的值超过标准的总上下限,则为越限值,对于越限值,如果原来无标记则标记为越限值,如果已经被标记为跳变值,则不覆盖前面的的标记;
步骤2包括如下步骤:
步骤2-1,根据文献(1)(Mack B,Waske.In-depth comparisons of MaxEnt,biased SVM and one-class SVM for one-class classification of remote sensingdata[J].Remote Sensing Letters,2017,8(3):290-299.)中对于OneClassSVM算法的分析研究,基于OneClassSVM算法对历史电量数据进行限值学习,获得限值学习表;
步骤2-2,通过步骤1的方法校核历史电量数据中的缺失值、不刷新值、跳变值和越限值,然后根据文献(2)(于亚飞,周爱武.一种改进的DBSCAN密度算法[J].计算机技术与发展,2011(2):30-33.)对于DBSCAN算法在缓解全局Eps导致的聚类质量恶化问题的改进,再通过DBSCAN聚类法校核历史电量数据中的离群值。
步骤2-1包括如下步骤:
步骤2-1-1,对历史电量数据进行SVDD判定:对于正常电量数据样本{x|xi∈rd,i=1,2,…,m},设定SVDD产生的超球体参数,超球体参数包括中心o和对应的超球体半径r,r>0,超球体体积V(r)被最小化,x为电量数据样本对象,m为对象个数,xi表示第i个电量数据样本,rd为超球体参数对应的半径值;所有训练数据点xi到中心的距离小于r,构造一个惩罚系数为C的松弛变量ζi,优化问题如下所示:
ζi≥0,i=1,2,3...,m (2)
||xi-o||2≤r+ζi=1,2,3...,m (3)
ζi≥0,i=1,2,3...,m (4)
采用拉格朗日对偶求解之后,判断新的数据点X是否在内,如果X到中心的距离小于或者等于半径r,则不是异常电量数据值,如果在超球体以外,则是异常电量数据值;
步骤2-1-2,在Python中的机器学习库Sklearn中,采用SVM包里面的OneClassSVM来做异常点检测,设置异常值比例Nu=0.005,设置kernel=“rbf”为基于半径的函数,设置“rbf”内核系数gamma=0.001。通过步骤2-1-1的方法对历史电量数据进行SVDD判定时,如果正常数据超过历史电量数据的一半,则SVDD判定成功,即以正常数据的最大值和最小值分别作为上限值和下限值;如果SVDD判定不成功,就采用3倍标准差作为上下限值。
步骤2-2包括:
步骤2-2-1,校核历史电量数据中的异常电量数据,识别出缺失值、不刷新值、跳变值和越限值四种异常电量数据;
步骤2-2-2,DBSCAN聚类法校核历史电量数据中的离群值。DBSCAN算法描述如下:
输入:从电量数据平台中采集电量底码数据文件E,将其导入到mysql数据库,领域半径Eps,邻域中数据对象数目阈值MinPts;
输出:密度联通簇;
处理流程如下:从数据集中任意选取一个数据对象点p;如果对于参数Eps和MinPts,所选取的数据对象点p为核心点,则找出所有从p密度可达的数据对象点,形成一个簇;如果选取的对象点p是边缘点,选取另一个数据对象点;重复上述过程,直到所有点被处理;DBSCAN算法的计算复杂的度为O(n2),n为数据对象的数目;具体实现步骤如下:
步骤a1,读取mysql数据库中电量底码数据文件E,并解析,得到样本点;
步骤a2,利用欧式距离计算电量底码数据文件E中各个样本点间的欧几里德距离;
步骤a3,计算每个样本点的K-距离,并输出排序后的距离;
步骤a4,选取合适半径Eps(正常情况为一倍标准差);
步骤a5,利用半径Eps和MinPts值找到所有核心点,建立核心点邻域点与其映射的集合,即将所有在最小半径范围内的点并入其核心点映射集合;
步骤a6,找到密度可达的核心点并入集合,不可达的即为异常点。
本发明最后设置参数Eps为标准差,MinPts=5。
步骤3包括如下步骤:
步骤3-1,根据文献(3)(王敬华,赵新想,张国燕,等.NLOF:A New Density-b asedLocal Outlier Detecting Algorithm.NLOF:一种新的基于密度的局部离群点检测算法[J].计算机科学,2013,040(008):181-185.)中提到的NLOF算法,首先通过DBS CAN算法对数据集进行预处理,通过检查数据集中每个对象的∈-邻域寻找聚类,在样本空间中,存在对象o,他与对象p之间的距离基座为d(p,o),对于正整数k,对象p的第k距离记作k-distanceξ,已知对象P的第k距离,则与对象p之间距离小于等于k-distanceξ的对象集合称为对象p的第k距离邻域,即点p的第k距离邻域记作:|Nk(p)|;对象p相对于对象o的可达距离为:reach-dist(p,o),点o到点p的第k可达距离定义为:reach-distancek(p,o);
通过下式计算对象的局部可达密度。
对象p的局部可达密度定义为p的k最近邻点的平均可达密度的倒数,即点p的第k邻域内点到p的平均可达距离的倒数。这个值的含义可以这样理解,首先这代表一个密度,密度越高,认为越可能属于同一簇,密度越低,越可能是离群点。
最后计算对象p的局部离群因子。LOF算法中每个样本的异常得分称为局部离群因子。点p的局部离群因子表示为:
其中,lrdk(o)即为对象o的局部可达密度;
点p的局部离群因子表示点p的邻域点|Nk(p)|的局部可达密度与点p的局部可达密度之比的平均数,其表示p是离群点的程度。
如果这个比值越接近1,说明p的其邻域点密度差不多,p可能和邻域同属一簇;如果这个比值越小于1,说明p的密度高于其邻域点密度,p为密集点;如果这个比值越大于1,说明p的密度小于其邻域点密度,p越可能是异常点。
如果对象p不是局部离群点,则LOF值接近于1。即p是局部离群点的程度较小,对象o的局部可达密度和对象p的局部可达密度相似,最后所得的LOF值应该接近1。相反,p是局部离群点的程度越大,最后所得的LOF值越高。通过这种方式就能在样本空间数据分布不均匀的情况下也可以准确发现离群点。
给定邻域中对象的最小个数Minpts,(给定对象的邻域范围)给定对象半径ε、离群因子阈值ζ,电量数据表中含有n个对象,计算所有对象的局部离群因子;对于每个数据点,计算它与其它所有数据点的距离,并按从近到远排序;对于电量数据表中的每个数据点,找到它的|Nk(p)|,计算局部离群因子LOF,通过判断LOF是否接近于ζ来判定是否是离群因子,如果LOF大于离群因子阈值ζ,则判定是离群点,否则是正常点。
步骤3-2,LOF算法的主要参数为:n_neighbor,设置K,默认20;contamination,设置样本中异常点的比例,默认0.1。在进行数据辨识前还需要对K值进行研究确定。
首先对部分采样数据进行数据离散化和归一化预处理,针对不同K值进行实验分析研究。结果表明K=5时更能正确辨识异常电量数据。所以参数为:n-neighbor设置k值5,contamination为设置样本中异常点的比例(0,1),本发明设置为0.003,即离群因子阈值ζ为1.003。
步骤3-3,针对同设备4类电量数据进行检测(正向有功、反向有功、正向无功、反向无功),首先通过历史电量数据学习限值后获得限值学习表;然后根据限值表检测缺失值、不刷新、跳变、越限(要注意跳变有四种不同的状态)获得异常电量数据统计表;最后再通过DBSCAN算法和LOF算法校核历史电量数据中的离群值。
有益效果:本发明与现有技术相比克服现有异常电量数据辨识不精确、不可靠的问题,同时克服了基于密度的聚类算法不适用于大规模数据集和多维数据集的离群值检测的问题,提出了基于限值学习的异常电量数据辨识方法。首先,通过基于OneClassSVM的限值学习算法提取原数据集的数据;然后,先校核历史电量数据中的异常电量数据,再通过DBSCAN算法校核历史电量数据中的离群值,实现基于限值学习的异常电量数据辨识;最后,通过对LOF算法分析研究并结合DBSCAN算法改进,实现了基于密度聚类算法的多维电量数据离群值辨识。
附图说明
下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述或其他方面的优点将会变得更加清楚。
图1是本发明方法流程图;
图2a为电量96点底码。
图2b为限值学习表。
图2c为异常电量数据统计表。
图2d为异常电量数据分析表。
图2e为多维电量异常电量数据统计表。
图2f为多维电量异常电量数据分析表。
具体实施方式
下面结合附图及实施例对本发明做进一步说明。
如图1所示,本发明的原理是:首先通过异常电量数据分析得出异常电量数据的类型和鉴别算法;然后通过对OneClassSVM算法分析研究,对异常电量数据的鉴别限值进行学习,得到限值学习表,通过限值学习表校核历史数据的异常电量数据,接着通过分析基于密度的聚类算法DBSCAN算法校核历史数据中的离群值,实现基于限值学习的异常电量数据辨识;最后对同样基于密度的聚类算法LOF算法进行分析研究,结合两种基于密度的聚类算法进行实验,同时对多维数据进行离群值辨识,实现了基于密度聚类算法的多维电量数据离群值辨识。具体实施方法如下:
步骤(1)所述的异常电量数据类型及检测算法为:异常电量数据分析主要包括现日冻结底码、日电量数据、分时底码数据等电量数据的异常判断,具体检测类别包括缺失值、不刷新、跳变、越限、离群值等异常的研判。
判定异常电量数据之前需要作以下判定:1、电量数据同天曲线是否为同一值,全部为同一值则认定全部为缺失值;2、如果光伏量测历史电量数据的天数在五天以上,则需要判定电量数据最大值出现时刻和数据分布两个因素,根据最大值出现的时间点判断,同一天出现两个以上最大值的时间点只取一个数据,如果光伏量测历史电量数据的的天数中,最大值时刻分布区间在10:00~14:00之间的天数是80%以上且从08:00-18:00之间的数值之和占比全天电量值之和80%以上,则判定光伏量测数据正常,进行步骤1-2,如果不正常则需要校正,一般使用均值替代法或者K近邻算法;如果光伏量测历史电量数据的天数少于五天,则判断光伏量测数值在时间区间8:00~18:00的占比,如果从时间区间08:00-18:00之间的数值之和占比全天电量值之和80%以上,则判断光伏量测数据正常,进行步骤1-2,如果不正常则需要校正,一般使用均值替代法或者K近邻算法;
如果不是光伏量测,则直接跳过执行步骤1-2;
注意如果是光伏量测,只校核大于0的电量数据值;
缺失值:名义上就是数值缺失为缺失值并不是数值为0。
不刷新:K=1时即考虑连续2个点的值一样即认为两个点都是不刷新值。K=2时,如果连续三个电量数据量测点的值一样即判定三个点都是不刷新值,本发明选择K=2。
跳变:如果一个点的值比前一个点的值大于K(本发明取1)倍,分如下四类:一个点比前一个点的值大于K倍;一个点和前后采样的差均大于K倍;一个点的值比前一个点的值大于K倍标准差;一个点和前后采样的差大于K倍标准差。
越限:超过标准的总上下限。原来无标记则标记为越限,如果已经被标记为跳变,则不覆盖前面的的标记。
步骤(2)所述的基于限值学习的异常电量数据辨识方法为:对历史电量数据进行SVDD判定:对于正常电量数据样本{x|xi∈rd,i=1,2,…,m}设定SVDD产生的超球体参数,超球体参数包括中心o和对应的超球体半径r,r>0,超球体体积V(r)被最小化;所有训练数据点xi到中心的距离小于r,构造一个惩罚系数为C的松弛变量ζi,优化问题如下所示:
ζi≥0,i=1,2,3...,m (2)
||xi-o||2≤r+ζi=1,2,3...,m (3)
ζi≥0,i=1,2,3...,m (4)
采用拉格朗日对偶求解之后,判断新的数据点X是否在内,如果X到中心的距离小于或者等于半径r,则不是异常电量数据值,如果在超球体以外,则是异常电量数据值;
步骤2-1-2,在Python中的机器学习库Sklearn中,采用SVM包里面的OneClassSVM来做异常点检测,设置异常值比例Nu=0.005,设置kernel=“rbf”为基于半径的函数,设置“rbf”内核系数gamma=0.001。通过步骤2-1-1的SVDD算法判定成功即以正常数据的最大值和最小值分别作为上限值和下限值;如果SVDD不成功,就采用3倍标准差作为上下限值(如果正常数据超过一半,认为SVDD判定成功)。
然后在步骤1中分析得出的常规算法校核历史电量数据中的异常电量数据,辨识缺失值、不刷新、跳变、越限四种异常电量数据;
最后DBSCAN聚类法校核历史电量数据中的离群值。DBSCAN算法描述如下。输入:数据集,领域半径Eps,邻域中数据对象数目阈值MinPts;输出:密度联通簇。处理流程如下:从数据集中任意选取一个数据对象点p;如果对于参数Eps和MinPts,所选取的数据对象点p为核心点,则找出所有从p密度可达的数据对象点,形成一个簇;如果选取的对象点p是边缘点,选取另一个数据对象点;重复上2步,直到所有点被处理。DBSCAN算法的计算复杂的度为O(n2),n为数据对象的数目。具体实现步骤如下:
步骤a1,读取数据库中电量底码样本数据,并解析;
步骤a2,利用欧式距离计算样本数据中各个样本点间的欧几里德距离;
步骤a3,计算每个样本点的K-距离,并输出排序后的距离;
步骤a4,选取合适半径Eps(正常情况为一倍标准差);
步骤a5,利用半径Eps和MinPts值找到所有核心点,建立核心点邻域点与其映射的集合,即将所有在最小半径范围内的点并入其核心点映射集合;
步骤a6,找到密度可达的核心点并入集合,不可达的即为异常点。
本发明最后设置参数eps为标准差,MinPts=5。
步骤(3)所述的基于密度聚类算法的多维电量数据离群值辨识方法为:首先通过DBSCAN算法对数据集进行预处理,通过检查数据集中每个对象的∈-邻域寻找聚类,然后通过下式计算对象p的局部可达密度。
对象p的局部可达密度定义为p的k最近邻点的平均可达密度的倒数,即点p的第k邻域内点到p的平均可达距离的倒数。这个值的含义可以这样理解,首先这代表一个密度,密度越高,认为越可能属于同一簇,密度越低,越可能是离群点。
最后计算对象p的局部离群因子。LOF算法中每个样本的异常得分称为局部离群因子。点p的局部离群因子表示为:
表示点p的邻域点Nk§的局部可达密度与点p的局部可达密度之比的平均数,其表示p是离群点的程度。
如果这个比值越接近1,说明p的其邻域点密度差不多,p可能和邻域同属一簇;如果这个比值越小于1,说明p的密度高于其邻域点密度,p为密集点;如果这个比值越大于1,说明p的密度小于其邻域点密度,p越可能是异常点。
如果对象p不是局部离群点,则LOF§接近于1。即p是局部离群点的程度较小,对象o的局部可达密度和对象p的局部可达密度相似,最后所得的LOF§值应该接近1。相反,p是局部离群点的程度越大,最后所得的LOF§值越高。通过这种方式就能在样本空间数据分布不均匀的情况下也可以准确发现离群点。
给定邻域中对象的最小个数Minpts,(给定对象的邻域范围)给定对象半径ε,离群因子阈值ζ,电量数据表中含有n个对象,计算所有对象的局部离群因子;对于每个数据点,计算它与其它所有数据点的距离,并按从近到远排序;对于电量数据表中的每个数据点,找到它的|Nk(p)|,计算局部离群因子LOF,通过判断LOF是否接近于ζ来判定是否是离群因子,如果LOF大于离群因子阈值ζ,则判定是离群点,否则是正常点。
LOF算法的主要参数为:n_neighbor,设置K,默认20;contamination,设置样本中异常点的比例,默认0.1。在进行数据辨识前还需要对K值进行研究确定。
首先对部分采样数据进行数据离散化和归一化预处理,针对不同K值进行实验分析研究。结果表明K=5时更能正确辨识异常电量数据。所以参数为:n-neighbor设置k值5,contamination设置为样本中异常点的比例(0,1),为预设的离群值比例0.003,即离群因子阈值ζ为1.003。
最后针对同设备4类电量数据进行检测(正向有功、反向有功、正向无功、反向无功),首先通过历史电量数据学习限值后获得限值学习表;然后根据限值表检测缺失值、不刷新、跳变、越限(要注意跳变有四种不同的状态)获得异常电量数据统计表;最后再通过DBSCAN算法和LOF算法校核历史电量数据中的离群值。
实施例
本实施例利用江苏某地区电量数据96点底码和日电量底码数据问题,数据来源于实际电力系统运行过程,数据时间范围为2019年一整年。首先通过异常电量数据分析得出异常电量数据的类型和鉴别算法;然后通过对OneClassSVM算法分析研究,对异常电量数据的鉴别限值进行学习,得到限值学习表,通过限值学习表校核历史数据的异常电量数据,接着通过分析基于密度的聚类算法DBSCAN算法校核历史数据中的离群值,实现基于限值学习的异常电量数据辨识;最后对同样基于密度的聚类算法LOF算法进行分析研究,结合两种基于密度的聚类算法进行实验,同时对多维数据进行离群值辨识,实现了基于密度聚类算法的多维电量数据离群值辨识。提供基于限值学习的异常电量数据辨识相关流程图如图1所示,电量历史电量数据如图2所示。
图1是本发明的基于限值学习的异常电量数据辨识相关流程图;
图2a~图2e是本发明对应的基于限值学习的异常电量数据辨识的实验结果图,其中图2a为电量数据表,图2b为限值学习表的设计,即本发明步骤2-1得到的表,图2c为异常电量数据统计表,即本发明步骤2-2-1得到的表,图2d为异常电量数据分析表,即本发明步骤2-2-2得到的图像,图2e为多维异常电量数据统计表,图2f为多维异常电量数据,即本发明步骤3得到表。其中occur_time为采集时间,meter_id为电量数据id(96点底码为一天一个),Date为数据时期,Noise_sum为异常数据数目,Noise_time为异常数据时间,value为异常数据数值,type为异常数据类型,detect_method为算法类型,device_id为设备id,pap_val为正向有功,rap_val为反向有功,prp_val为正向无功,rrp_val为反向无功,图2b中数值为总体数据的上下限值与根据4个季节、工作日和非工作日、早晚、上下限四个标准每个时间段的限值总共34个数值(limit_upper、limit_lower分别为总体数据的上下限值;time1_day1_spring_upper、time1_day1_spring_lower分别为春季的上下限值,当spring改为summer、autumn、winter时则分别对应夏季、秋季、冬季)。由图中可以看出,本发明提出的基于限值学习的异常电量数据辨识方法能准确实现对电量异常电量数据的辨识。
本发明提供了一种基于限值学习的异常电量数据辨识方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。
Claims (1)
1.一种基于限值学习的异常电量数据辨识方法,其特征在于,包括如下步骤:
步骤1,采集历史电量数据并分析异常电量数据类型,所述异常电量数据类型包括包括离群值和缺失值,所述离群值包括不刷新值、跳变值和越限值;
步骤2,根据步骤1的分析结果,通过OneClassSVM算法实现限值学习,然后在此基础上校核历史电量数据中的异常电量数据并通过DBSCAN算法校核历史电量数据中的离群值;
步骤3,在DBSCAN算法的基础上结合LOF算法,实现对多维电量数据样本的离群值辨识;
步骤1包括:
步骤1-1,在进行异常电量数据校核前,需要对从电量数据平台中采集的历史电量数据进行如下判定:
判定电量数据同天曲线是否为同一值,全部为同一值则判定全部为缺失值;
判断是否为光伏量测,如果是光伏量测,只校核大于0的电量数据值,然后进行如下判定:
如果光伏量测历史电量数据的天数在五天以上,则需要判定电量数据最大值出现时刻和数据分布两个因素,根据最大值出现的时间点判断,同一天出现两个以上最大值的时间点只取一个数据,如果光伏量测历史电量数据的的天数中,最大值时刻分布区间在10:00~14:00之间的天数是80%以上且从08:00-18:00之间的数值之和占比全天电量值之和80%以上,则判定光伏量测数据正常,进行步骤1-2,如果不正常则需要校正;如果光伏量测历史电量数据的天数少于五天,则判断光伏量测数值在时间区间8:00~18:00的占比,如果从时间区间08:00-18:00之间的数值之和占比全天电量值之和80%以上,则判断光伏量测数据正常,进行步骤1-2,如果不正常则需要校正;
如果不是光伏量测,则直接执行步骤1-2;
步骤1-2,如果电量数据表中显示为空值NULL,则为缺失值;
当K=1时,表示电量数据量测点相邻一位数据,即如果连续两个电量数据量测点的电量值一样则判定两个点都是不刷新值;K=2时,表示电量数据量测点相邻两位数据,如果连续三个电量数据量测点的值一样即判定三个点都是不刷新值;
如果一个电量数据量测点的值比前一个电量数据量测点的值大于K倍,分如下四类:一个电量数据量测点比前一个电量数据量测点的值大于K倍;一个电量数据量测点和前后采样的差均大于K倍;一个电量数据量测点的值比前一个电量数据量测点的值大于K倍标准差;一个电量数据量测点和前后采样的差大于K倍标准差;如果属于以上任一类,则为跳变值;
如果一个电量数据量测点的值超过标准的总上下限,则为越限值,对于越限值,如果原来无标记则标记为越限值,如果已经被标记为跳变值,则不覆盖前面的的标记;
步骤2包括如下步骤:
步骤2-1,基于OneClassSVM算法对历史电量数据进行限值学习,获得限值学习表;
步骤2-2,通过步骤1的方法校核历史电量数据中的缺失值、不刷新值、跳变值和越限值,通过DBSCAN聚类法校核历史电量数据中的离群值;
步骤2-1包括:
步骤2-1-1,对历史电量数据进行SVDD判定:对于电量数据样本{x|xi∈rd,i=1,2,…,m},设定SVDD产生的超球体参数,超球体参数包括中心o和对应的超球体半径r,r>0,超球体体积V(r)被最小化,x为电量数据样本对象,m为对象个数,xi表示第i个电量数据样本,rd为超球体参数对应的半径值;所有电量数据样本xi到中心的距离小于r,构造一个惩罚系数为C的松弛变量ζi,优化问题如下所示:
ζi≥0,i=1,2,3...,m (2)
||xi-o||2≤r+ζi=1,2,3...,m (3)
ζi≥0,i=1,2,3...,m (4)
采用拉格朗日对偶求解之后,判断新的数据点X是否在内,如果X到中心的距离小于或者等于半径r,则不是异常电量数据值,如果在超球体以外,则是异常电量数据值;
步骤2-1-2,在Python中的机器学习库Sklearn中,采用SVM包里面的OneClassSVM来做异常点检测,设置异常值比例Nu=0.005,设置kernel=rbf为基于半径的函数,设置rbf内核系数gamma=0.001;通过步骤2-1-1的方法对历史电量数据进行SVDD判定时,如果正常数据超过历史电量数据的一半,则SVDD判定成功,即以正常数据的最大值和最小值分别作为上限值和下限值;如果SVDD判定不成功,就采用3倍标准差作为上下限值;
步骤2-2包括如下步骤:
步骤2-2-1,校核历史电量数据中的异常电量数据,识别出缺失值、不刷新值、跳变值和越限值四种异常电量数据;
步骤2-2-2,通过DBSCAN聚类法校核历史电量数据中的离群值;
步骤2-2-2包括如下内容:
DBSCAN算法描述如下:
输入:从电量数据平台中采集电量底码数据文件,将其导入到mysql数据库,领域半径Eps,邻域中数据对象数目阈值MinPts;
输出:密度联通簇;
处理流程如下:从数据集中任意选取一个数据对象点p;如果对于参数Eps和MinPts,所选取的数据对象点p为核心点,则找出所有从p密度可达的数据对象点,形成一个簇;如果选取的对象点p是边缘点,选取另一个数据对象点;重复上述过程,直到所有点被处理;DBSCAN算法的计算复杂的度为O(n2),n为数据对象的数目;具体实现步骤如下:
步骤a1,读取mysql数据库中电量底码数据文件,并解析,得到样本点;
步骤a2,利用欧式距离计算电量底码数据文件E中各个样本点间的欧几里德距离;
步骤a3,计算每个样本点的K-距离,并输出排序后的距离;
步骤a4,选取合适半径Eps;
步骤a5,利用半径Eps和MinPts值找到所有核心点,建立核心点邻域点与其映射的集合,即将所有在最小半径范围内的点并入其核心点映射集合;
步骤a6,找到密度可达的核心点并入集合,不可达的即为异常点;
步骤3包括如下步骤:
步骤3-1,通过检查电量数据集中每个对象的∈-邻域寻找聚类:在样本空间中,存在对象o,他与对象p之间的距离基座为d(p,o),对于正整数k,对象p的第k距离记作k-distanceξ,已知对象P的第k距离,则与对象p之间距离小于等于k-distanceξ的对象集合称为对象p的第k距离邻域,即点p的第k距离邻域记作:|Nk(p)|;对象p相对于对象o的可达距离为:reach-dist(p,o),点o到点p的第k可达距离定义为:reach-distancek(p,o);
通过下式计算对象p的局部可达密度lrdk(p):
对象p的局部可达密度定义为p的k最近邻点的平均可达密度的倒数,即点p的第k邻域内点到p的平均可达距离的倒数;
最后计算对象p的局部离群因子LOFk(p):
其中,lrdk(o)即为对象o的局部可达密度;
给定邻域中对象的最小个数Minpts,给定对象半径ε、离群因子阈值ζ,电量数据表中含有n个对象,计算所有对象的局部离群因子;对于每个数据点,计算它与其它所有数据点的距离,并按从近到远排序;对于电量数据表中的每个数据点,找到它的|Nk(p)|,计算局部离群因子LOF,通过判断LOF是否接近于ζ来判定是否是离群因子,如果LOF大于离群因子阈值ζ,则判定是离群点,否则是正常点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010213305.6A CN111401460B (zh) | 2020-03-24 | 2020-03-24 | 一种基于限值学习的异常电量数据辨识方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010213305.6A CN111401460B (zh) | 2020-03-24 | 2020-03-24 | 一种基于限值学习的异常电量数据辨识方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111401460A CN111401460A (zh) | 2020-07-10 |
CN111401460B true CN111401460B (zh) | 2023-04-25 |
Family
ID=71429051
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010213305.6A Active CN111401460B (zh) | 2020-03-24 | 2020-03-24 | 一种基于限值学习的异常电量数据辨识方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111401460B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112230056B (zh) * | 2020-09-07 | 2022-04-26 | 国网河南省电力公司电力科学研究院 | 一种基于OFMMK-Means聚类和复合分位数回归多谐波源贡献计算方法 |
CN112187550B (zh) * | 2020-10-16 | 2022-09-30 | 温州职业技术学院 | 基于密度峰值多属性聚类的网络日志分析方法 |
CN112731261B (zh) * | 2020-12-01 | 2024-01-30 | 深圳供电局有限公司 | 电能计量设备故障检测方法、装置、计算机设备和介质 |
CN113515512A (zh) * | 2021-06-22 | 2021-10-19 | 国网辽宁省电力有限公司鞍山供电公司 | 一种工业互联网平台数据的质量治理及提升方法 |
CN113704321A (zh) * | 2021-08-11 | 2021-11-26 | 国电南瑞科技股份有限公司 | 电网异常数据辨识方法、装置及系统 |
CN113780452A (zh) * | 2021-09-16 | 2021-12-10 | 国网北京市电力公司 | 独居群体的监控方法、监控装置以及电子设备 |
WO2023086798A1 (en) * | 2021-11-12 | 2023-05-19 | Google Llc | Anomaly detection with local outlier factor |
CN116660667B (zh) * | 2023-07-26 | 2023-10-24 | 山东金科电气股份有限公司 | 一种变压器异常监控方法及系统 |
CN117034177B (zh) * | 2023-10-08 | 2023-12-19 | 湖北华中电力科技开发有限责任公司 | 一种电力负荷异常数据智能监测方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108805747A (zh) * | 2018-06-13 | 2018-11-13 | 山东科技大学 | 一种基于半监督学习的异常用电用户检测方法 |
CN109102028A (zh) * | 2018-08-20 | 2018-12-28 | 南京邮电大学 | 基于改进的快速密度峰值聚类和lof离群点检测算法 |
CN110298765B (zh) * | 2019-05-31 | 2024-02-02 | 国网上海市电力公司 | 一种基于客观关联因素的配电网用电功率异常检测方法 |
CN110349050B (zh) * | 2019-06-19 | 2022-06-14 | 国网江西省电力有限公司电力科学研究院 | 一种基于电网参数关键特征抽取的智能窃电判据方法及装置 |
CN110738232A (zh) * | 2019-08-27 | 2020-01-31 | 国网四川省电力公司电力科学研究院 | 一种基于数据挖掘技术的电网电压越限成因诊断方法 |
-
2020
- 2020-03-24 CN CN202010213305.6A patent/CN111401460B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111401460A (zh) | 2020-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111401460B (zh) | 一种基于限值学习的异常电量数据辨识方法 | |
CN111199016B (zh) | 一种基于DTW的改进K-means的日负荷曲线聚类方法 | |
Li et al. | Electricity theft detection in power grids with deep learning and random forests | |
CN110990461A (zh) | 大数据分析模型算法选型方法、装置、电子设备及介质 | |
CN109858522A (zh) | 一种基于数据挖掘的管理线损异常识别方法 | |
CN110929743B (zh) | 基于时间序列关联与聚类分析的水质污染物变化监测系统 | |
CN111539845B (zh) | 一种基于用电模式隶属评分的企业环保管控响应研判方法 | |
CN109727446A (zh) | 一种用电数据异常值的识别与处理方法 | |
CN111628494B (zh) | 一种基于逻辑回归法的低压配电网拓扑识别方法及系统 | |
CN111008726B (zh) | 一种电力负荷预测中类图片转换方法 | |
CN110795690A (zh) | 风电场运行异常数据检测方法 | |
CN114114039B (zh) | 一种电池系统的单体电芯一致性的评估方法和装置 | |
CN114861788A (zh) | 一种基于dbscan聚类的负荷异常检测方法及系统 | |
CN108734359B (zh) | 一种风电功率预测数据预处理方法 | |
CN116911806B (zh) | 基于互联网+的电力企业能源信息管理系统 | |
CN102945517A (zh) | 一种基于聚类分析的服装标准工时的数据挖掘方法 | |
CN114580572B (zh) | 一种异常值的识别方法、装置、电子设备及存储介质 | |
CN116148753A (zh) | 一种智能电能表运行误差监测系统 | |
CN111046913B (zh) | 一种负荷异常值识别方法 | |
CN114266457A (zh) | 一种配电线路异损诱因检测的方法 | |
CN112508278A (zh) | 一种基于证据回归多模型的多联供系统负荷预测方法 | |
CN117113086A (zh) | 一种储能机组负荷预测方法、系统、电子设备及介质 | |
Zhang et al. | A Density-Center-Based Automatic Clustering Algorithm for IoT Data Analysis | |
CN110826645A (zh) | 基于Adaboost算法的锂电池退役检测方法及系统 | |
CN114186631A (zh) | 一种基于非侵入式智能终端的负荷识别方法 |
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 |