非侵入式电荷负载分解(Non-intrusive load monitoring,NILM)---- NILMTK(安装教程)

前段时间在做“非侵入式电荷负载分解”的项目,非侵入式电荷负载分解是开展节能工作的基础,加强能耗监控尤其是电力能耗的监测工作对提高能源利用率、实现能源的可持续发展、建设节约型社会和环节能源压力等具有重要的现实意义。

非侵入式,就是在不用安装大量的监控设备的情况下,实现总功率数据到单个电器消耗功率的分解。比如我现在拥有一年的电力数据,假设采样频率为6s钟,该电力数据包含了这一年某个家庭的总消耗功率,还有就是家庭中几种电器如冰箱、洗衣机、洗碗机等用电设备对应的采样频率为6s的消耗功率数据。我们的任务是利用这一年的功率数据作为训练,然后在一年后,只要给你一个该家庭的总功率消耗信息,利用现有训练好的算法将该总功率数据分解到各个电器的消耗功率中去。

刚接到这个项目的时候无从入手,仔细查阅了现有的关于非侵入式电荷负载分解的算法,自己总结了几个常用的算法。本篇博文主要是为开展该项目做的准备。

先简单介绍以下NILMTK这个包吧,这个包是国外的一个作者编的,具体的GitHub地址在NILMTK,使用起来还是蛮方便的,但是这个包现在的兼容性好像不太好,经常会报一些无从下手的错误,而且这个包的安装过程是比较艰辛的。笔者现在已经安装成功了,现在分享以下安装经验:

具体的英文版本的安装教程可以参考这里:Installation, 小编试过里面的一些安装方法,发现第一个安装方法对其他包的版本的要求是比较高的,也就是说兼容性不太好。这里的中文安装方法主要是利用英文安装教程中的第二种,下面简单介绍以下,以下安装过程是基于Ubuntu系统的操作的,其他的linux系统应该也不会有问题:

1.首先你得安装一个python对应版本的Anaconda,Anaconda的安装教程可以参考这里:Anaconda的安装 ,注意一定要安装和自己的python版本对应的Anaconda。

2.安装好Anaconda后,使用以下指令更新:

conda update --yes conda

3.安装HDF5 libraries 和 python-dev:

sudo apt-get install libhdf5-serial-dev python-dev

4.安装Anaconda中可能会缺少的一些库:

conda install --yes pip numpy scipy six scikit-learn pandas numexpr
pytables dateutil matplotlib networkx future

注意:如果你使用的是pandas 0.17,建议更新一下版本,因为可能会报错版本不兼容。

5.安装NILM Metadata(包含NILM的一些元数据):

git clone https://github.com/nilmtk/nilm_metadata/
cd nilm_metadata
python setup.py develop
cd ..

6.安装 psycopg2 和 postgres:

sudo apt-get install postgresql postgresql-contrib
sudo apt-get install postgresql-server-dev-all
pip install psycopg2

7.使用 pip 安装 Misc:

pip install nose coveralls coverage git+https://github.com/hmmlearn/hmmlearn.git@ae1a41e4d03ea61b7a25cba68698e8e2e52880ad#egg

8.最后安装NILMTK:

git clone https://github.com/nilmtk/nilmtk.git
cd nilmtk
python setup.py develop
cd..
  1. 你可以试着运行以下以下指令看看NILMTK是否安装成功。
cd nilmtk
nosetests

英文版的教程中还包含了另外几种系统的安装方法。Windows的安装方法还没有尝试过,不过linux上的安装方法这个应该是最成功也最方便的了。后面几篇博文会简单解读以下基于这个包的几种电荷分解算法。

你可能感兴趣的:(算法,深度学习,数据处理,机器学习,非侵入式电荷负载分解)