| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> NILM笔记:性能度量(Performance Metrics) -> 正文阅读 |
|
[人工智能]NILM笔记:性能度量(Performance Metrics) |
目录 1. 前言????????NILM(Non-Intrusive Load Monitoring, 非侵入式负荷监测)通常分为以下几个步骤:
????????针对步骤(2)~(4)分别要进行性能评估,所采取的性能度量也各有不同,以下分别讨论。 ????????当然也有不同于以上所述的NILM方法,比如non-event-based方法,不做事件检测,相应地就没有独立的负荷识别这一步骤,直接就是负荷分解。在这种方法就只需要考虑最后负荷分解的性能度量即可。 2. 事件检测????????事件检测环节,可以理解为一个二分类问题,有事件发生时为Positive,无事件发生时为Negative(当然这个没有必然性,完全可以反过来将有事件定义为Negative,无事件定义为Positive。实践中人们通常是根据哪个更符合直观感觉以及/或更方便于处理来决定如何定义Positive/Negative)。事件种类包括turn-on时间和turn-off,以及对于多状态电器的状态之间的切换都可以看作是事件。 ????????在机器学习领域,二分类问题的常用性能度量就是基于混淆矩阵的各项指标。 图 1 二分类混淆矩阵?
????在实际应用中,还有进一步对Positive/Negative进行二进制(0/1编码)。与前述的Positive/Negative一样,将P/N映射为0/1还是1/0也没有必然性。两者都可以,保持前后连贯一致即可。 ????????基于混淆矩阵可以得到二分类模型常用各项性能指标如下所示:
????????显然,TPR与FNR是互补的一对(相加得到1),而FPR和TNR是互补的一对,所以实质上是两个独立的度量指标。 ????????但是要注意的一点的是,将NILM中的事件检测当作二分类问题处理与常规的二分类问题相比有一定独特性。如上定义,我们把某个时刻(对应一个输入采样数据)有事件定义为Positive,无事件定义为Negative。但是在正常的家庭日常用电状况中,事件的发生是稀疏的,即绝大多数时刻是没有事件发生的,只有极少数时刻有事件发生的。换言之,数据是非常不平衡的[ref1]。 ????????打个比方说,假定事件检测算法以1Hz的采样数据作为输入,一天共有24*3600=87600个输入数据样本对应87600个时刻,一般家庭一天之中能有多少次电器设备开关或者状态切换时间呢(撑死了往1000次算?).也就是说在所有数据样本中对应Positive的可能不到1%,如果采样率提高的话,这个比率还会进一步变小。 ????????在对事件检测算法的性能评估中需要把这个数据不平衡性考虑进去。事实上,在NILM实际应用场合,通常来说虚警性能比漏检性能更加重要[Ref2],即在虚警和漏检(通常这两者都成了相互矛盾的需求)之间应该优先确保低虚警率。 ????????因此在事件检测算法的性能评估中,通常重视的就是以上TPR和FPR,而不会考虑进一步的比如说accuracy、precision、recall以及F-score等正常分类模型中常用的指标。 ? 3. 负荷识别????????在event-based NILM方法中,当检测到事件后,接下来要判断当前这个事件是哪个电器的事件,以及是哪一类事件(turn-on, turn-off or state-switching,事实上turn-on/off可以看作状态切换的特殊情况). ????????很显然,这也可以看作是一个分类问题,每一类别包含两个维度的信息:电器种类,工作状态。有两种可能的处理方式,一种是针对每一种事件构建一个二分类模型[Ref1],另一种是用一个多分类模型来处理。 ????????多分类问题的混淆矩阵如下所示:???????? 图 2 多分类情况下的混淆矩阵 ????????混淆矩阵可以用于以可视化的、直观的方式汇总地表达多分类问题的检测结果。但是进行定量的性能指标评估还是要针对每一类单独评估,(除了上述的TPR和FPR外,分类模型常用的指标还有accuracy, precision, recall, F-score等指标。 ????????对于每一类别有:? ? ? ? ? ?? 式(1) ?????? 进一步还有如ROC-AUC等。 4. 负荷分解????????在负荷分解环节,NILM算法基于上一步骤负荷识别的结果,计算每一种负荷在每个时刻的功耗值,其性能评估方式就是看估计出的各种负荷的功率值之和与实测的总功率值之间的误差。可以用MAE和RMSE来衡量功耗估计性能[3][4],定义如下: 式(2) ????????其中, 分别表示总功率测量值以及NILM算法估计值。 ? 5. 小结????????以上扼要介绍了基于事件的NILM算法中各个环节的常用性能评估指标。但是实际上在文献中出现过的评估指标远不止这些,在[5]中对ED(Event detection)类和EE(Energy Estimation)类的各种(花式的)性能评估指标做了一个比较详尽的梳理,并在[1]中对各种指标的有效性等进行了基于实验的对照评估。 [1] Lucas Pereira, et al., An Experimental Comparison of Performance Metrics for Event Detection Algorithms in NILM, NILM workshop 2018 [2] Christos Athanasiadis, et al., A Scalable Real-Time NILM for the estimation of household appliance power consumption [3] Ji, T.Y. et al. NILM Using Additive Factorial Approximate MAP Based on Iterative Fuzzy c-Means. IEEE Trans. Smart Grid 2019, 10, 6667–6677. [4] Makonin, S. et al. Exploiting HMM Sparsity to Perform Online Real-Time NILM. IEEE Trans. Smart Grid 2016, 7, 2575–2585. [5] Lucas Pereira, et al., Performance evaluation in non-intrusive load monitoring:Datasets, metrics, and tools—A review |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/27 0:22:52- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |