Convertendo Unidades Com Redes Neurais
Neste post vamos mostrar como converter graus Celsius para Fahrenheit utilizando redes neurais e linguagem de programação Python, utilizaremos uma base de dados pronta e criaremos um perceptron simples para a conversão. O algoritmo foi desenvolvido na plataforma Google Colab.
Vamos começar importando as bibliotecas.
Pandas – para análise e manipulação de dados;
Numpy – para realizar operações em arrays multidimensionais;
Seaborn – para visualizar gráficos;
Matplotlib – para visualizações mais interativas;
TensorFlow – para criar e treinar o modelo de rede neural.
Através do comando head(), podemos observar os cinco primeiros valores do banco de dados.
Notamos que o banco de dados possui 30 linhas e 2 colunas.
O comando info() verifica os tipos de dados, existência de valores faltantes e quantidade de memória que a base de dados está utilizando.
Percebemos pelo gráfico abaixo, que quanto maior é a temperatura em Celsius, maior é a temperatura em Fahrenheit.
tf.keras.Sequential() – sequência de camadas para criar a rede neural;
layers.Danse() – adiciona uma camada densa, que significa que o neurônio de uma camada é ligado a todos os outros neurônios da próxima camada;
units = 1 – significa que terá um neurônio na saída que será em graus Fahrenheit;
input_shape = [1] – significa um neurônio de entrada que será em graus Celsius;
summary() – é o resumo da rede neural construída, onde podemos observar os 2 parâmetros que indicam os pesos.
Para compilar o modelo usaremos o otimizador Adam(0.1), onde 0.1 é a taxa de aprendizagem, ou seja, o quão rápido o algoritmo vai aprender.
loss = ‘mean_squared_error’ – é a função do erro
Para fazer o treinamento criamos uma nova variável, passamos o modelo, a base de dados configurada e o número de épocas que o algoritmo vai treinar, no caso o treinamento será por 600 épocas.
Percebemos pela gráfico abaixo que quando o erro está em 8, ele vai descendo e quando chega em 300 épocas percebe-se que ele se estabiliza, ou seja, o algoritmo não irá melhorar muito.
Agora vamos fazer o teste da nossa rede neural onde:
temp_c – representa o valor de entrada em Celsius;
temp_f – o valor de saída em Fahrenheit;
modelo.predict() – será o valor final encontrado pela rede neural.
Percebemos que se a temperatura em Celsius for 0 a rede neural encontrou o valor 31.99 graus Fahrenheit.
Utilizando a fórmula de conversão para tirar a prova, encontramos o valor real 32 graus Fahrenheit, sendo assim, podemos concluir que a rede neural se saiu muito bem neste estudo de caso.
Um comentário
Achei bem interessante.