Imagem Predição do estado de lâmpadas em automação residencial com Random Forest

23 de janeiro de 2026

Predição do estado de lâmpadas em automação residencial com Random Forest

Allan Garcia Ferreira; André Luis Ramos Sanches

Resumo elaborado pela ferramenta ResumeAI, solução de inteligência artificial desenvolvida pelo Instituto Pecege voltada à síntese e redação.

Isso resulta em regras difíceis de gerenciar e que se tornam obsoletas com a mudança de hábitos, um desafio já apontado na literatura (Dias and Pizzolato, 2004). Plataformas comerciais como Alexa e Google Nest são ecossistemas de código fechado, com limitações de personalização, controle local e privacidade (Corbett et al., 2021). Como alternativa, este estudo adota o Home Assistant, um sistema de código aberto e auto-hospedado que prioriza o controle local e a privacidade. Sua arquitetura modular integra diversos dispositivos de diferentes fabricantes, e suas APIs (REST, WebSocket) permitem a coleta de dados estruturada e em tempo real, fundamental para o modelo preditivo (Open Home Foundation, 2025).

O Home Assistant funciona como um ambiente de desenvolvimento robusto, oferecendo as ferramentas necessárias para a experimentação e implementação de soluções avançadas de automação, servindo como a espinha dorsal para a coleta de dados e, futuramente, para a atuação do modelo treinado. A comunicação entre o hub e os dispositivos IoT é um componente crítico. Protocolos baseados em TCP/IP, como o Wi-Fi, apresentam desafios em ambientes IoT, como a gestão de um grande número de endereços IP e um consumo energético relativamente elevado para dispositivos alimentados por bateria. Em contraste, o protocolo Zigbee, utilizado neste projeto, foi projetado especificamente para redes de sensores sem fio de baixa potência. Ele oferece um consumo de energia significativamente menor e a capacidade de criar redes em malha (mesh); dispositivos intermediários, como lâmpadas e tomadas inteligentes, atuam como repetidores de sinal.

Isso amplia a cobertura e a confiabilidade da comunicação, garantindo que os dados dos sensores cheguem ao hub de forma consistente, mesmo em ambientes maiores ou com obstáculos (Abane et al., 2019). Essa escolha de infraestrutura garante uma base de coleta de dados estável, eficiente e escalável.

Para o sistema preditivo, foram explorados modelos de aprendizado de máquina supervisionado, nos quais o algoritmo aprende a partir de um conjunto de dados rotulado. Árvores de Decisão se destacam pela sua alta interpretabilidade, pois suas regras de decisão “se-então” podem ser facilmente visualizadas e compreendidas por humanos (Mitchell, 1997). Contudo, árvores de decisão individuais são propensas ao superajuste (overfitting), aprendendo o ruído dos dados de treinamento em vez dos padrões subjacentes.

Para maior robustez e precisão, o estudo focou no algoritmo Random Forest, um método de ensemble que constrói múltiplas árvores de decisão durante o treinamento e agrega suas predições. Ao introduzir aleatoriedade tanto na amostragem dos dados quanto na seleção de atributos para cada árvore, o Random Forest mitiga o superajuste e geralmente apresenta um desempenho preditivo superior (Breiman, 2001). Modelos mais complexos como Redes Neurais Profundas foram descartados por demandarem maior poder computacional para treinamento e oferecerem menor transparência em seu processo de decisão, enquanto o escopo deste projeto priorizou o equilíbrio entre performance preditiva e explicabilidade do modelo (Caruana, 2006). A metodologia adotada foi a de pesquisa experimental, caracterizada pelo controle de variáveis em um ambiente real, a realização de testes práticos e a análise quantitativa dos resultados.

A infraestrutura de hardware foi composta por um sensor de infravermelho passivo (PIR, modelo TS0601) para detectar a ocupação do ambiente e medir a iluminância (em lux), e uma lâmpada inteligente (modelo TS0505B) como atuador. Ambos os dispositivos, operando com o protocolo Zigbee, foram integrados ao hub central executando o Home Assistant. O escopo do problema foi deliberadamente focado na predição binária (luz ligada ou desligada) para garantir a simplicidade do modelo e a replicabilidade do estudo, evitando dependências de múltiplos sensores ou configurações de hardware complexas que poderiam dificultar a análise dos resultados. O ambiente experimental foi uma sala de estar de aproximadamente 15 metros quadrados, utilizada para atividades diversas como leitura, trabalho e lazer.

O sensor de movimento e luminosidade foi posicionado em uma estante a uma altura de 1,80 metros, em um local que oferecia uma visão desobstruída da maior parte do ambiente, incluindo a porta de entrada e a área do sofá. Esta localização foi escolhida para maximizar a precisão na detecção de ocupação e para obter uma leitura de iluminância representativa da luz ambiente geral, minimizando a influência direta da lâmpada controlada. A coleta de dados ocorreu de forma passiva, registrando o comportamento natural do usuário sem qualquer intervenção ou instrução, para garantir que o dataset refletisse a rotina real do ambiente. A coleta de dados apresentou desafios técnicos que inviabilizaram o uso do banco de dados interno do Home Assistant (baseado em SQLite).

Para superar esses obstáculos, foi desenvolvido um script customizado em Python, utilizando bibliotecas como websockets para comunicação em tempo real, requests para interações com a API REST e pandas para a manipulação de dados. Este script foi executado de forma contínua (24/7) em uma máquina virtual dedicada, garantindo a coleta de dados de forma estruturada, consistente e com a lógica temporal necessária. O processo de coleta de dados empregou uma abordagem híbrida para capturar a dinâmica do ambiente de forma completa. A primeira abordagem, reativa, utilizou o protocolo WebSocket para escutar eventos de mudança de estado do sensor de ocupação em tempo real. Ao detectar uma alteração (de “desocupado” para “ocupado” ou vice-versa), o script aguardava um intervalo de 10 segundos e, em seguida, consultava o estado atual da lâmpada via API REST.

A segunda abordagem, proativa, consistia em um agendador que, a cada minuto, registrava o estado de todos os sensores relevantes (ocupação, iluminância, estado da luz) também via API REST. Este método duplo garantiu a captura tanto de eventos discretos, que marcam o início e o fim de uma atividade, quanto de estados contínuos, que descrevem a situação do ambiente ao longo do tempo. O script operou ininterruptamente por três meses, de 25 de fevereiro de 2025 a 19 de maio de 2025, gerando um arquivo CSV com 164.961 observações. As variáveis primárias capturadas foram o timestamp, o estado de ocupação, o nível de iluminância, o estado da luz, o timestamp da última atualização da luz e a fonte do registro (evento ou agendador). Após a coleta, foi conduzida uma fase de análise exploratória de dados (EDA) e engenharia de atributos.

A EDA teve como objetivo identificar padrões de comportamento, correlações entre variáveis e anomalias nos dados. A partir dos dados primários, foram criados novos atributos (features) para enriquecer o dataset e fornecer mais contexto ao modelo. Foram extraídos componentes temporais do timestamp, como hour, minute e dayofweek, para capturar padrões diários e semanais. Foi calculada a variável timesincelastlightchange, representando o tempo em minutos desde a última mudança de estado da luz, uma proxy para a inércia do sistema. Variáveis categóricas, como o estado de ocupação e da luz, foram convertidas para formato booleano (occupancybool, light1statebool) para facilitar o processamento pelo modelo.

Para a otimização de hiperparâmetros dos modelos, planejou-se o uso da técnica de Grid Search com validação cruzada, um método de busca exaustiva que avalia sistematicamente uma grade de combinações de parâmetros para identificar aquela que produz o melhor desempenho de generalização (Hastie et al., 2008).

A análise exploratória revelou que, embora o ambiente estivesse desocupado em 81,4% dos registros, a luz permaneceu ligada em 51,3% de todas as observações. Este dado é contraintuitivo e sugere que o usuário frequentemente deixa a luz acesa mesmo quando está ausente, representando um padrão de desperdício de energia que o modelo preditivo precisa aprender a corrigir.

A análise demonstrou de forma conclusiva que a ocupação, isoladamente, não é um preditor suficiente para o estado da luz, indicando a necessidade crítica de incorporar outras variáveis contextuais, como o horário e a luminosidade natural, para construir um modelo preciso.

A análise temporal expôs rotinas claras e repetitivas. A luz tinha uma probabilidade muito alta de estar acesa durante o período noturno, especificamente entre 18h e 6h da manhã seguinte. No entanto, um padrão distinto e interessante emergiu aos sábados, quando a probabilidade de a luz estar acesa aumentava consideravelmente entre 8h e 13h, em comparação com os mesmos horários nos outros dias da semana. Essa anomalia indica uma rotina de fim de semana diferente, possivelmente relacionada a atividades domésticas ou de lazer que ocorrem nesse período. A capacidade do modelo de aprendizado de máquina de capturar essas nuances temporais e exceções à regra geral é fundamental para sua precisão e aceitação pelo usuário. A relação entre a iluminância ambiente e a probabilidade de a luz estar ligada também se mostrou um fator preditivo de grande importância.

Os dados mostraram que a probabilidade de acionamento da luz era significativamente maior quando os valores de iluminância medidos pelo sensor se situavam na faixa entre 172 e 1380 lux, sugerindo que o usuário tende a acender a luz em condições de penumbra ou iluminação artificial insuficiente. Uma complexidade inerente a essa variável é o ciclo de feedback: o próprio estado da lâmpada ligada influencia a leitura do sensor, aumentando seu valor. O modelo de aprendizado de máquina deve ser robusto o suficiente para discernir essa relação de feedback, compreendendo que altos valores de iluminância podem ser tanto a causa para a luz estar desligada (luz natural) quanto a consequência dela estar ligada (luz artificial).

Para mitigar o risco de superajuste (overfitting), foi aplicado um filtro estratégico na base de dados. O overfitting ocorre quando um modelo se ajusta excessivamente aos dados de treinamento, incluindo seu ruído e idiossincrasias, o que compromete sua capacidade de generalizar para novos dados não vistos (Hastie et al., 2008). Dado que a maioria dos 164.961 registros representava estados estáveis (luz ligada por horas ou desligada por horas), o treinamento com todos os dados poderia levar o modelo a simplesmente aprender a prever o status quo.

Para evitar isso, foram removidos os registros em que o estado da luz permanecia o mesmo do registro anterior, mantendo-se apenas as observações que representavam uma mudança de estado (ligar ou desligar) ou o primeiro registro após uma mudança. Essa filtragem reduziu drasticamente o volume de dados para 438 registros, concentrando o dataset nos eventos mais informativos e relevantes para o treinamento e validação do modelo. O primeiro modelo desenvolvido foi uma Árvore de Decisão, utilizando a implementação DecisionTreeRegressor da biblioteca Scikit-learn. Com os dados filtrados divididos em 70% para treino e 30% para teste, o modelo inicial alcançou 81,06% de acurácia no conjunto de teste.

Para avaliar a estabilidade e a capacidade de generalização, foi aplicada a validação cruzada com 5 folds, que revelou uma acurácia média de 79,86% com um desvio padrão de 3,76%. Em seguida, foi realizada uma otimização de hiperparâmetros com GridSearchCV para ajustar maxdepth, minsamplessplit e minsamples_leaf, resultando nos valores ótimos de 7, 5 e 1, respectivamente. Com esses parâmetros, a acurácia no conjunto de teste subiu ligeiramente para 81,81%, mas a acurácia média da validação cruzada caiu para 79,41%, indicando que a otimização não resultou em uma melhoria na capacidade de generalização do modelo. Em seguida, implementou-se o algoritmo Random Forest, que, por sua natureza de ensemble, tende a produzir predições mais estáveis e precisas (Breiman, 2001). Utilizando os parâmetros padrão da biblioteca, o modelo alcançou 81,81% de acurácia no conjunto de teste, um resultado idêntico ao da árvore de decisão otimizada.

No entanto, a diferença fundamental surgiu na validação cruzada: o Random Forest obteve uma acurácia média de 85,82% com um desvio padrão de 3,46%, demonstrando uma capacidade de generalização significativamente superior e mais consistente entre as diferentes partições dos dados. O GridSearchCV foi então aplicado ao Random Forest, testando uma gama de valores para nestimators, maxdepth, minsamplessplit e minsamplesleaf. O processo de busca resultou na configuração ótima de maxdepth=20, minsamplesleaf=1, minsamplessplit=2 e nestimators=100. Com estes hiperparâmetros otimizados, o modelo final de Random Forest alcançou uma acurácia de 87,88% no conjunto de teste e uma acurácia média na validação cruzada de 86,28%, confirmando sua superioridade sobre a Árvore de Decisão para este problema.

Conclui-se que o objetivo foi atingido, preservando-se os achados e a contribuição prática delineada.

Referências:
Abane, A., Belangour, A., Er-rouidi, M., Mouncif, H., & El Hadadi, B. (2019). NDN-over-ZigBee: A ZigBee support for Named Data Networking. Future Generation Computer Systems, 93, 792–798. doi: 10.1016/j. future.2017.09.053.
Breiman, L. (2001). Random Forests. Machine Learning, 45(1), 5-32.
Caruana, R., & Niculescu-Mizil, A. (2006). An Empirical Comparison of Supervised Learning Algorithms. In Proceedings of the 23rd International Conference on Machine Learning (pp. 161-168).

Resumo executivo oriundo de Trabalho de conclusão de Curso de Data Science e Analytics

Saiba mais sobre o curso, clique aqui.

Quem editou este artigo

Você também pode gostar

Quer ficar por dentro das nossas últimas publicações? Inscreva-se em nossa newsletter!

Receba conteúdos e fique sempre atualizado sobre as novidades em gestão, liderança e carreira com a Revista E&S.

Ao preencher o formulário você está ciente de que podemos enviar comunicações e conteúdos da Revista E&S. Confira nossa Política de Privacidade