Implementando redes neurais do zero com Python [com exemplos]
Publicados: 2020-12-07Neste 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.