Implementando redes neurais do zero com Python [com exemplos]

Publicados: 2020-12-07

Neste artigo, aprenderemos como treinar e construir uma rede neural do zero.

Usaremos o conjunto de dados Churn para treinar nossa rede neural. Treinar uma rede neural não é complicado. Precisamos pré-processar nossos dados para que nosso modelo possa facilmente pegar nossos dados e treinar-se sem obstáculos. Você procederá da seguinte forma:

  • Instalar Tensorflow
  • Importar bibliotecas
  • Importar o conjunto de dados
  • Transforme os dados de entrada
  • Dividir os dados
  • Inicialize o modelo
  • Construir o modelo
  • Treine o modelo
  • Avalie o modelo

A taxa de churn é a medida dos assinantes de uma empresa ou de uma parte que tende a descontinuar em um período de tempo específico. Essa taxa desempenha um papel essencial na decisão dos lucros e na formação de planos para conquistar novos clientes. Em termos simples, podemos dizer que o crescimento da empresa pode ser medido pela taxa de Churn.

Nesse conjunto de dados, temos treze recursos, mas usamos apenas alguns recursos que atendem aos nossos requisitos para prever a chance de descontinuar um usuário.

Aprenda o curso online de aprendizado de máquina das melhores universidades do mundo. Ganhe Masters, Executive PGP ou Advanced Certificate Programs para acelerar sua carreira.

Índice

Instalar o TensorFlow

Podemos usar o Google Colab se o seu PC ou laptop não tiver uma GPU ou então você pode usar Jupyter Notebooks. Se você estiver usando seu sistema, atualize o pip e instale o TensorFlow da seguinte maneira.

Origem da imagem

Importar bibliotecas

Nas linhas de código acima, acabei de importar todas as bibliotecas que precisarei no processo.

Numpy É uma biblioteca usada para realizar operações matemáticas em arrays.

Pandas Para carregar o arquivo de dados como um quadro de dados do Pandas e analisar os dados.

Matplotlib Eu importei um pyplot para plotar gráficos dos dados .

Importar conjunto de dados

Nosso conjunto de dados está no formato CSV, então carregamos o conjunto de dados usando operações de pandas. Em seguida, dividimos o conjunto de dados em variáveis ​​dependentes e independentes, onde X é considerado independente e Y é considerado dependente.

Transforme os dados

Em nosso conjunto de dados, temos duas características categóricas, Geografia e Gênero. Precisamos criar dummies para esses dois recursos, então usamos o método get_dummies e os anexamos aos nossos dados de recursos independentes.

Assim que terminarmos de criar manequins e concatená-los aos nossos dados, removeremos as características originais, ou seja, Gênero e Geografia, de nossos dados de trem.

Leia: Aprendizado de máquina versus redes neurais

Dados divididos

Do Sklearn, sub-biblioteca model_selection, importaremos o train_test_split, que é usado para dividir os conjuntos de trem e teste. Podemos usar a função train_test_split para fazer a divisão. O test_size = 0,3 indica a porcentagem dos dados que devem ser mantidos para teste.

Normalize os dados

É essencial certificar-se de que todos os valores de recursos estejam no mesmo intervalo. Seria difícil para o modelo aprender os padrões subjacentes entre os recursos e aprender a tomar decisões, então normalizamos nossos dados no mesmo intervalo usando o método StandardScaler .

Importar dependências

Agora, vamos importar as funcionalidades necessárias para construir uma rede neural profunda.

Construir o modelo

É hora de construir nosso modelo!. Agora vamos inicializar nosso modelo sequencial. A API sequencial permite criar modelos camada por camada para a maioria dos problemas.

A primeira coisa que precisamos fazer antes de construir um modelo é criar um objeto de modelo em si. Este objeto será uma instância da classe chamada Sequential.

Adicionando a primeira camada totalmente conectada

Se você desconhece os tipos de camadas e suas funcionalidades, recomendo dar uma olhada no meu blog Introdução às Redes Neurais, que permite conhecer a maioria dos conceitos que você deve conhecer.

Isso significa que a saída desta operação deve ter seis neurônios nos quais aplicamos a função de ativação ReLU para quebrar a linearidade, e o número de neurônios de entrada é 11. Adicionamos todos esses hiperparâmetros usando o método .add() .

Adicionaremos uma camada oculta com a mesma configuração onde a saída dessa camada oculta terá seis nós.

Camada de saída

A saída dessa camada terá apenas um nó, que informa se o usuário permanece ou sai da assinatura. Nesta camada, usamos sigmóide como nossa função de ativação.

Saiba mais sobre: ​​Deep Learning vs Redes Neurais

Compilando

Agora precisamos conectar nossa rede com um otimizador. Um otimizador atualizará os pesos de nossa rede com base no erro. Este processo é conhecido como retropropagação.

Aqui usaremos adam como nosso otimizador. Como nosso resultado é em termos de binário, usamos entropia cruzada binária e a métrica que usamos é precisão .

Treinando o modelo

Este estágio é o caminho crucial em que precisamos treinar nosso modelo para aprender os padrões subjacentes, as relações entre os dados e prever o novo resultado com base em seu conhecimento.

Usamos o método model.fit() para treinar o modelo. Passamos três argumentos dentro do método, que são

input x_train é a entrada que alimenta a rede

output contém as respostas corretas para o x_train, ou seja, y_train

no.of.epochs Significa o número de vezes que você vai treinar a rede com o conjunto de dados.

Avalie

Você pode avaliar o desempenho do modelo importando precision_score da biblioteca sklearn na qual você precisa passar dois argumentos. Uma é a saída real e a outra são as saídas previstas.

Leia também : Aplicações de rede neural no mundo real

Conclusão

É tudo por agora. Espero que você tenha gostado de construir sua primeira rede neural. Feliz Aprendizagem!

Se você estiver interessado em aprender mais sobre aprendizado de máquina, confira o Programa PG Executivo do IIIT-B e do upGrad em aprendizado de máquina e IA, projetado para profissionais que trabalham e oferece mais de 450 horas de treinamento rigoroso, mais de 30 estudos de caso e atribuições, IIIT -B Alumni status, mais de 5 projetos práticos práticos e assistência de trabalho com as principais empresas.

Lidere a revolução tecnológica orientada por IA

Inscreva-se para o Mestrado em Aprendizado de Máquina e Inteligência Artificial