¿Que significa MLE?


Las siglas MLE corresponden al algoritmo de estimación de máxima verosimilitud y se usa por ejemplo para la desagregación de energía.

Es responsable cuando se desea un solo aparato desagregado en lugar de desagregar muchos. Además, el aparato debe ser mayoritariamente resistivo para lograr precisión.

Se basa en eventos emparejados:

- OnPower: valor delta cuando el aparato está encendido. 
- OffPOwer: valor delta cuando el aparato está apagado. 
- Duración: duración entre encendido y apagado.

Además, para descartar muchos eventos poco probables, se establecen tres restricciones:

- PowerNoise: valor delta mínimo por debajo del cual el delta se considera ruido. 
- PowerPair: diferencia máxima entre OnPower y OffPower (considerando electrodomésticos con consumo de energía constante).
 - timeWindow: marco de tiempo máximo entre Onpower y Offpower.

Las características antes mencionadas se modelan con gaussianas, mezclas gaussianas o Poisson. Para cada evento emparejado entrante, el algoritmo extraerá estas tres características y evaluará la probabilidad de máxima verosimilitud de que ese evento emparejado sea un dispositivo determinado.

IMPORTACIONES

import numpy as np
import pandas as pd
from os.path import join
from pylab import rcParams
import matplotlib.pyplot as plt
%matplotlib inline
rcParams['figure.figsize'] = (13, 6)
#plt.style.use('ggplot')
from datetime import datetime as datetime2
from datetime import timedelta

import nilmtk
from nilmtk.disaggregate.maximum_likelihood_estimation import MLE
from nilmtk import DataSet, TimeFrame, MeterGroup, HDFDataStore
from scipy.stats import poisson, norm
from sklearn import mixture
import warnings
warnings.filterwarnings("ignore")

Funciones

def get_all_appliances(appliance):

    # Filtering by appliances: 
    print "Fetching " + appliance + " over data loaded to nilmtk."
    metergroup = nilmtk.global_meter_group.select_using_appliances(type=appliance)
    
    if len(metergroup.appliances) == 0: 
        print "None " + appliance + " found on memory."
        pass

    # Selecting only single meters: 
    print "Filtering to get one meter for each " + appliance

    meters = [meter for meter in metergroup.meters if (len(meter.appliances) == 1)]
    metergroup = MeterGroup(meters)
    print metergroup
    print "Found " + str(len(metergroup.meters)) + " " + appliance

    return metergroup


def get_all_trainings(appliance, train):

    # Filtering by appliances: 
    print "Fetching " + appliance + " over data train data."
    elecs = []
    for building in train.buildings: 
        print "Building " + str(building) + "..."
        elec = train.buildings[building].elec[appliance]
        if len(elec.appliances) == 1: 
            print elec
            print "Fetched elec."
            elecs.append(elec)

        else: 
            print elec
            print "Groundtruth does not exist. Many appliances or None"

    metergroup = MeterGroup(elecs)

    return metergroup

Cargando datos

path = '../../../nilmtk/data/ukdale'
ukdale = train = DataSet(join(path, 'ukdale.h5'))

Y dividir en datos de prueba y de entrenaminento

In [8]:train = DataSet(join(path, 'ukdale.h5'))
test = DataSet(join(path, 'ukdale.h5'))
train.set_window(end="17-5-2013")
test.set_window(start="17-5-2013")
#zoom.set_window(start="17-5-2013")
print('loaded ' + str(len(ukdale.buildings)) + ' buildings')

loaded 5 buildings

Obteniendo los datos de entrenamiento

Es posible que el dispositivo seleccionado no esté entrenado desde ElecMeters donde se presentan otros dispositivos, ya que podemos extraer la verdad básica

# Appliance to disaggregate: 
applianceName = 'kettle'
# Groundtruth from the training data: 
metergroup = get_all_trainings(applianceName,train)

Fetching kettle over data train data.
Building 1...
ElecMeter(instance=10, building=1, dataset='UK-DALE', appliances=[Appliance(type='kettle', instance=1), Appliance(type='food processor', instance=1), Appliance(type='toasted sandwich maker', instance=1)])
Groundtruth does not exist. Many appliances or None
Building 2...
ElecMeter(instance=8, building=2, dataset='UK-DALE', appliances=[Appliance(type='kettle', instance=1)])
Fetched elec.
Building 3...
ElecMeter(instance=2, building=3, dataset='UK-DALE', appliances=[Appliance(type='kettle', instance=1)])
Fetched elec.
Building 4...
ElecMeter(instance=3, building=4, dataset='UK-DALE', appliances=[Appliance(type='kettle', instance=1), Appliance(type='radio', instance=1)])
Groundtruth does not exist. Many appliances or None
Building 5...
ElecMeter(instance=18, building=5, dataset='UK-DALE', appliances=[Appliance(type='kettle', instance=1)])
Fetched elec.

Algoritmo MLE

Capacitación

Primero, creamos el modelo

mle = MLE()

Luego, actualizamos el parámetro del modelo con algunos valores de adivinación.

Primero adivine las características: mezclas gaussianas de encendido y apagado y poisson de duración.

# setting parameters in the model: 
mle.update(appliance=applianceName, resistive=True, units=('power','active'), thDelta= 1500, thLikelihood= 1e-10, powerNoise= 50, powerPair= 100, timeWindow= 400, sample_period= '10S', sampling_method='first')

# Settings the features parameters by guessing:  
mle.onpower = {'name':'gmm', 'model': mixture.GMM(n_components=2)}
mle.offpower = {'name':'gmm', 'model': mixture.GMM(n_components=2)}
mle.duration = {'name':'poisson', 'model': poisson(0)}

Updating model
{'resistive': True, 'appliance': 'kettle', 'sampling_method': 'first', 'sample_period': '10S', 'thLikelihood': 1e-10, 'timeWindow': 400, 'units': ('power', 'active'), 'thDelta': 1500, 'powerNoise': 50, 'powerPair': 100}

Entrenando el modelo

Entrenamos el modelo con todas las ocurrencias de ese modelo de dispositivo que se encuentran en los datos de entrenamiento.

mle.train(metergroup)

('kettle', 1)
Training on chunk
Samples of onpower: 214
Samples of offpower: 214
Samples of duration: 214
Training onpower
Training offpower
Training duration
('kettle', 2)
Training on chunk
Samples of onpower: 92
Samples of offpower: 92
Samples of duration: 92
Training onpower
Training offpower
Training duration
('kettle', 3)
Chunk empty

Y luego visualizamos características con featureHist_colors () para ver la distribución y cuántas muestras tenemos para cada dispositivo (el mismo modelo de diferentes casas).

mle.featuresHist_colors()


A veces, tenemos más eventos de algunas casas que de otras, como vemos en la figura de arriba. Por lo tanto, necesitamos recortar información para mantener el mismo número de muestras para cada casa.

mle.no_overfitting()

Retraining onpower
Retraining offpower
Retraining duration

In [15]:mle.featuresHist_colors()


Hay otra herramienta de visualización para ver cómo se ajustan las distribuciones del modelo a los datos:

mle.featuresHist()


Onpower y Offpower parecen encajar bien con los datos, pero necesitamos cambiar el modelo por duración

mle.duration = {'name':'gmm', 'model': mixture.GMM(n_components=10)}

Y luego volvemos a entrenar el modelo y usamos no_overfitting

mle.train(metergroup)
mle.no_overfitting()
mle.featuresHist()

('kettle', 1)
Training on chunk
Samples of onpower: 214
Samples of offpower: 214
Samples of duration: 214
Training onpower
Training offpower
Training duration
('kettle', 2)
Training on chunk
Samples of onpower: 92
Samples of offpower: 92
Samples of duration: 92
Training onpower
Training offpower
Training duration
('kettle', 3)
Chunk empty
Retraining onpower
Retraining offpower
Retraining duration

Una vez que tengamos la distribución del modelo final para cada característica. Necesitamos la integridad de cada distribución. Cada CDF debe estar delimitado por uno.

mle.check_cdfIntegrity(step=10)

Onpower cdf: 0.986177684776
Offpower cdf: 1.0
Duration cdf: 0.987375070732

Desagregación

# Building to disaggregate: 
building = 2
mains = test.buildings[building].elec.mains()

# File to store the disaggregation
filename= '/home/energos/Escritorio/ukdale-disag-ml.h5'
output = HDFDataStore(filename, 'w')

El siguiente paso tomará unos minutos.

mle.disaggregate(mains, output)

25656 events found.
12419 onEvents found
4244 onEvents no paired.
1 chunks disaggregated

También recibimos cierta información, como el número total de eventos, el número de eventos de encendido, el número de eventos que no se han emparejado y los fragmentos desglosados.

Comparando la desagregación con la verdad básica

## Groundtruth
kettle = test.buildings[building].elec.select_using_appliances(type=applianceName)
output.load(mains.key).next().plot()
kettle.plot()
output.close()

Cómo instalar Kodi en Raspberry Pi 1, Pi 2, Pi 3 y Raspbian – Pasos sencillos


Kodi es un software gratuito de código abierto que puede descargarse en su dispositivo Raspberry Pi y con él puede ver películas, programas de televisión, deportes en vivo y todo lo que desee. Con 6 sencillos pasos podrás saber cómo instalar Kodi en Raspberry Pi y tu Kodi estará listo y funcionando en poco tiempo. El proceso de instalación de Kodi es diferente para la primera generación de Raspberry Pi, mientras que instalar la mejor VPN para Kodi en raspberry Pi es un método un poco complicado que ocurre con el repositorio de Zomboided.

La transmisión de Kodi en su dispositivo Raspberry Pi sin una VPN compromete sus datos personales. Miles de usuarios reciben avisos de DMCA por ver contenido gratuito a través de Kodi. Una VPN puede mantener su identidad anónima y segura y lo ayuda a protegerse de los avisos de DMCA, problemas de derechos de autor y permite el desbloqueo de varios complementos.

CÓMO INSTALAR KODI EN RASPBERRY PI

Cosas necesarias para configurar Raspberry Pi para Kodi v17.6

Antes de pasar a la instalación de Kodi en Raspberry Pi, déjame contarte las cosas que necesitarás para configurar Raspberry Pi. Se requieren los siguientes periféricos para configurar Raspberry Pi:

1. Dispositivo Raspberry Pi

Es obvio que sin el dispositivo en sí no puede continuar. Asegúrese de comprar un modelo Raspberry Pi actualizado, para que no se enfrente a ningún problema relacionado con la compatibilidad del hardware o del sistema operativo.

Cuanto más antiguas se vuelven las placas Raspberry Pi, su rendimiento comienza a disminuir. Es por eso que recomiendo a los usuarios que optimicen sus placas o compren el último modelo de Raspberry Pi.

2. El caso de Flirc Raspberry Pi

El estuche Flirc Raspberry Pi no es una necesidad esencial, pero es bueno tenerlo si planeas verlo en exceso. La razón detrás de esta recomendación es que una carcasa Flirc Raspberry Pi viene con un disipador de calor incorporado, que evita que la placa se sobrecaliente.

Muchos usuarios han informado problemas de sobrecalentamiento y esto sucede generalmente porque cuando está transmitiendo durante horas, el rendimiento de la placa se utiliza por completo. El sobrecalentamiento puede causar muchos problemas de hardware y, en ocasiones, puede provocar un cortocircuito.

Otra razón para optar por un estuche Flicr es que le da un gran aspecto a tu tabla debido a su fresco cuerpo de aluminio. Puede mantener la placa overlock sin preocuparse por los problemas de sobrecalentamiento y su placa también obtiene un nuevo aspecto excelente.

3. Cable Ethernet

Es necesario tener un cable Ethernet de alta velocidad, no solo para conectar su dispositivo a Internet, sino también para tener una buena velocidad de ancho de banda para una transmisión ininterrumpida.

4. cable HDMI

Para conectar su dispositivo Raspberry Pi a su televisor, necesitará un cable HDMI. Un cable HDMI funciona mejor que la transmisión de pantalla porque no proporciona una imagen retrasada.

5. Tarjeta de memoria microSD

Se necesita un almacenamiento externo para almacenar archivos multimedia en Raspberry Pi. Muchos usuarios optan por unidades USB, que no son lo suficientemente rápidas para extraer archivos multimedia y, a veces, ralentizan el sistema. Usar una tarjeta micro SD es siempre una mejor opción que una memoria USB.

Sin embargo, Raspberry Pi no es compatible con todas las tarjetas micro SD. Puede incluir una tarjeta micro SD junto con su Raspberry Pi en el paquete; revisa bien la tarjeta porque muchas veces estas tarjetas son de baja calidad.

Vería que las tarjetas Samsung y Kingston vienen en paquetes con dispositivos Raspberry Pi, que no son tan eficientes. Es mejor que utilice tarjetas SanDisk, que también deberían tener al menos 16 GB para garantizar una experiencia de funcionamiento fluida.

6. Adaptador de corriente micro USB

Los adaptadores de corriente no están incluidos en el paquete cuando compra una placa Raspberry Pi, por lo que debe comprarlos por separado. Asegúrese de comprar un adaptador de corriente de alta calidad compatible con su dispositivo porque a veces hay paquetes que ofrecen algunos adaptadores de corriente de bajo grado junto con las placas Raspberry Pi. Estas placas no duran mucho y pueden dañar su placa en caso de fluctuaciones de voltaje.

Cómo instalar Kodi en Raspberry Pi 1 en 6 pasos

  1. Abra su navegador y visite el sitio web de OpenELEC > Haga clic en Descargas> Desplácese hacia abajo hasta las compilaciones de Raspberry . Hay versiones independientes para Raspberry Pi 1, 2, 3 o Zero. Seleccione la compilación de Raspberry Pi First Generation (archivo de imagen de disco)> Descargue el archivo zip en su dispositivo.cómo instalar kodi en raspberry pi
  2. Una vez descargado el archivo zip, extraiga el archivo zip en su dispositivo.
  3. Ahora necesitamos copiar el archivo extraído en una tarjeta micro SD, y para eso necesitamos un software llamado Rufus que crea unidades USB de arranque. Descargue el archivo desde el enlace que se presenta aquí .descargar raspberry pi
  4. Una vez descargado, abra Rufus> Aparecerá un cuadro que requerirá información> Seleccione su tarjeta SD en la opción del dispositivo> Haga clic en la imagen del disco ubicada en el cuadro.tarjeta sd frambuesa pi kodi
  5. Ahora busque el archivo que se extrajo y seleccione el archivo en particular> Presione el botón Inicio en el cuadro. El archivo se escribirá en la tarjeta SD. cómo configurar kodi en raspberry pi
  6. Ahora retire la tarjeta SD y vuelva a colocarla en su dispositivo Raspberry Pi. Una vez que se enciende el dispositivo Raspberry Pi, se iniciará automáticamente en Kodi. Disfruta usando Kodi en Raspberry Pi.

Cómo instalar Kodi en Raspberry Pi 2

Para instalar Kodi en Raspberry Pi 2, excepto en el primer paso, todo el proceso seguirá siendo el mismo. Abra su navegador y visite el sitio web de OpenELEC > Haga clic en la pestaña Descargar ubicada en la parte superior> Desplácese hacia abajo hasta las compilaciones de Raspberry Pi> Ahora seleccione Raspberry Pi 2 (archivo de imagen de disco) y descargue el archivo zip en su dispositivo> Ahora continúe con el paso 2 de las pautas mencionadas anteriormente como se describe para la primera generación de Raspberry Pi.

cómo instalar kodi en raspberry pi 2

Cómo instalar Kodi Krypton v17.6 en Raspberry Pi 3

  1. Descargue la última versión de OSMC Raspberry Pi Installer desde su sitio web oficial, es decir, https://osmc.tv/download/.cómo instalar kodi en raspberry pi 3
  2. Conecte la tarjeta SD para instalar Kodi y ejecute el instalador de OSMC.cómo configurar kodi en raspberry pi 3
  3. Seleccione su idioma preferido> Seleccione Raspberry Pi 2/3 de la lista desplegable debajo del cuadro de idioma. cómo agregar kodi en raspberry pi 3
  4. Ahora, elija la versión de la compilación que desea instalar> La opción óptima es elegir la última versión de compilación porque funciona mejor.instalación de osmc para kodi
  5. Ahora elija la tarjeta SD como medio de almacenamiento.opciones de instalación para kodi 17.6 en raspberry pi 3
  6. Si está utilizando un cable Ethernet, seleccione Conexión por cable o si está utilizando una conexión Wi-Fi, seleccione Inalámbrico. guía de configuración para kodi 17.6 en raspberry pi 3
  7. Asegúrese de que la ruta de almacenamiento mencionada sea correcta.pasos para kodi 17.6 en raspberry pi 3
  8. Marque la exención de responsabilidad del acuerdo de licencia y se iniciará la descarga.descargar kodi 17.6 krypton en raspberry pi 3
  9. Tan pronto como se complete la instalación, OSMC se instalará en su tarjeta SD.descargar kodi jarvis en raspberry pi 3
  10. Después de que OSMC esté instalado en su tarjeta SD, puede usar esta tarjeta SD en su Raspberry Pi.Tarjeta SD en tu Raspberry Pi
  11. Conecte su tarjeta SD en su dispositivo Raspberry y conecte todos los periféricos en sus respectivos puertos.Conecte su tarjeta SD en su dispositivo Raspberry y conecte todos los periféricos
  12. El sistema se iniciará y se completará la instalación.
El sistema se iniciará y se completará la instalación.

Cómo instalar Kodi en Raspbian en 9 pasos

Raspbian es un software operativo gratuito para dispositivos Raspberry Pi. Es el sistema operativo líder para Raspberry Pi y el más utilizado para el dispositivo.

  1. Instale Raspbian Jesse en el sitio web de Raspberry Pi y abra Raspbian una vez que esté instalado.
  2. Vaya a Menú> Preferencias> Haga clic en Configuración de Raspberry Pi.
  3. Haga clic en Expandir el sistema de archivos.
  4. Ahora haga clic en la pestaña Rendimiento. Si tiene Raspberry Pi 1, debe seleccionar la memoria de GPU de 128, mientras que puede seleccionar la memoria de 256 GPU para Raspberry Pi 2 y 3. Haga clic en  para reiniciar.
  5. Ahora necesitamos instalar Kodi en Raspbian. Para ello, debe asegurarse de estar conectado a Internet, Wi-Fi o Ethernet.
  6. Haga clic en el icono de Terminal ubicado en la parte superior> Ahora copie ‘sudo apt-get update’ exactamente y péguelo en Terminal> Presione Enter> Kodi tardará unos minutos en instalarse.
  7. Una vez que se complete la instalación, copie ‘sudo apt-get install kodi’ exactamente> Presione Enter.
  8. Escribe Y si te pide que continúes con la instalación en la Terminal> Presiona Enter.
  9. Ahora ve a Menú> Sonido y video> Kodi Media Center> Estás listo para usar Kodi, ¡disfrútalo!

Cómo instalar Raspberry Pi VPN en Kodi Krypton versión 17.6

La instalación de Raspberry Pi VPN no es un paseo por el parque para principiantes, pero discutiremos en detalle cómo puede instalar Raspberry Pi VPN en Kodi Krypton Versión 17 en 8 pasos. Antes de comenzar a instalar Raspberry Pi VPN en Kodi, debe crear una cuenta de Raspberry Pi VPN con cualquier servicio y luego seguir los pasos a continuación:

  1. Necesita tener una unidad flash USB insertada en su computadora.
  2. Descargue el repositorio Zomboided desde aquí .
  3. Transfiera o copie el repositorio Zomboided a una unidad flash USB.
  4. Desenchufe el USB de la computadora y conéctelo a su dispositivo Raspberry Pi.
  5. Vaya a Programas> Complementos> Obtener más> Seleccionar puntos suspensivos ‘…’ Seleccionar puntos suspensivos nuevamente> Seleccionar Instalar desde Zip.
  6. Elija la opción de unidad flash USB de la lista> Seleccione repository.zomboided.plugins-1.0.0.zip> El repositorio tardará en instalarse.
  7. Vaya a la página de complementos nuevamente> Haga clic en Instalar desde el repositorio> Seleccione el repositorio de complementos de Zomboided> Haga clic en Administrador de VPN para OpenVPN > Haga clic en Instalar.
  8. Vaya a la pantalla de inicio de Kodi> Complementos> Complementos del programa> Administrador de VPN para OpenVPN .
  9. Aparecerá un cuadro donde deberá seleccionar el Servicio VPN de Raspberry Pi que desee> Insertar nombre de usuario y contraseña> Disfrutar.

Asegúrese de no registrarse o pensar en probar una VPN gratuita para Kodi porque no son confiables y no son compatibles con Raspberry Pi.

Cómo instalar Raspberry Pi VPN en Kodi Jarvis versión 16

El proceso para instalar Raspberry Pi VPN en Kodi Jarvis Versión 16 sigue siendo el mismo que para Kodi Krypton Versión 17. Si necesita instalar Raspberry Pi VPN, siga los pasos descritos anteriormente.

Descargar Raspberry Pi Kodi

Para descargar Kodi en su dispositivo Raspberry Pi, necesita descargar OpenELEC para su respectivo dispositivo Raspberry Pi, mientras que por otro lado necesita descargar Rufus.

  1. Puede obtener OpenELEC para su dispositivo Raspberry Pi 1, 2 o 3 aquí .
  2. Puede obtener el software Rufus desde aquí .
  3. Puede obtener el sistema operativo Raspbian desde aquí .

Otros requerimientos

Al instalar Kodi en Raspberry Pi, también necesita tener una tarjeta micro SD con un adaptador para poder conectarla fácilmente a su ordenador. Consulte esta guía para instalar kodi en Raspbian Jessie OS.

Fuente https://www-kodivpn-co/