Assistente de Laboratório

Página desenvolvida para mostrar a possibilidade de aplicação do algoritmo SymTree para Regressão Simbólica com baixo custo computacional. Essa ferramenta pode ser utilizada como auxiliar de laboratórios didáticos em que são feitos experimentos de mensuração para verificar relações vistas em sala de aula. A tecnologia utilizada é a linguagem JavaScript e, portanto, executa o algoritmo no próprio navegador do usuário. Experimente!

1 - Digite os dados

Os dados de entrada podem ser digitados ou carregados através de um arquivo .csv. Cada linha da entrada devem primeiro conter as variáveis do problema e, em seguida, a variável de medição: x1, x2, ...,y. Opcionalmente, a primeira linha pode conter os nomes das variáveis (clique na caixa correspondente para ativar essa opção);

2 - Escolha e execute um algoritmo

Escolha o algoritmo a ser executado. Os algoritmos por padrão apresentam configurações para uma boa performance em navegadores, mas é possível modificar os seus parâmetros clicando na engrenagem na área de execução e resultados;

3 - Analise o resultado

Após finalizar o processamento, o site irá exibir os resultados da regressão simbólica, que podem ser manipulados. Para um melhor entendimento, a página notas de estudo fornece uma explicação da ideia da ferramenta desenvolvida.

Entrada de dados

Os dados podem ser digitados manualmente, ou você pode fazer o upload de um arquivo .csv contendo seus dados. Caso queira, a primeira linha pode ser usada para nomear as variáveis. No site há uma página mais elaborada sobre os dados de entrada, com exemplos para testar o algoritmo. O site manterá guardado o último conjunto de dados que foi carregado com êxito até o final da sessão.

Entrada manual de dados
Upload de arquivo local

Execução e resultados

SymTree (Symbolic Tree)


IT-LS (Interaction-Transformation Local Search)


IT-ES (Interaction-Transformation Evolution Strategies)

Com os dados carregados, basta escolher um dos algorithmos abaixo. Também é possível ajustar os parâmetros do algoritmo clicando na engrenagem acima (isso pode melhorar o tempo de execução, ao custo de realizar uma busca mais simples. O primeiro parâmetro é o que mais tem impacto no tempo de execução, e uma sugestão é indicada).

Os resultados obtidos foram satisfatórios?

A regressão simbólica é uma tarefa difícil, por ter uma quantidade muito grande de parâmetros para ajustar - desde os coeficientes livres até a própria forma da função. No nosso caso, pode ser que a equação real não possa ser representada, os dados sejam muito ruidosos ou a quantidade de dados necessária seja maior do que a utilizada. Ainda assim, o algoritmo consegue ser capaz de apresentar bons resultados em diversos cenários.

Para qualificar as expressões criadas pelos algoritmos, usamos o score. O score é uma classificação para a expressão, de acordo com o quão bem esta expressão se ajusta ao DATASET de entrada, e varia de 0 a 1. O score é calculado por:

$$\small{ score = \frac{1}{(1 + MAE)} }$$

Onde o MAE (desvio médio absoluto) é igual ao somatório das diferenças entre os valores da variável dependente yi e os valores calculados pela expressão para Xi:

$$\small{ Mean Absolute Error\ (MAE) = \sum_{i=1}^{n}\frac{|y_{i} - \widehat{f}(X_{i})|}{n} }$$

Onde n é o tamanho da base de dados utilizada.

Algoritmo SymTree

Este algoritmo inicia sua busca a partir de uma solução representando uma regressão linear. A cada iteração ele aplica as operações de interação entre as variáveis e transformação, gerando funções incrementalmente mais complexas. Mais detalhes podem ser vistos no seu artigo original.

Algoritmo IT-LS

O algoritmo funciona criando uma população inicial de expressões aleatórias e selecionando a melhor dentre elas. Após isso, executa uma busca local na equação, mudando ou as funções não-lineares ou os expoentes da equação, repetindo o processo até que não exista uma modificação que melhore ainda mais o score da equação. Esse algoritmo é executado até no máximo 50 iterações.

Algoritmo IT-ES

O algoritmo funciona criando uma população de expressões aleatórias, e então executa um algoritmo de Estratégia Evolutiva \(\small ES-(\mu, \lambda)\). Esse algoritmo foi executado apenas com mutação, \(\small \mu=150\), \(\small \lambda=45\) e 150 iterações. Uma versão mais elaborada desse algoritmo foi posteriormente formalizada, e o artigo apresentando a nova proposta do algoritmo pode ser encontrado aqui.

A Regressão Simbólica tem por objetivo encontrar a função geradora de uma base de dados amostrais. Ela difere de outros tipos de regressão pois não está restrito a uma forma fixa como em métodos de regressão linear, polinomial e redes neurais. Normalmente, a Regressão Simbólica é feita através de Algoritmos Evolutivos (ex.: Programação Genética), mas esses costumam ser computacionalmente custosos, mesmo em bases de dados de baixa dimensão.

Este projeto tem como objetivo mostrar o potencial do algoritmo SymTree para dados de baixa dimensão e gerados por funções conhecidas da Física, Matemática e Engenharia.

Esse projeto foi desenvolvido por Guilherme Aldeia como parte de sua iniciação científica orientado pelo prof. Fabricio Olivetti de França na Universidade Federal do ABC.

Contato

Orientador:
Prof. Dr. Fabrício Olivetti de França
folivetti@ufabc.edu.br

Discente:
Guilherme Seidyo Imai Aldeia
guilherme.aldeia@ufabc.edu.br

Universidade Federal do ABC
Avenida dos Estados, 5001 - Bairro Santa Terezinha, Santo André - CEP: 09210-580
+55 11 4996-0001

2020 Guilherme Seidyo Imai Aldeia