掌桥专利:专业的专利平台
掌桥专利
首页

基于电力数据的挖矿行为检测方法和存储介质

文献发布时间:2023-06-19 18:46:07


基于电力数据的挖矿行为检测方法和存储介质

技术领域

本发明涉及挖矿行为检测技术领域,尤其涉及一种基于电力数据的挖矿行为检测方法和存储介质。

背景技术

2021年9月3日施行的《国家发展改革委等部门关于整治虚拟货币“挖矿”活动的通知》强调,整治虚拟货币“挖矿”活动对促进我国产业结构优化、推动节能减排、如期实现碳达峰、碳中和目标具有重要意义。虚拟货币“挖矿”行为的能源消耗量和碳排放量都非常大,违背“双碳”战略目标,加剧地方缺电程度,并且容易被用于进行洗钱、诈骗、赌博等非法交易。目前业内主要采用用电异常检测的方式来识别挖矿行为,具体设定一个普适全社会所有主体的正常用电量阈值,若检测到某主体用电量超过该用电量阈值,则判定该主体用电异常,很可能存在挖矿行为,然后对其进行现场排查确认是否存在挖矿行为。但该检测方式仅适用于大规模集中式的专业矿机挖矿行为检测,小作坊、居民等小规模挖矿行为的用电量通常不会超过正常用电量阈值,上述方式无法检测到。

发明内容

本发明所要解决的技术问题是提供一种基于电力数据的挖矿行为检测方法以及存储有被执行时实现该方法的计算机程序的计算机可读存储介质,该方法既适用于大规模集中式的专业矿机挖矿行为检测,又适用于小作坊、居民等小规模挖矿行为检测,适用性强。

为了解决上述技术问题,第一方面,本发明提供了一种基于电力数据的挖矿行为检测方法,包括以下步骤:

A.计算功率最小的挖矿机一天的耗电量,以该耗电量作为挖矿用电量基准;

B.对日均用电量大于挖矿用电量基准的每个用电户执行如下用电评估因子R1标记步骤:获取该用电户n天的用电量序列,若判断出该用电量序列的波动性小于预设波动程度,则将该用电户的用电评估因子R1标记为异常;

C.对所述每个用电户执行如下用电评估因子R2标记步骤:

——C1.获取多个发电厂的电厂基本参数的数据,根据各个发电厂的电厂基本参数数据对这些发电厂进行聚类分析从而划分成多个类别;

——C2.计算每个发电厂的发电量与并网电量的偏离度L=|A-X|/A,其中,A为发电厂月并网电量,X为发电厂理论月发电量;

——C3.获取各个发电厂的并网电量时序数据以及各个类别的中心并网电量时序数据,分别计算每个发电厂的并网电量时序数据和其所属类别的中心并网电量时序数据的相似度;

——C5.对所述每个用电户,若该用电户所关联的发电厂的偏离度L超出预设正常范围且其与所属类别的中心并网电量时序数据的相似度低于第一预设程度,则把该用电户的用电评估因子R2标记为异常;

D.获取所述每个用电户的用户基本参数的数据,根据各个用电户的用户基本参数数据对这些用电户进行聚类分析从而划分成多个类别,然后对所述每个用电户执行如下用电评估因子R3标记步骤:

——D1.根据上述每个用电户在峰、谷、平这三个用电时段的用电量计算其在这三个用电时段的用电比例P;

——D4.分别计算每个用电户在峰、谷、平这三个用电时段的用电量和用电比例P与其所属类别的中心在峰、谷、平这三个用电时段的用电量和用电比例P的相似度,若该的相似度低于第二预设程度,则将当前待识别的用电户的用电评估因子R3标记为异常;

E.根据每个用电户的用电评估因子R1、R2、R3的异常情况确定该用电户的挖矿风险等级。

进一步地,步骤B中判断用电量序列的波动性是否小于预设波动程度的步骤具体如下:

B1.对用电量序列,以m天作为滑动窗口的长度,1天作为滑动步长,依次对每个滑动窗口内的用电量数组进行直线拟合得到直线斜率k,其中,8≤m<n;

B2.计算拟合得到的各个所述斜率k的方差;

B3.若上述方差小于预设波动阈值,则该用电量序列的波动性小于预设波动程度。

进一步地,该方法对所有发电厂的偏离度组成的数组采用四分位距法确定步骤C4中的预设正常范围。

进一步地,该方法采用四分位距法确定预设正常范围的步骤如下:

C31.将各个发电厂的偏离度L按从大至小进行排序得到偏离度数组;

C32.确定该偏离度数组的上四分位数Q1和下四分位数Q3,计算该偏离度序列的四分位距IQR=Q3-Q1,以(Q1-1.5*IQR,Q3+1.5*IQR)作为所述预设正常范围。

进一步地,步骤B1中,m取值为11。

进一步地,步骤E具体地:

若用电户的用电评估因子R1、R2和R3均为异常,则该用电户的挖矿风险等级为一级;

若用电户仅是用电评估因子R1和R3为异常,则该用电户的挖矿风险等级为二级;

若用电户仅是用电评估因子R1和R2为异常,则该用电户的挖矿风险等级为三级;若用电户仅是用电评估因子R1为异常,则该用电户的挖矿风险等级为四级;

其中,挖矿风险等级数值越小,风险越高。

进一步地,步骤C1和/或步骤D采用K-prototype聚类算法进行类别划分。

进一步地,步骤C中的发电厂具体为水电厂。

进一步地,步骤C3和步骤D2均是采用孪生神经网络模型来进行相似度计算。

第二方面,本发明提供了一种计算机可读存储介质,其上存储有可执行的计算机程序,该计算机程序被执行时实现如上所述的基于电力数据的挖矿行为检测方法。

首先,挖矿用电户的用电量通常不会出现太大波动,节假日用电量和工作日相当,而正常用电户例如企业,其节假日的用电量通常比工作日要少,存在较明显的波动,因此,本发明给出的基于电力数据的挖矿行为检测方法通过步骤B来计算用电户的用电趋势是否存在波动并以用电评估因子R1来表征用电户的用电趋势波动情况。

其次,发电厂与挖矿用电户之间交易的电量通常是私下交易,不是并网电量,故挖矿用电户所关联的发电厂的并网电量并不是其实际发电量,少于相似规模/类型的正常发电厂的并网电量,因此,本发明给出的基于电力数据的挖矿行为检测方法通过步骤C来识别异常发电厂,并通过用电评估因子R2来表征用电户所关联的发电厂是否异常。

再者,挖矿用电户的用电量通常比相似规模/类型的正常用电户大得多,并且挖矿用电户在峰、谷、平这三个用电时段的用电比例通常是比较均匀稳定的,而相似规模/类型的正常用电户在在峰、谷、平这三个用电时段的用电比例则通常有所波动,挖矿用电户在上述三个用电时段的用电比例明显不同于相似规模/类型的正常用电户,因此,本发明给出的基于电力数据的挖矿行为检测方法通过步骤D来判断用电户在峰、谷、平这三个用电时段的用电量情况及用电比例波动情况是否异于同类别的用电户并采用用电评估因子R3来表征判断结果。

无论是大规模集中式的专业矿机挖矿行为,还是小作坊、居民等小规模挖矿行为,都能够通过上述三个用电评估因子R1、R2、R3识别出来,本发明给出的基于电力数据的挖矿行为检测方法既适用于大规模集中式的专业矿机挖矿行为检测,又适用于小作坊、居民等小规模挖矿行为检测,适用性强。

附图说明

图1是本发明提供的基于电力数据的挖矿行为检测方法的流程示意图。

图2是本发明采用的孪生神经网络模型的结构图。

具体实施方式

以下结合具体实施方式对本发明创造作进一步详细说明。

如图1所示,本发明给出的基于电力数据的挖矿行为检测方法包括以下步骤:

A.计算功率最小的挖矿机一天的耗电量,以该耗电量作为挖矿用电量基准。

市面上有很多挖矿机,本实施例以市面上功率最小的挖矿机作为比较基准,计算功率最小的挖矿机一天的耗电量q=Pe*24,q为一台挖矿机一个天的耗电量,Pe为挖矿机的功率,单位为千瓦*时,24为一天的小时数。本实施例以该耗电量作为挖矿用电量基准,由于挖矿机通常是昼夜不停24小时工作的,如果用电户的日均用电量低于该耗电量,则其为挖矿用电户的可能性极低,而日均用电量高于该耗电量的用电户满足了挖矿用电户的最低要求,本实施例通过下述步骤从这些日均用电量高于该耗电量的用电户中,识别出挖矿嫌疑较高的用电户。

B.对日均用电量大于挖矿用电量基准的每个用电户执行如下用电评估因子R1标记步骤:

——B1.对该用电户n天的用电量序列,以m天作为滑动窗口的长度,1天作为滑动步长,依次对每个滑动窗口内的用电量数组进行直线拟合得到直线斜率k,其中,8≤m<n;

——B2.计算拟合得到的各个所述斜率k的方差;

——B3.若上述方差小于预设波动阈值,则将该用电户的用电评估因子R1标记为异常。

挖矿用电户的用电量通常不会出现太大波动,节假日用电量和工作日相当,而正常用电户例如企业,其节假日的用电量通常比工作日要少,存在较明显的波动,因此,本实施例为用电户设计一个用电评估因子R1,用以表征用电户的用电量趋势波动情况,波动情况通过以下方式进行判断:

用电户P在30天的用电量序列为X

其中,i是滑动窗口内的用电量数组的中位数所对应的天数,

本实施例依次参考上述方式逐个判断出各个用电户的用电量趋势波动情况并把用电评估因子R1标记为对应的值。

C.对所述每个用电户执行如下用电评估因子R2标记步骤:

——C1.获取多个发电厂的电厂基本参数的数据,该电厂基本参数包括所在区域、装机总容量、发电类型、总机组额定电流电压和理论月发电量当中的一项或多项;

——C2.以上述各个电厂基本参数作为分类因子,根据各个发电厂的电厂基本参数数据把这些发电厂划分成多个类别;

——C3.计算每个发电厂的发电量与并网电量的偏离度L=|A-X|/A,其中,A为发电厂并网电量,X为发电厂理论月发电量;若发电厂的偏离度L不位于预设范围内,则将其异常因子I1标记为异常;

——C4.对每个发电厂类别,以该类别的中心发电厂的并网电量时序数据,作为基准并网电量时序数据,分别对该类别中其余的发电厂执行发电异常识别步骤:把基准并网电量时序数据和当前待识别的发电厂的并网电量时序数据输入到已训练好的第一孪生神经网络模型中,从而使用该孪生神经网络模型输出这两组数据的相似度,若该孪生神经网络模型输出的相似度低于第一预设程度,则把当前待识别的发电厂的异常因子I2标记为异常;

——C5.对所述每个用电户,若该用电户所关联的发电厂的异常因子I1、I2均为异常,则把该用电户的用电评估因子R2标记为异常。

挖矿用电户与发电厂之间的电力交易多数是私下交易,所交易的电量不是并网电量,故挖矿用电户所关联的发电厂的并网电量通常不是实际发电量,会远少于理论发电量且远少于相似规模/类型的正常发电厂的并网电量。本实施例将存在这种情况的发电厂称为异常发电厂,异常发电厂除了私下与挖矿用电户进行电力交易以外,还可能与挖矿用电户进行并网电量交易。在并网电量交易系统上进行电力交易的所有用电户当中,与异常发电厂进行电力交易的用电户相比于与正常发电厂进行电力交易的用电户,挖矿嫌疑高些,因此,本实施例将用电户是否与异常发电厂有电力交易作为评估用电户挖矿嫌疑的评估指标,具体为各个用电户设计了用电评估因子R2,用以表征用电户是否与异常发电厂有电力交易,以R2=0表示正常,以R2=1表示异常。要确定用电户的用电评估因子R2的值,需先确定异常发电厂,本实施例按照如下方式进行异常发电厂识别:

第一步,判断发电厂的并网电量偏离度L是否异常

由于水电价格比较低,挖矿用电户需要耗费大量电力,为节约成本,挖矿用电户多数是向水电厂购买电力,因此,本实施例只对水电厂进行异常识别。本实施例先采集各个水电厂的月并网电量A以及其发电机组的发电参数,根据发电机组的发电参数计算出各个水电厂的理论月发电量X,然后按照偏离度计算公式L==|A-X|/A计算出各个水电厂的并网电量偏离度L,为了降低偏离度L的计算误差,可采集数月的月并网电量A计得月平均并网电量,代入上述公式进行计算。本实施例采用四分位距法来找出各个水电厂中的并网电量偏离度L异常者,具体地,将各个水电厂的偏离度L按从大至小进行排序得到偏离度数组,确定该偏离度数组的上四分位数Q1和下四分位数Q3,计算该偏离度序列的四分位距IQR=Q3-Q1,以(Q1-1.5*IQR,Q3+1.5*IQR)作为预设范围,若水电厂的并网电量偏离度L不在该范围内,则将该水电厂的异常因子I1标记为1(1表示异常)。

第二步,判断水电厂的并网电量是否异于相似规模/类型的水电厂

本实施例从电网企业采集各个水电厂的参数数据,包括所在区域、装机总容量(即水轮发电机组总容量)、发电类型(由于本实施例只对水电厂进行异常识别,所以发电类型均是水电)、总机组额定电流电压以及发电机组的相关发电参数例如水轮机效率、发电机效率、水库流速、水库潮差等数据。本实施例根据水电厂的发电机组的相关发电参数计算其理论月发电量,计算过程如下:

水电厂单位时间内出力的计算公式为:

P=9.81*ηt*ηg*Q*H

其中,P为单位时间T内水电厂的出力,ηt为水轮机效率,ηg为发电机效率,Q为单位时间T内通过水轮机的流速,H为水电厂水库在单位时间T内的潮差。

按照上述公式计得单位时间T内水电厂的出力之后,按照E=P*T计算得到水电厂单位时间T内的发电量E,进而推算出水电厂的理论月发电量。

本实施例以所在区域、装机总容量、发电类型、总机组额定电流电压和理论月发电量这几个电厂基本参数作为分类因子,以每个水电厂作为一个样本,其每个基本参数的具体数据作为对应的分类因子的样本观测值,构建得到基础数据集X。例如,“所在区域”为基础数据集X中的一个分类因子,有一个编号为0001的水电厂的所在区域为云南省怒江,云南省怒江即为基础数据集X中的“所在区域”分类因子下的编号为0001的水电厂样本的观测值。本实施例采用K-prototype聚类算法,根据基础数据集X中的各个水电厂在上述各个分类因子下的样本观测值,对各个水电厂进行聚类分析,划分成多个类别,每个类别内的各个水电厂在各个分类因子下的观测值很接近,即每个类别内的各个水电厂规模相似。非优选地,分类因子可改为只包括所在区域、装机总容量、发电类型、总机组额定电流电压和理论月发电量当中的一项或几项。

规模相似的水电厂,其并网电量数据通常是相近的,如果多个规模相似的水电厂当中,有一个水电厂的并网电量明显低于其余水电厂,该水电厂很可能与挖矿用电户有私下交易,故可通过同类别的水电厂的并网电力数据之间的相似度来识别出其中的异常水电厂。如图2所示的孪生神经网络模型通常用于比较两个样本的相似度,为了识别出同类别的水电厂当中的异常水电厂,本实施例采用该孪生神经网络模型来识别两个水电厂的并网电量时序数据之间的相似度。如图2所示,并网电量时序数据对(X

假设该神经网络有K层,若输入为X

Z

其中,w

DICE激活函数表示为f(z

其中,ε为自定义参数,防止分母为零,E(Z

上述DICE激活函数可以根据每层不同的数据分布,激活函数自动发生偏移,将激活函数的敏感区域移动到每层神经网络输出里大部分数据分布的位置。

本例中以该孪生神经网络模型输出的Net(w,X

E

为了改善类内相似性度量并扩大类间距离,需对该孪生神经网络模型进行训练使其损失最小化,本例中,损失函数定义如下:

式中,超参数m,表示一个间距,只有当E

为了使损失最小化,采用随机梯度下降进行权重值更新,以一个并网电量时序数据对(X

(1)Y=0,损失函数如下:

参数w

(2)Y=1,损失函数如下:

当E

当E

孪生神经网络模型的整体目标是使损失函数L(w,(Y,X

本实施例以两个水电厂的并网电量时序数据以及两个水电厂所属的簇,作为一组训练样本,随机从上文的全部水电厂当中抽取多个训练样本,特别的,为了优化训练效果,所抽取的训练样本应当是正常的水电厂,正常水电厂的并网电量时序数据通常与同簇正常水电厂相似性高,与不同簇的正常水电厂相似性低,因此,在抽取样本时,本实施例需初步判断当前抽取的两个水电厂间的并网电量时序数据的相似性,本实施例考虑到余弦相似性计算公式虽然不能判断出时序对的时间变化趋势的相似性,但可判断出时序对的数值相似性,可用于时序对的相似性粗略判断,因此本实施例采用余弦相似性计算公式来初步判断当前抽取的两个水电厂间的并网电量时序数据的相似性,对于来自同一个簇的两个水电厂,只有判断出两者的并网电量时序数据的余弦相似性大于0.7时,才以这两个水电厂以及这两个水电厂所属的簇作为一组训练样本;对于来自不同簇的两个水电厂,只有判断出两者的并网电量时序数据的余弦相似性小于0.3时,才以这两个水电厂以及这两个水电厂所属的簇作为训练样本。抽取好训练样本后,本实施例使用多个不同的训练样本对模型进行训练,直至该孪生神经网络模型的损失函数

每个水电厂类别的中心并网电量时序数据为该类别内所有水电厂的并网电量时序数据平均值,记为X

本实施例将异常因子I1、I2均为1的水电厂标记为异常水电厂。并网电量交易是通过电网企业来进行交易的,因此本实施例在识别出异常水电厂之后,就对日均用电量大于挖矿用电量基准的每个用电户,从电网企业的并网电量交易数据采集该用电户所购电力所属的发电厂信息,若所属发电厂是上文所标记的异常水电厂,则把该用电户的用电评估因子R2标记为1(1表示异常),否则标记为0(0表示正常)。

D.对所述每个用电户执行如下用电评估因子R3标记步骤:

——D1.对每个所述用电户,获取其用户基本参数的数据,该用户基本参数包括用户类型、行业类型、合同容量、运行容量、电压等级和临时用电标识;

——D2.以上述各个用户基本参数作为分类因子,根据各个用电户的用户基本参数数据把各个用电户划分成多个类别;

——D3.计算上述每个用电户在峰、谷、平这三个用电时段的用电比例P=X/Z,其中,Z为总用电量,X为用电时段类型的用电量;

——D4.对每个用电户类别,以该类别的中心用电户在峰、谷、平这三个用电时段的用电量和用电比例P作为基准用电数据,分别对该类别中其余用电户执行用电异常识别步骤:把基准用电数据和当前待识别的用电户在峰、谷、平这三个用电时段的用电量和用电比例P输入到已训练好的第二孪生神经网络模型中,从而使用该孪生神经网络模型输出这两组数据的相似度,若该孪生神经网络模型输出的相似度低于第二预设程度,则将当前待识别的用电户的用电评估因子R3标记为异常。

挖矿用电户的用电量通常比相似规模/类型的正常用电户大得多,并且挖矿用电户在峰、谷、平这三个用电时段的用电比例通常是比较均匀稳定的,而相似规模/类型的正常用电户在在峰、谷、平这三个用电时段的用电比例则通常有所波动,挖矿用电户在上述三个用电时段的用电比例明显不同于相似规模/类型的正常用电户。如果用电户在峰、谷、平这三个用电时段的用电量和用电比例异于相似规模/类型的用电户,那么该用电户就存在挖矿嫌疑,本实施例将其称为异常用电户。本实施例将用电户是否在峰、谷、平这三个用电时段的用电量和用电比例异于相似规模/类型的用电户作为评估用电户挖矿嫌疑的评估指标,具体为各个用电户设计了用电评估因子R3,用以表征用电户是否在峰、谷、平这三个用电时段的用电量和用电比例异于相似规模/类型的用电户,以R3=0表示正常,以R3=1表示异常。本实施例按照如下方式进行异常用电户识别:

本实施例从电网企业处收集日均用电量大于挖矿用电量基准的用电户的用户基本参数,用户基本参数包括用户类型、行业类型、合同容量、运行容量、电压等级和临时用电标识,本实施例据此将用电户归纳成居民用户、居民小作坊用户、企业用户这三种类别。本实施例预先设定居民用户、居民小作坊用户、企业用户的用户基本参数标准,通过代码实现自动比对将满足相应类别的参数标准的用电户归为对应类别。优选地,可以像上文划分水电厂类别的方式那样,改为采用K-prototype聚类算法对用电户进行类别划分。

非优选地,用户基本参数可改为只包括用户类型、行业类型、合同容量、运行容量、电压等级和临时用电标识当中的一项或几项。

本实施例从电网企业处获取各个用电户在峰、谷、平这三个用电时段的用电量,据此计算各个用电户在峰、谷、平这三个用电时段的用电比例,计算公式如下:

其中,P

每个类别的中心在峰、谷、平这三个用电时段的用电量为该类别中所有用电户在这三个用电时段的用电量平均值,据此计算每个类别的中心在这三个用电时段的用电比例。本实施例通过将待识别的用电户在峰、谷、平这三个用电时段的用电量和用电比例与该用电户所属类别的中心在峰、谷、平这三个用电时段的用电量和用电比例进行比较分析两者的相似度,从而确定待识别的用电户是否为异常用电户。本实施例另外构建一个结构如图2所示的孪生神经网络模型(该孪生神经网络模型下文称为第二孪生神经网络模型,上文提到的孪生神经网络模型称为第一孪生神经网络模型,以示区分),用以对两个用电户在峰、谷、平这三个用电时段的用电量和用电比例进行比较分析。为了使孪生神经网络模型具备此比较分析能力,本实施例以两个用电户在峰、谷、平这三个用电时段的用电量和用电比例作为一组训练样本,随机使用多个不同的训练样本对模型进行训练,直至该孪生神经网络模型的损失函数

本实施例以每个用电户类别的中心(即簇心)在峰、谷、平这三个用电时段的用电量和用电比例作为比较基准数据,该数据是该类别中的全部用电户在峰、谷、平这三个用电时段的用电量平均值和用电比例平均值。本实施例逐个将待识别的用电户在峰、谷、平这三个用电时段的用电量和用电比例和其所属类别的中心在峰、谷、平这三个用电时段的用电量和用电比例作为一组输入数据,输入到已训练好的第二孪生神经网络模型中,从而使用该孪生神经网络模型输出这两个用电户在峰、谷、平这三个用电时段的用电量和用电比例的相似度。若第二孪生神经网络模型输出的相似度低于第二预设程度(例如80%),意味着当前待识别的用电户在峰、谷、平这三个用电时段的用电量和用电比例异于同类用电户,则把当前待识别的用电户的用电评估因子R3标记为1(1表示异常),否则标记为0(0表示正常)。

E.根据每个用电户的用电评估因子R1、R2、R3的异常情况确定该用电户的挖矿风险等级。

对日均用电量大于挖矿用电量基准的所有用电户都执行了上述步骤B、C、D之后,每个用电户的用电评估因子R1、R2、R3都已被标记为对应的值,即可根据每个用电户的用电评估因子R1、R2、R3的值来确定该用电户的挖矿风险等级了,具体地,若用电户的用电评估因子R1、R2和R3均为1,即R1、R2和R3均为异常,则该用电户的挖矿风险等级为一级,风险最高;若用电户仅是用电评估因子R1和R3为1,R2为0,则该用电户的挖矿风险等级为二级,风险次高;若用电户仅是用电评估因子R1和R2为1,R3为0,则该用电户的挖矿风险等级为三级,风险中上;若用电户仅是用电评估因子R1为1,则该用电户的挖矿风险等级为四级,风险中下。由于正常用电户的用电评估因子R1几乎不可能为1,但其R2、R3有可能会为1,对于仅是用电评估因子R2和/或R3为1的用电户,将其归为正常用电户,没有挖矿风险。

本实施例通过计算机程序来实现上述基于电力数据的挖矿行为检测方法,该计算机程序存储在计算机可读存储介质中,供计算机处理器执行从而实现上述基于电力数据的挖矿行为检测方法。

如上所述仅为本发明创造的实施方式,不以此限定专利保护范围。本领域技术人员在本发明创造的基础上作出非实质性的变化或替换,仍落入专利保护范围。

技术分类

06120115686683