Implementando Redes Neuronales Desde Cero con Python [Con Ejemplos]
Publicado: 2020-12-07En este artículo, aprenderemos cómo entrenar y construir una red neuronal desde cero.
Usaremos el conjunto de datos Churn para entrenar nuestra red neuronal. Entrenar una red neuronal no es complicado. Necesitamos preprocesar nuestros datos para que nuestro modelo pueda tomar fácilmente nuestros datos y entrenarse a sí mismo sin ningún obstáculo. Procederá de la siguiente manera:
- Instalar Tensorflow
- Importar bibliotecas
- Importar el conjunto de datos
- Transformar los datos de entrada
- dividir los datos
- Inicializar el modelo
- Construye el modelo
- entrenar al modelo
- Evaluar el modelo
Churn rate es la medida de los suscriptores de una empresa o de un partido que tiende a descontinuar en un período de tiempo específico. Esta tasa juega un papel esencial para decidir las ganancias y formar planes para ganar nuevos clientes. En términos simples, podemos decir que el crecimiento de la empresa se puede medir por la tasa de Churn.
En este conjunto de datos, tenemos trece funciones, pero usamos solo unas pocas funciones que cumplen con nuestros requisitos para predecir la posibilidad de que un usuario deje de hacerlo.
Aprenda el curso en línea de aprendizaje automático de las mejores universidades del mundo. Obtenga programas de maestría, PGP ejecutivo o certificado avanzado para acelerar su carrera.
Tabla de contenido
Instalar TensorFlow
Podemos usar Google Colab si su PC o computadora portátil no tiene una GPU o puede usar Jupyter Notebooks. Si está utilizando su sistema, actualice pip y luego instale TensorFlow de la siguiente manera.


Fuente de imagen
Importar bibliotecas
En las líneas de código anteriores, acabo de importar todas las bibliotecas que necesitaré en el proceso.
Numpy → Es una biblioteca utilizada para realizar operaciones matemáticas en matrices.
Pandas → Para cargar el archivo de datos como marco de datos de Pandas y analizar los datos.
Matplotlib → Importé un pyplot para trazar gráficos de los datos .
Importar conjunto de datos
Nuestro conjunto de datos está en formato CSV, por lo que cargamos el conjunto de datos mediante operaciones pandas. Luego, dividimos el conjunto de datos en variables dependientes e independientes, donde X se considera independiente e Y se considera dependiente.
Transformar los datos
En nuestro conjunto de datos, tenemos dos características categóricas, Geografía y Género. Necesitamos crear ficticios para estas dos funciones, por lo que usamos el método get_dummies y luego los agregamos a nuestros datos de funciones independientes.
Una vez que hayamos terminado de crear ficticios y concatenarlos con nuestros datos, eliminaremos las características originales, es decir, Género y Geografía, de nuestros datos de tren.
Leer: Aprendizaje automático frente a redes neuronales
Dividir datos
Desde Sklearn, sub-biblioteca model_selection, importaremos train_test_split, que se usa para dividir conjuntos de entrenamiento y prueba. Podemos usar la función train_test_split para hacer la división. El test_size = 0.3 indica el porcentaje de los datos que deben conservarse para la prueba.

Normalizar los datos
Es esencial asegurarse de que todos los valores de las características se encuentren en el mismo rango. Sería difícil para el modelo aprender los patrones subyacentes entre las características y aprender a tomar decisiones, por lo que normalizamos nuestros datos en el mismo rango utilizando el método StandardScaler .
Importar dependencias
Ahora, importaremos las funcionalidades necesarias para construir una red neuronal profunda.
Construya el modelo
¡Es hora de construir nuestro modelo!. Ahora vamos a inicializar nuestro modelo secuencial. La API secuencial le permite crear modelos capa por capa para la mayoría de los problemas.
Lo primero que debemos hacer antes de construir un modelo es crear un objeto modelo en sí mismo. Este objeto será una instancia de la clase denominada Sequential.
Agregar la primera capa completamente conectada
Si no conoce los tipos de capas y su funcionalidad, le recomiendo consultar mi blog Introducción a las redes neuronales, que le permite conocer la mayoría de los conceptos que debe conocer.
Significa que la salida de esta operación debe tener seis neuronas en las que aplicamos la función de activación ReLU para romper la linealidad, y el número de neuronas de entrada es 11. Agregamos todos estos hiperparámetros usando el método .add() .
Agregaremos una capa oculta con la misma configuración donde la salida de esta capa oculta tendrá seis nodos.
Capa de salida
La salida de esta capa tendrá solo un nodo, que indica si el usuario permanece o abandona la suscripción. En esta capa, usamos sigmoid como nuestra función de activación.
Más información sobre: aprendizaje profundo frente a redes neuronales
Compilando
Ahora necesitamos conectar nuestra red con un optimizador. Un optimizador actualizará los pesos de nuestra red en función del error. Este proceso se conoce como retropropagación.
Aquí usaremos adam como nuestro optimizador. Dado que nuestro resultado es en términos binarios, usamos entropía cruzada binaria y la métrica que usamos es precisión .
Entrenando al modelo
Esta etapa es el camino crucial en el que necesitamos entrenar nuestro modelo para aprender los patrones subyacentes, las relaciones entre los datos y predecir el nuevo resultado en función de su conocimiento.
Usamos el método model.fit() para entrenar el modelo. Pasamos tres argumentos dentro del método, que son
input → x_train es la entrada que se alimenta a la red
salida → esto contiene las respuestas correctas para x_train, es decir, y_train

no.of.epochs → Significa la cantidad de veces que va a entrenar la red con el conjunto de datos.
Evaluar
Puede evaluar el rendimiento del modelo importando precision_score de la biblioteca sklearn en la que debe pasar dos argumentos. Uno es el resultado real y el otro es el resultado previsto.
Lea también : Aplicaciones de redes neuronales en el mundo real
Conclusión
Eso es todo por ahora. Espero que hayas disfrutado construyendo tu primera red neuronal. ¡Feliz aprendizaje!
Si está interesado en obtener más información sobre el aprendizaje automático, consulte el programa Executive PG de IIIT-B y upGrad en aprendizaje automático e inteligencia artificial, que está diseñado para profesionales que trabajan y ofrece más de 450 horas de capacitación rigurosa, más de 30 estudios de casos y asignaciones, IIIT -Estado de exalumno B, más de 5 proyectos prácticos finales y asistencia laboral con las mejores empresas.
